Тема: Создание команды класса отчет
нужен пример простой команды класса отчет, где есть выборка, есть файл и есть скрипт, который просто выводит все строки выборки.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы TDMS → Технический раздел → Программирование → Создание команды класса отчет
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
нужен пример простой команды класса отчет, где есть выборка, есть файл и есть скрипт, который просто выводит все строки выборки.
Вот пожалуйста. Выборка выводит все объекты типа "Тестовый объект" с ненулевым статусом. Скрипт выводит окошко со списком описаний этих объектов. Файл - просто файл Excel. Если потребуется, можно в него добавить какое-то форматирование.
Какая у Вас сборка TDMS ? Ключевое слово ThisSheet должно подсвечиватся в редакторе скриптов красным цветом.
В приложенном файле ещё один пример отчёта, немного поразвёрнутей.
Выбираются объекты, в коде команды удаляются строки объектов не в конечном статусе, а в самом файле отчёта содержится дополнительный макрос, который раскрашивает все записи в первой колонке красным цветом.
Надеюсь поможет разобратся.
спасибо, работает если выполнение команды не запускать из скрипта :)
Как можно повлиять на заполнение файла Excel из команды типа "Отчет"? Скажем, чтобы строки начали заполняться не самого верху, а отступив несколько строк. То же самое с колонками?
В третьей версии для создания команды класса отчёт лучше всего воспользоваться мастером создания отчётов.
После того как вы укажите используемую выборку, переходите к редактированию шаблона Excel
Здесь можно задать имена колонок (заменить С1), а так же определить колличество элементов выводимых на одном листе (просто скопировав строку нужное колличество раз), шапку листа и т.д.
В третьей версии для создаия команды класса отчёт лучше всего воспользовать мастером создания отчётов.
...
Спасибо, с рядами теперь все понятно.
Возникли следующие вопросы (TDMS 3.0.126, WinXP + Excel 2003):
1) Не совсем ясен алгоритм, по которому генерируются следующие страницы отчета.
2) создается по 2 процесса Excel (один с пустым листом, затем уже второй непосредственно с отчетом). Глюк?
3) Несколько раз отредактировал шаблон, после этого TDMS стал вылетать при запуске отчета. Пришлось удалить шаблон и создать заново.
Как-то нестабильно работает такой вариант создания отчета.
Что лучше: попробовать List & Labels (где можно доку по нему почитать?) или сразу взяться за "низкоуровневое" формирование отчета в Excel?
1) Последующие страницы генерируются в точности как первая, т.е. вместе с шапкой, футером и т.д. Если вам этого ненадо, то просто скопируйте строки на несколько страниц (сколько надо).
2) Непонятно почему такое поведение. Второй Excel возможно возникает из за кода команды. Надо проверять.
3) Не сталкивался с подобным поведением... Если сможете выделить закономерности - буду признателен =) и скорее всего будет поправлено в следующих билдах.
List & Labels тоже хороший вариант. Лично мне привычней и удобней использовать Excel, но выбор за вами.
P.S.: Документацию придётся искать в интернете.
...
2) Непонятно почему такое поведение. Второй Excel возможно возникает из за кода команды. Надо проверять.
...
Спешу извиниться, действительно сам виноват, запускал Excel в коде команды.
У меня ситуация такая: есть иерархия объектов:
-Объект строительства
----Папка договоров
--------Договор1
--------Договор2
--------Договор3
и мне в отчете (MS Excel), который вызывается из "Объекта строительства" нужно в шапке указать описание "Объекта строительства", а в строках таблицы атрибуты объектов Договор1, Договор2...
Строки в таблицу загоняются, а вот с шапкой проблемы - непонятно, как загнать туда описание "Объекта строительства"?
Вдогонку к предыдущему посту:
хотелось бы совместить самостоятельное управление листом Excel с удобством шаблонов, которые есть в команде типа Отчет. Такое возможно?
в TDMS API я к сожалению не нашел доступа к шаблонам отчета
1) Как вариант, можно немного изменить выборку, на составную. Примерно так:
Дай все объекты типа договор (Q1)
Дай все объекты с идентификатором ThisObject (Q2)
Выбрать все договора входящие в Q2 (результат) и отобразить описания из Q1 и Q2.
А в шаблоне оставить только описания из Q1, а описание Q2 вынести 1 раз в шапку.
Надеюсь понятно =)
2) Со стороны TDMS не получится, пользуйтесь постобработкой со стороны Excel (макрос на событие)
Разбираюсь с отчетами в Excel..
Описанные тут примеры позволяет сделать исключительно простые отчет. Хотелось бы доработать отчеты. Шел несколькими путями.
1. Если выгружать через команду отчет, то данные выгружаются по несколько записей на каждой странице, соответственно их тяжело собирать для форматирования встроенным макросом в екселевскую книгу. Почему нельзя сделать выгрузку сплошной таблицей? Или я не разобрался?
Еще у меня была попытка спрятать код в екселе в надстройку, чтобы после выгрузке документа запускался код из надстройки, но надстройки не доступны.
2. Можно открывать Excel просто через команду, но в этом случае нет возможности воспользоваться файлом шаблона отчета. Все рисовать через VBS или VBA не удобно.
Подскажите как лучше реализовать следующий алгоритм?
Есть выборка. Выгружаются в Excel данные и шаблон форматирования. После запускается программа, которая рисует сложный отчет.
А есть ли в TDMS раннее связывание объектов?
1. Если выгружать через команду отчет, то данные выгружаются по несколько записей на каждой странице, соответственно их тяжело собирать для форматирования встроенным макросом в екселевскую книгу. Почему нельзя сделать выгрузку сплошной таблицей? Или я не разобрался?
Можно всё выкинуть "AsIs" - т.е. таблицей, а потом на другом листе всё форматировать - но опять же черезх VBS.
Еще у меня была попытка спрятать код в екселе в надстройку, чтобы после выгрузке документа запускался код из надстройки, но надстройки не доступны.
При запуске Excel через API, все надстройки автоматом отключаются - это фича Excel.
2. Можно открывать Excel просто через команду, но в этом случае нет возможности воспользоваться файлом шаблона отчета. Все рисовать через VBS или VBA не удобно.
Почему нет возможности пользоваться файлом шаблона? Еще как можно :)
Шаблон поместить в команду, типа отчёт - Она автоматом выгрузится.
Template = ThisApplication.WorkFolder & "\" & ThisCommandSysId & "\" & "xxx.xls"
, где ThisCommandSysId = SysId команды.
А есть ли в TDMS раннее связывание объектов?
Совсем не понял в чём вопрос.
В этом топике уже было, если хотите чтобы сплошной таблицей выгружались данные - просто размножте строк этак 250-300 и всё будет нормально. Ещё можно воспользоватся отчётом типа List&Labels, он отлично формирует такие таблицы.
В этом топике уже было, если хотите чтобы сплошной таблицей выгружались данные - просто размножте строк этак 250-300 и всё будет нормально. Ещё можно воспользоватся отчётом типа List&Labels, он отлично формирует такие таблицы.
Спасибо, вроде проясняется... :rolleyes:
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы TDMS → Технический раздел → Программирование → Создание команды класса отчет
Форум работает на PunBB, при поддержке Informer Technologies, Inc