Наши преимущества

Поясните по TMS FlexCel

demav

Турист
Credits
0
Начал разбираться TMS FlexCel. Правильно я понимаю, что источник данных должен быть именно в программе?

Т.е. в самом отчете (в шаблоне Excel?) нельзя создать запрос к базе и на основе запроса построить отчет (как это сделано в FastReport или CrystalReport, например).
 
Шаблон TMS FlexCel это ведь файл EXCELа. Соответственно из файла шаблона обратиться к другим данным можно через ODBC драйвера.
TMS FlexCel хорош тем, что использует стандарт MS Excel со всеми его возможностями, но плюс и тот, что если на стадии открытия шаблона (отчета) приклеить расширение .ods, то отчет вообще можно открыть в OpenOffice, просто надо файл шалона .xls отредактировать в OO (может быть другой формат формул и т.д.).

А генераторы отчетов - вещь более профессиональная и узко специолизированная, имеют свои структуры данных, в том числе и описания TDataSet.

Сам использую TMS FlexCel, просто есть выход - это динамическое создание наборов данных, под которые уже можно описать шаблон. И также из программы это вызывать. Хранить все можно в том же INI-файле или в самой базе.
 
1 Создается запрос типа "select * from anytable where any условие"
2 кладешь его в dataset
3 настраиваешь шаблон excel, не забудь присвоить Name в Excel
4 запускаешь свое приложение
 
1 Создается запрос типа "select * from anytable where any условие"
2 кладешь его в dataset
3 настраиваешь шаблон excel, не забудь присвоить Name в Excel
4 запускаешь свое приложение

Это о чем?

Означает ли это, что можно в шаблоне Excel заменить запрос из п.1 на любой другой? И кстати, как тогда быть с master-detail?
 
Это о чем?

Означает ли это, что можно в шаблоне Excel заменить запрос из п.1 на любой другой? И кстати, как тогда быть с master-detail?

Возможно все. Но не забываем в файле шаблона менять имя датасета и поля.

А вообще для типовых документов я делаю все проще:
Запросы оформляюся в виде процедур, хотя это и не принципиально.
Обращение к запросу сохраняешь в базе, а в самой программе в нужный
момент заполняешь SelectSQL нужным запросом и просто открываешь
нужный шаблон связанный с данным запросом.

Простота в том, что не трогаешь исполняемый файл, а запросы пишешь в базе, используя к примеру IBExpert и создаешь нужный шаблон.

По связке Master-Detail можно просто в отчетной форме организовать нужную вложенность, а в таблице, где хранишь запросы, организовать хранение этой связи, т.е. по сути оператор ---where detail_id = :id---
(типа того). А при открытии Detail связи просто надо соответствующие свойства связи заполнить. По крайней мере у меня работает прилично...

Хотя все можно делать и не в статическом, а создавать в динамике,
хотя типовых документов со связями больше трех представить сложно, как говорят дело фантазии.
 
Спасибо!
Вы не могли бы выслать пример шаблона отчета и кусок кода для взаимодействия с движком отчета? Так сказать, чтобы велосипед не изобретать.
 
Верх