powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Колонка типа Date в Grid
18 сообщений из 18, страница 1 из 1
Колонка типа Date в Grid
    #35469390
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В обьекте Grid есть колонки для отображения полей типа дата. Месяц,год изменять не надо т.е. корректируется только день.Есть ли простое решение ,чтобы после ввода 2-х цифр для дня даты совершался переход на следующую колонку.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469409
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаешь свой контрол на основе класса контрол и техтбоксов в нем и программируешь в нем нужную логику. Этот контрол пихаешь в колонку грида вместо имеющегося там текстбокса.
Готового решения я пока не встречал.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469426
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторSergey Sizov.
Готового решения я пока не встречал.

Не хочется изобретать велосипед
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469457
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LUCIAN авторSergey Sizov.
Готового решения я пока не встречал.

Не хочется изобретать велосипед
Если его еще никто не изобрел, то придется.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469464
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LUCIAN авторSergey Sizov.
Готового решения я пока не встречал.

Не хочется изобретать велосипед
Маловероятно что такой велосипед кто-то изобретал раньше.

Как вариант - разбей на две колонки одна "День" вторая "Месяц Год", день правь в текстбоксе, проверку дня только добавь на существование такой даты.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469542
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пошёл таким путём для обЪекта TEXT1

METOD INIT:

Код: plaintext
1.
2.
THIS.ADDPROPERTY("OLD_DAT",THIS.VALUE)
THIS.ADDPROPERTY("K_CIF", 0 )
METOD WHEN:

Код: plaintext
1.
THIS.OLD_DAT=THIS.VALUE
THIS.K_CIF= 0 

METOD INTERACTIVECHANGE:

Код: plaintext
1.
2.
3.
THIS.K_CIF=THIS.K_CIF+ 1 
IF THIS.K_CIF= 2  AND DAY(THIS.VALUE) # DAY(THIS.OLD_DAT)
 KEYBOARD '{ENTER}'
ENDIF

Как будто работает
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469575
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
METOD INTERACTIVECHANGE достаточно такого кода:

Код: plaintext
1.
2.
3.
THIS.K_CIF=THIS.K_CIF+ 1 
IF THIS.K_CIF= 2  
 KEYBOARD '{ENTER}'
ENDIF
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469650
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно набрать тот же день и {ENTER} не случится :)

Или набрать несуществующее число (32-е например) и править дальше как угодно
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469712
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно мышкой/стрелками встать на месяц/год и начать менять там.
Два изменения - день не поменялся, а год изменили.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35469786
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно анализировать положение указателя по значению SelStart.

Код: plaintext
1.
2.
3.
4.
* Событие Text.InteractiveChange()
if This.SelStart >  2 
	* Выход
endif

Хотя, "подводных камней" все-равно будет достаточно много. Чтобы составить общее представление о проблеме, почитай вот это

Как заменить сообщение Invalid Date при вводе некорректной даты

Попытка как-то работать именно с форматом Date или DateTime приведет к катастрофическому усложнению кода, для решения самых разных сопутствующих проблем. В целом, это будет достаточно сложное решение.

Оптимальнее выделить цифру дней в отдельное поле. Т.е. отображать дату не в одном столбце, а в трех: День, Месяц, Год. В этом случае все решается значительно проще.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470098
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: ВладимирМ
> Оптимальнее выделить цифру дней в отдельное поле. Т.е. отображать
> дату не в одном столбце, а в трех: День, Месяц, Год. В этом случае все
> решается значительно проще.

Как вариант в одном столбце, но в контейнере и трех textbox`ах


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470246
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Окончательно получился такой работоспособный код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	PROCEDURE text1.Init
			THIS.ADDPROPERTY("K_CIF", 0 )
	ENDPROC


	PROCEDURE text1.InteractiveChange
		THIS.K_CIF=THIS.K_CIF+ 1 
		IF THIS.K_CIF= 2  
		 KEYBOARD '{ENTER}'
		ENDIF
	ENDPROC


	PROCEDURE text1.When
		KEYBOARD '{HOME}'
		THIS.K_CIF= 0 
	ENDPROC
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470282
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, WHEN отработал.
Потом стрелку вправо, стрелку вправо и меняй месяц.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470288
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И interactivechange тоже много вопросов. Например нажал 1, потом backspase
(удалил первый символ, планируя вместо него поставить другую цифру), а твой
контрол меня выкинет, т.к. произошло два изменения.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470306
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Galyamov RinatНу хорошо, WHEN отработал.
Потом стрелку вправо, стрелку вправо и меняй месяц.
Бухгалтер будет вводить цифры а не стрелки.Если возникнет такая проблема , то код можно усовершенствовать.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470322
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что если разрешить бухгалтеру изменить дату (даже случайно)? А вы в процедуре Valid восстановите месяц и год.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470343
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SamvelА что если разрешить бухгалтеру изменить дату (даже случайно)? А вы в процедуре Valid восстановите месяц и год.
Ваш ответ может быть одним из усовершенствований моего кода.
...
Рейтинг: 0 / 0
Колонка типа Date в Grid
    #35470373
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно я руководствуюсь по принципу "много свобод оператору, больше забот программисту"
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Колонка типа Date в Grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]