Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск формы, в зависимости от выбора пользователя 
:(
    Опции темы
DEER
Дата 5.4.2006, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



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


У меня возникла идея. Помимо информации об отчете хранить ещё место, где этот очтет вызывается в системе, те строку типа "Отчеты\Оперативный отчет", это реализовать не проблема.
Далее возникла новая мысль, а что если сделать кнопочку, чтобы когда на неё нажимаешь запускался именно тот отчет, который сейчас выбран из списка? Вот сдесь прошу ваших мыслей. кк это можно, а главное грамотнее организовать?

У меня пока только одна идея: пишем модуль, в котором процедура запуска отчетов, в зависимости от параметра, она вызывает ту или иную форму. Тогда нужно прописать в этом модуле в uses все формы отчетов. А когда в систему добавляем новый отчет, туда тоже надо дописать код в uses - форму, в процедуру - условие для этого отчета. Но по моему это решение нифига не гибкое. Охота, чтобы всё генерировалось во врема выполнения. Те чтобы процедура была универсальная, одна для всех. Я добавляю в таблицу данные, указываю откуда запускать, а процедура сама все запускает, при этом модуль с процедурой остается неизменным.

Извините, если не совсем понятно. Если что - спрашивайте, я уточню. Просто у самого в голове не всё ещё по полочкам лежит.


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Alexeis
Дата 5.4.2006, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Не понятно как связана форма с отчетом, в каком виде отображается отчет, и что вообще из себя представляет отчет smile


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DEER
Дата 5.4.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



ну пусть будет просто форма Form1 без отчета...
те мне надо хранить в БД строку какую то. (ну например Form1.ShowModal)
в какой то процедуре надо, в зависимости от параметра(те строки из БД для формы), вызвать эту форму
мне надо как то выполнить строку из БД.

Это возможно?
Или, если так не возможно, узнать как решить такую задумку более гибко.

Это сообщение отредактировал(а) DEER - 5.4.2006, 13:16


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Alexeis
Дата 5.4.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



например так

Код

if mystingparam='blablabla'
then
  Begin
     myrep := TMyrepForm.Create(application, mystingparam);
     myrep.Show;//myrep.showmodal
  end;


конструктор что-нибудь сам сотворит на основе данной строки


Это сообщение отредактировал(а) alexeis1 - 5.4.2006, 13:29


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DEER
Дата 5.4.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Почти понятно.

TMyrepForm - должна быть объявлена в данном модуле ?
Цитата

конструктор что-нибудь сам сотворит на основе данной строки

т.е. что нить сотворит? smile


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Alexeis
Дата 5.4.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



я же не знаю как должна выглядеть форма и что содержать при различных параметрах - что определят строковый параметр?
Добавлено @ 13:50
TMyrepForm - может быть объявлена где угодно!


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DEER
Дата 5.4.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



этот строковой параметр как раз должен показывать программе, что нужно запускать именно эту форму
по примитивному это будет так
Код

 if StrParametr = 1
 then Form1.ShowModal
else if StrParametr =2 
        then Form2.ShowModal
   ....................

только если сделать так, то нужно будет чтобы в модуле, где будет лежать эта процедура были в разделе uses объявлены все эти формы(те их модули)
Код

uses Unit1{для Form1}, Unit2{для Form2}, .... UnitN{для FormN};

А хочется чтобы было гибкое решение.
т.е. я один раз написал модуль, и больше его не трогал.


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Alexeis
Дата 5.4.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



DEER, Я предлагаю форму сделать одну общую, а компоненты на нее навешивать разные в зависимости от строки. положение, размеры и тип компонентов, данные можно хранить в ini файле(или в базе данных), а затем по строке выбирать нужный ini файл и создавать компоненты динамически типа

Код

if CompType = 'TButton'
then
  Begin
     b[1] := TButton.Create(MyRepForm);
     btop := ini.ReadInteger();
     b[1].top := btop;
  end;


Это сообщение отредактировал(а) alexeis1 - 5.4.2006, 14:19


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DEER
Дата 5.4.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



alexeis1, спасибо за советы, это всё не то. Это мне прийдётся ещё месяцок позаниматся созданием такой МЕГАформы smile

Будем искать......


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Alexeis
Дата 5.4.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



ну можно попробовать и подругому например формы генерировать в виде bpl пакетов и загружать их динамически как dll, получется что-то вроде plugin ов


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Foley
Дата 5.4.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



да, тут действитель проще создать папку с bpl и потом проходить по ней циклом и добавлять имена файлов в ЛистБокс например, по двойному щелчку вызывать (только сделать еще чтоб не имена файлов добавлять а процедурку, которая бы передавала назначение отчета (ИМХО так проще))
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.