Главная О компании Новости Обучение Обратная связь Форум
сервер контра

ABACUS Financial ABACUS Builder ABACUS Professional ABACUS WEB

Печать таблицы ABACUS Builder (AB7) - инструмент разработки корпоративных информационных систем на базе СУБД Oracle

Безусловно, что работа корпоративной системы подразумевает предоставление различной отчетности, в том числе и на бумажном носителе. Для удобства работы по созданию отчетов на бумажном носителе в ABACUS Builder предусмотрен компонент "Печать".

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

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

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

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

Откроем инсталляцию документа и немного изменим взаимное расположение компонентов:

Компонент "Текст" с надписью "Всего записей:" и компонент "Вычисляемое поле" CALC разместим сразу под таблицей TABLE с правой стороны. Изменим текст в компоненте "Всего записей:" на "Всего записей на странице:" Компоненты LOCATOR и COMBO вместе с компонентами "Текст" ("Поиск" и "Сортировать/искать по:") поместим ниже.

Удобно выполнять эти манипуляции, "обведя" курсором мыши нужную группу компонентов, удерживая левую кнопку, либо, удерживая клавишу "Ctrl", щелкать левой кнопкой по компонентам, которые надо выделить.

Рис. 1. Инсталляция документа. Размещение компонентов

Теперь, выделив компоненты TREE, LOCATOR, COMBO и их заголовки установим для них одно общее свойство "Не печатать". Это свойство можно выставить у каждого компонента по отдельности, оно находится на закладке "Формат".

Рис. 2. Инсталляция документа. Формирование макета печати

Теперь добавим компонент "Вычисляемое поле" CALC1, установив границы снизу и сверху, как показано на рис. 2. Этот компонент предназначен для отображения названия предприятия, которое будет печататься в конце каждой страницы. Для этого нам необходимо внести небольшие изменения в текст формулы "SelectChanged" компонента TREE:

DECLARE
ob AS COV
{
ob:=%TREE.Selected();
if ob.Cat()=2004 then {
	%TABLE:=aql(SELECT
	#^12005.1002,
	#^12005.1003,
	#^12005:1830 where(#^1839.10002=2)^184.2
	FROM
	ob:1830 order by 1,2
	);
%CALC:=aql(ob:1830^12005 count);
%CALC1:=aql(ob^12003.2);
-/Здесь мы отображаем наименование предприятия (атрибут 2 категории 2003/-
}
}

Теперь необходимо организовать работу нашего документа таким образом, чтобы на каждом листе печатались: номер страницы (вверху), наименование предприятия, количество строк на печатном листе (внизу), шапка таблицы TABLE, а также сами данные таблицы TABLE.

"Обведем" компонент "Печать" PRN вокруг заголовков таблицы TABLE. Установим тип "Шапка таблицы", в качестве таблицы укажем TABLE (рис. 3). Теперь при печати содержимого таблицы TABLE на каждой страницы автоматически будут печататься заголовки.

Рис. 3. Шапка таблицы. Инсталляция документа

Затем "обведем" компонент "Печать" PRN1 вокруг компонентов "Текст" и "Вычисляемое поле" CALC. Установим тип "Итоги таблицы" (рис. 4). Содержимое этих компонентов будет печататься в конце каждой печатной страницы. Для организации печати по итогам каждой страницы добавим в компонент PRN1 формулу "Нотификация печати" со следующим текстом:

DECLARE vec AS VECTOR
{
vec := %TABLE.GetPrintedIndexes();
-/В этой строке мы получаем вектор индексов
главного компонента таблицы TABLE, элементы
которого были напечатаны на текущем листе/-
%CALC:= vec.Count();
-/В компонент CALC помещаем количество записей
в таблице на текущей печатном листе/-
}

Рис. 4. Итоги таблицы. Инсталляция документа

"Обведем" компонент "Печать" PRN2 вокруг компонента " "Вычисляемое поле" CALC1. Установим тип "Конец страницы" (рис. 5). Содержимое этого компонента будет печататься в конце каждой страницы.

Рис. 5. Оформление нижнего поля страницы. Инсталляция документа

Осталось теперь сделать шапку нашего документа (она будет печататься на каждой странице) и организовать печать номера каждой страницы.

Первая задача решается достаточно просто. Разместим компонент "Текст" с текстом "Сведения о сотрудниках" и затем "обведем" вокруг него компонент "Печать" PRN3, установим тип компонента "Заголовок страницы".

Для печати номера страницы необходимо в границах компонента "Печать" PRN3, разместим компонент "Печать" PRN4, тип которого укажем "Нумератор", затем укажем, что надо печатать первую страницу документа и зададим формат отображения номера. Итоговая инсталляция документа показана на рис. 6.

Рис. 6. Нумерация страниц. Инсталляция документа

Сохраним все изменения и откроем документ на выполнение. Просмотреть результат будущей печати можно, используя пункт меню "Сервис->Печать->Просмотр печати", или нажав стандартную кнопку на панели инструментов. Примерный вид первой и последней страниц показан на рис. 7 и рис. 8.

Рис. 7. Первая страница. Просмотр печати документа

Рис. 8. Последняя страница. Просмотр печати документа

Установка размера бумаги и полей выполняется из меню настроек "Сервис->Печать->Параметры листа".

Как видим, инструмент ABACUS Builder обладает мощным инструментарием, позволяющим создавать печатные формы.

Для распечатки документа выберите пункт меню "Сервис->Печать-> Печать" или нажмите стандартную кнопку печати на панели инструментов.

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


Первый кассовый аппарат был сконструирован американцем Джеймсом Ритти в 1876 г. Прибор показывал сумму денег, полученную за каждую покупку, и хранил информацию обо всех, сделанных за день, операциях. Возможность ошибок и мелкого жульничества практически перестала существовать, и была достигнута исключительная точность записи всех торговых операций". Из истории создания ККМ, арифмометров и счетных машин
ABACUS Builder. Cостав инструмента разработки

  © Компания "ОМЕГА"   www.omega.ru   (495) 234-42-32,  (495) 727-43-50