Пользовательские отчеты

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Пользовательские отчеты

Сообщение all » 13.04.2010 18:23:37

Возникла необходимость наделить пользователей программы возможностью создавать и редактировать свои отчеты, при этом просят еще что бы была возможность задавать критерии построения отчета т.е. я так понимаю что в дополнении к LazReport необходим скриптовый язык и дизайнер форм. Проблему легко решить с помощью FastReport, однако проект не коммерческий, а потому не предусматривает покупку каких либо компонентов, а пользоваться пиратским религия не позволяет :? .
Велосипед изобретать как то не хочется, думаю что у подобной ситуации есть решения, ну не перекомпилировать же каждый раз программу когда пользователи потребуют "хочу что бы перед этим отчетом вызывалось окно и там была галочка для выбора...". Как говориться help?
all
незнакомец
 
Сообщения: 3
Зарегистрирован: 13.04.2010 16:44:52

Re: Пользовательские отчеты

Сообщение Vadim » 14.04.2010 05:57:41

Я пользуюсь старым добрым HTML. :) Правда у меня отчёты только табличные и никакие другие. Создаю инишник, в котором:
1. Заголовок отчёта
2. Текст, который между заголовком и таблицей
3. Русские названия полей таблицы
4. SELECT для табличной части
5. SELECT для суммирующей части
6. "Подвал" :)
И - вуа-ля... Пользователь по этому образцу делает свой инишник и генерит HTML-отчёт на его основе. Никакой перекомпиляции.

Кстати, для OpenOffice Calc тут человек делал очень интересный компонент для построения отчётов, надо только поискать поиском. Отчёт генерится на основе файла-шаблона. Компонент называется "ooreports". Мне очень понравился. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Пользовательские отчеты

Сообщение m_guest » 14.04.2010 10:25:01

Так в 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
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Re: Пользовательские отчеты

Сообщение all » 14.04.2010 13:49:44

m_guest писал(а):Так в LazReport есть программный вызов дизайнера, ну и соответственно изменения/создания отчетов, аналогично FreeReport/FastReport,
или этого не хватит?

К сожалению не хватит. Проблема в том, что перед выводом отчета необходимо показать форму что бы пользователь выбрал что же он хочет получить в отчете (например выбрать по какому году или месяцу строить отчет или по какой детали и т.п.). Можно конечно эти формочки клепать в Lazarus да только получается что при изменении или добавлении отчета необходимо перекомпилировать программу. В FastReport эта проблема решается элементарно там можно создать хоть несколько форм и хранятся они в файле отчета. Я понимаю что в лазаре да еще и на халяву такого не будет, но возможно все же есть какое нибудь решение?
all
незнакомец
 
Сообщения: 3
Зарегистрирован: 13.04.2010 16:44:52

Re: Пользовательские отчеты

Сообщение alaken » 14.04.2010 14:11:44

all писал(а):... Можно конечно эти формочки клепать в Lazarus да только получается что при изменении или добавлении отчета необходимо перекомпилировать программу. В FastReport эта проблема решается элементарно там можно создать хоть несколько форм и хранятся они в файле отчета.

Файл отчета можно загружать в приложении (TfrReport.LoadFromFile) не обязательно при использовании нового отчета перекомпилировать весь проект, если только используемые данные не учтены в проекте...

all писал(а):Я понимаю что в лазаре да еще и на халяву такого не будет, но возможно все же есть какое нибудь решение?
в лазаре есть многое, нужно учиться им пользоваться...
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: Пользовательские отчеты

Сообщение amateur » 14.04.2010 15:00:23

pascalscript- кажись так. Скриптовый двиг ("халява" и сорцы есть). Их вообщет штук 10 наискал (не пиратки).
А вот с формочками траблы :) В лаз реп. вроде они есть токо чет тама не срослось :) Ковырять придется...

Добавлено спустя 1 минуту 33 секунды:
Я понимаю что в лазаре да еще и на халяву такого не будет, но возможно все же есть какое нибудь решение?
:)))
Решение есть всегда токо поиском пользоваться нуно :)
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Пользовательские отчеты

Сообщение all » 14.04.2010 23:32:35

amateur писал(а):В лаз реп. вроде они есть токо чет тама не срослось :) Ковырять придется...

Сомневаюсь что в Lazreport есть встроенный дизайнер форм (не отчетов а именно форм т.е. кнопочек и прочего) т.к. Lazreport это практически FreeReport 2.3x, а там такого добра не было.
По поводу скриптовых языков вроде pascalscript я в курсе, но вот с дизайнером форм просто беда и не только в лазаре но и в delphi.
all
незнакомец
 
Сообщения: 3
Зарегистрирован: 13.04.2010 16:44:52

Re: Пользовательские отчеты

Сообщение alaken » 15.04.2010 10:27:10

посмотрите пример здесь \lazarus\components\lazreport\samples\editor\

обратите внимание на
uses LR_Desgn
и
TfrRepepot.DesignReport;

можно уточнить для каких целей пользователю редактор форм?
можно на примере


у меня в проекте выдается перед показом отчета список с подготовленными шаблонами, в зависимости от выбранного шаблона загружается файл отчета и формируется. Список шаблонов формируется динамически из файлов отчетов лежащих в определенной папке, то есть я могу добавлять шаблоны, не перекомпилируя проект...
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: Пользовательские отчеты

