Table.CreatePageIndex

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

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

Синтаксис

Table.CreatePageIndex(<Максимальное время ожидания освобождения принтера (INT)>=5000):<Список размеров страниц (LIST)>

Аргументы

  • <Максимальное время ожидания освобождения принтера (INT)> - (необязательный аргумент) До начала расчета, функции необходимо сохранить установки печати в свойства выбранного принтера. Если он занят печатью, функция будет дожидаться окончания ее выполнения. Данный параметр задает максимальное время ожидания в миллисекундах. Если время ожидания превышено, функция завершается, создав исключение. По умолчанию, время ожидания равно 5000 (5 секунд), если этот параметр будет равен нулю, время ожидания ограничено не будет (не рекомендуется для консольных клиентов).

Возвращаемое значение

Возвращает список, каждое из значений которого отвечает за страницу, выводимую на печать, и является строкой следующего вида: <Левый столбец страницы>,<Верхняя строка страницы>:<Правый столбец страницы>,<Нижняя строка страницы>:<Масштаб таблицы при выводе страницы (вещественное число)>. Нумерация столбцов и строк начинается с единицы.

Примеры

//t -- таблица, которую необходимо вывести на печать, все ее свойства (ScaleMode, Orientation и т.п.) уже установлены 
//Ячейка 2,24 таблицы содержит количество напечатанных листов.
Ar:=t.Area(2,24);
If Ar.Text='' Then
  //Если ячейка пуста (пользователь не заполнил ее самостоятельно), вычислим ее значение.
  aList:=t.CreatePageIndex();
  //Добавим количество листов в ячейку
  Ar.Text:=aList.Size();
EndIf;
//Выведем на печать без доп. диалога, где пользователь смог бы снова изменить параметры печати
Т.Print(0);