Zoth |
Отправлено: 16.09.2005, 10:45 |
|
Не зарегистрирован
|
Вопрос чисто теоретически. Есть некий проект. Прога работает с БД.
Разумеется нужен набор отчетов. Практически у всех отчетов есть входящие параметры. Например, даты, сотрудники и т.д.
Теоретически набор входных параметров у всех разный. Конечно есть отчеты с одинаковыми входными параметрами. Все отчеты реализуются на основе хранимых процедур, которые выдают уже готовый датасет.
Теперь собственно сам вопрос. Как лучше реализовать вызов этих отчетов и занесение параметров. Если нет параметров, то я просто его формирую и выкидываю либо на печать либо экспортирую куда мне надо. А вот когда надо вводить параметры пользователю, тут думать приходится.. Делать отдельную форму для каждого отчета не гут. Делать какуюто универсальную форму... но это геморойно, и потом при добавлении отчетов как это реализовывать я не представляю. Тоесть представляю, но както смутно . Подскажите, кто чем пользуется.
Может можно эти формы рисовать внутри самого отчета. Например ФастРепорт такое, вроде, позволяет, но там не удобно в том плане что нету компонентов типа DateEdit от Rx и т.д. Да и писать там свои оброботчики на встроенном Паскале тоже не хочется.
Ах да... Надо чтобы была возможность не просто вводить эти параметры (например код клиента) но и выбор из списка... тоесть подцепится к БД и получить его.
Подскажите, кто как это делал(делает); |
|
AVC |
Отправлено: 16.09.2005, 12:52 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Отчеты делаются не абстрактно а при помощи какого-то средства.
У Fastreport'а можно диалоги создать прямо в отчете. (Еще и за это я его сильно уважаю, так как можно делать самодостаточные отчеты и НЕ на этапе проектирования приложения)
Универсальная формочка — опрашиватель так же имеет место быть. Да, она должна быть хорошо проработана, но это окупается сторицей.
Некоторые отчеты это просто "твердая копия" текущего состояния приложения — там ни чего спрашивать не надо, все и так уже известно (например наклядная для операции продажи, которую сейчас просматривает пользователь) |
|
Zoth |
Отправлено: 16.09.2005, 13:05 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
QUOTE (AVC @ 16/09/2005, 12:52) | Универсальная формочка — опрашиватель так же имеет место быть. Да, она должна быть хорошо проработана, но это окупается сторицей.
|
Есть такая идея.. написать примерно сл. компонент.. ну может и не компонент, там видно будет.... смысл такой
В бд храню
Таблица 1
1. Название отчета — хранимая процедура
Таблица 2
1. Параметр отчета
2. Тип параметра
3. Название полей для формы
и таким образом получаю сколько и чего мне надо, задаю на форме-опроснике нужные визуальные компоненты с соотв. лэйблами и т.д.
может видел где подобную реализацию... может сталкивался с подводными камнями.... |
|
Doga |
Отправлено: 16.09.2005, 17:52 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Мне кажется Word тож хорошо подходит для создания отчетов. Все возможности для этого у него есть. Уже 3 года им пользуюсь — проблем нет.
|
|
** Admin |
Отправлено: 16.09.2005, 20:04 |
|
Не зарегистрирован
|
QUOTE | Есть такая идея.. написать примерно сл. компонент.. ну может и не компонент, там видно будет.... смысл такой
В бд храню ...
|
Почему бы и нет, очень удобно.
Писал прогу, работающую с базой данных, сохраняющую
результаты измерений с разных приборов в базе данных,
разумеется с каждого прибора — информация своя
(разные таблицы базы данных), естественно абсолютно разные
алгоритмы и функции чтения данных с прибора, разные отчеты.
Так вот — создал в базе таблицу приборов, в которой в одном из
полей этой таблицы и прописал имя dll, отвечающей за чтение
информации с прибора и имя .frf отчета для этого прибора.
Получилась достаточно универсальная программа (и база)
позволяющая динамически добавлять в нее новые типы приборов.
НЕ ПЕРЕКОМПИЛИРУЯ ВЕСЬ ПРОЕКТ.
1 создавая новую таблицу для нового прибора
2 создав лишь необходимую для данного прибора dll
и прописав ее имя/путь в таблице,
3 прописав название формы отчета для данного прибора
|
|
|