Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2010, 12:15   #1
DaMadQuest
Пользователь
 
Регистрация: 17.03.2010
Сообщений: 21
Вопрос DBGrid и Enter

здравствуйте, подскажите пожалуйста... у меня в DBGrid выводится таблица БД Interbase, в этой таблице срабатывает триггер... мне нужно, чтобы когда я ввел данные, срабатывала запись в таблицу (.post) по нажатию на ENTER... а то приходится пользоваться PopupMenu, чтобы вызывать функцию записи
DaMadQuest вне форума Ответить с цитированием
Старый 13.04.2010, 12:30   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А что мешает обрабатывать событие OnKeyPress у DbGrid?
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 13.04.2010, 12:48   #3
DaMadQuest
Пользователь
 
Регистрация: 17.03.2010
Сообщений: 21
По умолчанию

не мешает... а как здесь объявить, что при нажатии на Enter именно

procedure TMainForm.Grid_SUTKI_CGP1KeyPress(S ender: TObject;
var Key: Char);
DaMadQuest вне форума Ответить с цитированием
Старый 13.04.2010, 12:54   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Код:
if Key=#13 then бла-бла-бла
Да еще нужно проверять в каком режиме DataSet... Если Status=dsEdit или dsInsert, то можно постить, иначе просто выход...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 13.04.2010 в 13:00.
Grag вне форума Ответить с цитированием
Старый 13.04.2010, 13:02   #5
DaMadQuest
Пользователь
 
Регистрация: 17.03.2010
Сообщений: 21
По умолчанию

мне нужно то как...
я заполняю первое и второе поле только, на третьем нажимаю ENTER (срабатывает .post) и у меня автоматически уже подсчитываются остальные поля...
DaMadQuest вне форума Ответить с цитированием
Старый 13.04.2010, 13:22   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А зачем тебе делать post так часто? Делай его при выходе из программы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.04.2010, 14:11   #7
DaMadQuest
Пользователь
 
Регистрация: 17.03.2010
Сообщений: 21
По умолчанию

просто у меня на каждую запись срабатывает триггер... в самой базе
после этого добавляется еще запись, и также обрабатывается

у меня запись прописана на PopupMenu

DM.dataset_CGP1.Post;
DM.dataset_CGP1.Close;
DM.dataset_CGP1.ParamByName('datacg p1').AsDate:=MainWindow.DateTimePic ker1.Date;
DM.dataset_CGP1.Open;

вот, а мне тоже самое как то надо сделать на Enter и всё...

я ввожу руками числа только в два поля, остальные поля у меня подсчитываются автоматически

Последний раз редактировалось DaMadQuest; 13.04.2010 в 14:40.
DaMadQuest вне форума Ответить с цитированием
Старый 14.04.2010, 00:53   #8
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Тогда может проверять по названию колонки или ее индексу, и если колонка совпадает, то разрешать необходимые действия?
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 14.04.2010, 12:52   #9
DaMadQuest
Пользователь
 
Регистрация: 17.03.2010
Сообщений: 21
По умолчанию

простите, еще вопрос возник походу...

мне в таблицу нельзя заносить данные за одну группу и за одну дату...

как на это можно среагировать?

то есть, я ввожу запись за определенную группу и текущую дату, НО за ту же самую группу сегодня я больше не могу ввести запись...

по каким параметрам обращаться к таблице?
DaMadQuest вне форума Ответить с цитированием
Старый 14.04.2010, 13:05   #10
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Первое, что приходит в голову, это сделать список TStringList для групп за этот день и потом перед записью в базу проверять: Если группа и дата совпадают, то выводить сообщение о выборе другой группы иначе записать данные.
Второе, может организацию базы данных пересмотреть.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Enter prod87 Общие вопросы Delphi 3 01.11.2009 19:13
Нажатие Enter Screame Microsoft Office Excel 1 01.11.2009 17:02
Enter PAVEL315 Помощь студентам 7 17.12.2007 20:41
Ctrl+Enter kisska Win Api 3 22.08.2007 20:55
Enter Slash Общие вопросы Delphi 2 24.03.2007 17:40