Тема: Создание команды класса отчет

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

Re: Создание команды класса отчет

Вот пожалуйста. Выборка выводит все объекты типа "Тестовый объект" с ненулевым статусом. Скрипт выводит окошко со списком описаний этих объектов. Файл - просто файл Excel. Если потребуется, можно в него добавить какое-то форматирование.

Post's attachments

Test_Query_Report.rar 4.64 Кб, 43 скачиваний с 2007-11-30 

You don't have the permssions to download the attachments of this post.

Re: Создание команды класса отчет

Какая у Вас сборка TDMS ? Ключевое слово ThisSheet должно подсвечиватся в редакторе скриптов красным цветом.
В приложенном файле ещё один пример отчёта, немного поразвёрнутей.
Выбираются объекты, в коде команды удаляются строки объектов не в конечном статусе, а в самом файле отчёта содержится дополнительный макрос, который раскрашивает все записи в первой колонке красным цветом.
Надеюсь поможет разобратся.

Re: Создание команды класса отчет

спасибо, работает если выполнение команды не запускать из скрипта  :)

Re: Создание команды класса отчет

Как можно повлиять на заполнение файла Excel из команды типа "Отчет"? Скажем, чтобы строки начали заполняться не самого верху, а отступив несколько строк. То же самое с колонками?

Re: Создание команды класса отчет

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

Re: Создание команды класса отчет

Edhunter пишет:

В третьей версии для создаия команды класса отчёт лучше всего воспользовать мастером создания отчётов.
...

Спасибо, с рядами теперь все понятно.
Возникли следующие вопросы (TDMS 3.0.126, WinXP + Excel 2003):
1) Не совсем ясен алгоритм, по которому генерируются следующие страницы отчета.
2) создается по 2 процесса Excel (один с пустым листом, затем уже второй непосредственно с отчетом). Глюк?
3) Несколько раз отредактировал шаблон, после этого TDMS стал вылетать при запуске отчета. Пришлось удалить шаблон и создать заново.
Как-то нестабильно работает такой вариант создания отчета.
Что лучше: попробовать List & Labels (где можно доку по нему почитать?) или сразу взяться за "низкоуровневое" формирование отчета в Excel?

Re: Создание команды класса отчет

1) Последующие страницы генерируются в точности как первая, т.е. вместе с шапкой, футером и т.д. Если вам этого ненадо, то просто скопируйте строки на несколько страниц (сколько надо).
2) Непонятно почему такое поведение. Второй Excel возможно возникает из за кода команды. Надо проверять.
3) Не сталкивался с подобным поведением... Если сможете выделить закономерности - буду признателен =) и скорее всего будет поправлено в следующих билдах.
List & Labels тоже хороший вариант. Лично  мне привычней и удобней использовать Excel, но выбор за вами.
P.S.: Документацию придётся искать в интернете.

Re: Создание команды класса отчет

Edhunter пишет:

...
2) Непонятно почему такое поведение. Второй Excel возможно возникает из за кода команды. Надо проверять.
...

Спешу извиниться, действительно сам виноват, запускал Excel в коде команды.
У меня ситуация такая: есть иерархия объектов:
-Объект строительства
----Папка договоров
--------Договор1
--------Договор2
--------Договор3

и мне в отчете (MS Excel), который вызывается из "Объекта строительства" нужно в шапке указать описание "Объекта строительства", а в строках таблицы атрибуты объектов Договор1, Договор2...
Строки в таблицу загоняются, а вот с шапкой проблемы - непонятно, как загнать туда описание "Объекта строительства"?

Re: Создание команды класса отчет

Вдогонку к предыдущему посту:
хотелось бы совместить самостоятельное управление листом Excel с удобством шаблонов, которые есть в команде типа Отчет. Такое возможно?
в TDMS API я к сожалению не нашел доступа к шаблонам отчета

Re: Создание команды класса отчет

1) Как вариант, можно немного изменить выборку, на составную. Примерно так:
   Дай все объекты типа договор (Q1)
   Дай все объекты с идентификатором ThisObject (Q2)
   Выбрать все договора входящие в Q2 (результат) и отобразить описания из Q1 и Q2.
А в шаблоне оставить только описания из Q1, а описание Q2 вынести 1 раз в шапку.
Надеюсь понятно =)
2) Со стороны TDMS не получится, пользуйтесь постобработкой со стороны Excel (макрос на событие)

Re: Создание команды класса отчет

Разбираюсь с отчетами в Excel..
Описанные тут примеры позволяет сделать исключительно простые отчет. Хотелось бы доработать отчеты. Шел несколькими путями.
1. Если выгружать через команду отчет, то данные выгружаются по несколько записей на каждой странице, соответственно их тяжело собирать для форматирования встроенным макросом в екселевскую книгу. Почему нельзя сделать выгрузку сплошной таблицей? Или я не разобрался?
Еще у меня была попытка спрятать код в екселе в надстройку, чтобы после выгрузке документа запускался код из надстройки, но надстройки не доступны.
2. Можно открывать Excel просто через команду, но в этом случае нет возможности воспользоваться файлом шаблона отчета. Все рисовать через VBS или VBA не удобно.

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

Re: Создание команды класса отчет

А есть ли в TDMS раннее связывание объектов?

Re: Создание команды класса отчет

1. Если выгружать через команду отчет, то данные выгружаются по несколько записей на каждой странице, соответственно их тяжело собирать для форматирования встроенным макросом в екселевскую книгу. Почему нельзя сделать выгрузку сплошной таблицей? Или я не разобрался?

Можно всё выкинуть "AsIs" - т.е. таблицей, а потом на другом листе всё форматировать - но опять же черезх VBS.

Еще у меня была попытка спрятать код в екселе в надстройку, чтобы после выгрузке документа запускался код из надстройки, но надстройки не доступны.

При запуске Excel через API, все надстройки автоматом отключаются - это фича Excel.

2. Можно открывать Excel просто через команду, но в этом случае нет возможности воспользоваться файлом шаблона отчета. Все рисовать через VBS или VBA не удобно.

Почему нет возможности пользоваться файлом шаблона? Еще как можно  :)
Шаблон поместить в команду, типа отчёт - Она автоматом выгрузится.

Template = ThisApplication.WorkFolder & "\" & ThisCommandSysId & "\" & "xxx.xls"

, где ThisCommandSysId = SysId команды.

А есть ли в TDMS раннее связывание объектов?

Совсем не понял в чём вопрос.

Re: Создание команды класса отчет

В этом топике уже было, если хотите чтобы сплошной таблицей выгружались данные - просто размножте строк этак 250-300 и всё будет нормально. Ещё можно воспользоватся отчётом типа List&Labels, он отлично формирует такие таблицы.

Re: Создание команды класса отчет

Edhunter пишет:

В этом топике уже было, если хотите чтобы сплошной таблицей выгружались данные - просто размножте строк этак 250-300 и всё будет нормально. Ещё можно воспользоватся отчётом типа List&Labels, он отлично формирует такие таблицы.

Спасибо, вроде проясняется...  :rolleyes: