к оглавлению

Печатные отчеты Clarion

Структуры отчетов

REPORT (объявить структуру документа)

метка REPORT([имяпрц]), AT( ) [, FONT( )] [, PRE( )] [, LANDSCAPE] [, PREVIEW] [, PAPER]

[,COLOR( )] [ | THOUS | ]

| MM |

| POINTS |

[FORM

поля

END ]

[HEADER

поля

END ]

метка DETAIL

поля

END

метка [BREAK( )

структуры раздела

END ]

[FOOTER

поля

END ]

END

REPORT Начинает описание структуры данных документа.

метка Имя, посредством которого программа осуществляет ссылку на структуру.

имяпрц Именует процесс печати, запускаемый Администратором Печати системы Windows (Windows Print Manager) (PROP:Text). Если опущен, используется имя "JOB_CWDEFAULT"

AT Указывает размер области, предназначенной для вывода документа, и ее положение по отношению к левому верхнему углу страницы (PROP:AT).

FONT Указывает шрифт по умолчанию для всех управляющих полей документа (PROP:FONT). Если FONT отсутствует, то используется шрифт по умолчанию для принтера.документов 435

PRE Определяет префикс меток структур документа.

LANDSCAPE Устанавливает “альбомный” режим вывода на печать (PROP:LANDSCAPE). Если LANDSCAPE не указан, то по умолчанию – “портретный” режим.

PREVIEW Устанавливает вывод документа в метафайлы Windows (.WMF); в один файл выводится одна страница документа (PROP:PREVIEW).

PAPER Задает размер бумаги для печати отчета. Если этот параметр опущен, то используется размер бумаги принятый по умолчанию для данного принтера.

COLOR Задает цвет фона отчета и цвет структур отчета по умолчанию (PROP:COLOR).

THOUS Для атрибутов, использующих координаты, устанавливается единица измерения равная тысячной доле дюйма (PROP:THOUS).

MM Для атрибутов, использующих координаты, устанавливается единица измерения равная одному миллиметру (PROP:MM).

POINTS Для атрибутов, использующих координаты, устанавливается единица измерения равная одному пункту (PROP:POINTS). 72 пункта составляют один дюйм как по вертикали, так и по горизонтали.

FORM Структура, описывающая трафарет, который печатается на каждой странице.

поля Выходные поля документа.

HEADER Структура верхнего колонтитула, который печатается в начале каждой страницы.

DETAIL Структура тела документа .

BREAK Структура раздела документа, указывающая переменную, изменение значения которой приводит к завершению раздела.

структуры раздела В их число входят структуры HEADER, FOOTER, DETAIL и/или вложенные BREAK-структуры.

FOOTER Структура нижнего колонтитула, который печатается в конце каждой страницы.

Оператор REPORT открывает описание структуры данных документа. Описание структуры REPORT должно завершаться оператором END или символом точки (.). Внутри REPORT располагаются ее компоненты - структуры FORM, HEADER, DETAIL, FOOTER, BREAK, которые и формируют выходной документ. Структура REPORT должна быть явно открыта оператором OPEN.

Наличие атрибута PREVIEW в объявлении структуры REPORT приводит к записи выходного документа в Windows-метафайлы - по одной странице в файл. PREVIEW указывает имя QUEUE-структуры, в которую заносятся имена метафайлов. Для просмотра документа нужно создать окно с полем IMAGE и установить свойство этого поля - {PROP:Text}, используя значение QUEUE-элемента (имя файла). Это дает возможность пользователю перед выводом документа на печать просмотреть его на экране компьютера.

Атрибут AT определяет на каждой странице область, в которой печатается каждая структура DETAIL. То же относится к структурам HEADER и FOOTER, содержащимся внутри структуры BREAK (групповым заголовкам и итогам).

Единственное, что может (и должно) быть выведено на печать оператором PRINT – это структуры DETAIL. Все другие структуры (HEADER, FOOTER, FORM) автоматически печатаются в соответствующих местах выходного документа.

