Автор | Сообщение |
|
| |
Пост N: 3384
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.08.13 15:56. Заголовок: Есть ли такой шаблон GET ?
Часы:минуты PS До кучи. Если я верно понял ADS не поймет поле типа TIME из Harbour или это не так ? Похоже на то -> Available only in ADT tables а у меня DBF
|
|
|
Ответов - 10
[только новые]
|
|
|
| Администратор
|
Пост N: 2942
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.08.13 10:25. Заголовок: В харборе есть тип д..
В харборе есть тип данных datetime Пример: Local dd := Date() Local dt := hb_DateTime() @ 1,0 get dd @ 2,0 get dt read Вроде бы в src\rtl\tget.prg отрабатывается шаблон "@T", но что-то он не дает эффекта. А что касается dbf, в харборе тоже поддерживается расширенный тип данных datetime. Впрочем, возможно, сам ads не поддерживает datetime в dbf
|
|
|
|
| Администратор
|
Пост N: 2943
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.08.13 10:31. Заголовок: Dima пишет: Похоже ..
Dima пишет: цитата: | Похоже на то -> Available only in ADT tables а у меня DBF |
| Да, похоже. Advantage Data Architect для dbf при добавлении поля не содержит типа данных DateTime
|
|
|
|
| |
Пост N: 3389
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.08.13 11:12. Заголовок: Pasha пишет: Local ..
Pasha пишет: цитата: | Local dd := Date() Local dt := hb_DateTime() @ 1,0 get dd @ 2,0 get dt read |
| Да вот так работает @ 2,0 get dt Picture "@T" во всяком случае контролируется не верный ввод
|
|
|
|
| |
Пост N: 3390
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.08.13 11:15. Заголовок: Dima пишет: Да вот ..
Dima пишет: цитата: | Да вот так работает @ 2,0 get dt Picture "@T" во всяком случае контролируется не верный ввод |
| Поспешил я с выводом......не работает как надо
|
|
|
|
| |
Пост N: 123
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.08.13 12:21. Заголовок: У меня есть функция,..
У меня есть функция, которая позволяет создавать ЛЮБЫЕ формы ввода, используя стандартный механизм @ ... SAY ... GET - без использования объектов в теле программы. Все что требуется - добавить функцию-обработчик, например: @ 1,2 SAY "Клиент" GET nClient VIA ClientTrap WHEN... VALID... // выпадающий список клиентов с поиском @ 1,3 SAY "Автомобиль" GET nCar VIA CarTrap WHEN... VALID // выпадающий список машин @ 1,4 SAY "Грузовик" GET lCargo PICT "Y" // будет реализован чек-бокс [v] READ Требования к функциям ClientTrap, CarTrap: 1) сформировать строку с "изображеннием" переменной (например по номеру клиента - его название) 2) осуществить проверку правильности переменной 3) осуществить ввод данных - хоть через DBEDIT(), хоть через ACHOICE() - вот реализация выпадающего списка с привязкой к ROW(),COL() текущего GET поля 4) процедура получает координаты ROW(),COL() текущего GET поля, актуальную переменную в нем и команду, что именно от нее требуется: проверка правильности, вывод значения в строку (для SAY) или работу с юзером. Таким образом - если реализовать краткую процедуру ввода времени с проверкой вводимых данных - ее можно будет привязать к любому GET.
|
|
|
|
| |
Пост N: 3391
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.08.13 12:47. Заголовок: Sergy пишет: Таким ..
Sergy пишет: цитата: | Таким образом - если реализовать краткую процедуру ввода времени с проверкой вводимых данных |
| Предложи корректный VALID proc main Local Ntime:=0 cls @ 10,10 get Ntime Picture "@R 99:99" Valid Test(@Ntime) Read return ****************** Func Test(Ntime) local ret:=.t. local ctime local lenctime:=len(alltrim(str(Ntime,4))) do while .t. if Ntime<0 ret:=.f. exit endif if lenctime==2 Ntime*=100 elseif lenctime==1 Ntime*=1000 endif ctime:=str(Ntime,4) if val(left(ctime,2))>23 ret:=.f. exit endif if val(right(ctime,2))>59 ret:=.f. exit endif exit enddo return ret
|
|
|
|
| |
Пост N: 124
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.08.13 14:39. Заголовок: Dima пишет: Предлож..
Dima пишет: цитата: | Предложи корректный VALID |
| Пока не проверял (пишу с компа без клиппера), но идея должна быть понятна: @ 1,2 SAY "Время" GET cTime PICT "##:##" VALID TIMETOSEC(cTime) > 0
|
|
|
|
| |
Пост N: 3392
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.08.13 15:11. Заголовок: Sergy пишет: TIMETO..
Sergy пишет: Меня тоже только что посетила такая мысль
|
|
|
|
| |
Пост N: 19
Зарегистрирован: 20.04.07
|
|
Отправлено: 17.08.13 05:47. Заголовок: Sergy пишет: VALID TIMETOSEC(cTime) > 0
цитата: | VALID TIMETOSEC(cTime) > 0 |
| А можно и так: #define VALID_TIME(cTime) ((VAL(SUBSTR(cTime, 1, 2)) >= 0 .AND. VAL(SUBSTR(cTime, 1, 2)) < 24) .AND.; (VAL(SUBSTR(cTime, 3, 2)) >= 0 .AND. VAL(SUBSTR(cTime, 3, 2)) < 60)) @ 1,2 SAY "Время" GET cTime PICT "##:##" VALID VALID_TIME(cTime)
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 20.04.07
|
|
Отправлено: 17.08.13 08:11. Заголовок: Ошибочка, извиняюсь
Конечно не VAL(SUBSTR(cTime, 3, 2)), а VAL(SUBSTR(cTime, 4, 2)) и шаблон лучше не "##:##", а "99:99" #define VALID_TIME(cTime) ((VAL(SUBSTR(cTime, 1, 2)) >= 0 .AND. VAL(SUBSTR(cTime, 1, 2)) < 24) .AND.; (VAL(SUBSTR(cTime, 4, 2)) >= 0 .AND. VAL(SUBSTR(cTime, 4, 2)) < 60)) @ 1,2 SAY "Время" GET cTime PICT "99:99" VALID VALID_TIME(cTime)
|
|
|
|