** Pavel |
Отправлено: 19.12.2005, 13:56 |
|
Не зарегистрирован
|
Здрасьте.
Тут появилась такая ситуация. Есть база данных в ней таблтца счетов где храняться номер счета, дата, кому, номенклатурный номер. Остально если надо подтягиваем по ключевым полям. И возник вопрос, как бы реализовать редактирования какого либо счета в этой таблице т.е. удалить строку, вставить новую строку в счет и т.д. и т.п. Я как понимаю те данные которые уже есть то их мы обновляем, а если нет — то добавить, но как, хотелось бы все что бы это было все в одном Gride и по нажатию одной клавиши :-) Может кто сталкивался с этой проблемой ? Помогите пожалуйста с советами.
P/S База InterBase 6.1 |
|
avc* |
Отправлено: 19.12.2005, 14:53 |
|
Не зарегистрирован
|
Обрабатывать команды Edit Insert самостоятельно (ручками). Для этого есть множество способов.
Но подумайте — это вам ДЕЙСТВИТЕЛЬНО надо? Ведь, например, при связи рабочая таблица — справочник даже действие редактировать наименование неоднозначно. Это может быть как и просто исправление ошибки в справочнике, так и создание новой строки в справочнике и связь её с рабочей таблицей. И т.д. |
|
Admin |
Отправлено: 20.12.2005, 22:51 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Пишите обработчик на нажатие
Ins — добавить, Del — удалить, Enter(или двойной клик) — редактировать.
На Ins и Enter показываете форму со всеми полями таблицы счетов,
на Ins естественно пустую (или со значениями по умолчанию),
на Enter — со значениями полей текущей записи из Grid, на Del -
вопрос — подтверждение на удаление текущей записи.
В этой форме (на Ins и Enter) две кнопки — "Ок" и "Отмена"
(разумеется и все значения полей текущей записи, например в Edit-ах
или в DBEdit-ах — это уж по логике программы, как вам удобней)
По "Ок" — проверяете все поля на допустимость значений
и вносите изменения в БД, (соответственно обновляете значения
в Grid если надо), по "Отмена" — ничего не меняете
в БД, просто закрываете этй форму.
Это лишь, конечно, как вариант.
|
|
** Pavel |
Отправлено: 22.12.2005, 10:58 |
|
Не зарегистрирован
|
Спасибо за ответы. Я думаю что надо в таблице прогонять по циклу каждую запись и проверять по полю есть она в таблице архива, и если есть — то обновляь, а если нет то соответственно вставка. |
|
|