Структура FORM печатается на каждой странице, исключая те, структуры DETAIL которых объявлены с атрибутом ALONE. “Внешний вид” структуры создается один раз - на начальной стадии подготовки документа к печати. С помощью FORM можно создавать трафареты, которые впоследствии будут заполнены структурами HEADER, DETAIL и FOOTER. Верхний и нижний колонтитулы страницы не входят в структуру BREAK. При переходе на новую страницу они печатаются автоматически.

С помощью структуры BREAK осуществляется разбиение документа на разделы. В состав структуры могут входить HEADER и FOOTER (верхний и нижний колонтитулы раздела), DETAIL-структуры, а также вложенные BREAK-структуры. Кроме того, BREAK может включать в себя несколько структур DETAIL. Структуры HEADER и FOOTER внутри BREAK - колонтитулы раздела. Они автоматически выводятся на печать при изменении значения переменной, указанной в операторе BREAK.

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

Постраничная печать

В основу создания документов (отчетов) в системе Clarion положена концепция постраничного (а не построчного, как в более старых генераторах отчетов) вывода документа на печать. При таком подходе на принтер посылается не отдельная готовая строка, а целиком подготовленная страница. Теперь значительную часть работы по печатанию документов (освобождая от нее программиста) может взять на себя “ядро программы печати” библиотеки времени исполнения, а основой его работы служат атрибуты, указанные при описании структуры REPORT.

Вот лишь некоторые процедуры, которые “ядро программы печати” Clarion-библиотеки времени исполнения выполняет за программиста:

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

Смотри также: PROP:AutoPaper

 

BREAK (объявление структуры раздела документа)

метка BREAK(переменная) [,USE( )] [,NOCASE]

структуры раздела

END

BREAK Объявляет структуру раздела.

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

переменная Переменная, изменение значения которой приводит к завершению раздела (PROP:BreakVar).

USE Мнемоническая метка для ссылок на структуру BREAK в исполняемых операторах (PROP:USE).

NOCASE Указывает, что при проверке измененного значения в переменной не учитывается регистр букв.

структуры раздела В их число входят структуры HEADER, FOOTER, DETAIL и/или вложенные BREAK-структуры.

Структура BREAK указывает переменную, изменение значения которой приводит к завершению раздела. BREAK-структура должна заканчиваться символом точки или оператором END. В состав структуры могут входить HEADER и FOOTER, DETAIL-структуры, а также вложенные BREAK-структуры. Внутри BREAK структуры HEADER и FOOTER обязаны быть в единственном числе, однако, допустимы несколько структур DETAIL и/или вложенные BREAK-структуры.

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

Пример:

CustRpt REPORT !Документ с информацией о клиенте

Break1 BREAK(SomeVariable)

HEADER ! начало верхнего колонтитула раздела

!поля документа

END ! конец верхнего колонтитула раздела

GroupDet DETAIL

!поля документа

END ! конец описания тела документа

FOOTER ! начало нижнего колонтитула раздела

!поля документа

END ! конец нижнего колонтитула раздела

END ! конец описания раздела

END !Конец описания структуры документа

 

DETAIL (объявить структуру документа)

метка DETAIL ,AT( ) [,FONT( )] [,ALONE] [,ABSOLUTE] [,PAGEBEFORE( )] [,PAGEAFTER( )]

[,WITHPRIOR( )] [,WITHNEXT( )] [,USE( )] [,COLOR( )] [,TOGETHER]

поля

END

DETAIL Объявляет компоненты, которые должны быть напечатаны в теле документа.

метка Имя, посредством которого программа осуществляет ссылку на структуру.

AT Указывает смещение и минимальные значения ширины и высоты DETAIL внутри области, размеры которой установлены атрибутом AT структуры REPORT (PROP:AT).

FONT Указывает шрифт по умолчанию для всех управляющих полей DETAIL-структуры (PROP:FONT). Если FONT отсутствует, то используется шрифт атрибута FONT структуры REPORT, а если и он отсутствует, то - шрифт по умолчанию для принтера.

