Редактирование печатных форм — различия между версиями
Alexandr (обсуждение | вклад) |
Bars (обсуждение | вклад) |
||
(не показано 13 промежуточных версий 4 участников) | |||
Строка 3: | Строка 3: | ||
Рассмотрим создание и изменение ПФ с разными структурами и формами представления данных. | Рассмотрим создание и изменение ПФ с разными структурами и формами представления данных. | ||
− | + | == Отчет с одним уровнем данных (список) == | |
Это самый простой вид отчета. Для его создания необходимо разместить на листе дата-[[Бэнды|бэнд]] типа "Detail" и поместить в него объекты (или создать колонки) со ссылками на нужные данные. Бэнд необходимо подключить к соответствующему источнику данных. Выбор и вставка нового элемента производится с помощью панели инструментов, расположенной слева. | Это самый простой вид отчета. Для его создания необходимо разместить на листе дата-[[Бэнды|бэнд]] типа "Detail" и поместить в него объекты (или создать колонки) со ссылками на нужные данные. Бэнд необходимо подключить к соответствующему источнику данных. Выбор и вставка нового элемента производится с помощью панели инструментов, расположенной слева. | ||
Строка 10: | Строка 10: | ||
− | + | [[File:Пример ПФ с одним уровнем данных.txt]] | |
+ | |||
+ | == Отчет с двумя уровнями данных == | ||
Используется, например, для печати сертификатов по товарным строкам в документе (у одного товара может быть несколько сертификатов). | Используется, например, для печати сертификатов по товарным строкам в документе (у одного товара может быть несколько сертификатов). | ||
Строка 18: | Строка 20: | ||
− | + | [[File:Пример ПФ с двумя уровнями данных.txt]] | |
+ | |||
+ | == Многоколоночный отчет == | ||
Если в обычном отчете при достижении конца страницы формирование продолжается с нового листа, то в многоколоночном - на том же листе, но рядом, т.е. в несколько смежно расположенных колонок. Количество колонок задается в опциях страницы (ColumnsCount). Обычный отчет можно превратить в многоколоночный, всего лишь задав количество колонок в опциях страницы. Типы бэнда "column header" и "column footer" позволяют снабдить каждую колонку заголовком и нижней частью. | Если в обычном отчете при достижении конца страницы формирование продолжается с нового листа, то в многоколоночном - на том же листе, но рядом, т.е. в несколько смежно расположенных колонок. Количество колонок задается в опциях страницы (ColumnsCount). Обычный отчет можно превратить в многоколоночный, всего лишь задав количество колонок в опциях страницы. Типы бэнда "column header" и "column footer" позволяют снабдить каждую колонку заголовком и нижней частью. | ||
Строка 25: | Строка 29: | ||
− | + | == Композитный (составной) отчет == | |
− | Композитный отчет позволяет получить отчет, состоящий из нескольких других. Для этого нужно | + | Композитный отчет позволяет получить отчет, состоящий из нескольких других. Для этого нужно создать «Пакетную» форму, и с помощью окна свойств заполнить список печатных форм на закладке "Пакет форм" (свойство Reports) ссылками на отчеты, которые нужно объединить в один. А так же условия печати и кол-во копий, порядок печати и имена принтеров, на которые будет печататься ПФ. |
[[FILE:PacketPF.png]] | [[FILE:PacketPF.png]] | ||
+ | Параметры: | ||
+ | :'''Источник''' - источник данных. Указывается, если перед печатью форм необходимо посчитать условие печати, в котором используются поля из указанного источника. | ||
+ | :'''Делать копию для работы''' - Делать копию источника данных при работе. Используется, если создаются переменные в указанном источнике. | ||
+ | :'''Список печатных форм''' - ссылки на печатные формы. Содержит следующие поля: | ||
+ | ::''Форма'' - имя печатной формы. | ||
+ | ::''Условия печати'' - условие, при котором будет печататься выбранная форма. Например, (Partner.City.Node=369), могут использоваться стандартные запросы ГБ. | ||
+ | ::''Копий'' - количество печатаемых копий. | ||
+ | ::''Принтер'' - принтерная "шара", т.е. имя принтера в сети (или локально), на который будет печататься форма. По умолчанию печатается на принтер, установленный в настройках операционной системы, либо на принтер, выбранный для пакетной формы. | ||
+ | ::''Порядок печати'' - порядок вывода печатных форм: | ||
+ | :::Before All - перед всеми; | ||
+ | :::For Each - для каждого документа (если используется групповая печать), используется по умолчанию; | ||
+ | :::AfterAll - после всех. | ||
− | + | == Отчет с предустановкой == | |
Такую возможность можно использовать только при печати результатов какого либо отчета. В ГБ существует возможность настраивать полученные результаты отчета по своему усмотрению - выбирать колонки, выполнять дополнительные расчеты, сортировать, группировать. При этом окончательный вид-представление результатов можно сохранить в БД в виде [[Предустановки|«предустановки»]]. Перед печатью результатов отчета, существует возможность вызвать сохраненную настройку таблицы и только после этого начинать формирование печатного отчета. Такой меанизм удоюно использовать на отчетах, которые формируются «на лету», т.е. кол-во колонок в ПФ не задано жестко, а при печати делается как бы копия исходной таблицы. | Такую возможность можно использовать только при печати результатов какого либо отчета. В ГБ существует возможность настраивать полученные результаты отчета по своему усмотрению - выбирать колонки, выполнять дополнительные расчеты, сортировать, группировать. При этом окончательный вид-представление результатов можно сохранить в БД в виде [[Предустановки|«предустановки»]]. Перед печатью результатов отчета, существует возможность вызвать сохраненную настройку таблицы и только после этого начинать формирование печатного отчета. Такой меанизм удоюно использовать на отчетах, которые формируются «на лету», т.е. кол-во колонок в ПФ не задано жестко, а при печати делается как бы копия исходной таблицы. | ||
Для этого необходимо сохранить предустановку, потом узнать ее код (в свойствах отчета, закладка «Предустановки»), и указать его в ПФ: | Для этого необходимо сохранить предустановку, потом узнать ее код (в свойствах отчета, закладка «Предустановки»), и указать его в ПФ: | ||
− | object TGBReport | + | :object TGBReport |
− | :Caption = 'DemandPreSet(Код_предустановки)' | + | ::Caption = 'DemandPreSet(Код_предустановки)' |
+ | == Отчет с группами == | ||
− | + | Группы применяются для группировки строк данных с использованием некоторого критерия. В качестве критерия обычно выступает выражение, основанное на полях из набора данных. При формировании отчета отслеживается значение критерия, и как только оно изменится, формируется новая группа данных. | |
− | |||
− | Группы применяются для группировки строк данных с использованием некоторого критерия. В качестве критерия обычно выступает выражение, основанное на полях из набора данных. При формировании отчета отслеживается значение критерия, и как только оно изменится, формируется | ||
Для построения отчета необходимо: | Для построения отчета необходимо: | ||
Строка 49: | Строка 64: | ||
* назначить один и тот же источник данных для обоих бэндов, затем в редакторе бэнда "DetailGroupBand" указать в «Группировать по полям» условие группировки. Например, чтобы распечатать список сотрудников в сгруппированном виде (группировка по названию папки, где находится партнер), надо указать примерно такое условие группировки: “Partner.Node.Name”. При изменении этого условия будет сформирована новая группа. | * назначить один и тот же источник данных для обоих бэндов, затем в редакторе бэнда "DetailGroupBand" указать в «Группировать по полям» условие группировки. Например, чтобы распечатать список сотрудников в сгруппированном виде (группировка по названию папки, где находится партнер), надо указать примерно такое условие группировки: “Partner.Node.Name”. При изменении этого условия будет сформирована новая группа. | ||
− | + | При группировке источник для мастера называется Aggregate+название источника “DetailGroupBand”, например AggregateGoodies. | |
− | + | ||
− | + | [[File:Пример отчета с группировкой.txt]] | |
+ | |||
+ | Если нужно сгруппировать данные по какому либо полю в одну строку, то можно для бэнда “GroupBand” указать тип представления “FieldsCollection” и создать в нем таблицу, а для “DetailGroupBand” оставить высоту печати равной нулю. Чтобы в датасете мастера суммировать нужные поля, у них должны быть сущности fmQuantity, fmAmount или fmAggregateFixed. | ||
+ | |||
+ | [[File:Пример отчета с группировкой в одну строку.txt]] | ||
+ | |||
+ | == Использование произвольных датасетов == | ||
+ | |||
+ | Если возникла необходимость напечатать ПФ на собственном датасете, то нужно воспользоваться следующей схемой: | ||
+ | # Создать печатную форму, добавить необходимые бэнды. | ||
+ | # В самой печатной форме в «Скрипте перед печатью» создать и заполнить данными собственный датасет. | ||
+ | # После этого присвоить переменной :ChangeDataSetName имя собственного датасета. | ||
+ | |||
+ | При печати датасет, указанный в качестве источника самой печатной формы и DetailBand’а, подменится на датасет из переменной :ChangeDataSetName | ||
+ | |||
+ | [[File:Пример ПФ с ChangeDataSetName.txt]] |
Текущая версия на 08:52, 11 октября 2013
Рассмотрим создание и изменение ПФ с разными структурами и формами представления данных.
Содержание
Отчет с одним уровнем данных (список)
Это самый простой вид отчета. Для его создания необходимо разместить на листе дата-бэнд типа "Detail" и поместить в него объекты (или создать колонки) со ссылками на нужные данные. Бэнд необходимо подключить к соответствующему источнику данных. Выбор и вставка нового элемента производится с помощью панели инструментов, расположенной слева.
Файл:Пример ПФ с одним уровнем данных.txt
Отчет с двумя уровнями данных
Используется, например, для печати сертификатов по товарным строкам в документе (у одного товара может быть несколько сертификатов). Для построения этого отчета необходимо разместить на листе бэнды "МастерБэнд" и "ДетайлБэнд", затем поместить в них объекты со ссылками на нужные данные. Следует отметить, что таблицы (или запросы), на которых строится такой отчет, должны быть связаны отношением master-detail.
Отчет будет формироваться до тех пор, пока есть данные для master. Если надо, чтобы master с его подчиненным списком печатался с нового листа, установите для бэнда флажок "С новой страницы" (ForceNewPage=True).
Файл:Пример ПФ с двумя уровнями данных.txt
Многоколоночный отчет
Если в обычном отчете при достижении конца страницы формирование продолжается с нового листа, то в многоколоночном - на том же листе, но рядом, т.е. в несколько смежно расположенных колонок. Количество колонок задается в опциях страницы (ColumnsCount). Обычный отчет можно превратить в многоколоночный, всего лишь задав количество колонок в опциях страницы. Типы бэнда "column header" и "column footer" позволяют снабдить каждую колонку заголовком и нижней частью.
Визуально ширина получаемой колонки показывается в редакторе в виде красной вертикальной пунктирной линии.
Композитный (составной) отчет
Композитный отчет позволяет получить отчет, состоящий из нескольких других. Для этого нужно создать «Пакетную» форму, и с помощью окна свойств заполнить список печатных форм на закладке "Пакет форм" (свойство Reports) ссылками на отчеты, которые нужно объединить в один. А так же условия печати и кол-во копий, порядок печати и имена принтеров, на которые будет печататься ПФ.
Параметры:
- Источник - источник данных. Указывается, если перед печатью форм необходимо посчитать условие печати, в котором используются поля из указанного источника.
- Делать копию для работы - Делать копию источника данных при работе. Используется, если создаются переменные в указанном источнике.
- Список печатных форм - ссылки на печатные формы. Содержит следующие поля:
- Форма - имя печатной формы.
- Условия печати - условие, при котором будет печататься выбранная форма. Например, (Partner.City.Node=369), могут использоваться стандартные запросы ГБ.
- Копий - количество печатаемых копий.
- Принтер - принтерная "шара", т.е. имя принтера в сети (или локально), на который будет печататься форма. По умолчанию печатается на принтер, установленный в настройках операционной системы, либо на принтер, выбранный для пакетной формы.
- Порядок печати - порядок вывода печатных форм:
- Before All - перед всеми;
- For Each - для каждого документа (если используется групповая печать), используется по умолчанию;
- AfterAll - после всех.
Отчет с предустановкой
Такую возможность можно использовать только при печати результатов какого либо отчета. В ГБ существует возможность настраивать полученные результаты отчета по своему усмотрению - выбирать колонки, выполнять дополнительные расчеты, сортировать, группировать. При этом окончательный вид-представление результатов можно сохранить в БД в виде «предустановки». Перед печатью результатов отчета, существует возможность вызвать сохраненную настройку таблицы и только после этого начинать формирование печатного отчета. Такой меанизм удоюно использовать на отчетах, которые формируются «на лету», т.е. кол-во колонок в ПФ не задано жестко, а при печати делается как бы копия исходной таблицы. Для этого необходимо сохранить предустановку, потом узнать ее код (в свойствах отчета, закладка «Предустановки»), и указать его в ПФ:
- object TGBReport
- Caption = 'DemandPreSet(Код_предустановки)'
Отчет с группами
Группы применяются для группировки строк данных с использованием некоторого критерия. В качестве критерия обычно выступает выражение, основанное на полях из набора данных. При формировании отчета отслеживается значение критерия, и как только оно изменится, формируется новая группа данных.
Для построения отчета необходимо:
- разместить на листе бэнды “GroupBand”, “DetailGroupBand”;
- назначить один и тот же источник данных для обоих бэндов, затем в редакторе бэнда "DetailGroupBand" указать в «Группировать по полям» условие группировки. Например, чтобы распечатать список сотрудников в сгруппированном виде (группировка по названию папки, где находится партнер), надо указать примерно такое условие группировки: “Partner.Node.Name”. При изменении этого условия будет сформирована новая группа.
При группировке источник для мастера называется Aggregate+название источника “DetailGroupBand”, например AggregateGoodies.
Файл:Пример отчета с группировкой.txt
Если нужно сгруппировать данные по какому либо полю в одну строку, то можно для бэнда “GroupBand” указать тип представления “FieldsCollection” и создать в нем таблицу, а для “DetailGroupBand” оставить высоту печати равной нулю. Чтобы в датасете мастера суммировать нужные поля, у них должны быть сущности fmQuantity, fmAmount или fmAggregateFixed.
Файл:Пример отчета с группировкой в одну строку.txt
Использование произвольных датасетов
Если возникла необходимость напечатать ПФ на собственном датасете, то нужно воспользоваться следующей схемой:
- Создать печатную форму, добавить необходимые бэнды.
- В самой печатной форме в «Скрипте перед печатью» создать и заполнить данными собственный датасет.
- После этого присвоить переменной :ChangeDataSetName имя собственного датасета.
При печати датасет, указанный в качестве источника самой печатной формы и DetailBand’а, подменится на датасет из переменной :ChangeDataSetName