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

demav

Member
Joined
Nov 20, 2018
Messages
300
Reaction score
53
Age
39
Начал разбираться TMS FlexCel. Правильно я понимаю, что источник данных должен быть именно в программе?

Т.е. в самом отчете (в шаблоне Excel?) нельзя создать запрос к базе и на основе запроса построить отчет (как это сделано в FastReport или CrystalReport, например).
 

Sparta

Member
Joined
Oct 5, 2008
Messages
14
Reaction score
4
Age
33
Шаблон TMS FlexCel это ведь файл EXCELа. Соответственно из файла шаблона обратиться к другим данным можно через ODBC драйвера.
TMS FlexCel хорош тем, что использует стандарт MS Excel со всеми его возможностями, но плюс и тот, что если на стадии открытия шаблона (отчета) приклеить расширение .ods, то отчет вообще можно открыть в OpenOffice, просто надо файл шалона .xls отредактировать в OO (может быть другой формат формул и т.д.).

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

Сам использую TMS FlexCel, просто есть выход - это динамическое создание наборов данных, под которые уже можно описать шаблон. И также из программы это вызывать. Хранить все можно в том же INI-файле или в самой базе.
 

BDAVLATOV

Member
Joined
Dec 17, 2008
Messages
9
Reaction score
0
1 Создается запрос типа "select * from anytable where any условие"
2 кладешь его в dataset
3 настраиваешь шаблон excel, не забудь присвоить Name в Excel
4 запускаешь свое приложение
 

demav

Member
Joined
Nov 20, 2018
Messages
300
Reaction score
53
Age
39
1 Создается запрос типа "select * from anytable where any условие"
2 кладешь его в dataset
3 настраиваешь шаблон excel, не забудь присвоить Name в Excel
4 запускаешь свое приложение

Это о чем?

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

Sparta

Member
Joined
Oct 5, 2008
Messages
14
Reaction score
4
Age
33
Это о чем?

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

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

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

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

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

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

demav

Member
Joined
Nov 20, 2018
Messages
300
Reaction score
53
Age
39
Спасибо!
Вы не могли бы выслать пример шаблона отчета и кусок кода для взаимодействия с движком отчета? Так сказать, чтобы велосипед не изобретать.
 

Sparta

Member
Joined
Oct 5, 2008
Messages
14
Reaction score
4
Age
33
Спасибо!
Вы не могли бы выслать пример шаблона отчета и кусок кода для взаимодействия с движком отчета? Так сказать, чтобы велосипед не изобретать.

Высылайте адрес в PM в принципе отправлю.
 
Top