ALONE Объявляет, что структура DETAIL должна быть напечатана без вывода на страницу структур FORM, (страничной) HEADER и (страничной) FOOTER (PROP:ALONE).

ABSOLUTE Объявляет, что структура DETAIL будет напечатана в фиксированном месте страницы (PROP:ABSOLUTE).

PAGEBEFORE Объявляет, что структура DETAIL будет напечатана в начале новой страницы по завершению обычных действий, связанных с переходом на новую страницу (PROP:PAGEBEFORE).

PAGEAFTER Объявляет, что структура DETAIL сначала будет напечатана, а затем посредством выполнения обычных действий, связанных с переходом на новую страницу, - начнется новая страница (PROP:PAGEAFTER).

WITHPRIOR Объявляет, что структура DETAIL будет напечатана на той же странице, что и предшествующая ей структура, а это - либо DETAL, либо HEADER раздела, либо FOOTER раздела WITHPRIOR).

WITHNEXT Объявляет, что вместе со структурой DETAIL на той же странице будет напечатана и непосредственно следующая за ней структура, а это - либо DETAL, либо HEADER раздела, либо FOOTER раздела (PROP:WITHNEXT).

USE Метка соответствия поля, с помощью которой программа осуществляет ссылку на структуру (PROP:USE).

COLOR Задает цвет фона для данной структуры DETAIL и цвет фона по умолчанию для всех элементов внутри нее (PROP:COLOR).

TOGETHER Указывает, что DETAIL или групповые структуры HEADER или FOOTER (которые находятся внутри структуры BREAK), должны печататься только на одной странице, а не разделяться автоматически, если для этого не хватает пространства (PROP:Together).

поля Выходные поля документа

Структура DETAIL объявляет компоненты, которые должны быть напечатаны в теле документа. DETAIL-структура должна заканчиваться символом точки или оператором END. Более одной DETAIL могут входить в состав структуры REPORT.

Поскольку автоматически структура DETAIL на печать не выводится, то это нужно делать явно, используя оператор PRINT. Следовательно, каждая DETAIL-структура, которую нужно вывести на печать, обязательно должна быть снабжена меткой.

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

Структуры DETAIL печатаются в диапазоне, который указывается атрибутом АТ выражения REPORT. Атрибут АТ структуры DETAIL указывает сравнительную позицию, высоту и ширину фрагмента, который будет напечатан. Если остается место (по горизонтали) в области печати при отображении нескольких структур DETAIL, то они печатаются встык.

Пример:

CustRpt REPORT !Документ с информацией о клиенте

HEADER ! начало верхнего колонтитула страницы

!элементы структуры

END ! конец верхнего колонтитула страницы

CustDetail1 DETAIL ! начало DETAIL-объявления

!элементы структуры

END ! конец DETAIL-объявления

CustDetail2 DETAIL ! начало DETAIL-объявления

!элементы структуры

END ! конец DETAIL-объявления

END !Конец описания структуры документа

CODE

OPEN(CustRpt)

SET(SomeFile)

LOOP

NEXT(SomeFile)

IF ERRORCODE() THEN BREAK.

IF SomeCondition

PRINT(CustDetail1)

ELSE

PRINT(CustDetail2)

END

END

CLOSE(CustRpt)

Смотри также: PRINT, AT

 

FOOTER (структура нижнего колонтитула страницы или раздела)

FOOTER ,AT( ) [,FONT( )] [,ABSOLUTE] [,PAGEBEFORE( )] [,PAGEAFTER( )]

[,WITHPRIOR( )] [,WITHNEXT( )] [,ALONE] [,USE( )] [,COLOR( )] [,TOGETHER]

поля

END

FOOTER Объявляет нижний колонтитул страницы или раздела.

AT Указывает размер и расположение нижнего колонтитула (PROP:AT).

FONT Указывает шрифт по умолчанию для всех управляющих полей FOOTER-структуры (PROP:FONT). Если FONT отсутствует, то используется шрифт атрибута FONT структуры REPORT, а если и он отсутствует, то - шрифт по умолчанию для принтера.

