Table.Print

From SunFlurry wiki
Jump to: navigation, search
  Print (Работа с печатью)
Объект:Электронная таблица
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число
Визуальность:Нет

Функция производит печать на принтер, с выводом стандартного диалога печати, если это необходимо. После деления данных на страницы при печати, функция изменяет текст колонтитулов созданных страниц, подставляя вместо выражения #P номер соответствующей страницы, а вместо #Q общее количество страниц при печати.

Синтаксис

Table.Print(<Показать стандартный диалог печати до ее осуществления (INT)>=0,<Наименование задания на принтере (STRING)>,<Режим диалога отмены печати (INT)>=0)

Аргументы

  • <Показать стандартный диалог печати до ее осуществления (INT)> - (необязательный аргумент) Выводить диалог операционной системы для выбора принтера и простых настроек до выполнения печати -- 1, по умолчанию -- 0 (не выводить).
  • <Наименование задания на принтере (STRING)> - (необязательный аргумент) При помещении в очередь принтера задания на печать, будет использовано указанное наименование. Если наименование не указано, будет использовано стандартное наименование ("SunFlurry document").
  • <Режим диалога отмены печати (INT)> - (необязательный аргумент) Задает режим показа диалога отмены печати во время печати. Доступны следующие значения аргумента:
    • 0 (по умолчанию) -- использовать немодальный диалог сверху других окон. Такой диалог не активируется во время появления на экран, чтобы не мешать работать пользователю с текущей активной формой.
    • 1 -- использовать модальный диалог. Такой диалог получает фокус (активируется), продолжать работу при показе такого диалога невозможно.
    • 2 -- не использовать диалог отмены печати вообще.

Примеры

//Функция подготовлена для вывода на экран или печати стандратной печатной формы проекта
//Т -- таблица печатной формы
//Сп -- дополнительные свойства, переданные из модуля печатной формы
//Загол -- заголовок окна
//флАльбомнаяОриентация -- изменить ориентацию, если параметр 0 или 1
Function ПечатнаяФорма(Т,Сп,Загол,флАльбомнаяОриентация=-1)
  Фл:=Т.Printing.ScaleMode;
  If TypeStr(Сп)="LIST" Then
    Копий:=Number(Сп.GetByName("КоличествоКопий"));
    If Копий>0 Then
      Т.Printing.Copies:=Max(Копий,1);
    EndIf;  
    If флАльбомнаяОриентация>=0 Then
      Т.Printing.Orientation:=флАльбомнаяОриентация;
      Т.Printing.ScaleMode:=1;
    EndIf;
  Else
    Т.Printing.Orientation:=0;
    If флАльбомнаяОриентация>=0 Then
      Т.Printing.Orientation:=флАльбомнаяОриентация;
    EndIf;  
    Т.Printing.ScaleMode:=1;
  EndIf;  
  If Фл>0 Then
    Т.Printing.ScaleMode:=Фл;
  EndIf;
  
  //Запретить изменения, если у пользователя нет прав
  Т.EditorMode:=глПользователь.общиеИзменениеПечатныхФорм;
  If глПользователь.общиеИзменениеПечатныхФорм=0 Then
    Т.Restrict:=2;
  EndIf;
  
  //Если принтер не задан в параметрах, возможно, он выбран в свойствах пользователя
  Принтер:=глПользователь.ПринтерПоУмолчанию;
  If _And(TypeStr(Сп)="LIST",not isEmpty(Сп.GetByName("Принтер"))) Then
    Т.Printing.Printer:=Сп.GetByName("Принтер");
  ElseIf (Trim(Принтер)<>"Не выбран")And(Trim(Принтер)<>"") Then
    Т.Printing.Printer:=Принтер;
  EndIf;
  ФлБезДиалогаПечати:=0;
  If TypeStr(Сп)="LIST" Then
    ФлБезДиалогаПечати:=Number(Сп.GetByName("БезДиалогаПечати"))*2;
  EndIf;
  
  Т.SelfReferenceCount:=глНайтиЧислоСсылокВТаблице(Т);
  If _Or(TypeStr(Сп)<>"LIST",isEmpty(Сп.GetByName("ПечататьБезВывода"))) Then
    Т.Show(Загол);
  Else
    Т.Print(0,,ФлБезДиалогаПечати);
  EndIf;
EndFunction