Велосипед изобретать как то не хочется, думаю что у подобной ситуации есть решения, ну не перекомпилировать же каждый раз программу когда пользователи потребуют "хочу что бы перед этим отчетом вызывалось окно и там была галочка для выбора...". Как говориться help?
Пользовательские отчеты
Модератор: Модераторы
Пользовательские отчеты
Возникла необходимость наделить пользователей программы возможностью создавать и редактировать свои отчеты, при этом просят еще что бы была возможность задавать критерии построения отчета т.е. я так понимаю что в дополнении к LazReport необходим скриптовый язык и дизайнер форм. Проблему легко решить с помощью FastReport, однако проект не коммерческий, а потому не предусматривает покупку каких либо компонентов, а пользоваться пиратским религия не позволяет
.
Велосипед изобретать как то не хочется, думаю что у подобной ситуации есть решения, ну не перекомпилировать же каждый раз программу когда пользователи потребуют "хочу что бы перед этим отчетом вызывалось окно и там была галочка для выбора...". Как говориться help?
Велосипед изобретать как то не хочется, думаю что у подобной ситуации есть решения, ну не перекомпилировать же каждый раз программу когда пользователи потребуют "хочу что бы перед этим отчетом вызывалось окно и там была галочка для выбора...". Как говориться help?
Я пользуюсь старым добрым HTML.
Правда у меня отчёты только табличные и никакие другие. Создаю инишник, в котором:
1. Заголовок отчёта
2. Текст, который между заголовком и таблицей
3. Русские названия полей таблицы
4. SELECT для табличной части
5. SELECT для суммирующей части
6. "Подвал"
И - вуа-ля... Пользователь по этому образцу делает свой инишник и генерит HTML-отчёт на его основе. Никакой перекомпиляции.
Кстати, для OpenOffice Calc тут человек делал очень интересный компонент для построения отчётов, надо только поискать поиском. Отчёт генерится на основе файла-шаблона. Компонент называется "ooreports". Мне очень понравился.
1. Заголовок отчёта
2. Текст, который между заголовком и таблицей
3. Русские названия полей таблицы
4. SELECT для табличной части
5. SELECT для суммирующей части
6. "Подвал"
И - вуа-ля... Пользователь по этому образцу делает свой инишник и генерит HTML-отчёт на его основе. Никакой перекомпиляции.
Кстати, для OpenOffice Calc тут человек делал очень интересный компонент для построения отчётов, надо только поискать поиском. Отчёт генерится на основе файла-шаблона. Компонент называется "ooreports". Мне очень понравился.
Так в LazReport есть программный вызов дизайнера, ну и соответственно изменения/создания отчетов, аналогично FreeReport/FastReport,
или этого не хватит?
Примерно так:
или этого не хватит?
Примерно так:
Код: Выделить всё
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
frDesigner1: TfrDesigner;
frReport1: TfrReport;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
frReport1.DesignReport;
end;
m_guest писал(а):Так в LazReport есть программный вызов дизайнера, ну и соответственно изменения/создания отчетов, аналогично FreeReport/FastReport,
или этого не хватит?
К сожалению не хватит. Проблема в том, что перед выводом отчета необходимо показать форму что бы пользователь выбрал что же он хочет получить в отчете (например выбрать по какому году или месяцу строить отчет или по какой детали и т.п.). Можно конечно эти формочки клепать в Lazarus да только получается что при изменении или добавлении отчета необходимо перекомпилировать программу. В FastReport эта проблема решается элементарно там можно создать хоть несколько форм и хранятся они в файле отчета. Я понимаю что в лазаре да еще и на халяву такого не будет, но возможно все же есть какое нибудь решение?
all писал(а):... Можно конечно эти формочки клепать в Lazarus да только получается что при изменении или добавлении отчета необходимо перекомпилировать программу. В FastReport эта проблема решается элементарно там можно создать хоть несколько форм и хранятся они в файле отчета.
Файл отчета можно загружать в приложении (TfrReport.LoadFromFile) не обязательно при использовании нового отчета перекомпилировать весь проект, если только используемые данные не учтены в проекте...
в лазаре есть многое, нужно учиться им пользоваться...all писал(а):Я понимаю что в лазаре да еще и на халяву такого не будет, но возможно все же есть какое нибудь решение?
pascalscript- кажись так. Скриптовый двиг ("халява" и сорцы есть). Их вообщет штук 10 наискал (не пиратки).
А вот с формочками траблы
В лаз реп. вроде они есть токо чет тама не срослось
Ковырять придется...
Добавлено спустя 1 минуту 33 секунды:
))
Решение есть всегда токо поиском пользоваться нуно
А вот с формочками траблы
Добавлено спустя 1 минуту 33 секунды:
Я понимаю что в лазаре да еще и на халяву такого не будет, но возможно все же есть какое нибудь решение?
Решение есть всегда токо поиском пользоваться нуно
amateur писал(а):В лаз реп. вроде они есть токо чет тама не срослосьКовырять придется...
Сомневаюсь что в Lazreport есть встроенный дизайнер форм (не отчетов а именно форм т.е. кнопочек и прочего) т.к. Lazreport это практически FreeReport 2.3x, а там такого добра не было.
По поводу скриптовых языков вроде pascalscript я в курсе, но вот с дизайнером форм просто беда и не только в лазаре но и в delphi.
посмотрите пример здесь \lazarus\components\lazreport\samples\editor\
обратите внимание на
uses LR_Desgn
и
TfrRepepot.DesignReport;
можно уточнить для каких целей пользователю редактор форм?
можно на примере
у меня в проекте выдается перед показом отчета список с подготовленными шаблонами, в зависимости от выбранного шаблона загружается файл отчета и формируется. Список шаблонов формируется динамически из файлов отчетов лежащих в определенной папке, то есть я могу добавлять шаблоны, не перекомпилируя проект...
обратите внимание на
uses LR_Desgn
и
TfrRepepot.DesignReport;
можно уточнить для каких целей пользователю редактор форм?
можно на примере
у меня в проекте выдается перед показом отчета список с подготовленными шаблонами, в зависимости от выбранного шаблона загружается файл отчета и формируется. Список шаблонов формируется динамически из файлов отчетов лежащих в определенной папке, то есть я могу добавлять шаблоны, не перекомпилируя проект...
подобную функциональность реализовал правда в среде delphi, но идея вполне реализуема и для лазаря. генератор отчетов позволяет пополнять новыми отчетами без перекомпиляции, предоставляя возможность ввода параметров. отчеты строятся либо компонентом fastreport или в грид с возможностью экспорта в excel или access. источником данных может быть SQL выражение или хранимая процедура
[img]d:tempgenerator.jpg[/img]
Добавлено спустя 1 минуту 46 секунд:
тьфу вот скриншот
[img]d:tempgenerator.jpg[/img]
Добавлено спустя 1 минуту 46 секунд:
тьфу вот скриншот
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Сомневаюсь что в Lazreport есть встроенный дизайнер форм (не отчетов а именно форм т.е. кнопочек и прочего) т.к. Lazreport это практически FreeReport 2.3x, а там такого добра не было.
Дык лаз реп по виду и по приколам тянет более к фасту чем фри ....
И чет вроде формочки создать мона, а вот компоненты набросать
Если чет получится Вам пасибо скажут...Ковырять придется...
Но мона пойти путем указаным в скрине.Токо предусмотреть всего не возможно хотя так проще... (эт если не сделать свой махонький дизайнер с пониманием скриптов
... но и в delphi.
Смешно. В свое время вырыл около 5 компонентов которые делают возможным дизайн форм (парочка не халява). Плюс примеры были без компонентов... И эт пользуясь ток торри и гуглом.
alaken
Я конечно звиняюсь: а Вы фастом пользовались ???
Тяжеленькая машинка - фаст. Но по функционалу ппц...
во-первых то, что генератор построен на fast ни о чем не говорит - переделать на freereport 10 мин кодирования
во-вторых ты не понял - панелька которая называется Параметры отчета - строится динамически на основе свойств отчета - перечне параметров, никакие фастовские дилоговые окна не используются, шаблоны отчетов хранятся в локальной базе генератора
повторяю новый отчет добавляется без необходимости перекомпиляции
Добавлено спустя 6 минут 19 секунд:
добавлю - никакого скриптового движка
Добавлено спустя 59 секунд:
если интересно могу выслать работающую программу
во-вторых ты не понял - панелька которая называется Параметры отчета - строится динамически на основе свойств отчета - перечне параметров, никакие фастовские дилоговые окна не используются, шаблоны отчетов хранятся в локальной базе генератора
повторяю новый отчет добавляется без необходимости перекомпиляции
Добавлено спустя 6 минут 19 секунд:
добавлю - никакого скриптового движка
Добавлено спустя 59 секунд:
если интересно могу выслать работающую программу
Вот портировал бесплатную версию FlexCel мжет кому поможет тестировал под Win32/Win64 компилировал под Lin64 но не тестил.
LazFlexCel_0.0.3.7z
LazFlexCel_0.0.3.7z
MaratIsk
И сразу "в рога"...
Или может Вас зацепило
Фри реп - может более-менее создавать очтеты. На большее он способен при доработке. Фаст может настолько много, что большая часть не всегда нужна. Лаз реп тянет на фаст но по функционалу - слабоват (пока).
То что Вы сделали основываясь на фаст - для меня звучит странно (значит у Вас были веские основания для этого). Ведь в фасте есть диалоги, а Вы сделали свой.
Ссори тама в 10 минут не вложишся.
.wOvAN т.е. - http://www.tmssoftware.com/site/flexcel.asp Дык тама оно не халявка да и ексель нужен. Работать будет ток в винде.
Добавлено спустя 3 минуты 9 секунд:
Смотрел демку, вот и вывод напросился
http://soft.stream24.ru/catalog/program.php?ID=12640 оказывается вот он какой зверь
И сразу "в рога"...
- не знаю, да и не важно...хотя так проще
Фри реп - может более-менее создавать очтеты. На большее он способен при доработке. Фаст может настолько много, что большая часть не всегда нужна. Лаз реп тянет на фаст но по функционалу - слабоват (пока).
То что Вы сделали основываясь на фаст - для меня звучит странно (значит у Вас были веские основания для этого). Ведь в фасте есть диалоги, а Вы сделали свой.
во-первых то, что генератор построен на fast ни о чем не говорит - переделать на freereport 10 мин кодирования
Ссори тама в 10 минут не вложишся.
.wOvAN т.е. - http://www.tmssoftware.com/site/flexcel.asp Дык тама оно не халявка да и ексель нужен. Работать будет ток в винде.
Добавлено спустя 3 минуты 9 секунд:
Смотрел демку, вот и вывод напросился
http://soft.stream24.ru/catalog/program.php?ID=12640 оказывается вот он какой зверь
на фасте потому что для прежнего генератора отчетов было наделано куча отчетов именно на фасте только и всего
а про 10 мин совершенно серьезно
была даже идея использовать и то и другое - отложил за текщей ненадобностью
Добавлено спустя 2 минуты 20 секунд:
кстати именно то, что не использую фастовские диалоги и делает переделку под другой генератор простой
а про 10 мин совершенно серьезно
была даже идея использовать и то и другое - отложил за текщей ненадобностью
Добавлено спустя 2 минуты 20 секунд:
кстати именно то, что не использую фастовские диалоги и делает переделку под другой генератор простой
amateur писал(а):Я конечно звиняюсь: а Вы фастом пользовались ???
Пользовался, но смысл темы ушел в сторону решения задачи с компонентом LazReport...
В LazReport не реализована система диалогов, возможно реализуют в будущем...
amateur писал(а):...Тяжеленькая машинка - фаст. Но по функционалу ппц...
...
Фаст может настолько много, что большая часть не всегда нужна.
Вы уже сами сказали то, что я хотел сказать. (не всегда нужна)
Пример тому в скорости портирования, чем проще проект тем проще его портировать, и сопровождать.