ABSOLUTE Объявляет, что структура FOOTER будет напечатана в фиксированном месте страницы (PROP:ABSOLUTE). Атрибут допустим только для FOOTER в структуре BREAK.

PAGEBEFORE Объявляет, что структура FOOTER будет напечатана в начале новой страницы по завершению обычных действий, связанных с переходом на новую страницу (PROP:PAGEBEFORE). Атрибут допустим только для FOOTER в структуре BREAK.

PAGEAFTER Объявляет, что структура FOOTER сначала будет напечатана, а затем посредством выполнения обычных действий, связанных с переходом на новую страницу, - начнется новая страница (PROP:PAGEAFTER). Атрибут допустим только для FOOTER в структуре BREAK.

WITHPRIOR Объявляет, что структура FOOTER будет напечатана на той же странице, что и предшествующая ей структура, а это - либо DETAL, либо HEADER раздела, либо FOOTER раздела (PROP:WITHPRIOR). Атрибут допустим только для FOOTER в структуре BREAK.

WITHNEXT Объявляет, что вместе со структурой FOOTER на той же странице будет напечатана и непосредственно следующая за ней структура, а это - либо DETAL, либо HEADER раздела, либо FOOTER раздела (PROP:WITHNEXT). Атрибут допустим только для FOOTER в структуре BREAK.

ALONE Объявляет, что структура FOOTER (для раздела) должна быть напечатана без вывода на страницу структур FORM, (страничной) HEADER и (страничной) FOOTER (PROP:ALONE).

USE Метка соответствия поля, с помощью которой программа осуществляет ссылку на структуру (PROP:USE).

COLOR Задает цвет фона для данной структуры FOOTER и цвет фона по умолчанию для всех элементов внутри нее (PROP:COLOR).

TOGETHER Указывает, что DETAIL или групповые структуры HEADER или FOOTER (которые находятся внутри структуры BREAK), должны печататься только на одной странице, а не разделяться автоматически, если для этого не хватает пространства (PROP:Together).

поля Выходные поля документа.

Структура FOOTER объявляет выходные данные, которые будут напечатаны в конце каждой страницы или раздела. FOOTER-структура должна заканчиваться символом точки или оператором END.

Структура FOOTER, если она расположена вне BREAK-структуры, представляет собой нижний колонтитул страницы. В REPORT должно быть не более одной страничной FOOTER-структуры. При возникновении ситуации перехода на новую страницу нижний колонтитул страницы автоматически выводится на печать. Положение колонтитула в напечатанной странице определяется его AT-атрибутом.

С помощью структуры BREAK осуществляется разбиение документа на разделы. В состав структуры могут входить HEADER и FOOTER (верхний и нижний колонтитулы раздела), DETAIL-структуры, а также вложенные BREAK-структуры. Кроме того, BREAK может включать в себя несколько структур DETAIL. Структуры HEADER и FOOTER внутри BREAK - колонтитулы раздела. Они автоматически выводятся на печать – со следующей допустимой позиции области тела документа (область определяется атрибутом AT структуры REPORT) - при изменении значения переменной, указанной в операторе BREAK. В структуре BREAK должно быть не более одной FOOTER-структуры.

Пример:

CustRpt REPORT ! Документ с информацией о клиенте

FOOTER ! начало объявления FOOTER страницы

!поля документа

END ! конец объявления FOOTER

Break1 BREAK(SomeVariable)

GroupDet DETAIL

!поля документа

END ! конец описания тела документа

FOOTER ! начало нижнего колонтитула раздела

!поля документа

END ! конец нижнего колонтитула раздела

END ! конец описания раздела

END ! Конец описания структуры документа

FORM (структура трафарета страницы)

FORM ,AT( ) [,FONT( )] [,USE( )] [,COLOR( )]

поля

END

FORM Объявляет структуру документа, которая печатается на каждой странице.

AT Указывает размер структуры и ее расположение по отношению к левому верхнему углу страницы (PROP:AT).

