|
|
|
Использование шаблона в Excel
|
|||
|---|---|---|---|
|
#18+
Есть необходимость создавать в экселе различные отчеты, основанные на выборке из БД с помощью VBA и ADO. При этом хочется не привязываться программно к оформлению этого отчета, чтобы его легко можно было изменять. Я так понимаю для этого нужно использовать шаблоны. Проблем с выборкой данных пока нет. Возникло несколько вопросов: 1. Что должно быть в самом файле шаблона? Я так понимаю, что шапка, колонтитулы, итоги, нужное форматирование и т.п. 2. Как связывать данные с шаблоном? Т.е. есть несколько строк, которые надо как то вывести, наверное, в середину этого шаблона (между шапкой и итогами). Или это по другому делатеся? А если нужны промежуточные постраничные итоги как быть? 3. Как программно подцепить этот шаблон и куда его положить? 4. Может еще чего не предвидел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 11:50:59 |
|
||
|
Использование шаблона в Excel
|
|||
|---|---|---|---|
|
#18+
1) Шапки, колонтитулы, макросы. 2) Самое простое и универсальное - в темплейте сделай дополнительную пару-тройку листов без форматирования, вытягиваешь данные в них, потом запускаешь макрос который красивенько раскидает данные из этих сырых листов по отчетному листу. Потом спрячет или вообще убьет листы с сырыми данными. 3) Лучше всего хранить шаблоны в самой БД. Делаешь табличку типа ReportTemplates, в ней, в блоб-поле лежит xlt. Клиентская программа по запросу вытягивает из базы шаблон, запускает Эксель, загружает в него этот шаблон, потом запускает в нем макрос типа GenerateReport. 4) Сложно сказать. Начнещь делать реальную систему - приходи с более конкретными вопросами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 18:17:42 |
|
||
|
Использование шаблона в Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо. Тока у меня все попроще будет. БД не моя, поэтому я там ничего менять не могу. Идея такая. Я открываю эклевский файл. Ввожу туда некие значения, по которым потом буду строить запросы, вытягивать значения из БД и вставлять их в шаблон (прайс, счет и т.п.). Возможно мне даже временные листы с сырыми данными не понадобятся - попробую одними рекордсетами обойтись. А в книжке по которой я изучаю VBA ни слова про шаблоны. Хочется иметь возможность работать с БД в обход уже написанной СУБД в плане создания новых отчетов, дабы не платить разработчику каждый раз за какой-то вдруг понадобившийся отчет. Можно было бы конечно полностью свою БД забубонить, но опыта пока маловато, да и доверия со стороны начальства в плане программирования никакого, и вообще проблем небось потом туева хуча появится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 10:37:57 |
|
||
|
Использование шаблона в Excel
|
|||
|---|---|---|---|
|
#18+
k-nikeБД не моя, поэтому я там ничего менять не могу.Это не проблема. Лично я предпочитаю хранить шаблоны в самой БД потому что тогда мне надо будет беспокоится только об одном коннекте, то есть клиент-БД. У меня сейчас и данные и шаблоны, все в одном месте лежит, все по единому коннекту на клиента вытягивается :) Но можно хранить и кучку шаблонов в сетевом каталоге. Пользователь заходит например в какой-нибудь T:\Reports\WeeklyFinance там лежит десяток *.xlt. Тыкает в нужный xlt, а в нем срабатывает Workbook_Open и запрашивает уже за какой период делать отчет, формирует или подправляет QueryTables и делает красивенькую раскидку цифр по итоговому листу. Тебе как администратору системы прийдется еще следить за всем деревом T:\Reports, но это не особо много работы :) k-nikeВозможно мне даже временные листы с сырыми данными не понадобятся - попробую одними рекордсетами обойтись.Да конечно. Временные листы имеют смысл только если сырые данные очень уж сильно отличаются от итогового представления. Например если нужно сделать сводную PivotTable на основе двух и более разных рекордсетов, которые нельзя почему-либо объединить в самой БД. Вот тут дополнительные листы для сырых данных самое милое дело :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 18:04:29 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33665425&tid=2184989]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 392ms |

| 0 / 0 |
