![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 05.03.2009
Сообщений: 2
|
![]()
День добрый
подскажите, как можно реализовать следующую конструкцию: на первой форме две сетки-в первой - информация о списке платежей, во второй - подчиненная таблица с информацией о получателях платежей - пока все получается ![]() теперь нужно: при щелчке по получателю - раскрывается доп. форма, где можно редактировать данные выбранного получателя (и кнопочка - следующий, чтобы не выходя можно было перейти к следующему получателю из списка) - как в этой форме получить доступ к базе, открытой в первой форме? или нужно снова накидать компоненты-открыть в этой форме базу и просто перейти на нужную запись? - как-то громоздко тогда и некрасиво получается спасибо всем, кто откликнется |
![]() |
![]() |
![]() |
#2 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Наиболее профессиональным (и удобным, кстати) выглядит следующий вариант (хотя, возможно, вы и отнесете его к "громоздким").
Дополнительная форма, на ней - набор эдитов (если нужно, дэйттаймпикеров и спинэдитов - по типу данных). И пара кнопок - "Принять" и "Отказаться" - можете придумать свои названия. Именно простых эдитов, а не датаконтролов. Вызывается сия форма при выборе "Новая запись" или "Редактировать". При открытии формы для редактирования (или нажатии на дополнительные кнопки "Следующий" или "Предыдущий") - все компоненты вручную (в смысле вашей процедурой) заполняются из соответствующих полей таблиц. В режиме ввода новой записи - все обнулены. По кнопке "Принять" либо создается новая запись и в ее поля заносятся соответствующие значения, либо в существующую опять-таки вручную вносятся изменения. В случае нажатия кнопки "Отказаться" просто закрывается доп. форма. "Следующий" или "Предыдущий" - так это же просто методы Next/Prior вашей таблицы (датасета). Почему не напрямую в базе "ковыряемся"? Да все только ради того, чтобы не подпортить при аварийных завершениях, да и держать запись в режиме редактирования (особенно в многопользовательской среде) не есть "хорошо". Цитата:
Ну, у вас же эти таблицы по какому-то полю связаны? Наверное, по идентификатору платежа? Ну и сделайте локэйт в таблице платежей по идентификатору из таблицы получателей... Последний раз редактировалось mihali4; 06.03.2009 в 00:56. |
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 05.03.2009
Сообщений: 2
|
![]()
спасибо
ясненько ![]() я пока бежал на работу тоже подумал про подобный вариант, но опять же - я думал есть способ проще и "эллегантнее" ![]() есть мысль - на одной форме просто положить закладки и при выборе из grid для редактировнаия - просто переключиться в той же форме на закладку, где будут размещены компоненты для редактирования записи |
![]() |
![]() |
![]() |
#4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Конечно, можно и закладками. Но...
- "юзер" может и запаниковать, случайно (или из любопытства) ткнув в закладку редактирования или, того хуже, добавления новой записи (мало кто "учит матчасть" перед использованием программы). - если таблиц-справочников много - получается ненужное утяжеление основной рабочей формы, в то время как отдельные формочки не висят бесполезным грузом в памяти, а создаются и освобождаются по мере необходимости. - слишком большие "возможности выбора", постоянно присутствующие перед глазами, дезориентируют неподготовленного пользователя и отвлекают внимание. Поэтому я всегда советую попап-меню, привязанное к конкретному дбгриду. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод данных в разных падежах с access. | sashaslam | БД в Delphi | 3 | 28.05.2010 22:48 |
Помогите плиз правильно написать макрос обновления данных из разных файлов | Legame | Microsoft Office Excel | 10 | 10.09.2009 10:39 |
Сложение данных в разных ячейках | viter.alex | Microsoft Office Excel | 20 | 14.01.2009 18:30 |
SQL запрос и редактирование данных | Dux | БД в Delphi | 7 | 01.09.2008 12:17 |