Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Контроль введенных значений в DBGRID-e   Найти похожие ветки 

 
Sirus   (2006-08-30 08:15) [0]

Подскажите, знатоки, как правильно реализовать  проверку значений при вводе  данных  через  сетку  DBGRID-а.  Надо  при  вводе  значения некоторого поля  проверить входит ли введенное  значение в  определенные  границы и выдать об этом  сообщение, если не входит. Желательно  это  делать  до  ввода  следующей  строки значений.
Буду благодарен за подсказку и совет.
Сайрус  30.08.2006


 
Sergey13 ©   (2006-08-30 08:46) [1]

Нет в гриде данных, они в датасете. Вот там и смотри. Например в BeforePost.


 
Sirus   (2006-08-30 10:38) [2]

Спасибо Sergey13 за  подсказку.  Похоже, что это то, что  надо. Но есть дополнительный  вопрос  по DBGRID. Как  определить точно ячейку  по  которой  надо  кликнуть в  строке DBGRID, чтобы  допустим  вызвать  дополнитедьную  форму. Событие  OnCellClick реагирует  при  клике на любую  ячейку, а  мне  надо, чтобы  реакция  была  при  нажатии на  конкретную. Не знаю, как это  сделать. Буду  благодарен за  конструктивную  подсказку.
С  уважением- Сайрус.
30.08.2006


 
Fay ©   (2006-08-30 10:47) [3]

2 Sirus   (30.08.06 10:38) [2]
Column - из параметра OnCellClick, запись - текущая. В чём проблема-то?


 
Sergey13 ©   (2006-08-30 10:47) [4]

> [2] Sirus   (30.08.06 10:38)
> Событие  OnCellClick реагирует  при  клике на любую  ячейку,
> а  мне  надо, чтобы  реакция  была  при  нажатии на  конкретную.

Реагирует на любую, но передает параметром конкретную, которую можно анализировать.


 
Sirus   (2006-08-30 11:54) [5]

А как COLUMN идентифицируется - номером или именем? Буду благодарен за примерчик.
Сайрус


 
Sergey13 ©   (2006-08-30 11:59) [6]

> [5] Sirus   (30.08.06 11:54)

У хелпа не пробовал спрашивать?


 
Плохиш ©   (2006-08-30 11:59) [7]


> Sirus   (30.08.06 11:54) [5]
> А как COLUMN идентифицируется - номером или именем?

А в справку заглянуть религия не позволяет?

type TDBGridClickEvent = procedure (Column: TColumn) of object;


 
Sirus   (2006-08-30 12:46) [8]

И как это всунуть в  проверку  колонки? Можно чуть подробнее. Например мне  надо  проверить  соответствует ли значение  колонки с именем KOL значению не более  100. В  справку я заглядывал, но она  очевидно для более  подкованных.
Сайрус.


 
Reindeer Moss Eater ©   (2006-08-30 12:53) [9]

И как это всунуть в  проверку  колонки?

наоборот.
надо в "это" всунуть проверку колонки.
переданной в параметре.


 
Sirus   (2006-08-30 13:09) [10]

Маленький примерчик, пожалуйста. Буду очень благодарен и тема  будет закрыта.
Сайрус.


 
Fay ©   (2006-08-30 13:19) [11]

2 Sirus   (30.08.06 13:09) [10]
procedure TheForm.TheGridCellClick(Column: TColumnEh);
begin
 if Column = TheGrid.Columns[0] then
   ShowMessage(Colum.FieldName)
 else
   ShowMessage("RTFM");
end;


 
Sirus   (2006-08-30 15:03) [12]

Спасибо всем и персонально FAY, который  конкретно помог и прекратил бесполезные разговоры.
Еще раз благодарю.
Sirus.


 
Fay ©   (2006-08-30 15:07) [13]

2 Sirus   (30.08.06 15:03) [12]
Честно говоря, мне не понятно, чем это я так выделился... 8|


 
MsGuns ©   (2006-08-30 15:39) [14]

"Битие по рукам" во время редактирования в гриде делает программу крайне неудобной (и это мягко сказано) для пользователя, т.к. не дает перейти в другую ячейку пока не введешь корректное значение в текущее. Да и тормоза будут страшные, если содержимое нескольких колонок надо сверять, например, со справочниками.
Самый оптимальный способ - делать комплексную проверку в событии датасета BeforePost с фокусированием в гриде первой ячейки, содержащей ошибку. Текст же ошибки не выводить в модальное окно (ShowMessage), а отрисовывать, например, в статусбаре под гридом.


 
Fay ©   (2006-08-30 15:50) [15]

2 MsGuns ©   (30.08.06 15:39) [14]
> Да и тормоза будут страшные,
Можно поподробнее?


 
MsGuns ©   (2006-08-30 15:58) [16]

>Fay ©   (30.08.06 15:50) [15]
>Можно поподробнее?

Есть три поля датасета, значения которых должны сличаться с одним и тем же справочником (или разными, сути не меняет).
Если сверка со справочником (например, дин.запросом) будет выполняться каждый раз, когда пользователь изменил содержимое любого из этих трех полей и хочет уйти из соотв.ячейки, то надо будет выполнить 3 запроса (по одному для каждого измененного поля).
Кроме того, переход в другую ячейку не состоится до тех пор, пока не выполнится запрос для "покидаемой" ячейки. Т.е. пока не провериться товар (к примеру), я не смогу ввести кол-во или цену, пока не выполонится проверка.
"Комплексная" проверка выполняется один раз перед постингом и для всех сразу. В приведенным примере три проверки можно выполнить одним запросом (в случае разных таблиц через Union)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.043 c
15-1155928167
Crazy monkey
2006-08-18 23:09
2006.09.17
Вопрос по Форексу


15-1156396900
Александр Иванов
2006-08-24 09:21
2006.09.17
MS SQL Server 2005 Express Edition


10-1123495556
Nick Denry
2005-08-08 14:05
2006.09.17
Можно ли средсвами TMediaPLayer


15-1156998605
cyborg
2006-08-31 08:30
2006.09.17
Кто тут монитор хотел?


15-1156330953
ArtemESC
2006-08-23 15:02
2006.09.17
Чтение дискетты...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский