-
Здравствуйте, хочу создать специализированную программу в делфи типа склад, складского учета. Хочется ее сделать наподобии 1с склад, но более узкую. встал вопрос, как сделать так, чтобы при вставке новой строки в таблицу, выбираешь ячейку и для выбора открывается дочерняя табличка с которой можно работать, редактировать в ней строки, добавить новые, а после выбора нужной, информация добавляется в родительскую.
Например, в 1с при заполнении любого документа, когда я хочу выбрать сотрудника или ответственное лицо, открывается таблица сотрудники и в ней работаешь. когда выбрал нужного - ок и его имя добавляется в заполняемый документ.
Интересны инструменты в делфи, которые мне помогут это сделать и код. Может есть подобные статьи, посоветуйте пожалуйста.. хочется сделать удобное приложение))
-
В Delphi вам придется вручную создавать и главные формы, и формы для справочников и вручную их показывать. Конечно, это может показаться не так удобно, но максимальный контроль над ходом программы очень часто позволяет сделать большее, а рутинное создание окна справочника в Delphi все равно не займет много времени.
Просто прочитайте какой-нибудь самоучитель по Delphi, и вам сразу станет ясно, какая концепция разработки в нем применяется.
-
> [0] MsFoxy © (25.04.11 12:31)
Я так понимаю, что ваше личное участие в разработке данного "удобного приложения" должно свестись к выбору дизайна пользовательского интерфейса ("наподобии 1с") и общему руководству?
-
> MsFoxy (25.04.2011 12:31:00) [0]
Похоже тебе еще долго, долго надо учить основы. Или нанять программиста.
-
форму справочника можно и одну сделать, универсальную. Если иметь описание самого справочника в базе (ID, исходная таблица, заголовки полей и т.д). Тогда форма может представлять из себя DBGrid и тулбар с кнопками для стандартных действий
-
> как сделать так, чтобы при вставке новой строки в таблицу, > выбираешь ячейку и для выбора открывается дочерняя табличка > с которой можно работать, редактировать в ней строки, добавить > новые, а после выбора нужной, информация добавляется в родительскую.
сделал так. при добавление главному окну отсылается сообщение, какой справочник открыть с признаком "для выбора", и handle ожидающего элемента. Каждый справочник имеет такие аттрибуты, как флаг для выбора ли он(+Handle, куда надо сообщение будет послать, если выбор состоится) см:
> форму справочника можно и одну сделать, универсальную. Если > иметь описание самого справочника в базе (ID, исходная таблица, > заголовки полей и т.д). Тогда форма может представлять > из себя DBGrid и тулбар с кнопками для стандартных действий
(+ все это дело наследует каждая форма-справочник, а если что не так - изменяет вид под себя) Открытие для выбора справочка, внешне добавляет ему кнопку Выбор на панели, нажатие на которую отправляет для handle ожидающего элемента соотвествующее сообщение о выборе.
не, реально долго писать :) ну ка..
-
> (+Handle, куда надо сообщение будет послать, если выбор > состоится)
если модальный, то можно и через out-параметр возвращать
-
> если модальный
не, не модальный. В 1с не модальный, под нее делал. т.е. можно тыкнуть для выбора, вспомнить что-то, подобавлять/удалять/редактирвать, перейти в другое окно там поредактить для окна для выбора открыть еще для выбора, там поредактировать, вернуться. в общем, полная иллюзия 1с.
На закрытие без выбора отправляется фиктивный выбор ожидающему, id = -1, а перед смертью, каждое окно, шлет messge гланому окну, которое все дочерние окна перебирает и затирает их handle ожиданий = умирающему (или на себя переписывает, т.к. иные в неикй "буфер" собирает)
|