FONT Указывает шрифт по умолчанию для всех управляющих полей FORM-структуры (PROP:FONT). Если FONT отсутствует, то используется шрифт атрибута FONT структуры REPORT, а если и он отсутствует, то - шрифт по умолчанию для принтера.

USE Метка соответствия поля, с помощью которой программа осуществляет ссылку на структуру (PROP:USE).

COLOR Задает цвет фона для данной структуры FOOTER и цвет фона по умолчанию для всех элементов внутри нее (PROP:COLOR).

поля Выходные поля документа

FORM объявляет структуру документа, которая печатается на каждой странице выходного документа (исключая те, в которых печатаются структуры DETAIL с атрибутом ALONE). FORM-структура должна заканчиваться символом точки или оператором END. В REPORT должно быть не более одной FORM-структуры. При возникновении ситуации перехода на новую страницу FORM автоматически выводится на печать.

“Внешний вид” структуры FORM создается один раз - на начальной стадии подготовки документа к печати. Ее расположение на странице не влияет на расположение в этой странице других структур документа. Например, структуры могут быть напечатаны “поверх” напечатанной FORM-структуры. Поэтому, FORM чаще всего используют для создания трафарета страницы, который затем заполняется последующими структурами HEDER, DETAIL и FOOTER. Ее можно использовать и для нанесения “водяных знаков”, и для графического оформления рамки страницы.

Пример:

CustRpt REPORT ! Документ с информацией о клиенте

FORM

IMAGE('LOGO.BMP'),AT(0,0,1200,1200),USE(?I1)

STRING(@N3),AT(6000,500,500,500),PAGENO

END

GroupDet DETAIL

!поля отчета

END

END ! Конец описания структуры документа

 

HEADER (верхний колонтитул страницы или раздела)

HEADER ,AT( ) [,FONT( )] [,ABSOLUTE] [,PAGEBEFORE( )] [,PAGEAFTER( )]

[,WITHPRIOR( )] [,WITHNEXT( )] [,ALONE] [,USE( )] [,COLOR( )] [,TOGETHER]

поля

END

HEADER Объявляет верхний колонтитул страницы или раздела.

AT Указывает размер и расположение верхнего колонтитула (PROP:AT).

FONT Указывает шрифт по умолчанию для всех управляющих полей HEADER-структуры (PROP:FONT). Если FONT отсутствует, то используется шрифт атрибута FONT структуры REPORT, а если и он отсутствует, то - шрифт по умолчанию для принтера.

ABSOLUTE Объявляет, что структура HEADER будет напечатана в фиксированном месте страницы (PROP:ABSOLUTE). Атрибут допустим только для HEADER в структуре BREAK.

PAGEBEFORE Объявляет, что структура HEADER будет напечатана в начале новой страницы по завершению обычных действий, связанных с переходом на новую страницу (PROP:PAGEBEFORE). Атрибут допустим только для HEADER в структуре BREAK.

PAGEAFTER Объявляет, что структура HEADER сначала будет напечатана, а затем посредством выполнения обычных действий, связанных с переходом на новую страницу, - начнется новая страница (PROP:PAGEAFTER). Атрибут допустим только для HEADER в структуре BREAK.

WITHPRIOR Объявляет, что структура HEADER будет напечатана на той же странице, что и предшествующая ей структура, а это - либо DETAL, либо HEADER раздела, либо FOOTER (PROP:WITHPRIOR). Атрибут допустим только для HEADER в структуре BREAK.

WITHNEXT Объявляет, что вместе со структурой HEADER на той же странице будет напечатана и непосредственно следующая за ней структура, а это - либо DETAL, либо HEADER раздела, либо FOOTER (PROP:WITHNEXT). Атрибут допустим только для HEADER в структуре BREAK.

ALONE Объявляет, что структура HEADER (для раздела) должна быть напечатана без вывода на страницу структур FORM, HEADER и (страничной) FOOTER (PROP:ALONE).

USE Метка соответствия поля, с помощью которой программа осуществляет ссылку на структуру (PROP:USE).

COLOR Задает цвет фона для данной структуры HEADER и цвет фона по умолчанию для всех элементов внутри нее (PROP:COLOR).

