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

demav

Местный
Регистрация
20 Ноя 2008
Сообщения
97
Реакции
13
Credits
158
Начал разбираться TMS FlexCel. Правильно я понимаю, что источник данных должен быть именно в программе?

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

sparta

Местный
Регистрация
5 Окт 2008
Сообщения
14
Реакции
4
Credits
28
Шаблон TMS FlexCel это ведь файл EXCELа. Соответственно из файла шаблона обратиться к другим данным можно через ODBC драйвера.
TMS FlexCel хорош тем, что использует стандарт MS Excel со всеми его возможностями, но плюс и тот, что если на стадии открытия шаблона (отчета) приклеить расширение .ods, то отчет вообще можно открыть в OpenOffice, просто надо файл шалона .xls отредактировать в OO (может быть другой формат формул и т.д.).

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

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

BDAVLATOV

Турист
Регистрация
17 Дек 2008
Сообщения
9
Реакции
0
Credits
18
1 Создается запрос типа "select * from anytable where any условие"
2 кладешь его в dataset
3 настраиваешь шаблон excel, не забудь присвоить Name в Excel
4 запускаешь свое приложение
 

demav

Местный
Регистрация
20 Ноя 2008
Сообщения
97
Реакции
13
Credits
158
1 Создается запрос типа "select * from anytable where any условие"
2 кладешь его в dataset
3 настраиваешь шаблон excel, не забудь присвоить Name в Excel
4 запускаешь свое приложение

Это о чем?

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

sparta

Местный
Регистрация
5 Окт 2008
Сообщения
14
Реакции
4
Credits
28
Это о чем?

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

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

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

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

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

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

demav

Местный
Регистрация
20 Ноя 2008
Сообщения
97
Реакции
13
Credits
158
Спасибо!
Вы не могли бы выслать пример шаблона отчета и кусок кода для взаимодействия с движком отчета? Так сказать, чтобы велосипед не изобретать.
 

sparta

Местный
Регистрация
5 Окт 2008
Сообщения
14
Реакции
4
Credits
28
Спасибо!
Вы не могли бы выслать пример шаблона отчета и кусок кода для взаимодействия с движком отчета? Так сказать, чтобы велосипед не изобретать.

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