Главная страница
    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.042 c
2-1156749072
shake
2006-08-28 11:11
2006.09.17
выборка из dbgrid


15-1156369134
ronyn
2006-08-24 01:38
2006.09.17
Почему в орешнике нет аффтарства?


2-1156537707
Itonix
2006-08-26 00:28
2006.09.17
Tmemo


2-1156659780
andy_hs
2006-08-27 10:23
2006.09.17
сделать программу невидимой (службой)


3-1152881652
oleg_v
2006-07-14 16:54
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский