Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
У меня есть файл заказов и справочник исполнителей(их может быть несколько на 1 заказ). моя задача: в Gride высветить весь файл заказов, и по кнопках, их у меня 3 НАЗАД, СЕГОДНЯ, ВПЕРЕД 1. по СЕГОДНЯ -в Gride высветить заказы выполненные сегодня, 2. по ВПЕРЕД - завтра, послезавтра..... 3. по назад вчера, позавчера..... Работает не совсет так, как хочу. Создала параметрезированный запрос SELECT Spisa.imen, Spisa.datr; FROM ; spisok!spisa; WHERE Spisa.datr >= ( ?xdat ); AND Spisa.datr <= ( ?xdat1 ) В Init формы ставлю public xdat,xdat1,dat xdat=CTOD("") xdat1=ctod("31.12.2004") dat=DATE() REQUERY("view1") В click СЕГОДНЯ xdat=DATE() xdat1=DATE() requery("view1") В click ВПЕРЕД dat=dat+1 xdat=DAT xdat1=DAT requery("view1") Пустой экран, когда таких дат в файле нет(сколько бы я не нажимала ВПЕРЕД, не находит дату, которая стоит через 5 дней), ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 19:26 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
А REQUERY() разве выполняется? Вроде для его работы нужен VIEW, а у Вас простой SQL запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 22:08 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
А REQUERY() разве выполняется? Вроде для его работы нужен VIEW, а у Вас простой SQL запрос. View создан, и при первом заходе, все нормально, глючит при повторных заходах в Grid при нажатии клавиши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 10:02 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
Не надо создавать PUBLIC-переменные. Если ты действительно "новичек", то можешь поиметь на этом большие проблемы. В данном случае проверь, что же именно ты записала в переменные xdat и xdat1 в кнопке "ВПЕРЕД" MESSAGEBOX("xdat="+DTOC(xdat)+chr(13)+"xdat1="+DTOC(xdat1)) И убедись, что в таблице spisok!spisa существуют записи с указанным значением в поле datr И еще. Поле Spisa.datr какого типа: Date или DateTime? Это имеет принципиальное значение для логики сравнения. Несколько советов не по существу: 1) "Штатным" способом создания переменных для работы в конкретной форме является создание дополнительных свойств формы (Properties). На этапе проектирования формы (в дезайнере) это пункт главного меню Form->New Property, для редактирования Form->Edit Property/Method Для View нужны переменные. Но их следует объявляьб локальными и считывать значение из Property формы. Например: INIT-формы ThisForm.CurrentDate = DATE() ThisForm.FromDate = {} ThisForm.ToDate = DATE(2004,12,31) LOCAL xdat,xdat1 xdat = ThisForm.FromDate xdat1 = ThisForm.ToDate REQUERY("MyView") Основной проблемой при использовании глобальных переменных является невозможность отследить факт их изменения в других местах программы. Поэтому результат их использования (особенно у новичков) становится просто непредсказуемым. Следует еще помнить, что FoxPro допускает изменять не только значение, но и тип переменной! Т.е. переменная была создана как DATE, но в нее может быть записано значение Integer изменив ее тип. 2) По возможности, создавайте значимые имена переменных и параметров! Это Вы сейчас помните, что такое xdat и чем он отличается от xdat1. Гораздо "нагляднее", если переменные имеют имена вроде: fromDate - начальная дата toDate - конечная дата Кроме того, существует такая вещь, как "Венгерская нотация" - это рекомендация по наименованию переменных. Можно и не использовать, но использование сильно облегчает процесс программирования. Суть этой нотации в том, что в имени переменной первая буква обозначает область видимости, а вторая - тип переменной. Область видимости: l - LOCAL p - PRIVATE g - PUBLIC (GLOBAL) t - Parameter Тип данных - это посмотри в описании к командам вроде CREATE TABLE, например, для типа DATE - это буква "d". Т.е., например, локальную переменную содержащую текущую дату можно назвать: ldCurrentDate Здесь первая буква "l" - облатсь видимости LOCAL вторая буква "d" - тип данных DATE CurrentDate - "значимое" имя - "Текущая дата" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 11:15 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
Для View нужны переменные. Но их следует объявляьб локальными и считывать значение из Property формы. Например: INIT-формы ThisForm.CurrentDate = DATE() ThisForm.FromDate = {} ThisForm.ToDate = DATE(2004,12,31) Сделала. В ответ Operator/operand type mismatch. Нигде не могла найти в своей литературе и по поиску на форуме о создании дополнительных свойств формЫ(может там нужно изменить тип).Очень грустно, что так все медленно. А воообще, СПАСИБО за очень хорошие советы. Владимир М. Говорят, у Вас очень хорошие лекции. Можно их как-нибудь прочитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 21:51 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
В какой строке "Operator/operand type mismatch" в Initе? Наверное, нужно сбросить Value в окне свойств формы (правая кнопка мыши и Reset to default) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:12 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
НовичекМДля View нужны переменные. Но их следует объявляьб локальными и считывать значение из Property формы. Например: INIT-формы ThisForm.CurrentDate = DATE() ThisForm.FromDate = {} ThisForm.ToDate = DATE(2004,12,31) Сделала. В ответ Operator/operand type mismatch. Какая версия FoxPro? Если не ошибаюсь, то задавать параметры в функции DATE() можно стало только начиная с VFP6. Тогда задавайте дату явно: SET DATE TO GERMAN ThisForm.ToDate = {31-12-2004} НовичекМНигде не могла найти в своей литературе и по поиску на форуме о создании дополнительных свойств формЫ(может там нужно изменить тип). Нет. Для FoxPro тип переменной (свойства) в данном случае не имеет значения. Он автоматически примет тип данных, которые в него записываются. Это особенность FoxPro. Так сказать, изменение типа переменных "на лету" НовичекМОчень грустно, что так все медленно. А воообще, СПАСИБО за очень хорошие советы. Владимир М. Говорят, у Вас очень хорошие лекции. Можно их как-нибудь прочитать? Нет. Я лекции не читаю. Написал несколько статей для начинающих. Посмотреть можно здесь: http://www.foxclub.ru/kb/index.php?sid=79597&aktion=anzeigen&rubrik=004 или здесь http://www.foxhelp.ru/SovetyNachinajushhim?v=1agr А лекции читает Владимир Журавлев. Подробности здесь http://www.foxclub.ru/edu.php/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 09:33 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
Маленькое замечание по поводу Код: plaintext 1. Код: plaintext 1. Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 10:52 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
В дополнительных свойств формы (Properties) создала CurrentDate = DATE() FromDate =Ctod("") ToDate = Ctod("31.12.2004") В Init формы LOCAL xdat,xdat1 xdat = ThisForm.FromDate xdat1 = ThisForm.ToDate REQUERY("MyView") Здесь выдается ошибка (на REQUERY("MyView")) Operator/operand type mismatch. Но в самом View(при этих параметрах) все срабатывает. Но слова" Наверное, нужно сбросить Value в окне свойств формы (правая кнопка мыши и Reset to default)" дошли не очень. Если можно, чуть подробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2004, 21:08 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
В дополнительных свойств формы (Properties) создала CurrentDate = DATE() FromDate =Ctod("") ToDate = Ctod("31.12.2004") В Init формы LOCAL xdat,xdat1 xdat = ThisForm.FromDate xdat1 = ThisForm.ToDate REQUERY("MyView") Попробовала сбросить Value в окне свойств формы Здесь выдается ошибка (на REQUERY("MyView")) Operator/operand type mismatch. Но в самом View(при этих параметрах) все срабатывает. Пожалуйста, подскажите!!!!! (Может у кого есть пример или по этой теме что нибудь, что можно переслать по почте Yastreb@frunze.com.ua)??????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 15:59 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
Посмотри пример в архиве. Просто запусти на исполнение форму Spisa.scx Пример написан в VFP6SP5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 16:58 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
Спасибо! Все получается. Но у меня еще возникла олна проблема. У меня есть таблицы .dbf, созданные в Clippere. И я захотела воспользоваться ими(решила попробовать написать те же программы, только в FoxPro) Создала базу, и при помощи ADD включила в базу готовые таблицы(это мне так хотелось, чтобы они были здесь). Но к моему изумлению, оказалось, что хотя я с ними здесь работаю, на самом же деле они у меня в старой папке. т.е. вся корректировка записей идет именно сюда). Это на самом деле так, или я что-то не так сделала. Или нужно копировать вручную файлы в мой новый проект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 21:56 |
|
||
|
SQl запросы и Grid
|
|||
|---|---|---|---|
|
#18+
Все правильно. Когда ты используешь опцию ADD (или любым другим способом включаешь таблицу в базу данных) - это означает всего-лишь взаимное создание ссылок. В базе данных создается ссылка на существующую таблицу, а в таблице соответственно ссылка на базу данных. Но при этом никакого копирования таблицы в новую директорию не происходит. Тебе надо -) исключить таблицу из базы данных -) сделать копию таблицы в той директории, где хранится файл DBC -) включить в базу данных эту копию -) очистить базу данных Вообще, почитай по приведенным мной ссылкам что такое "База данных" в FoxPro. Это совсем не то, что тебе кажется. Это не "база данных" в том смысле, как это понимается в ACCESS или MS SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 09:12 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1596014]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 432ms |

| 0 / 0 |