TOGETHER Указывает, что DETAIL или групповые структуры HEADER или FOOTER (которые находятся внутри структуры BREAK), должны печататься только на одной странице, а не разделяться автоматически, если для этого не хватает пространства (PROP:Together).

поля Выходные поля документа.

Структура HEADER объявляет выходные данные, которые будут напечатаны в начале каждой страницы или раздела. HEADER-структура должна заканчиваться символом точки или оператором END.

Структура HEADER, если она расположена вне BREAK-структуры, представляет собой верхний колонтитул страницы. В REPORT должно быть не более одной страничной HEADER-структуры. При возникновении ситуации перехода на новую страницу верхний колонтитул страницы автоматически выводится на печать. Положение колонтитула в напечатанной странице определяется его AT-атрибутом.

С помощью структуры BREAK осуществляется разбиение документа на разделы. В состав структуры могут входить HEADER и FOOTER (верхний и нижний колонтитулы раздела), DETAIL-структуры, а также вложенные BREAK-структуры. Кроме того, BREAK может включать в себя несколько структур DETAIL. Структуры HEADER и FOOTER внутри BREAK - колонтитулы раздела. Они автоматически выводятся на печать – со следующей допустимой позиции области тела документа (область определяется атрибутом AT структуры REPORT) - при изменении значения переменной, указанной в операторе BREAK. В структуре BREAK должно быть не более одной HEADER-структуры.

Пример:

CustRpt REPORT ! Документ с информацией о клиенте

HEADER ! начало верхнего колонтитула страницы

!поля документа

END ! конец верхнего колонтитула

Break1 BREAK(SomeVariable)

HEADER ! начало верхнего колонтитула раздела

!поля документа

END ! конец верхнего колонтитула раздела

GroupDet DETAIL

!поля документа

END ! конец описания тела документа

END ! конец описания раздела

END ! Конец описания структуры документа.

 

Свойства, относящиеся к печати

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

PROPPRINT:DevMode

В инструментальной системе Windows Software Development Kit определена целая структура (devmode), определяющая режимы устройства. Это свойство обеспечивает прямое обращение через интерфейс прикладной программы (API) ко всем свойствам принтера. Прежде чем использовать этот способ, посмотрите руководство по Windows API.

Эта структура особая в 32-х битном режиме (см. руководство по Windows API). Однако следующие свойства наиболее распространены и полезны:

DM_ORIENTATION DM_PAPERSIZE DM_PAPERLENGTH

DM_PAPERWIDTH DM_SCALE DM_COPIES

DM_DEFAULTSOURCE DM_PRINTQUALITY DM_POSITION

DM_DISPLAYORIENTATION DM_DISPLAYFIXEDOUTPUT DM_COLOR

DM_DUPLEX DM_YRESOLUTION DM_TTOPTION

DM_COLLATE DM_FORMNAME DM_LOGPIXELS

DM_BITSPERPEL DM_PELSWIDTH DM_PELSHEIGHT

DM_DISPLAYFLAGS DM_NUP DM_DISPLAYFREQUENCY

DM_ICMMETHOD DM_ICMINTENT DM_MEDIATYPE

DM_DITHERTYPE DM_PANNINGWIDTH DM_PANNINGHEIGHT

PROPPRINT:Collate

Указывает, что принтер должен сортировать печатные листы: (копии “в подбор” или нет) 0=off, 1=on (поддерживается не всеми принтерами)

PROPPRINT:Color

Флаг цветной или монохромной печати: 1=монохромная, 2=цветная (поддерживается не всеми принтерами).

PROPPRINT:Context

Возвращает “хэндел” на контекст печатающего устройства, если уже выполнялся оператор PRINT, или на информационный контекст, если этот оператор еще не выполнялся. Это свойство не может применяться к глобальной встроенной переменной PRINTER и обычно только читается (а не устанавливается).

PROPPRINT:Copies

Число копий, которое следует напечатать (поддерживается не всеми принтерами).

PROPPRINT:Device