Сообщение MaratIsk » 15.04.2010 14:07:59

подобную функциональность реализовал правда в среде delphi, но идея вполне реализуема и для лазаря. генератор отчетов позволяет пополнять новыми отчетами без перекомпиляции, предоставляя возможность ввода параметров. отчеты строятся либо компонентом fastreport или в грид с возможностью экспорта в excel или access. источником данных может быть SQL выражение или хранимая процедура

[img]d:tempgenerator.jpg[/img]

Добавлено спустя 1 минуту 46 секунд:
тьфу вот скриншот
У вас нет необходимых прав для просмотра вложений в этом сообщении.
MaratIsk
постоялец
 
Сообщения: 117
Зарегистрирован: 20.08.2009 18:15:20

Re: Пользовательские отчеты

Сообщение amateur » 15.04.2010 16:09:46

Сомневаюсь что в Lazreport есть встроенный дизайнер форм (не отчетов а именно форм т.е. кнопочек и прочего) т.к. Lazreport это практически FreeReport 2.3x, а там такого добра не было.


Дык лаз реп по виду и по приколам тянет более к фасту чем фри ....
И чет вроде формочки создать мона, а вот компоненты набросать :(
Ковырять придется...
Если чет получится Вам пасибо скажут...

Но мона пойти путем указаным в скрине.Токо предусмотреть всего не возможно хотя так проще... (эт если не сделать свой махонький дизайнер с пониманием скриптов :))

... но и в delphi.

Смешно. В свое время вырыл около 5 компонентов которые делают возможным дизайн форм (парочка не халява). Плюс примеры были без компонентов... И эт пользуясь ток торри и гуглом.

alaken
Я конечно звиняюсь: а Вы фастом пользовались ???
Тяжеленькая машинка - фаст. Но по функционалу ппц...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Пользовательские отчеты

Сообщение MaratIsk » 15.04.2010 18:02:54

во-первых то, что генератор построен на fast ни о чем не говорит - переделать на freereport 10 мин кодирования
во-вторых ты не понял - панелька которая называется Параметры отчета - строится динамически на основе свойств отчета - перечне параметров, никакие фастовские дилоговые окна не используются, шаблоны отчетов хранятся в локальной базе генератора

повторяю новый отчет добавляется без необходимости перекомпиляции

Добавлено спустя 6 минут 19 секунд:
добавлю - никакого скриптового движка

Добавлено спустя 59 секунд:
если интересно могу выслать работающую программу
MaratIsk
постоялец
 
Сообщения: 117
Зарегистрирован: 20.08.2009 18:15:20

Re: Пользовательские отчеты

Сообщение .wOvAN » 16.04.2010 07:01:46

Вот портировал бесплатную версию FlexCel мжет кому поможет тестировал под Win32/Win64 компилировал под Lin64 но не тестил.
LazFlexCel_0.0.3.7z
.wOvAN
постоялец
 
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12

Re: Пользовательские отчеты

Сообщение amateur » 16.04.2010 09:47:42

MaratIsk
И сразу "в рога"... :) Или может Вас зацепило
хотя так проще
- не знаю, да и не важно...

Фри реп - может более-менее создавать очтеты. На большее он способен при доработке. Фаст может настолько много, что большая часть не всегда нужна. Лаз реп тянет на фаст но по функционалу - слабоват (пока).
То что Вы сделали основываясь на фаст - для меня звучит странно (значит у Вас были веские основания для этого). Ведь в фасте есть диалоги, а Вы сделали свой.

во-первых то, что генератор построен на fast ни о чем не говорит - переделать на freereport 10 мин кодирования

Ссори тама в 10 минут не вложишся. :)

.wOvAN т.е. - http://www.tmssoftware.com/site/flexcel.asp Дык тама оно не халявка да и ексель нужен. Работать будет ток в винде.

Добавлено спустя 3 минуты 9 секунд:
Смотрел демку, вот и вывод напросился :(
http://soft.stream24.ru/catalog/program.php?ID=12640 оказывается вот он какой зверь :)
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Пользовательские отчеты

Сообщение MaratIsk » 16.04.2010 10:46:50

на фасте потому что для прежнего генератора отчетов было наделано куча отчетов именно на фасте только и всего
а про 10 мин совершенно серьезно
была даже идея использовать и то и другое - отложил за текщей ненадобностью

Добавлено спустя 2 минуты 20 секунд:
кстати именно то, что не использую фастовские диалоги и делает переделку под другой генератор простой
MaratIsk
постоялец
 
Сообщения: 117
Зарегистрирован: 20.08.2009 18:15:20

Re: Пользовательские отчеты

Сообщение alaken » 16.04.2010 12:58:44

amateur писал(а):Я конечно звиняюсь: а Вы фастом пользовались ???

Пользовался, но смысл темы ушел в сторону решения задачи с компонентом LazReport...
В LazReport не реализована система диалогов, возможно реализуют в будущем...

amateur писал(а):...Тяжеленькая машинка - фаст. Но по функционалу ппц...
...
Фаст может настолько много, что большая часть не всегда нужна.

Вы уже сами сказали то, что я хотел сказать. (не всегда нужна)
Пример тому в скорости портирования, чем проще проект тем проще его портировать, и сопровождать.
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

Рейтинг@Mail.ru
cron