Текстовые отчеты¶
Общие сведения¶
Данная функция предназначена для формирования отчета в виде текстового файла с фиксированными позициями выводимых значений. Поля отчета выводятся в одну строку, причем в каждой строке поля ограничиваются одними и теми же позициями и выводятся с использованием одного и того же формата, иными словами, отчет выглядит как таблица.
Отчеты формируются на основе заранее созданных шаблонов. Шаблон задает состав полей, их размещение (порядок, позиции начала и конца) и настройки форматирования выводимых значений.
Например, шаблон может описывать три поля, в первом из которых выводится время начала воспроизведения фонограммы, во втором - название музыкальной композиции, выровненное по правой границе поля, а в третьем - длительность проигрывания данной фонограммы с указанием минут, секунд и десятых долей секунды. Пример отчета, полученного с использованием такого шаблона, представлен ниже:
17:23:36 Трек 12 00:08.0
17:23:42 Under the Influence 00:08.1
17:23:49 Hey Boy Hey Girl 00:08.9
17:23:57 Music: response 00:03.9
17:29:41 Under the Influence 01:18.3
18:23:07 Трек 1 01:12.7
18:24:19 Трек 2 01:20.1
18:25:38 Трек 3 03:23.3
18:29:00 Around The World 04:29.9
18:33:28 One More Time 02:45.7
Окно генерации отчетов выглядит следующим образом:
В верхнем списке выбирается название используемого шаблона, в поле под ним указывается путь к файлу отчета, который следует записать.
После нажатия на кнопку "ОК" произойдет создание отчета.
Список шаблонов формируется на основе файлов шаблонов (с расширением "plrt"), найденных в папке SYSTEM/REPORTS внутри папки с установленным приложением.
Если ни один из существующих шаблонов не подходит для получения отчета в желаемом виде, то пользователь может самостоятельно создать новый шаблон или изменить существующий.
Редактор шаблонов¶
Для создания и редактирования шаблонов предлагается редактор. Окно редактора вызывается при нажатии на кнопку "Изменить" в предыдущем окне и выглядит следующим образом:
Основное пространство в окне редактора занимает таблица полей. Каждое поле шаблона представлено строкой таблицы, в которой перечисляются характеристики этого поля.
Под таблицей находятся кнопки добавления и удаления полей шаблона. Для добавления поля достаточно нажать на кнопку "Добавить поле", при этом новое поле помещается в конец списка, после чего его можно будет редактировать. Для удаления следует предварительно выбрать конкретное поле (строку таблицы), затем нажать на кнопку "Удалить поле".
Поле шаблона описывается рядом свойств, каждому из которых соответствует столбец в таблице полей. Для редактирования свойства достаточно щелкнуть левой кнопкой мыши на соответствующей колонке в строке, определяющей поле шаблона, после чего прямо поверх таблицы откроется редактор свойства. В зависимости от колонки это может быть либо редактор строки, в котором можно вводить текст, либо ниспадающий список, в котором следует выбрать одно из предлагаемых значений. Измененное значение сохраняется при нажатии на клавишу "Ввод" во время редактирования текста, при выборе пункта в списке, либо переходе на любой другой элемент управления в окне, включая другую строку или столбец таблицы. Для отказа от ввода или выбора нового значения можно нажать клавишу "Esc".
Исключением является первый столбец в таблице, в котором выводится номер строки: произвольно редактировать его нельзя.
Редактор позволяет указать следующие свойства поля:
- Название. Название поля служит для удобства пользователя и имеет лишь справочное значение.
- Значение. Самое важное свойство поля, определяющее, значение какого именно параметра будет выведено в данном поле. В списке доступных параметров перечислены как пользовательские атрибуты воспроизводимой фонограммы (отмечены префиксом "ATTRIBUTE:"), так и определяемые самим приложением параметры воспроизведения (отмечены префиксом "FIELD:"). Перечень последних с объяснением их значений приведен ниже.
- Формат. Позволяет задать форматную строку для уточнения вида, в котором выводится значение поля. Это свойство игнорируется для полей, в которых выводятся простые текстовые значения; оно имеет смысл лишь для числовых значений, периодов времени и дат.
- Регистр вывода. Определяет регистр, в котором выводится текст в данном поле.
- Позиция. Содержит позицию первого символа поля.
- Длина. Содержит значение длины поля (в символах).
- Конец. Содержит позицию последнего символа поля. Значение конца поля обновляется соответствующим образом после изменения позиции или длины и, наоборот, значение длины обновляется, если поле "Конец" было отредактировано вручную.
- Выравнивание. Позволяет определить вид выравнивания выводимого значения в пределах поля в случае, если длина выводимой строки меньше длины поля.
- Символ дополнения. Позволяет задать символ, которым заполняется незанятый остаток поля в том случае, если длина выводимого значения меньше, чем длина поля.
- Пустое поле. Позволяет задать строку замещения, подставляемую в поле в случае, если значение не удалось определить, либо если значением в каком-то случае окажется пустая строка. Строка замещения может быть короче длины поля. Если она будет задана более длинной, чем поле, часть ее будет обрезана.
- Константа. Позволяет задать строку, подставляемую в поле в любом случае. Если задана константная строка, то свойство "значения" поля игнорируется.
Пример создания шаблона¶
Для примера рассмотрим создание шаблона, описанного ранее. Нам нужен отчет, в котором выводятся три значения для каждой из проигранных фонограмм:
- время начала воспроизведения,
- название композиции, выровненное по правому краю,
- длительность проигрывания с указанием минут, секунд и десятых долей секунды.
Создадим первое поле и назовем его "Начало". Для вывода времени начала проигрывания установим в столбце значения ключ "FIELD:EventTime". Зададим для этого поля стандартный для времени формат "%H:%M:%S" (т.е. вывод часов, минут и секунд, разделенных знаками ":"). Длина поля должна быть не менее 8 символов (по две цифры на часы, минуты и секунды, и два разделителя).
Добавим второе поле - "Название". В столбце значения установим ключ "FIELD:ElemName". Укажем такую позицию начала поля, чтобы оно располагалось справа от предыдущего, и достаточную для вывода названия фонограммы длину (например, 40). Чтобы название было выровнено по правой границе поля, установим соответствующий тип выравнивания.
Третье поле, - назовем его "Продолжительность", - будет содержать ключ "FIELD:ElemPlaySize" и использовать формат вида "%M:%S.%1" (т.е. вывод минут, секунд и десятых долей секунды, разделенных символами ":" и ‘.’). Длина поля должна быть не менее 7 (по две цифры на минуты и секунды, одна цифра десятых секунды и два разделителя). Так как второе поле будет выровнено по правому краю, для удобства чтения отчета человеком установим позицию поля в некотором отдалении от правой границы предыдущего.
Примерный вид созданного таким образом шаблона в редакторе:
Сохраним шаблон под удобным для нас именем и закроем редактор. Имя нового шаблона должно было появится в списке окна генерации отчетов. Выбрав его из списка и указав путь к файлу отчета, мы можем теперь нажать на кнопку "ОК" и отчет будет создан в соответствии с разработанным нами шаблоном.
Параметры фонограммы, доступные для использования в шаблонах¶
Type | |
SkipIt | |
Player | |
PlayerScheduleName | |
EventTime | Время события, отмеченного логом вещания |
EventTimeNoDate | |
EventDate | |
FaderState | |
PlaylistFile | |
PlaylistName | |
PlaylistDate | |
PlaylistMedia | |
PlaylistCassete | |
BlockName | |
BlockTime | |
BlockDefSize | |
BlockSize | |
BlockType | |
BlockTypeName | |
BlockFlags | |
BlockDescr | |
BlockComment | |
BlockSizeError | |
BlockStartTimeCode | |
BlockStopTimeCode | |
BlockLengthTimeCode | |
BlockMediaId | |
BlockItemCount | |
BlockBeginTC | |
BlockEndTC | |
BlockLenTC | |
ElemName | Название композиции |
ElemFile | Полный путь к проигранному медиафайлу |
ElemShortFile | Название проигранного медиафайла |
ElemArtist | Имя исполнителя |
ElemAuthor | Имя автора |
ElemAlbum | Название альбома |
ElemYear | |
ElemPublisher | |
ElemLCCode | |
ElemCDTrackId | |
ElemLength | Длительность фонограммы |
ElemPlaySize | Действительная длительность проигрывания фонограммы |
ElemPlayOffAir | |
ElemPlayPerc | |
ElemClass | |
ElemStartTime | Время начала проигрывания, согласно расписанию |
ElemEndTime | Время окончания проигрывания, согласно расписанию |
ElemStopTime | Действительное время окончания проигрывания |
ElemID | |
ElemCategory | |
ElemPhType | |
ElemFixTimeMarker | |
ElemCmdFlags | |
ElemIsFirst | |
ElemFreq | |
ElemStartLabel | |
ElemStopLabel | |
ElemIntro1Label | |
ElemIntro2Label | |
ElemIntro3Label | |
ElemStartNextLabel | |
ElemStartThisLabel | |
ElemLengthToStartNext | |
ElemMediaId | |
ElemStartTimeCode | |
ElemStopTimeCode | |
ElemLengthTimeCode | |
ElemStartOnArcTape | |
ElemFirstReportLine | |
ElemLastReportLine | |
ElemAirDate | |
ElemOrder | |
ElemIdNumber | |
ElemIdVersion | |
ElemDbId | |
ElemBackupTC | |
ElemBackupLen | |
ElemStartTC |