Имя принтера, так как оно появляется в диалоговом окне Windows “Принтеры”. Если имена нескольких принтеров начинаются одинаково, то используется первый попавшийся с таким именем (регистр букв значения не имеет). Для встроенной переменной PRINTER можно устанавливать только тогда, когда отчет еще не открыт.

PROPPRINT:Driver

Имя файла драйвера принтера ( без расширения .DLL)

PROPPRINT:Duplex

Режим двухсторонней печати (поддерживается не всеми принтерами). Мнемонические имена соответствия (DUPLEX::xxx) для стандартных значений перечисляются в файле PRNPROP.CLW.

PROPPRINT:Extend

PROPPRINT:Extend может иметь значения ИСТИНА или ЛОЖЬ, устанавливаемые во время исполнения программы, и в качестве назначения использует REPORT. Свойство определяет генерировать или нет дополнительную информацию в WMF файлах, для использования в генерации отчетов в новом формате (XML, HTML, PDF и т.д.).

Установите это свойство в ЛОЖЬ (0), если не хотите получать отчеты в альтернативном формате, а предпочитаете меньшие по размеру, компактные файлы WMF (это поведение по умолчанию).

Свойство PROP:Extend позволяет установить свойство атрибута EXTEND во время исполнения программы.

PROPPRINT:FontMode

Режим шрифтов TrueType. Мнемонические имена соответствия (FONTMODE:xxx) для стандартных значений перечисляются в файле PRNPROP.CLW

PROPPRINT:FromMin

Будучи установленным для встроенной переменной PRINTER, это свойство устанавливает, что печать должна начинаться со страницы заданной в поле “From” (начальный номер страницы) в диалоговом окне PRINTERDIALOG. Указание -1 отменяет печать диапазона страниц.

PROPPRINT:FromPage

Номер страницы, с которой начинается печать. Задание -1 означает печать с начала документа.

PROPPRINT:Paper

Стандартный размер бумаги. Мнемонические имена соответствия (PAPER:xxx) для стандартных значений перечисляются в файле PRNPROP.CLW. Это свойство также определяет размер файлов .WMF, создаваемых “ядром печати” исполняемой библиотеки Clarion.

PROPPRINT:PaperBin

Источник подачи бумаги. Мнемонические имена соответствия (PAPERBIN:xxx) для стандартных значений перечисляются в файле PRNPROP.CLW.

PROPPRINT:PaperHeight

Длина листа бумаги в десятых долях миллиметра (мм/10). В дюйме 25,4 мм. Это свойство используется в тех случаях, когда для PROPPRINT:Paper установлено значение PAPER:Custom (для лазерных принтеров обычно не применяется).

PROPPRINT:PaperWidth

Ширина листа бумаги в десятых долях миллиметра (мм/10). В дюйме 25,4 мм. Это свойство используется в тех случаях, когда для PROPPRINT:Paper установлено значение PAPER:Custom (для лазерных принтеров обычно не применяется).

PROPPRINT:Percent

Коэффициент масштабирования, используемый для увеличения или уменьшения размеров печатаемого изображения, в процентах (поддерживается не всеми принтерами). По умолчанию 100%. Чтобы напечатать с желаемым изменением размеров, установите значение этого свойства (если ваши принтер и драйвер принтера Windows поддерживают масштабирование). Например, чтобы увеличить размеры вдвое, установите 200, а чтобы уменьшить в 2 раза - установите 50.

PROPPRINT:Port

Логическое имя порта для вывода на печать (LPT1, COM1 и т.д.).

PROPPRINT:PrintToFile

Признак печати в файл: 0=нет, 1=да.

PROPPRINT:PrintToName

Имя файла для печати в файл.

PROPPRINT:Resolution

Разрешающая способность печати в точках на дюйм (Dots Per Inch - DPI). Мнемонические имена соответствия (RESOLUTION:xxx) для стандартных значений перечисляются в файле PRNPROP.CLW. Должно определяться перед открытием отчета.

PROPPRINT:ToMax

