Название элемента | В RTF файле | В INI файле | |
Обычный текст | Приказ № %1% от %2% | [HEADER] .имя таблицы PhysicalView=TableName .условие отбора записей .зависящее от параметра Conditions=”RegDate”=#1# [Attributes] %1%=Field1 %2%=Field2 | |
Значение параметра, поступающего из программы | За период с #1# по #2# | [Parameters] #1#=DATE #2#=DATE | |
Таблица | Номер документа | Краткое содержание | [HEADER] TablesCount=1 [Table 1 Attributes] $1$=DocN $2$=DescrDoc [Table 1 Header] .условие отбора записей .зависящее от значения поля 1 .из запроса созданного к элементу обычный текст Conditions="ID"=%1% PhysicalView=TableName StartRow=1 DBTable=1 SortField=""ID"" |
$1$ | $2$ | ||
Блок | &BLOCK1BEGIN& Пользователь ~1~ … &BLOCK1END& | [HEADER] BlocksCount=1 [Block 1 Attributes] ~1~=DocN [Table 1 Header] .условие отбора записей .зависящее от значения поля 1 .из запроса созданного к. элементу обычный текст Conditions="ID"=%1% PhysicalView=TableName SortField=""ID"" |
6.1.5. Проектирование окна запроса параметров отчета
Для обеспечения возможности создания отчетов в соответствии с параметрами, задаваемыми пользователем на форме ввода параметров, необходимо создать секции ParamsWindow и Parametrs в ini–файле отчета.
В секции Parametrs должны быть описаны типы данных используемых в секции ParamsWindow. Например:
[Parametrs]
#1#=Date
#2#=String
Далее необходимо создать описание окна ввода параметров в секции ParamsWindow.
Формат:
#1#=P1,P2…Pn
Значения параметров для каждого типа элемента управления представлены в Таблица 6.
Таблица 6 – Значения параметров для элементов управления
Параметр | Edit | Edit Date | Combo Box | Edit Number | Check Box | Combo Tree | Edit Button | Radio Group |
P1 | Тип элемента управления | |||||||
P2 | Заголовок параметра формирования отчета, связанного с элементом управления, выводимый на экран в окне параметров – текст без кавычек | |||||||
P3 | IsEmpty | TableID | IsEmpty | TableID | Список значений | |||
P4 | Break | InfoField | Break | InfoField | Кол–во колонок | |||
P5 | Width | KeyField | Width | KeyField | Break | |||
P6 | DefValue | IsEmpty | DefValue | ParentIDName | IsEmpty | Width | ||
P7 | Break | IsEmpty | Break | DefValue | ||||
P8 | Width | Break | Width | |||||
P9 | Condition | Width | Condition | |||||
P10 | DefValue | DefValue | ListStyle | |||||
P11 | MultiSelect | |||||||
P12 | KeyPressMode | |||||||
P13 | DefValue | |||||||
P14 | LinkForm | |||||||
P15 | ShowFullPath |
где:
· IsEmpty – признак обязательности ввода значения в форму запроса параметров отчета (CanEmpty – поле может быть пустым, NotEmpty – поле должно быть заполнено).
· Break – признак переноса элемента управления на форме на следующую строку (DoBreak – начать с новой строки, NoBreak – продолжать строку).
· Width – знаменатель дроби 1/n, характеризующей, какую часть окна занимает элемент управления, обычно – 1.
· DefValue – значение по умолчанию. Для элемента управления EditDate: если DefValue=now, то в поле подставляется текущая дата.
· TableID – название таблицы (представления) БД, из которой будут выбираться значения.
· InfoField – название поля таблицы (представления) БД (TableID), по которому будут выбираться значения.
· KeyField – ключевое поле таблицы (представления) БД (TableID) (ID, ObjectID и т. п.).
· Condition – условие отбора – SQL–выражение (например “ID”=1). Позволяет включать ссылку на параметр по умолчанию #8# (см. пример 1), означающий ID текущего пользователя.
· ParentIDName – название поля ссылки на родительскую запись (обычно – ParentID).
· ListStyle – вид формы для выбора значений (Grid – таблица, Tree – дерево, ListBox – список, CheckList – список с полями для выбора).
· MultiSelect – признак возможности выбора нескольких значений (Multi – разрешать выбор нескольких значений).
· KeyPressMode – автоподбор (kpmFirst – по первым символам, kpmContext – по вхождению подстроки, kpmExit – при выходе из поля).
· LinkForm – название класса формы, которая используется для выбора значений (TLDSelectUserDlg, TLDSelectPartnerDlg, TLDSelectOrgPartnerDlg и т. п.). По умолчанию используется универсальная форма.
· ShowFullPath – признак, показывать ли полный путь для выбранного элемента. Применяется в иерархических справочниках (1 – показывать полный путь).
Примеры заполнения секции ParamsWindow:
Пример 1
#1#=EditDate, C:,NoBreak,2,NotEmpty
#2#=EditDate, По:,NoBreak,2,NotEmpty
#3#=ComboTree, Департамент:,ADM_ViewDepartment, Name, ID, ParentID, NotEmpty, DoBreak,1
#3#=ComboBox, Журнал:,LDJournal, Name, ID, Any, NoBreak,1,"ID" IN (SELECT "ObjectID" from "DBO".LDRightObject where "MemberID"=#8#)
Пример 2
#1#=EditDate, С:,DoBreak,1
#2#=EditDate, По:,DoBreak,1
#5#=ComboBox, Подразделение:,ADM_ViewDepartment, Name, ID, Any, DoBreak,1
Пример 3
#1#=EditButton, Сотрудник:,ADM_ViewAllUser, Name, ID, CanEmpty, NoBreak,1,"StateID"=1,Grid, Multi, kpmFirst,1000,TLDSelectUserDlg
#2#=EditButton, Рубрика:,ADM_ViewRubric, Name, ID, NotEmpty, DoBreak,1,,Tree, Multi, kpmContext,,,1
#3#=RadioGroup, Сортировка:,Срок исполнения. Адресат,1,DoBreak,1,0
#4#=CheckBox, Доп. параметр:,CanEmpty, DoBreak,1,–
6.2. Проектирование шаблонов отчетов в среде MS Excel
Шаблоны отчетов в формате MS Excel представляют собой файлы инициализации, строящиеся по тем же принципам, что и файлы инициализации для шаблонов отчетов в формате WinWord. Отличие состоит в том, что при описании структуры отчета в заголовке таблицы должны указываться заголовки столбцов (см. пример). Порядок следования описаний столбцов в файле инициализации определяет порядок расположения столбцов в таблице Excel. Формирование отчета происходит следующим образом: в таблицу выводятся заголовки столбцов в порядке следования строк в файле инициализации, затем выводятся данные таблицы.
Пример
[HEADER]
.Отчет в формате EXCEL
PhysicalView=lderc
Conditions=
Name=Статистика по договорам
TablesCount=1
BlocksCount=0
DoLog=1
[ParamsWindow]
Name=Статистика по договорам
#1#=EditDate, C:,DoBreak,2
#2#=EditDate, По:,NoBreak,2
[Attributes]
[Parameters]
#1#=DATE
#2#=DATE
#8#=INT
[Table 1 Header]
Conditions=EXISTS(SELECT "ID" from "DBO".lderc where "JournalID"=87646 AND "DocumTypeID"="DBO".ADM_ViewDocumType."ID")
Name=Статистика по договорам c #1# по #2#
PhysicalView=ADM_ViewDocumType
StartRow=1
DBTable=1
SortField=""Name""
Comment=Журнал
.Заголовки столбцов
$1$=Тип документа
$19$=Итого
$2$=Управление делами
$3$=Управление по информации и связям с общ.
$4$=Упр. Операций с ценными бумагами
$5$=Отдел организации работы депоз и регис БМ
$6$=Упр. По работе с долговыми обяз. Банка
$7$=Упр. Корреспондентских отношений
$8$=ДКО
$9$=Упр. Кредитных рисков
$10$=Упр. По работе с доч. Структ
$11$=Служба безопасности
$12$=Упр. Пластиковых карт
$13$=Упр. Внутреннего контроля
$14$=Упр. По работе с персоналом
$15$=Деп–т по работе с региональной сетью
$16$=Деп–т информац технологий
$17$=Упр. По работе с недвиж. имуществом
$18$=Отделения
[Table 1 Attributes]
.Данные таблицы
$1$=Name
$19$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646
$2$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '10–204'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$3$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '20–202'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$4$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '11–206'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$5$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '11–331'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$6$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '11–207'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$7$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '11–208'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$8$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND "ID" in (select "ERCID" from "DBO".viewlddogovor where "AddIndex" like '14%')
$9$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '13–380'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$10$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '13–220'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$11$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '10–224'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$12$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '17–226'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$13$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '10–228'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$14$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '18–233'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
$15$=@COUNT, lderc,"DocumTypeID"=$20$ AND "JournalID"=87646 AND '12–104'=(select "AddIndex" from "DBO".viewlddogovor where "ERCID"="DBO".lderc."ID")
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 |


