Редактирование печатных форм — различия между версиями

Материал из GB wiki
Перейти к: навигация, поиск
 
Строка 71: Строка 71:
  
 
[[File:Пример отчета с группировкой в одну строку.txt]]
 
[[File:Пример отчета с группировкой в одну строку.txt]]
 +
 +
== Использование произвольных датасетов ==
 +
 +
Если возникла необходимость напечатать ПФ на собственном датасете, то нужно воспользоваться следующей схемой:
 +
# Создать печатную форму, добавить необходимые бэнды.
 +
# В самой печатной форме в «Скрипте перед печатью» создать и заполнить данными собственный датасет.
 +
# После этого присвоить переменной :ChangeDataSetName имя собственного датасета.
 +
 +
При печати датасет, указанный в качестве источника самой печатной формы и DetailBand’а, подменится на датасет из переменной :ChangeDataSetName
 +
 +
[[File:Пример ПФ с ChangeDataSetName.txt]]

Текущая версия на 08:52, 11 октября 2013


Рассмотрим создание и изменение ПФ с разными структурами и формами представления данных.

Отчет с одним уровнем данных (список)

Это самый простой вид отчета. Для его создания необходимо разместить на листе дата-бэнд типа "Detail" и поместить в него объекты (или создать колонки) со ссылками на нужные данные. Бэнд необходимо подключить к соответствующему источнику данных. Выбор и вставка нового элемента производится с помощью панели инструментов, расположенной слева.

Окно редактирования ПФ.png


Файл:Пример ПФ с одним уровнем данных.txt

Отчет с двумя уровнями данных

Используется, например, для печати сертификатов по товарным строкам в документе (у одного товара может быть несколько сертификатов). Для построения этого отчета необходимо разместить на листе бэнды "МастерБэнд" и "ДетайлБэнд", затем поместить в них объекты со ссылками на нужные данные. Следует отметить, что таблицы (или запросы), на которых строится такой отчет, должны быть связаны отношением master-detail.

Отчет будет формироваться до тех пор, пока есть данные для master. Если надо, чтобы master с его подчиненным списком печатался с нового листа, установите для бэнда флажок "С новой страницы" (ForceNewPage=True).


Файл:Пример ПФ с двумя уровнями данных.txt

Многоколоночный отчет

Если в обычном отчете при достижении конца страницы формирование продолжается с нового листа, то в многоколоночном - на том же листе, но рядом, т.е. в несколько смежно расположенных колонок. Количество колонок задается в опциях страницы (ColumnsCount). Обычный отчет можно превратить в многоколоночный, всего лишь задав количество колонок в опциях страницы. Типы бэнда "column header" и "column footer" позволяют снабдить каждую колонку заголовком и нижней частью.

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


Композитный (составной) отчет

Композитный отчет позволяет получить отчет, состоящий из нескольких других. Для этого нужно создать «Пакетную» форму, и с помощью окна свойств заполнить список печатных форм на закладке "Пакет форм" (свойство Reports) ссылками на отчеты, которые нужно объединить в один. А так же условия печати и кол-во копий, порядок печати и имена принтеров, на которые будет печататься ПФ.

PacketPF.png

Параметры:

Источник - источник данных. Указывается, если перед печатью форм необходимо посчитать условие печати, в котором используются поля из указанного источника.
Делать копию для работы - Делать копию источника данных при работе. Используется, если создаются переменные в указанном источнике.
Список печатных форм - ссылки на печатные формы. Содержит следующие поля:
Форма - имя печатной формы.
Условия печати - условие, при котором будет печататься выбранная форма. Например, (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

Использование произвольных датасетов

Если возникла необходимость напечатать ПФ на собственном датасете, то нужно воспользоваться следующей схемой:

  1. Создать печатную форму, добавить необходимые бэнды.
  2. В самой печатной форме в «Скрипте перед печатью» создать и заполнить данными собственный датасет.
  3. После этого присвоить переменной :ChangeDataSetName имя собственного датасета.

При печати датасет, указанный в качестве источника самой печатной формы и DetailBand’а, подменится на датасет из переменной :ChangeDataSetName

Файл:Пример ПФ с ChangeDataSetName.txt