| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Запуск формы |
| Автор: DEER 5.4.2006, 11:48 |
| Привет. Идея такая: - Есть программа, достаточно крупная, она, помимо всего прочего предоставляет отчетность. Сами отчетные модули вызываются из разных мест. - Возникла идея, начать вести статистику по отчетам, типа сделать список отчетов, существующих в системе, потому что их количество постоянно растёт, и иногда возникает необходимость сделать, как потом оказывается существующий отчет. Но это не суть важно. У меня возникла идея. Помимо информации об отчете хранить ещё место, где этот очтет вызывается в системе, те строку типа "Отчеты\Оперативный отчет", это реализовать не проблема. Далее возникла новая мысль, а что если сделать кнопочку, чтобы когда на неё нажимаешь запускался именно тот отчет, который сейчас выбран из списка? Вот сдесь прошу ваших мыслей. кк это можно, а главное грамотнее организовать? У меня пока только одна идея: пишем модуль, в котором процедура запуска отчетов, в зависимости от параметра, она вызывает ту или иную форму. Тогда нужно прописать в этом модуле в uses все формы отчетов. А когда в систему добавляем новый отчет, туда тоже надо дописать код в uses - форму, в процедуру - условие для этого отчета. Но по моему это решение нифига не гибкое. Охота, чтобы всё генерировалось во врема выполнения. Те чтобы процедура была универсальная, одна для всех. Я добавляю в таблицу данные, указываю откуда запускать, а процедура сама все запускает, при этом модуль с процедурой остается неизменным. Извините, если не совсем понятно. Если что - спрашивайте, я уточню. Просто у самого в голове не всё ещё по полочкам лежит. |
| Автор: Alexeis 5.4.2006, 12:56 |
| Не понятно как связана форма с отчетом, в каком виде отображается отчет, и что вообще из себя представляет отчет |
| Автор: DEER 5.4.2006, 13:15 |
| ну пусть будет просто форма Form1 без отчета... те мне надо хранить в БД строку какую то. (ну например Form1.ShowModal) в какой то процедуре надо, в зависимости от параметра(те строки из БД для формы), вызвать эту форму мне надо как то выполнить строку из БД. Это возможно? Или, если так не возможно, узнать как решить такую задумку более гибко. |
| Автор: Alexeis 5.4.2006, 13:28 | ||
например так
конструктор что-нибудь сам сотворит на основе данной строки |
| Автор: DEER 5.4.2006, 13:44 | ||
| Почти понятно. TMyrepForm - должна быть объявлена в данном модуле ?
т.е. что нить сотворит? |
| Автор: Alexeis 5.4.2006, 13:49 |
| я же не знаю как должна выглядеть форма и что содержать при различных параметрах - что определят строковый параметр? Добавлено @ 13:50 TMyrepForm - может быть объявлена где угодно! |
| Автор: DEER 5.4.2006, 14:02 | ||||
| этот строковой параметр как раз должен показывать программе, что нужно запускать именно эту форму по примитивному это будет так
только если сделать так, то нужно будет чтобы в модуле, где будет лежать эта процедура были в разделе uses объявлены все эти формы(те их модули)
А хочется чтобы было гибкое решение. т.е. я один раз написал модуль, и больше его не трогал. |
| Автор: Alexeis 5.4.2006, 14:17 | ||
DEER, Я предлагаю форму сделать одну общую, а компоненты на нее навешивать разные в зависимости от строки. положение, размеры и тип компонентов, данные можно хранить в ini файле(или в базе данных), а затем по строке выбирать нужный ini файл и создавать компоненты динамически типа
|
| Автор: DEER 5.4.2006, 14:34 |
| alexeis1, спасибо за советы, это всё не то. Это мне прийдётся ещё месяцок позаниматся созданием такой МЕГАформы Будем искать...... |
| Автор: Alexeis 5.4.2006, 14:56 |
| ну можно попробовать и подругому например формы генерировать в виде bpl пакетов и загружать их динамически как dll, получется что-то вроде plugin ов |
| Автор: Foley 5.4.2006, 23:01 |
| да, тут действитель проще создать папку с bpl и потом проходить по ней циклом и добавлять имена файлов в ЛистБокс например, по двойному щелчку вызывать (только сделать еще чтоб не имена файлов добавлять а процедурку, которая бы передавала назначение отчета (ИМХО так проще)) |