При установки для встроенной переменной PRINTER это свойство устанавливает, что печать должна продолжаться до страницы заданной в поле “To:” диалогового окна PRINTERDIALOG. Указание -1 отменяет печать диапазона страниц.

PROPPRINT:ToPage

Номер страницы на которой прекращается печать. Указание -1 означает печать до конца документа.

PROPPRINT:Yresolution

Разрешающая способность печати по вертикали в точках на дюйм (Dots Per Inch - DPI). Мнемонические имена соответствия (RESOLUTION:xxx) для стандартных значений перечисляются в файле PRNPROP.CLW.

Пример:

SomeReport REPORT

END

CODE

PRINTER{PROPPRINT:Device} = 'Epson' ! Выбрать 1-й Epson в списке

PRINTER{PROPPRINT:Port} = 'LPT2:' ! установить вывод на LPT2

PRINTER{PROPPRINT:Percent} = 250 ! размер печать увеличивается в 2.5 раза

PRINTER{PROPPRINT:Copies} = 3 ! печатать 3 копии каждой страницы

PRINTER{PROPPRINT:Collate} = False ! печатать страницы 1,1,1,2,2,2,3,3,3,...

PRINTER{PROPPRINT:Collate} = True ! печатать страницы 1,2,3..., 1,2,3...,

PRINTER{PROPPRINT:PrintToFile} = True ! печатать в файл

PRINTER{PROPPRINT:PrintToName} = 'OUTPUT.RPT' ! Имя файла, куда печатать

OPEN(SomeReport) ! После установки свойств открыть отчет

SomeReport{PROPPRINT:Paper} = PAPER:User ! Нестандартный размер бумаги SomeReport{PROPPRINT:PAPERHeight} = 6 * 254 ! 6 дюймов высотой

SomeReport{PROPPRINT:PAPERWidth} = 3.5 * 254 ! и 3.5 дюйма шириной

 

Переход на новую страницу

Ситуация перехода на новую страницу возникает когда оператор PRINT не в состоянии разместить структуру DETAIL на текущей странице. Последнее может быть связано либо с недостатком места, либо с присутствием в структуре DETAIL одного из атрибутов PAGEBEFORE или PAGEAFTER. Ниже представлена последовательность действий при возникновении ситуации перехода на новую страницу:

1 Если в структуре REPORT присутствует страничный FOOTER, то печатается нижний колонтитул, начиная с позиции, указанной его атрибутом AT.

2 Счетчик страниц увеличивается на единицу.

3 Если в структуре REPORT присутствует структура FORM, то печатается FORM, начиная с позиции, указанной ее атрибутом AT.

4 Если в структуре REPORT присутствует страничный HEADER, то печатается верхний колонтитул, начиная с позиции, указанной его атрибутом AT.

Связанные процедуры: CLOSE, OPEN, ENDPAGE, PRINT

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS,FONT('Arial',12),PRE(Rpt)

FORM,AT(1000,1000,6500,9000)

IMAGE('LOGO.BMP'),AT(0,0,1200,1200),USE(?I1)

END

HEADER,AT(1000,1000,6500,1000)

STRING('ABC Company'),AT(3000,500,1500,500),FONT('Arial',18)

END

Break1 BREAK(Pre:Key1)

HEADER,AT(0,0,6500,1000)

STRING('Group Head'),AT(3000,500,1500,500),FONT('Arial',18)

END

Detail DETAIL,AT(0,0,6500,1000)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000)

STRING('Group Total:'),AT(5500,500,1500,500)

STRING(@N$11.2),AT(6000,500,500,500),USE(Pre:F1),SUM,RESET(Break1)

END

END

FOOTER,AT(1000,1000,6500,1000)

STRING('Page Total:'),AT(5500,1500,1500,500)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1),SUM,PAGE

END

END !Конец объявления документа

CODE

OPEN(CustReport)

SET(DataFile)

LOOP

NEXT(DataFile)

IF ERRORCODE()

BREAK

END

PRINT(Rpt:Detail)

END

CLOSE(CustReport)

к оглавлению

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

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution