Введение

Редактор макетов печати на пластиковых карточках AS101_Badge (далее - дизайнер макетов) позволяет оформлять внешний вид пластиковых карточек, выдаваемых клиентам системы AS101:

Редактор AS101_Badge основан на широко распространенном дизайнере отчетов. Подключение к серверу базы данных СКД AS101 производится автоматически, а доступ к редактированию макетов определяется паролем, определяемом, задаваемом в конфигурации системы AS101, что позволяет разделить пользователей приложения на администраторов, создающих новые макеты и редактирующих уже существующие, и операторов, которым разрешена только печать карточек с использованием подготовленных макетов карточек.

Дизайнер макетов состоит из двух вкладок – вкладки "ДИЗАЙН" и вкладки "НАЗНАЧЕНИЕ МАКЕТОВ И ПЕЧАТЬ КАРТОЧЕК".

На вкладке "Дизайн" возможно создание нового или редактирование существующего макета карточки, а также просмотр созданного макета с использованием данных из БД AS101.

На вкладке "Назначение макетов и печать карточек" возможно:

Учитывая, что пользователю предоставлены возможности выбора принтера и форматов бумаги, AS101_Badge позволяет создавать фирменные бэджи и другие идентификационные карты, на которых необходимо размещать информацию о клиентах, включая фото.

Возможности дизайнера отчетов позволяют проводить условное форматирование данных и многое другое, хотя это требует некоторых начальных навыков программирования.

Из соображений безопасности доступа к БД AS101 весь прямой доступ к данным отключен, также как и возможности редактирования словаря данных, имеющегося в дизайнере отчетов. В связи с этим ряд возможностей построителя отчетов становится недоступен при редактировании макетов, а весь доступ к данным БД управляется программно без участия пользователя.

Связь данных клиентов с макетами достигается программным заполнением словаря данных, в связи с чем возможность редактирования словаря данных также отключена. При размещении информации о клиентах на макете следует использовать описанную в разделе "Дизайнер отчетов" процедуру вставки в отчет переменных из словаря данных. При этом для переменной [Фото] всегда следует использовать элемент "Рисунок" и формат JPG.

 

Макетирование и печать карточек

Вкладка "Дизайн (макеты карточек)"

Изначально при входе на вкладку список существующих в системе AS101 макетов пуст. Если Вам известен пароль макетировщика, следует нажать кнопку "Доступ к настройкам" и ввести пароль. Будет открыт доступ к разделу "Настройка и создание макетов".

Для удобства в системе существует макет-заготовка, которую можно загрузить в текущий макет, нажав кнопку "Загрузить из трафарета". После этого следует указать название макета в строке ввода и воспользоваться кнопкой "Сохранить как новый". При этом трафарет-заготовка будет сохранена в БД AS101. В списке макетов появится созданный Вами макет.

Если вы выбрали в сетке-списке какой-либо макет и отредактировали его (или только изменили наименование), следует использовать кнопку "Сохранить измененный". Если Вы взяли какой-нибудь макет за основу для нового макета, то после редактирования следует пользоваться кнопкой "Сохранить как новый". Без Ваших явных указаний на необходимость сохранения никаких автоматических сохранений после выхода из дизайнера макетов не проводится, чтобы предотвратить случайную "порчу" макета: все редакционные изменения хранятся лишь во временном, невидимом Вам текущем макете. Если Вы не хотите сохранять редакционные изменения, достаточно просто перейти в списке макетов на любой нужный Вам макет или нажать кнопку "Обновить списки", находящуюся под списком макетов.

Вызов дизайнера отчетов для выбранного макета происходит при нажатии кнопки "Редактировать макет". Подробности о приемах работы с дизайнером отчнтов смотрите ниже в разделе "Дизайнер отчетов". Здесь лишь отметим, что при выходе из дизайнера Вам всегда предлагается сохранять макет во внешнем файле (*.frf - форма отчета дизайнера отчетов). Учитывая, что макеты сохраняются в БД AS101, необходимости в сохранении макета во внешнем файле у Вас нет. Можно отказаться от сохранения макета при выходе из дизайнера, но не забыть сразу после выхода воспользоваться описанными выше кнопками "Сохранить измененный" или "Сохранить как новый".

После того, как макет создан, можно проверить его внешний вид на данных любого клиента AS101 (а при необходимости сразу же и напечатать). Для этого необходимо сначала воспользоваться кнопкой "Обновить", расположенной над фотографией клиента.

Для поиска конкретного клиента используйте кнопки "Найти" и "Следующий", предварительно задав колонку, в которой следует искать текст, и сам контекст поиска.

После того, как интересующий Вас клиент найден (например, клиент с аномально длинной фамилией), воспользуйтесь кнопкой "Просмотр макета". Будет открыто окно предварительного просмотра, в котором Вы увидите, как будет выглядеть при печати карточка клиента. Окно предварительного просмотра позволяет сразу же напечатать карточку.

ОБЩИЕ ЗАМЕЧАНИЯ ПО СОЗДАНИЮ МАКЕТОВ

