IGxDocument.OwnMultiCopiesPrint

Синтаксис Fore

OwnMultiCopiesPrint: Boolean;

Синтаксис Fore.NET

OwnMultiCopiesPrint: Boolean;

Описание

Свойство OwnMultiCopiesPrint определяет, будет ли автоматически указан номер экземпляра в тексте штампа маркировки при печати и экспорте отчета.

Комментарии

Свойство актуально для использования, если:

Совет. Для отображения штампа маркировки независимо от применения мандатного доступа или доступа по уровням безопасности установите свойство IMetabasePolicy.AlwaysPrintDocumentLabel в True.

При значении True для автоматического указания номера экземпляра в тексте штампа маркировки печать отчета будет запускаться столько раз, сколько копий было задано в диалоге печати. Если была задана печать 5 копий, то печать будет последовательно запускаться 5 раз. При экспорте отчета значение подстановки &[COPYNUMBER] будет равно единице.

Запуск печати отчета N раз имеет следующие особенности:

Запуск печати отчета N раз доступен только в настольном приложении для экспресс-отчетов, регламентных отчетов и для книг анализа временных рядов.

По умолчанию свойство имеет значение False.

Значение свойства сохраняется вместе с отчетом.

Пример Fore

Для выполнения примера предполагается наличие регламентного отчета с идентификатором «REGULAR_REPORT». Добавьте ссылки на системные сборки Metabase, Drawing.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Security : IMetabaseSecurity;
    Doc: IGxDocument;
    Stamps: IGxStamps;
    Stamp: IGxStamp;
Begin
    MB := MetabaseClass.Active;
    Security:= MB.Security;
    // Задаем использование штампа независимо от настроек
    Security.Policy.AlwaysPrintDocumentLabel := True;
    // Применяем заданные настройки политики
    Security.Apply;
    MObj := MB.ItemById("REGULAR_REPORT").Edit;
    Doc := MObj As IGxDocument;
    // Включаем использование номера экземпляра печати в штампе
    Doc.OwnMultiCopiesPrint := True;
    Stamps := Doc.Stamps;
    // Задаем настройки штампа, расположенного внизу страницы по центру 
    Stamp := Stamps.CenterBottom;
    // Расположение на странице
    Stamp.Appearance := GxStampAppearance.EveryPage;
    // Задаем отступ 0 мм слева и 10 мм сверху
    Stamp.Offset := New GxSizeF.Create(010);
    // Задаем размер штампа - 70x70 мм
    Stamp.Size := New GxSizeF.Create(7070);
    // Задаем текст штампа    
    Stamp.Rtf := "{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset240 Cambria;}}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang9\b\f0\fs22 Копия &[CopyNumber] из &[TOTAL_COPIES] \par Страница: &[Page] из &[Pages] \par Дата: &[Date] \par}";
    MObj.Save;
End Sub UserProc;

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

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Указанная процедура является точкой входа для .NET-сборки.

Imports Prognoz.Platform.Interop.Drawing;

...

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Security : IMetabaseSecurity;
    Doc: IGxDocument;
    Stamps: IGxStamps;
    Stamp: IGxStamp;
    Size1, Size2: GxSizeF = New GxSizeF();
Begin
    MB := Params.Metabase;
    Security:= MB.Security;
    // Задаем использование штампа независимо от настроек
    Security.Policy.AlwaysPrintDocumentLabel := True;
    // Применяем заданные настройки политики
    Security.Apply();
    MObj := MB.ItemById["REGULAR_REPORT"].Edit();
    Doc := MObj As IGxDocument;
    // Включаем использование номера экземпляра печати в штампе
    Doc.OwnMultiCopiesPrint := True;
    Stamps := Doc.Stamps;
    // Задаем настройки штампа, расположенного внизу страницы по центру 
    Stamp := Stamps.CenterBottom;
    // Расположение на странице
    Stamp.Appearance := GxStampAppearance.gsaEveryPage;
    // Задаем отступ 0 мм слева и 10 мм сверху
    Size1.Create(010);
    Stamp.Offset := Size1;
    // Задаем размер штампа - 40x30 мм
    Size2.Create(4030);
    Stamp.Size := Size2;
    // Задаем текст штампа
    Stamp.Rtf := "{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset240 Cambria;}}\viewkind4\pard\sa200\sl276\slmult1\lang9\b\f0\fs22 Копия &[CopyNumber] из &[TOTAL_COPIES] \par Страница: &[Page] из &[Pages] \par Дата: &[Date] \par}";
    MObj.Save();
End Sub;

См. также:

IGxDocument