Подробности использования дизайнера отчетов описаны ниже в разделе "Дизайнер отчетов". Здесь отметим только ряд важных для макетирования моментов.

  1. В дизайнере отключена возможность добавления новых страниц, так как карточки могут быть или односторонние, или двухсторонние.
  2. Каждая страница (сторона) может иметь свою ориентацию: например, "тыльная" сторона карточки имеет вертикальную ориентацию (портретная), в то время как лицевая - горизонтальную (альбомная). Особенности ориентации, равно как и выбор размера бумаги (карточки) зависят от установленного у Вас принтера для печати на пластиковых карточках.
  3. В образце-заготовке на карточку добавлен элемент "Фигура" - прямоугольник со скругленными краями. Его свойство Visible (вывод при печати) установлено в False (нет). Он полезен макетировщику тем, что позволяет учесть расположение текста и фото с учетом скругленных краев карточки. Если Вам недостаточно настраиваемой сетки, Вы можете широко использовать подобные приемы, размещая на макете (и блокируя при необходимости) служебные элементы, которые видны при работе с макетом, но не выводятся на печать. Для этого достаточно свойство Visible (вывод при печати) установить в False (нет).
  4. Учитывая, что фотографии клиентов хранятся в БД AS101 в формате JPG, при добавлении рисунка следует не забыть установить свойство "BlobType" в btJPG, а свойство DataField в значение [Фото] !
  5. На макете (помимо элементов, использованных в заготовке-трафарете) могут быть размещены и другие элементы форматирования (линия, фигуры с заливками, тексты с тенью и др. С подробностями их использования можно ознакомиться в разделе "Дизайнер отчетов".
  6. ОГРАНИЧЕНИЯ: хотя в дизайнере отчетов и оставлен доступным ряд элементов, связанных с доступом к данных (например, ВСТАВКА ПОЛЕЙ БД, БЭНД (полоса), ВЛОЖЕННЫЙ ОТЧЕТ), они не могут быть использованы эффективно из-за того, что сам процесс доступа к данным и управление словарем данных в целях безопасности реализован на программном уровне.

Для создания сложного оформления можно использовать заранее подготовленные рисунки или заливки, используя возможности вставки любых рисунков и заливки фигур и прямоугольников в текстом.

 

Вкладка "Печать карточек"

ФИЛЬТРАЦИЯ СПИСКА

В верхней части вкладки расположена панель "Отбор клиентов", позволяющая произвести необходимую фильтрацию списка клиентов. Кнопка "Обновить списки" на панели предназначена для обновления всех списков панели отбора клиентов. Можно установить все необходимые Вам условия отбора, после чего, установив предварительно флаг "Вкл. Отбор" нажать кнопку "Обновить". Будет сформирован отфильтрованный список клиентов AS101.

При любых изменениях условий фильтрации списка не забывайте обновлять список (кнопка "Обновить").

Если Вы не хотите применять никаких условий фильтрации списка, достаточно снять флаг "Вкл. Отбор".

ПОИСК КЛИЕНТА

Для поиска какого-либо определенного клиента в списке используйте кнопки "Найти" и "Следующий", предварительно задав колонку, в которой следует искать текст, и сам контекст поиска.

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

НАЗНАЧЕНИЕ МАКЕТА КЛИЕНТУ

Под сеткой клиентов расположена панель "Назначение макета клиенту". В этой панели для выбранного Вами клиента следует указать назначаемый ему макет карточки и нажать кнопку "Сохранить". При необходимости изменения макета или отметки о выдаче пропуска также используйте кнопку "Сохранить".

ПРОСМОТР

Нажав кнопку "Просмотр", Вы открываете окно предварительного просмотра карточки клиента (при условии, что ему уже назначен макет!). Можно выбрать принтер и напечатать карточку клиента.

Кнопка "Просмотр" на вкладке "Печать карточек" предоставляет возможность коррекции внешнего вида карточки. Например, если у клиента фамилия не умещается в поле, отведенное макетом, у Вас есть возможность вызвать дизайнер по правой кнопке мыши. Учтите, что при этом Вы будете редактировать не макет, а макет с конкретными данными. Таким образом можно изменить вид карточки для конкретного клиента (например, изменить размеры полей или поменять шрифт), не внося никаких изменений в макет (после печати карточки внесенные Вами изменения никак не отразятся на исходном макете, но позволят напечатать хорошо оформленную карточку клиента).

ПЕЧАТЬ КАРТОЧЕК С НАЗНАЧЕННЫМИ МАКЕТАМИ

Внимание! Печать производится непосредственно на принтер, минуя окно предварительного просмотра, в связи с чем при использовании этой панели следует проконтролировать, какой принтер в системе установлен "по-умолчанию". Показ окна предварительного просмотра невозможен из-за того, что карточка каждого клиента будет печататься с тем макетом, который назначен ему индивидуально! Имейте в виду, что если клиенту не назначен макет, то его карточка просто пропускается.

Если необходимо, можно напечатать одного или несколько выбранных клиентов. Выбор производится левой кнопкой мыши, удерживая нажатой клавишу CTRL на клавиатуре, при этом все выбранные клиенты помечаются точкой. После этого следует нажать кнопку "Только выделенных".

Если вы использовали фильтр для клиентов, можно напечатать карточки для всего списка, нажав кнопку "Весь список".

ПРОСМОТР И ПЕЧАТЬ КАРТОЧЕК ПО ПРОИЗВОЛЬНОМУ МАКЕТУ

Если необходимо, можно предварительно "отфильтровать" список клиентов, после чего выбрать макет и нажать кнопку "Весь список" панели "Просмотр и печать списка карточек по произвольному макету".

Открывается окно предварительного просмотра, в котором можно увидеть все страницы для печати. Это позволяет не только проконтролировать вид карточек перед печатью во избежание неоправданной порчи пластиковых карт, но и провести выборочную печать. Номера страниц всегда можно увидеть в окне предварительного просмотра, щелкнув мышью по нужной странице.

Например, макет был двусторонний, в списке отбора - 10 клиентов. На предварительном просмотре Вы увидите 20 страниц (1,2 стр. - первый клиент, 3,4 стр. - второй и т.д.). Вы можете напечатать карточки только для 4-го и 5-го клиентов, указав при печати страницы 7-10.

 

Элементы для оформления макета

 

Иконка

Название

Описание

Текст

Предназначен для отображения текста (однострочного или многострочного). В тексте могут присутствовать переменные (обрамляются квадратными скобками), выражения или поля БД (также обрамляются квадратными скобками)

Бэнд

Бэнд (англ. band - полоска). Как и во всех band-ориентированных генераторах отчетов, позволяет объединять объекты в группы (заголовок отчета, страницы, многострочная часть, подвал и пр.).

ПРИМ. Из-за отключенного доступа к данным практически не применим, за исключением вывода информации на растягиваемых полосах.

Рисунок

Предназначен для отображения рисунка в форматах JPG, BMP, ICO, WMF, EMF. Также способен отображать рисунок из BLOb-поля БД.

ПРИМ. Поле (переменная) [Фото] должна иметь тип btJPG

Вложенный отчет

Предназначен для создания вложенных отчетов. Будучи вставленным в отчет, приводит к созданию новой страницы, содержимое которой будет выведено вместо объекта при формировании отчета.

ПРИМ. Из-за отключенного доступа к данным практически не применим.

Линия

При выборе этого объекта курсор принимает форму карандаша. На странице отчета при этом можно рисовать вертикальные и горизонтальные линии.

Текст с тенью

Выполняет те же функции, что и объект "Текст". Кроме того, умеет отображать тень или градиентную заливку. Очень удобный объект для печати наклеек.

Штрих-код

Отображает данные в форме штрих-кода. Способен отображать данные из поля БД.

ПРИМ. Из-за отключенного доступа к данным практически не применим.

Фигура

Отображает один из четырех типов фигур: прямоугольник, прямоугольник с закругленными углами, эллипс и треугольник.

Флажок

Отображает крестик или галочку внутри прямоугольника.

RichText

Отображает форматированный текст (формат RTF). В тексте могут присутствовать переменные/выражения/поля БД. Также способен отображать данные из BLOb-поля БД.

OLE объект

Отображает объект OLE. Также способен отображать данные из BLOb-поля БД.

Диаграмма

Отображает данные в виде диаграммы.

ПРИМ. Из-за отключенного доступа к данным практически не применим.

RichText 2.0

Отображает форматированный текст с картинками и OLE-вставками (формат RTF 2.0, используется компонент TrxRichEdit). В тексте могут присутствовать переменные/выражения/поля БД. Также способен отображать данные из BLOb-поля БД.

Объект “Текст”

Представляет собой произвольным образом обрамленный прямоугольник с многострочным текстом внутри. Задается цвет текста/заливка, тип рамки, толщина рамки и цвет, все параметры шрифта текста, выравнивание текста внутри прямоугольника и ориентация текста (норм./90 градусов). Для этого предназначены панели инструментов "Текст" и "Прямоугольник":

В мемо объекта можно поместить многострочный текст с переменными. Переменные обрамляются квадратными скобками. При формировании отчета, когда в объекте обнаруживается переменная, вызывается событие, которому передается имя переменной (это может быть и не имя, а выражение) и ожидается возврат ее значения. Примеры использования переменных:

Длина, см: [Длина] – текст (Длина, см:) и переменная ([Длина])

Длина, см: [[Длина в дюймах] * 2.54] – текст и выражение с переменной

Редактор объекта позволяет редактировать содержимое мемо, быстро вставлять переменные, выражения, а также редактировать скрипт. Для более удобной работы можно воспользоваться быстрыми клавишами: Insert - вставка переменной; клавиша Ctrl+Enter - аналог кнопки OK.

Кнопки на панели инструментов выполняют следующие функции:

вызывает конструктор выражений (см. далее);

вызывает диалог вставки поля БД в текст (см. далее);

операции с буфером обмена;

включает или выключает перенос слов в длинных строках;

включает или выключает окно со скриптом;

кнопка "Отмена";

кнопка "ОК".

Помимо основного редактора, имеется редактор, позволяющий выбрать формат отображения имеющихся в тексте переменных. Вызвать его можно либо из контекстного меню объекта, либо из инспектора объектов (свойство DisplayFormat).

 

Переменная может отображаться как текст, число, дата, время, булевское значение (список в левой части окна). Для каждого из этих типов (кроме текстового представления) можно выбрать один из нескольких способов форматирования (список в правой части окна), например, для числа можно задать количество знаков после запятой, знак-разделитель целой и дробной части, разделение на разряды.

Кроме того, для каждого типа может быть выбран произвольный формат, когда строка форматирования задается вручную (например, #,###,##0.000 для числа). Для этого необходимо в списке справа выбрать тип форматирования "Другой". Строки форматирования для каждого из типов описаны в справочной системе Delphi, раздел formatting strings (кроме булевского типа, где строка представлена в формате Значение1;Значение2). Если выбран текстовый тип (по умолчанию), то форматирование производиться не будет.

Указанные опции форматирования будут воздействовать на все переменные, содержащиеся в объекте. Если переменная не может быть отформатирована указанным способом, она выводится как текст.

Для того, чтобы отобразить объект другим шрифтом или цветом в зависимости от выполнения какого-либо условия, можно воспользоваться диалогом "Условное выделение". Диалог можно вызвать с помощью кнопки на панели инструментов "Текст".

К примеру, нужно выделить суммы заказов, превышающие 1000$ жирным шрифтом. Для этого в объекте, содержащем сумму заказа, в диалоге указывается условие – Value > 1000 и задаются параметры шрифта. Условие выделения можно указать и по-другому – [Part total] > 1000. Другой пример использования выделения – для придания отчету презентабельного вида можно сделать чередующуюся раскраску строк данных. Для этого на бэнд надо поместить объект "Текст", растянуть его по ширине секции, в диалоге выделения набрать условие [LINE#] mod 2 = 0 и указать цвет фона (к примеру, серый).

В контекстном меню объекта можно задать следующие опции:

Кроме того, в инспекторе объектов можно задать следующие значения:

Объект “Рисунок”

Предназначен для вставки графического файла в формате JPG/BMP/WMF/ICO в документ. Редактор объекта позволяет вставить рисунок и очистить содержимое объекта.

Рисунок может быть вставлен из переменной или поля таблицы БД, если в мемо объекта поместить ссылку на соответствующее поле, например: [Фото]. Редактор мемо может быть вызван с помощью инспектора объектов либо комбинацией клавиш Ctrl+Enter. Эту опреацию можно также выполнить из инспектора объектов (свойство DataField).

В контекстном меню объекта и в инспекторе можно задать следующие опции:

Объект “Линия”

Представляет собой вертикальную либо горизонтальную линию с изменяемым цветом и толщиной. Дизайнер имеет удобные средства для рисования линий. В частности, с помощью линий можно быстро задать внешнее обрамление для таблицы, отличное от внутреннего.

Для рисования линии выберите инструмент "Линия" на панели объектов. При этом курсор мыши примет форму карандаша при перемещении его над поверхностью листа. Установите курсор мыши в место начала линии, нажмите левую кнопку мыши и двигайте мышь до нужной позиции. После отпускания кнопки будет нарисована линия. После окончания рисования нужно нажать кнопку "выбор объекта" либо Esc.

Объект “Фигура”

Предназначен для вставки геометрических фигур (прямоугольник, прямоугольник с закругленными углами, эллипс, треугольник) в документ. Тип фигуры можно установить в инспекторе объектов (свойство Shape).

Объект “OLE”

Предназначен для вставки OLE объектов в документ. Редактор объекта “OLE” позволяет вставить новый объект и редактировать существующий.

Вставка нового объекта производится в стандартном диалоговом окне. OLE объект может быть вставлен из поля таблицы БД, если в мемо объекта поместить ссылку на соответствующее поле. Редактор мемо может быть вызван с помощью инспектора объектов либо комбинацией клавиш Ctrl + Enter. Эту операцию можно также выполнить из инспектора объектов (свойство DataField).

В контекстном меню объекта опция "растягиваемый" (Stretched) позволяет корректно отображать данные в некоторых случаях (например, при вставке объекта "Лист Excel").

Прим.: в числе вынесенных в словарь переменных (представляющих сведения о клиентах AS101) OLE-поля не используются, поэтому возможна только вставка ссылок на какие-нибудь используемые Вами OLE-объекты.

Объект “RichText”

Предназначен для вставки текста в формате RTF (Rich Text format) в документ. В частности, таким образом можно вставить текст, подготовленный в текстовом процессоре MS Word, предварительно сохранив его в формате RTF.

Редактор объекта позволяет выполнять все базовые операции над текстом - менять шрифт, выравнивание, создавать маркированные списки.

Прим.: в числе вынесенных в словарь переменных (представляющих сведения о клиентах AS101) RTF-поля не используются, поэтому возможна только вставка ссылок на какие-нибудь используемые Вами RTF-объекты.

В тексте могут находиться переменные, обрамленные квадратными скобками - как и в объекте “Текст”. RichText объект может быть вставлен из поля таблицы БД (доступ отключен!!!), если в мемо объекта (не в сам объект!) поместить ссылку на соответствующее поле. Редактор мемо может быть вызван с помощью инспектора объектов либо комбинацией клавиш Ctrl + Enter. Эту операцию можно также выполнить из инспектора объектов (свойство DataField).

Объект RichText 2.0

Объект аналогичен объекту RichText, за исключением того, что он базируется на компоненте RXRichEdit, который поддерживает формат RTF 2.0 (RichText с OLE-вставками и картинками).

Объект “Штрихкод”

Предназначен для вставки штрихкодов в документ. Можно использовать следующие типы штрихкодов:

 

Дизайнер отчетов

Дизайнер предоставляет пользователю удобные средства для разработки внешнего вида отчета и позволяет сразу выполнить предварительный просмотр. Интерфейс дизайнера выполнен на современном уровне с использованием панелей инструментов (toolbars), расположение которых можно изменять по своему вкусу. Информация о расположении панелей запоминается в реестре, и при следующем запуске восстанавливается. Также в реестре запоминаются остальные настройки дизайнера.

Использование дизайнера дает возможность пользователю настраивать вид отчета, а также редактировать готовый отчет.

Клавиши управления

 

Управление мышью

 

Параметры отчета

Окно с параметрами отчета доступно из меню "Файл|Параметры отчета...".

В списке принтеров имеется "Виртуальный принтер". Он необходим в случае, если в системе нет установленных принтеров. При этом дизайнер и предварительный просмотр отчета функционируют нормально. Вы можете выбрать любой из форматов бумаги, поддерживаемой Windows и Вашим принтером (вплоть до формата A2), устанавливать ориентацию листа бумаги. Т.е. "виртуальный" принтер эмулирует функции реального принтера (разумеется, на нем нельзя печатать;)

Другой случай, когда необходимо использовать виртуальный принтер - Вы разрабатываете форму отчета для принтера с форматом бумаги А3, а самого принтера у Вас нет (он есть у заказчика). В этом случае выбор виртуального принтера снимает проблему.

Флажок "Выбирать при открытии отчета" позволяет привязать отчет к одному из принтеров, установленных в системе. Это значит, что при открытии такого отчета принтером по умолчанию станет выбранный принтер. Это полезно в случае, если в системе имеется несколько разных принтеров - текстовые документы можно привязать к монохромному принтеру, документы с графикой - к цветному.

Если флажок "Делать два прохода" установлен, формирование отчета будет осуществляться в два этапа. На первом проходе отчет формируется, осуществляется его разбивка на страницы, но результат нигде не сохраняется. На втором проходе происходит обычное формирование отчета с сохранением результата в потоке.

Для чего же нужно делать два прохода? Наиболее часто эта опция применяется в случае, если в отчете имеется упоминание об общем количестве страниц в нем, т.е. информация вида "Страница 1 из 15". Общее количество страниц подсчитывается на первом проходе и доступно через системную переменную TOTALPAGES. Наиболее частая ошибка - попытка применить эту переменную в однопроходном отчете, в этом случае она возвращает 0.

Другая область применения - выполнение каких-либо вычислений на первом проходе и отображение результатов на втором. Например, в случае, когда необходимо отобразить в заголовке группы сумму, которая обычно подсчитывается и отображается в подвале группы. Такого рода вычисления связаны с использованием встроенного языка FR.

Прим.: использование двухпроходных отчет едва ли Вам потребуется, учитывая, в кроме дат и фото все остальные переменные - текстовые.

Параметры страницы

Прим.: пластиковые карточки имеют стандартный формат 85х55 мм. Формат бумаги следует выбирать, руководствуясь тем, какой принтер для печати на карточках у Вас установлен.

Окно с параметрами страницы доступно из меню "Файл|Параметры страницы..." либо при двойном щелчке левой кнопкой мыши на свободном месте листа отчета. Окно представляет собой блокнот с четырьмя закладками: "Бумага", "Источник", "Поля" и "Параметры".

Закладка "Бумага"

Поля ввода ширины и высоты становятся доступными, если из списка "Размер" выбран пункт "Размеры, определяемые пользователем". Следует отметить, что не все драйверы принтеров поддерживают пользовательский размер бумаги. Кроме того, не все принтеры поддерживают произвольные пользовательские размеры (например, драйвер принтера HP LaserJet 6L не дает устанавливать размеры листа меньше чем 76 * 127мм).

Закладка "Источник"

Закладка "Поля"

Здесь можно задать размеры отступа от краев листа, а также задать опцию “Растянуть на область печати”. На этом моменте следует остановиться более подробно.

А) Возможны два варианта страницы в дизайнере: с полями печати и без них. Если поля печати включены (по умолчанию), то они отображаются в дизайнере и все, что находится вне полей, на печать не выводится. Это позволяет добиться максимального соответствия между видом страницы в дизайнере и на бумаге. Координаты объектов исчисляются от верхнего левого угла листа.

Б) Но при переходе на другой принтер из-за изменившихся границ печати некоторые объекты могут вылезти за пределы полей и не будут напечатаны. Если включить флажок "Растянуть на область печати", то предполагается, что страница в дизайнере соответствует области печати, т.е. все, что находится на странице, будет корректно напечатано на любом принтере. Координаты объектов в этом случае исчисляются от верхнего левого угла области печати. Правда, при этом вид страницы в дизайнере будет немного отличаться от распечатанного документа.

Если поля страницы нулевые, то при построении отчета будут использована информация о полях, предоставляемая драйвером принтера. Если Вы используете матричный принтер, будьте внимательны. Дело в том, что во многих матричных принтерах одно или несколько полей имеет нулевой размер, в связи с чем при формировании отчета и при его распечатке может возникнуть ситуация, когда текст выходит за границы листа. Чтобы избежать этого, явно задавайте поля станицы либо устанавливайте флажок " Растянуть на область печати".

Следует отметить, что на формирование отчета при включенных полях страницы оказывает непосредственное влияние только установка значений для верхнего и нижнего полей. Левое же и правое поля действуют только для Cross-tab отчетов.

Закладка "Параметры"

На этой закладке можно указать количество колонок для печати многоколоночных отчетов. Текущие установки отображаются в дизайнере.

Флажок “Печатать на предыдущем листе” позволяет начать печать страницы, начиная со свободного места на предыдущем листе. Эта опция может применяться в случае, если шаблон отчета состоит из нескольких листов либо при печати составных (composite) отчетов.

Опции дизайнера

Чтобы установить опции дизайнера, воспользуйтесь командой меню "Сервис|Опции...".

 

Здесь можно задать используемые единицы измерения (пикселы, миллиметры, дюймы), указать шаг сетки в точках (шаг сетки 18 точек точно соответствует 5мм. Это особо полезно в случаях, когда надо сделать бланк, размеры которого кратны 5мм.

Также можно указать способ прорисовки объектов при их перемещении (или изменения размеров).

Опция "Расположение страницы" позволяет выбрать расположение страницы. Это необходимо, если на экране присутствует инспектор объектов: таким образом можно задать взаимное расположение страницы и инспектора.

Если опция "Цветные кнопки" отключена, то все кнопки становятся черно-белыми; при наведении указателя мыши на кнопку она показывается в цвете.

Опция "Показывать заголовки бэндов" позволяет отключать заголовки у бэндов в целях экономии свободного места на странице.

Наконец, опция "Редактирование после вставки" управляет процессом вставки новых объектов. Если опция включена, каждый раз при вставке объекта будет показываться его редактор. При вставке большого количества пустых объектов опцию лучше отключать.

На закладке "Редактор" можно настроить шрифт для окна редактора текста. При включенной опции "Использовать установки шрифта объекта" шрифт в окне редактора текста будет соответствовать шрифту редактируемого объекта.

Инспектор объектов

Инспектор позволяет манипулировать всеми свойствами выбранных объектов.

Окно инспектора похоже на Object Inspector в Delphi и функционирует аналогичным образом. Так же, как и остальные панели инструментов, его можно показать или скрыть соответствующей командой меню "Сервис|Панели инструментов". Показать окно можно также при нажатии на клавишу F11. Двойной щелчок на заголовке окна инспектора сворачивает окно в полоску, еще один двойной щелчок - восстанавливает исходные размеры.

Диалог вставки полей БД в отчет

Этот диалог позволяет быстро вставить поле БД в отчет.

Прим: В связи с блокировкой доступа к полям данных (описано во введении), следует пользоваться готовым словарем данных.

Словарь данных

Прим. Возможность редактировать словарь данных отключена.

Окно словаря данных (Data dictionary) доступно из меню "Файл|Словарь данных...". Окно представляет собой блокнот с тремя закладками: "Переменные", "Данные из БД" и "Источники данных для бэндов". Словарь данных хранится в файле вместе с формой отчета.

Закладка "Переменные"

Прим.: фактически, словарь переменных заполняется без Вашего участия и связывается должным образом с наборами данных.

Эта закладка предназначена для работы со списком переменных.

Список переменных расположен в левой части окна. Как видно из рисунка, структура списка двухуровневая: он состоит из категорий, в каждой категории может быть одна или несколько переменных. Категории нужны только для визуальной группировки переменных и в отчет не вставляются.

При создании нового отчета список пуст, и чтобы заполнить его, воспользуйтесь кнопками под списком: - добавляет новую категорию и - добавляет новую переменную к текущей категории. Эти действия можно также выполнить с клавиатуры: клавиша Insert добавляет новую переменную, Ctrl+Insert добавляет новую категорию. Назначение остальных кнопок следующее: кнопка редактирует название переменной или категории (клавиатурный аналог - клавиша Enter), кнопка удаляет переменную или категорию (клавиатурный аналог - клавиша Delete). Кнопка вызывает редактор списка переменных, где они представлены в виде списка строк. Здесь можно делать массовую вставку переменных из буфера обмена, переносить переменные из одной категории в другую.

Закладка "Данные из БД"

Прим.: в AS101_Badge прямой доступ к данным из БД блокирован.

Закладка "Источники данных для бэндов"

Прим.: в AS101_Badge прямой доступ к данным из БД блокирован.

 

Конструктор выражений

Окно конструктора выражений можно вызвать из редактора текста, нажав кнопку на панели инструментов. Оно также доступно из некоторых диалоговых окон, в которых требуется задать некоторое выражение.

Окно содержит поле ввода выражения и кнопки вызова диалогов вставки переменных, полей БД, функций, а также кнопки быстрой вставки знаков арифметических и логических операций.

Диалог вставки переменной

Диалог позволяет выбрать переменную для вставки в выражение. Слева размещен список категорий, справа – список переменных в выбранной категории. Для вставки переменной в выражение надо выбрать переменную и нажать кнопку "ОК", либо сделать на ней двойной щелчок мышью.

Диалог вставки функции

В этом диалоге можно выбрать функцию для вставки в выражение. При выборе функции в нижней части окна отображается краткое описание функции и списка ее аргументов. Если функция имеет аргументы, то при при нажатии на кнопку "ОК" будет предложено заполнить их.

Диалог вставки поля БД

Прим.: в AS101_Badge прямой доступ к данным из БД блокирован.

Диалог позволяет выбрать поле БД для вставки в выражение. Слева размещен список всех доступных таблиц БД, справа – список полей в выбранной таблице. Для вставки поля в выражение надо выбрать поле и нажать кнопку "ОК", либо сделать на поле двойной щелчок мышью.

 

Панели инструментов дизайнера отчетов

Панель инструментов "Стандартная"

 

Иконка

Название

Описание

Новый отчет

Создает новый пустой отчет.

Открыть отчет

Открывает существующий отчет из файла с расширением FRF. Клавиатурный аналог - Ctrl+O.

Сохранить отчет

Сохраняет отчет в файл с расширением FRF. Клавиатурный аналог - Ctrl+S.

Предварительный просмотр

Выполняет построение отчета и его предварительный просмотр. Клавиатурный аналог - Ctrl+P.

Вырезать

Вырезает выделенные объекты в буфер обмена. Клавиатурный аналог - Ctrl+X.

Копировать

Копирует выделенные объекты в буфер обмена. Клавиатурный аналог - Ctrl+C.

Вставить

Вставляет объекты из буфера обмена. Клавиатурный аналог - Ctrl+V.

Отменить

Отменяет последнюю операцию. Число уровней отката - до 100. Клавиатурный аналог - Ctrl+Z.

Повторить

Повторяет последнюю отмененную операцию. Клавиатурный аналог - Ctrl+Y.

На передний план

Помещает выделенные объекты на передний план.

На задний план

Помещает выделенные объекты на задний план.

Выделить все

Выделяет все объекты на странице. Клавиатурный аналог - Ctrl+A.

Новая страница

Создает новую страницу.

Удалить страницу

Удаляет текущую страницу.

Свойства страницы

Вызывает диалог со свойствами страницы.

Показать сетку

Показывает точечную сетку на странице. Шаг сетки можно задать в опциях дизайнера. Клавиатурный аналог - Ctrl+G.

Выравнивать объекты по сетке

При перемещении или изменении размеров объектов координаты/размеры будут изменяться скачкообразно в соответствии с шагом сетки.

Расположить в узлах сетки

Изменяет размеры/расположение выделенных объектов таким образом, чтобы они размещались в узлах сетки.

Справка

Показывает справку по элементам управления.

Выход

Закрывает окно дизайнера.

 

Панель инструментов "Текст"

 

Иконка

Название

Описание

Шрифт

Позволяет выбрать название шрифта из выпадающего списка. Помнит пять последних использованных шрифтов. Двойной щелчок мышью вызывает стандартный диалог выбора шрифта.

Размер шрифта

Позволяет выбрать размер шрифта из выпадающего списка. Размер можно также ввести вручную.

Утолщение

Устанавливает/снимает утолщение шрифта. Клавиатурный аналог - Ctrl+B.

Наклон

Устанавливает/снимает наклон шрифта. Клавиатурный аналог - Ctrl+I.

Подчеркивание

Устанавливает/снимает подчеркивание шрифта. Клавиатурный аналог - Ctrl+U.

Цвет шрифта

Выбирает цвет шрифта из выпадающего списка.

Условное выделение

Показывает диалог с атрибутами выделения для выбранного объекта "Текст".

Выравнивание влево

Устанавливает выравнивание текста влево.

Выравнивание по центру

Устанавливает выравнивание текста по центру.

Выравнивание вправо

Устанавливает выравнивание текста вправо.

Выравнивание по ширине

Устанавливает выравнивание текста равномерно по ширине.

Выравнивание по верхнему краю

Устанавливает выравнивание текста по верхнему краю.

Выравнивание по высоте

Устанавливает выравнивание текста по высоте.

Выравнивание по нижнему краю

Устанавливает выравнивание текста по нижнему краю.

Вертикальный текст

Переключает нормальный/вертикальный шрифт.

 

Панель инструментов "Прямоугольник"

 

Иконка

Название

Описание

Верхняя линия

Включает/выключает верхнюю линию рамки.

Левая линия

Включает/выключает левую линию рамки.

Нижняя линия

Включает/выключает нижнюю линию рамки.

Правая линия

Включает/выключает правую линию рамки.

Все линии

Включает все линии рамки.

Нет линий

Выключает все линии рамки.

Цвет фона

Выбирает цвет фона из выпадающего списка.

Цвет линии

Выбирает цвет линии из выпадающего списка.

Стиль линии

Выбирает стиль линии из выпадающего списка.

Толщина линии

Выбирает толщину линии из выпадающего списка.

 

Панель инструментов "Выравнивание"

Иконка

Описание

Выровнять левые края.

Центрировать по горизонтали.

Центрировать по горизонтали в окне.

Расположить равномерно по ширине.

Выровнять правые края

Выровнять верхние края.

Центрировать по вертикали.

Центрировать по вертикали в окне.

Расположить равномерно по высоте.

Выровнять нижние края.

 

Дополнительные элементы для создания макетов

ПРИМЕЧАНИЕ: все перечисленные ниже элементы не могут использоваться в полном объеме, так как требуется прямой доступ к данным БД и словарю. В AS101_Badge они блокированы по соображениям безопасности.

Объект “Секция” (Бэнд)

Дизайнер отчетов, как и многие другие распространенные продукты, является бэнд-ориентированным построителем отчетов. Ниже приведен полный перечень бэндов и выполняемых ими функций.

Название

Функция

Report title

печатается один раз в начале отчета

Report summary

печатается один раз в конце отчета

Page header

печатается вверху на каждой странице

Page footer

печатается внизу на каждой странице

Master header

печатается в начале списка 1-го уровня

Master data

данные списка 1-го уровня

Master footer

печатается в конце списка 1-го уровня

Detail header

печатается в начале списка 2-го уровня

Detail data

данные списка 2-го уровня

Detail footer

печатается в конце списка 2-го уровня

Subdetail header

печатается в начале списка 3-го уровня

Subdetail data

данные списка 3-го уровня

Subdetail footer

печатается в конце списка 3-го уровня

Overlay

печатается на каждой странице нижним слоем

Column header

печатается в начале каждой колонки

Column footer

печатается в конце каждой колонки

Group header

заголовок группы

Group footer

печатается после группы

Cross header

Cross data

Cross footer

эта группа бэндов предназначена для создания отчетов с переменным количеством столбцов и разбивкой на страницы

Child

может быть прикреплен к любому из бэндов, кроме Page footer, и выводиться вместе с ним.

В зависимости от типа бэнда в контекстном меню доступны следующие опции:

Объект “Вложенный отчет” (SubReport)

Вложенный отчет - это отчет с размещенным на нем объектом SubReport, который представляет собой ссылку на другой отчет, расположенный на отдельной странице. При формировании такого отчета вместо объекта SubReport будет выведен соответствующий отчет.

Объекты SubReport можно располагать на листе друг под другом или рядом. В случае, если объекты надо расположить друг под другом, их необходимо разнести по разным дата-бэндам (т.е. первый отчет - в первом бэнде Masterdata, второй - во втором и т.д.). На использование SubReports накладываются следующие ограничения:

Объект “CheckBox”

Представляет собой прямоугольник с крестиком внутри. Если в мемо объекта поместить ссылку на переменную либо на поле таблицы БД, то крестик будет показан при ненулевом значении переменной. В мемо можно также поместить символ “0” либо отличный от нуля.

В инспекторе объектов можно выбрать тип CheckBox’a: с крестиком или с галочкой (свойство CheckStyle).

Примечание. Все вышеописанные объекты являются встроенными. Для использования этого объекта и всех прочих в run-time следует использовать соответствующий компонент из палитры компонентов FR. Если открываемый отчет содержит неподключенные компоненты, то выдастся сообщение об ошибке.

Объект “Диаграмма”

Предназначен для вставки графика или диаграммы в документ. Возможно использование шести типов графиков: линии, точки, столбцы горизонтальные и вертикальные, области и круговые диаграммы. Редактор объекта представляет собой блокнот с тремя закладками: "Тип", "Данные" и "Пометки". Здесь можно задать различные опции для графика, а также указывать объекты, содержимое которых будет использовано при построении графика.

Закладка "Тип"

На этой закладке можно выбрать один из шести типов диаграммы, а также указать различные опции:

При построении отчета информация будет накапливаться в мемо:

Заголовок1;Заголовок2;Заголовок3

Число1;Число2;Число3

График можно построить и вручную, если занести в мемо объекта соответствующие значения. Если количество строк заголовка не соответствует количеству значений, график выведен не будет.

Закладка "Данные"

Для построения графика необходимо указать имена двух объектов типа "Текст", в которых содержится название и соответствующее числовое значение. При построении отчета содержимое этих объектов будет накапливаться в мемо диаграммы.

Если объект содержит число в форматированном виде или комбинацию числа и строки (например, "$1000" или "10 000"), то FR попытается выделить числовую часть из строки. Алгоритм выделения - удаляются все нецифровые символы в начале и в конце строки, после этого удаляются все символы - разделители разрядов (как правило, пробелы). То есть если задано более сложное форматирование, например: "10000км2", то такие объекты использовать уже нельзя. В этом случае следует создать невидимый объект с аналогичным содержимым, но без всякого форматирования, и указывать его имя. Невидимым объект можно сделать с помощью инспектора объектов в дизайнере, установив параметр Visible в 0.

Объект позволяет легко строить графики типа "Top10", т.е. график, в котором представлены только первые самые большие значения, а остальные значения просуммированы в отдельную группу с названием. Для этого необходимо указать количество выводимых значений и подпись (обычно в качестве подписи используется слово "Другие").

Закладка "Пометки"

На этой закладке можно указать, какие значения выводить в качестве пометок.

Программирование в дизайнере отчетов

Этот раздел будет полезен Вам только в том случае, если необходима какая-либо дополнительная обработка данных: например, в зависимости от значения поля VIP следует печатать (или не печатать) те или иные поля отчета. Или при печати карточки каким-то образом учитывать срок действия карточки.

Следует помнить, что ряд полей данных клиентов в СКД AS101 может быть настроен на использование нестандартным образом, что и дает возможность проводить дальнейшую обработку данных непосредственно в отчете.

Скрипты и объекты

В каждом объекте может быть размещен один или несколько (блок) операторов. Редактирование скрипта производится в окне редактора текста (для того, чтобы увидеть скрипт, надо нажать кнопку в верхней части окна). Скрипт выполняется каждый раз перед печатью объекта. По сути, скрипт является обработчиком события OnBeforePrint объекта.

Скрипт имеется не только у объектов. И бэнды, и страницы отчета также имеют свой скрипт. Вызвать скрипт бэнда можно, вызвав редактор свойства OnBeforePrint бэнда (из инспектора объектов, либо выделив бэнд и нажав Ctrl+Enter). Вызвать скрипт страницы отчета можно, вызвав редактор свойства OnBeforePrint страницы (для этого надо щелкнуть на пустом месте страницы и вызвать редактор из инспектора объектов). Диалоговая форма, как и страница отчета, имеет скрипт - свойство OnActivate. Скрипт остальных объектов может быть вызван через их свойство Memo либо при нажатии Ctrl+Enter.

 

Написание кода ("на что можно ссылаться в скрипте")

В скрипте можно использовать свойства и методы объектов отчета, поля таблиц БД, различные константы. Также можно создавать переменные и массивы, которые будут доступны во всем отчете. Кроме того, можно использовать процедуры и функции.

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

Переменную описывать не надо, она имеет тип Variant. В имени переменной можно использовать латинские буквы, цифры и знак подчеркивания. Переменную из скрипта можно использовать в объектах, и наоборот, переменную из списка переменных можно использовать в скрипте.

Скриптовые переменные хранятся в объекте TfrVariables, к которому есть доступ через глобальную переменную frVariables.

Кроме этого, можно обращаться к переменным, определенным в словаре данных, к системным переменным, а также пользовательским переменным. При этом переменные могут содержать в имени недопустимые с точки зрения синтаксиса символы (например, системная переменная Page#). Обращаться к таким переменным следует с использованием квадратных скобок:

begin

a := [Page#];

end

Массивы

В скрипте, помимо переменных, можно создавать массивы. Массивы могут быть только одномерными, но можно организовать доступ к элементам массива таким образом, что можно трактовать массив как двумерный или с большим количеством измерений.

Пример использования массива:

begin

MyArr[0] := 'a'; MyArr[1] := 'b'; MyArr[3] := 'd';

MyArr[2] := MyArr[0] + MyArr[1] + 'c' + MyArr[3];

end;

Фактически значения элементов массива хранятся в списке frVariables в виде

Arr_имя массива_индекс. Т.е. в вышеприведенном примере мы получим содержимое frVariables:

Arr_MyArr_0 := 'a'

Arr_MyArr_1 := 'b'

Arr_MyArr_2 := 'abcd'

Arr_MyArr_3 := 'd'

 

Константы

В скрипте можно использовать константы. Простейший пример - использование числовых, строковых и логических констант:

begin

a := 0;

b := 'abcd';

c := True;

d := 'That''s all!';

end;

Обратите внимание на использование одинарной кавычки внутри строковой константы - как и в Pascal, ее надо дублировать: d := 'That''s all!'.

Кроме простых констант, в скрипте доступны константы - названия цветов, стилей шрифта и пр. Вот список констант, которые можно использовать:

– цвета: clWhite, clBlack и т.п. - все стандартные цвета + системные цвета;

результат работы диалогового окна: mrNone, mrOk, mrCancel;

– служебные: CRLF, Null;

– стиль шрифта: fsBold, fsItalic, fsUnderline;

– рамка объекта: frftNone, frftRight, frftBottom, frftLeft, frftTop;

выравнивание текста в объекте "Текст": frtaLeft, frtaRight, frtaCenter, frtaVertical, frtaMiddle, frtaDown;

выравнивание по бэнду: baNone, baLeft, baRight, baCenter, baWidth, baBottom.

Кроме того, определены константы для подключаемых объектов, например, csCheck для объекта "CheckBoxObject". Все, что можно видеть в выпадающих списках свойств в инспекторе объектов, можно использовать как константу в скрипте.

 

Обращение к объектам

В скрипте можно обращаться к свойствам и методам объектов отчета. К объектам отчета относятся визуальные объекты, элементы управления, бэнды, страницы отчета, сам отчет. Для обращения к объекту применятся точечная нотация, например: Memo1.Text. Для обращения к собственным свойствам или методам точечная нотация необязательна.

Свойства, к которым возможно обращение, отображены в инспекторе объектов. К некоторым комплексным свойствам (например, Font) возможно обращение как к Font.Name, Font.Size и т.п.:

begin

Memo1.Font.Name := 'Courier New';

Memo1.Font.Size := 10;

Memo1.Font.Color := clRed;

Memo1.Font.Style := fsBold + fsItalic

end;

К свойствам типа TStrings (Memo, SQL, Items и пр.) возможен доступ по индексу:

if Memo1.Lines[1] = 'a' then

Memo1.Lines[1] := 'b'

Также к таким свойствам могут применяться операции Add, Delete, Clear и Count:

if Memo1.Lines.Count > 10 then

Memo1.Lines.Delete(10)

else

begin

Memo1.Lines.Clear;

Memo1.Lines.Add('a');

end;

Полный список свойств и методов объектов см. в разделе "Свойства и методы объектов". Следует отметить, что обращение к несуществующему методу или свойству не приведет к сообщению об ошибке. Поэтому следует быть осторожным при написании кода.

 

Свойства и методы объектов дизайнера отчетов

Все визуальные объекты отчета являются потомками класса TfrView. Он имеет следующие свойства и методы, к которым можно обращаться из скрипта:

Свойство

Тип

Описание

BandAlign

Integer

Выравнивание внутри бэнда. Одна из констант baNone, baLeft, baRight, baCenter, baWidth, baBottom.

Enabled

Boolean

Разрешает или запрещает работу объекта.

FillColor

Integer

Цвет фона объекта. Может быть задан константой clXXX.

FrameColor

Integer

Цвет рамки объекта.

FrameStyle

Integer

Стиль линии рамки. Одна из констант psSolid, psDash, psDot, psDashDot, psDashDotDot, psDouble.

FrameTyp

Integer

Тип рамки объекта - набор констант frftTop, frftBottom, frftLeft, frftRight.

FrameWidth

Double

Толщина рамки.

Height

Integer

Высота объекта.

Left

Integer

Координата Х левого верхнего угла объекта.

Memo

String

Текст, находящийся в мемо объекта. К этому свойству можно также обращаться с использованием индекса, например: Memo[1].

Memo.Count

Integer

Возвращает количество строк в мемо.

Name

String

Имя объекта.

Stretched

Boolean

Является ли объект растягиваемым.

Top

Integer

Координата Y левого верхнего угла объекта.

Visible

Boolean

Видимость объекта. (при печати)

Width

Integer

Ширина объекта.

Методы:

Метод

Параметры

Описание

Hide

-

Аналогично установке Visible := False.

Memo.Add

String

Добавляет строку в мемо.

Memo.Clear

-

Очищает мемо.

Memo.Delete

Integer

Удаляет строку с данным индексом из мемо.

Show

-

Аналогично установке Visible := True.

 

Стандартные объекты

 

Объект "Текст" (TfrMemoView)

Помимо общих свойств и методов, которые были рассмотрены выше, объект имеет собственные свойства:

Свойство

Тип

Описание

Alignment

Integer

Выравнивание текста внутри объекта. Набор значений frtaLeft, frtaRight, frtaCenter, frtaVertical, frtaMiddle, frtaDown.

AutoWidth

Boolean

Если True, ширина объекта устанавливается равной ширине имеющегося в объекте текста.

CharSpacing

Integer

Расстояние между символами.

Font.Name

String

Имя шрифта, которым будет выведен текст объекта.

Font.Size

Integer

Размер шрифта.

Font.Style

Integer

Стиль шрифта. Набор констант fsBold, fsItalic, fsUnderline.

Font.Color

Integer

Цвет шрифта.

GapX

Integer

Промежуток между рамкой объекта и текстом.

GapY

Integer

Промежуток между рамкой объекта и текстом.

HideZeros

Boolean

Если True, не выводить нулевые значения переменных.

LineSpacing

Integer

Расстояние между строками текста.

Suppress

Boolean

Подавлять повторяющиеся значения.

TextOnly

Boolean

Если True, обработка переменных не производится.

WordBreak

Boolean

Переносить слова по слогам (только русские слова).

WordWrap

Boolean

Переносить длинные слова на следующую строку.

Методы: нет.

Объект "Рисунок" (TfrPictureView)

Свойство

Тип

Описание

BlobType

Integer

Тип рисунка, содержащегося в BLOb-поле. Одна из констант btBMP, btJPG, btICO, btWMF.

Center

Boolean

Центрировать рисунок внутри объекта.

DataField

String

BLOb-поле таблицы, содержащее рисунок.

KeepAspect

Boolean

Сохранять пропорции рисунка при растягивании.

Подключаемые объекты

Объект "Прямоугольник с тенью" (TfrRoundRectView)

Этот объект является потомком объекта "Текст". Следовательно, он имеет тот же набор свойств и методов, что и родитель, и кое-что свое:

Свойство

Тип

Описание

BeginColor

Integer

Начальный цвет градиентной заливки.

EndColor

Integer

Конечный цвет градиентной заливки.

Gradient

Boolean

Использовать градиентную заливку.

RoundRect

Boolean

Использовать закругление.

RoundSize

Integer

Размер закругения.

ShadowColor

Integer

Цвет тени.

ShadowWidth

Integer

Ширина тени.

Style

Integer

Стиль градиентной заливки. Одна из констант gsVertical, gsHorizontal, gsElliptic, gsRectangle, gsHorizCenter, gsVertCenter.

Методы: нет.

Объект "Фигура" (TfrShapeView)

Свойство

Тип

Описание

Shape

Integer

Тип фигуры. Одно из значений skRectangle, skRoundRectangle, skEllipse, skTriangle, skDiagonal1, skDiagonal2.

Методы: нет.

Объекты "RichText", "RichText 2.0" (TfrRichView, TfrRXRichView)

Свойство

Тип

Описание

GapX

Integer

Промежуток между рамкой объекта и текстом.

GapY

Integer

Промежуток между рамкой объекта и текстом.

TextOnly

Boolean

Если True, обработка переменных не производится.

DataField

String

BLOb-поле таблицы, содержащее данные.

Методы: нет.

Объект "Штрихкод" (TfrBarcodeView)

Свойство

Тип

Описание

DataField

String

Поле таблицы, содержащее данные.

Методы: нет.

Объект "Бэнд" (TfrBandView)

Свойство

Тип

Описание

Breaked

Boolean

Бэнд является разрываемым.

ChildBand

String

Дочерний бэнд.

ColumnGap

Integer

Промежуток между колонками.

Columns

Integer

Количество колонок у дата-бэнда.

ColumnWidth

Integer

Ширина колонки.

Condition

String

Условие группировки для бэнда group header.

DataSource

String

Источник данных для дата-бэнда.

EOF

Boolean

True, если достигнут конец набора записей, связанного с бэндом.

FormNewPage

Boolean

Формировать новую страницу после печати бэнда и всех его детальных бэндов.

Master

String

Бэнд, по которому выполняется группировка.

OnFirstPage

Boolean

Печатать на первой странице.

OnLastPage

Boolean

Печатать на последней странице.

PrintChildIfInvisible

Boolean

Печатать дочерние (child) бэнды, если родительский бэнд невидимый.

PrintIfSubsetEmpty

Boolean

Печатать бэнд, если его детальный список пуст.

RepeatHeader

Boolean

Повторять бэнд на новой странице.

Методы:

Метод

Параметры

Описание

First

-

Устанавливает источник данных, связанный с бэндом, на первую запись.

Next

-

Устанавливает источник на следующую запись.

Prior

-

Устанавливает источник на предыдущую запись.

Объект "CheckBox" (TfrCheckBoxView)

Свойство

Тип

Описание

CheckColor

Integer

Цвет крестика.

CheckStyle

Integer

Стиль (крестик/галочка). Константы csCross, csCheck.

DataField

String

Поле таблицы, содержащее данные.

Методы: нет.

 

Примеры программирования в дизайнере отчетов

Вот некоторые простые примеры использования интерпретатора:

  1. Необходимо вывести сумму заказа: белым фоном, если сумма меньше 2000; зеленым, если сумма от 2000 до 10000; красным, если сумма больше 10000. Для этого в объекте с суммой необходимо набрать следующий скрипт:

if [Сумма] < 2000 then

FillColor := clTransparent

else if [Сумма] < 10000 then

FillColor := clGreen

else

FillColor := clRed

Цвет можно задать числом, например:

FillColor := 128 + 128*256 + 128*65536 //(серый цвет)

  1. Необходимо вывести те записи, для которых сумма заказа больше 2000. Для этого в бэнде необходимо набрать следующий скрипт (редактор можно вызвать из инспектора объектов):

if [Сумма] > 2000 then

Visible := 1 else

Visible := 0

  1. Пользуясь функцией FreeSpace, которая возвращает размер свободного места на листе, и процедурой NewPage, которая начинает печать с новой страницы (или NewColumn – с новой колонки), можно управлять процессом формирования отчета. Например: если места осталось меньше 30мм, начать печать со следующего листа. Для этого в скрипте нужного бэнда необходимо набрать следующее:

if FreeSpace * 5/18 < 30 then NewPage

  1. Для того, чтобы вывести бэнд Report summary внизу страницы, используйте следующий код в скрипте этого бэнда:

CurY := PageHeight - Height