Модуль предназначен для формирования печатных форм/отчетов, их экспорта в другие форматы (MS Word, MS Excel, JPEG, HTML)
описание:
Автоматически, тип ОфисныйДокумент появляется в списке параметров программы заполнения шаблона в печатных формах документов или
в программе отчета, если вместо модулей "Просмотр документов", "Печать документов", "Групповые отчеты" выбрать "Офисные документы".
В список параметров программы в этом случае вместо параметра Шаблон: Шаблон или Шаблон: ГрупповойОтчет добавляется параметр Шаблон: ОфисныйДокумент.
Переменную Шаблон типа ОфисныйДокумент необходимо дополнительно инициализировать командой:
Шаблон.СоздатьПакетОтчета(ИмяПакета, Комментарий);
здесь ИмяПакета - строковая переменная или константа, значение которой произвольный идентификатор (последовательность букв, цифр, знаков подчеркивание);
Комментарий - строковая переменная или константа с произвольным содержимым, возможно пустая.
После этого можно загружать собственно шаблоны печатных форм, добавлять таблицы и данные к ним, добавлять переменные.
Вне контекста отчетов и печатных форм документов работать с Офисными Документами нельзя.
функции объекта:
ДобавитьЗаписьВТаблицуФормат вызова:
ОфисныйДокумент.ДобавитьЗаписьВТаблицу(ИмяШаблона, ИмяТаблицы, Поля...: строка; Значения ...: БезТипа); /*только чтение*/
описание:
Добавление значение в указанную таблицу
пример использования:
для Шаблон делать
начало
.ДобавитьЗаписьВТаблицу(
"ПриказОПриеме" - алиас шаблона
"Сотрудники", - имя таблицы
"ТабельныйНомер;Фамилия", - имена полей
ЦелоеВСтроку(Приказ.Сотрудники(А).ТабНомер), - значения полей
Приказ.Сотрудники(А).Фамилия
);
конец;
Формат вызова:
ОфисныйДокумент.ДобавитьПеременнуюДата(Отчет, Категория, ИмяПеременной, ЗначениеПеременной: строка): строка; /*только чтение*/
описание:
Добавление переменной в шаблон печатной формы/отчета, тип "Дата", указывается алиас шаблона, категория переменных, имя переменной, ее значение.
пример использования:
Шаблон.ДобавитьПеременнуюДата("ПриказОПриемеТ1тех", "Предприятие", "ПриказДата", Приказ.Дата);
// Первый параметр - алиас шаблона, если шаблон находится "Конфигурация\Шаблоны\Кадровый учет\Приказы\ПриказОПриеме", то
// алиас этого шаблона - "ПриказОПриеме". Алиас как и идентификатор может содержать только буквы, цифры и знак подчеркивание.
Формат вызова:
ОфисныйДокумент.ДобавитьПеременнуюСтрока(Отчет, Категория, ИмяПеременной, ЗначениеПеременной: строка): строка; /*только чтение*/
описание:
Добавление переменной в шаблон печатной формы/отчета, тип "Строка", указывается алиас шаблона, категория переменных, имя переменной, ее значение.
пример использования:
Шаблон.ДобавитьПеременнуюСтрока("ПриказОПриемеТ1тех", "Предприятие", "Наименование", ОрганизацияИмя);
Формат вызова:
ОфисныйДокумент.ДобавитьПеременнуюЦелое(Отчет, Категория, ИмяПеременной, ЗначениеПеременной: строка): строка; /*только чтение*/
описание:
Добавление переменной в шаблон печатной формы/отчета, тип "Целое число", указывается алиас шаблона, категория переменных, имя переменной, ее значение.
пример использования:
Шаблон.ДобавитьПеременнуюЦелое("ПриказОПриемеТ1тех", "Предприятие", "Наименование", ОрганизацияКод);
Формат вызова:
ОфисныйДокумент.ДобавитьПолеВремя(ИмяТаблицы, ИмяПоля: строка);
описание:
Добавление поля в таблицу данных в формате "Время" - 13:37:25
пример использования:
Шаблон.ДобавитьПолеВремя("Сотрудники", "Время");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеДата(ИмяТаблицы, ИмяПоля: строка);
описание:
Добавление поля в таблицу данных в формате "Дата" - 28/10/2002
пример использования:
Шаблон.ДобавитьПолеДата("Сотрудники", "ПериодОт");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеДатаВремя(ИмяТаблицы, ИмяПоля: строка);
описание:
Добавление поля в таблицу данных в формате "Дата и время" - 09/02/2002 12:00:00
пример использования:
Шаблон.ДобавитьПолеДатаВремя("Сотрудники", "ПериодОт");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеДвоичное(ИмяТаблицы, ИмяПоля: строка);
описание:
Добавление поля в таблицу данных в формате "Бинарная последовательность" - произвольные символы
Формат вызова:
ОфисныйДокумент.ДобавитьПолеДеньги(ИмяТаблицы, ИмяПоля: строка): дробное;
описание:
Добавление поля в таблицу данных в формате "Число с целой и дробной частями" - 1234567890.12
пример использования:
Шаблон.ДобавитьПолеДеньги("Сотрудники", "Сумма");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеДробное(ИмяТаблицы, ИмяПоля: строка): дробное;
описание:
Добавление поля в таблицу данных в формате "Число с целой и дробной частями" - 1234567890.12
пример использования:
Шаблон.ДобавитьПолеДробное("Сотрудники", "Сумма");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеКартинка(ИмяТаблицы, ИмяПоля: строка);
описание:
Добавление поля в таблицу данных в формате "Бинарная последовательность" - произвольные символы, для хранения изображений
Формат вызова:
ОфисныйДокумент.ДобавитьПолеЛогическое(ИмяТаблицы, ИмяПоля: строка);
описание:
Добавление поля в таблицу данных в формате "Да, нет"
пример использования:
Шаблон.ДобавитьПолеДата("Сотрудники", "Признак");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеМемо(ИмяТаблицы, ИмяПоля, РазмерПоля: строка): строка;
описание:
Добавление поля в таблицу данных в формате "Символы" - "текст". Используется в случае известной длины текста. Нет ограничение на длины строки
пример использования:
Шаблон.ДобавитьПолеМемо("Сотрудники", "АдресПоПрописке");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеСтрока(ИмяТаблицы, ИмяПоля, РазмерПоля: строка): строка;
описание:
Добавление поля в таблицу данных в формате "Символы" - "текст". Используется в случае известной длины текста. Ограничение длины 250 символов
пример использования:
Шаблон.ДобавитьПолеСтрока("Сотрудники", "Условие", "100");
Формат вызова:
ОфисныйДокумент.ДобавитьПолеЦелое(ИмяТаблицы, ИмяПоля: строка): целое;
описание:
Добавление поля в таблицу данных в формате "Число с целой частью" - 1234567890
Формат вызова:
ОфисныйДокумент.Заголовок: строка;
описание:
Не используется
пример использования:
нет
ЗагрузитьИзКонфигурацииШаблоны
Формат вызова:
ОфисныйДокумент.ЗагрузитьИзКонфигурацииШаблоны(ПутиКШаблонам...: БезТипа);
описание:
Загрузка одного шаблона или нескольких шаблонов из конфигурации. Для добавление таблиц и переменных в шаблон используется алиас шаблона. Алиас это
не содержащая пробелов строка совпадающая с именем шаблона (без пути) из конфигурации. Например, если полное имя шаблона имеет вид :
"Конфигурация\Шаблоны\Кадровые документы\Приказы\ПриказОПриеме", то алиас шаблона - "ПриказОПриеме".
пример использования:
Шаблон.ЗагрузитьИзКонфигурацииШаблоны(РесурсПоУмолчанию, "Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Приказы\СтраницаСогласования");
Шаблон.ЗагрузитьИзКонфигурацииШаблоны("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Приказы\ПриказОПриемеТ1тех", "Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Приказы\СтраницаСогласования");
Формат вызова:
ОфисныйДокумент.ПоказатьОтчет;
описание:
Визуализация сформированного отчета.
пример использования:
Шаблон.ПоказатьОтчет;
Формат вызова:
ОфисныйДокумент.СоздатьПакетОтчета(ИмяПакета, Комментарий: строка): строка;
описание:
Функция создаёт объект Офисный документ с именем ИмяПакета для последующего его заполнения шаблонами печатных форм и данными.
Вызов этой функции предваряет все остальные операции с офисным документом, как то: загрузку шаблонов печатных форм,
добавление таблиц данных и заполнение их данными, добавление переменных, визуализацию печатной формы.
Первый аргумент - ИмяПакета - произвольный идентификатор, второй аргумент - Комментарий - произвольная, возможно пустая, строка символов.
пример использования:
Шаблон.СоздатьПакетОтчета("ПриказОПриемеТ1тех", "Шаблон для создания отчета Приказ Т-1");
Формат вызова:
ОфисныйДокумент.СоздатьТаблицуДанных(ИмяШаблона, ИмяТаблицы, ИмяСвязьТаблицы, МастерПоле, ДетальПоле, ИндексПоле: строка): строка;
описание:
Создание таблицы данных, которые необходимо отразить в печатной форме/отчете. Как правило вызывается с добавлением полей
пример использования:
для Шаблон делать
начало
.СоздатьТаблицуДанных("ПриказОПриеме", "Сотрудники", "", "", "", "");
конец;
для Шаблон делать
начало
.СоздатьТаблицуДанных("ПриказОбщий", "Сотрудники", "", "", "", ""); // В списке параметров первый - алиас шаблона, затем имя таблицы...
.ДобавитьПолеСтрока("Сотрудники", "ТабельныйНомер", "30");
.ДобавитьПолеСтрока("Сотрудники", "Фамилия", "30");
.ДобавитьПолеСтрока("Сотрудники", "Имя", "30");
.ДобавитьПолеСтрока("Сотрудники", "РегламентНомер", "15");
.ДобавитьПолеДата("Сотрудники", "РегламентДата");
конец;
Формат вызова:
ОфисныйДокумент.СохранитьСтруктуруВФайл(ИмяУзла, Имя файла: строка): строка; /*только чтение*/
описание:
Не используется
пример использования:
нет
Формат вызова:
ОфисныйДокумент.ДобавитьЗапись(ИмяШаблона, ИмяТаблицы: строка); /*только чтение*/
описание:
Не реализована.
Формат вызова:
ОфисныйДокумент.ДобавитьЗаписьВТаблицуРасш(ИмяШаблона, ИмяТаблицы, Поля...: строка; Значения ...: БезТипа); /*только чтение*/
описание:
Добавляет в таблицу запись, в которой указанные поля инициализированы значениями, не указанные поля - пустыми строками.
Формат вызова:
ОфисныйДокумент.ДобавитьПеременную(Отчет, Категория, ИменаПеременных ...: строка; ЗначенияПеременных: БезТипа; ТипПоля: строка); /*только чтение*/
описание:
Не реализовано.
Формат вызова:
ОфисныйДокумент.ЗагрузитьИзКонфШаблоныРасш(ПутиКШаблонам...: БезТипа; ИмяШаблона...: строка);
описание:
Новый, расширенный, вариант загрузки шаблонов печатных документов/отчетов, позволяющий связать шаблон с ИменемШаблона отличным от алиаса шаблона.
ИмяШаблона - второй обязательный параметр. Помимо этого расширенный способ загрузки шаблонов разрешает использовать ряд дополнительных функций для
работы с обектом ОфисныйДокумент: ДобавитьЗаписьВТаблицуРасш, ЗагрузитьСкрипт, ПолучитьПеременныеВсе, ПолучитьПеременныеШаблона, ПолучитьПоляТаблиц, ПолучитьПутиКШаблонам,
ПолучитьПутьКШаблону.
пример использования:
Шаблон.ЗагрузитьИзКонфигурацииШаблоныРасш("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Договора-Контракты\СлужебныйКонтракт", "Тест");
Шаблон.ЗагрузитьИзКонфигурацииШаблоныРасш("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Договора-Контракты\СлужебныйКонтракт", "Тест1");
Шаблон.ЗагрузитьИзКонфигурацииШаблоныРасш("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Договора-Контракты\СлужебныйКонтракт", "Тест2");
Шаблон.ЗагрузитьИзКонфигурацииШаблоныРасш("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Договора-Контракты\СлужебныйКонтракт", "Тест3");
Шаблон.ДобавитьПеременнуюСтрока("Тест", "Предприятие", "НомерДоговора", "12/234");
Шаблон.ДобавитьПеременнуюСтрока("Тест1", "Предприятие", "Сторона1РуководительДолжность", "Председатель комитета");
Шаблон.ДобавитьПеременнуюСтрока("Тест2", "Предприятие", "Сторона1РуководительДолжность_РПод", "Председателя комитета");
Формат вызова:
ОфисныйДокумент.ЗагрузитьСкрипт(ИмяШаблона: строка): строка; /*только чтение*/
описание:
Позволяет получить в виде xml-структуры текст помещённый в раздел офисного шаблона "Скрипт", если он размещён в комментарии между словом
"ABLScriptBegin" и словом "ABLScriptEnd".
пример использования:
Допустим у нас имеются два шаблона ТестДанных.fr3 и ТестДанных1.fr3, разделы скриптов имеют вид:
{
ABLScriptBegin
Код := 99;
Маска := 111;
Положение := 'Нормальное положение';
ABLScriptEnd
}
begin
end.
и
{
ABLScriptBegin
Код := 99;
Маска := 111;
Положение := 'Нормальное положение';
функция Факт(n: целое): целое; начало если n = 0 тогда результат := 1 иначе результат := n * Факт(n - 1); конец;
ABLScriptEnd
}
begin
end.
тогда, после выполнения фрагмента:
ОД.СоздатьПакетОтчета("Тест", "");
ОД.ЗагрузитьИзКонфШаблоныРасш("Конфигурация\Шаблоны\Анкетные данные\ТестДанных", "Тест1");
ОД.ЗагрузитьИзКонфШаблоныРасш("Конфигурация\Шаблоны\Анкетные данные\ТестДанных1", "Тест2");
Script := СоздатьСтруктурныйСписок;
Script.XMLТекст := ОД.ЗагрузитьСкрипт("Тест1");
ВывестиТекст(Script.XMLТекст);
будет получен следующий результат:
<?xml version="1.0" encoding="utf-8" standalone="yes">
<ABLScripts>
<ABLScripts>
<Тест1>
<ABLScript скрипт="ABLScriptBegin"/>
<ABLScript скрипт=" Код := 99;"/>
<ABLScript скрипт=" Маска := 111;"/>
<ABLScript скрипт=" Положение := 'Нормальное положение';"/>
<ABLScript скрипт="ABLScriptEnd"/>
</Тест1>
<Тест2>
<ABLScript скрипт="ABLScriptBegin"/>
<ABLScript скрипт=" Код := 99;"/>
<ABLScript скрипт=" Маска := 111;"/>
<ABLScript скрипт=" Положение := 'Нормальное положение';"/>
<ABLScript скрипт=" функция Факт(n: целое): целое; начало если n = 0 тогда результат := 1 иначе результат := n * Факт(n - 1); конец;"/>
<ABLScript скрипт="ABLScriptEnd"/>
</Тест2>
</ABLScripts>
</ABLScripts>
</?xml>
Формат вызова:
ОфисныйДокумент.ПолучитьПеременныеВсе; /*только чтение*/
описание:
Позволяет получить все переменные добавленные в шаблоны офисного документа.
пример использования:
сс := СоздатьСтруктурныйСписок;
попытка
сс.XMLТекст := Шаблон.ПолучитьПеременныеВсе; ВывестиТекст(сс.XMLТекст);
обязательно
УдалитьОбъект(СС);
конец;
результат:
<ПеременныеШаблонов>
<Переменные>
<Тест>
<ДатаЗаключенияМесяцПрописью/>
<НомерДоговора/>
<Сторона1РуководительДолжность_РПод/>
<Сторона1РуководительФИО_РПод/>
</Тест>
<Тест1>
<ДатаЗаключенияМесяцПрописью/>
<НомерДоговора/>
<Сторона1РуководительДолжность_РПод/>
<Сторона1РуководительФИО_РПод/>
<Сторона1РуководительОснованиеПолномочий_РПод/>
<Сторона2ПолноеИмя/>
<Сторона2РуководительДолжность_РПод/>
<Сторона2РуководительФИО_РПод/>
</Тест1>
</Переменные>
</ПеременныеШаблонов>
Формат вызова:
ОфисныйДокумент.ПолучитьПеременныеШаблона(ИмяШаблона: строка); /*только чтение*/
описание:
Не реализована.
Формат вызова:
ОфисныйДокумент.ПолучитьПоляТаблиц; /*только чтение*/
описание:
Возвращает таблицы, используемые в шаблоне, и их поля в виде xml-структуры.
пример использования:
Шаблон.СоздатьПакетОтчета("Движение", "");
Шаблон.ЗагрузитьИзКонфШаблоныРасш("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Служебные отчеты\ДвижениеПерсонала", "Change");
s1 := СоздатьСтруктурныйСписок;
s1.XMLТекст := Шаблон.ПолучитьПоляТаблиц; ВывестиТекст(s1.XMLТекст);
Результат:
<?xml version="1.0" encoding="utf-8" standalone="yes">
<TableFields>
<ПоляТаблицы>
<Change>
<Сотрудники.Подразделение/>
<Сотрудники.Принятые/>
<Сотрудники.Переведенные/>
<Сотрудники.Уволенные/>
</Change>
</ПоляТаблицы>
</TableFields>
</?xml>
Формат вызова:
ОфисныйДокумент.ПолучитьПутиКШаблонам; /*только чтение*/
описание:
Позволяет в ABL-скрипте получить полные пути к шаблонам в виде xml-структуры.
пример использования:
Шаблон.СоздатьПакетОтчета("Движение", "");
Шаблон.ЗагрузитьИзКонфШаблоныРасш("Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Служебные отчеты\ДвижениеПерсонала", "Change");
s := СоздатьСтруктурныйСписок;
s.XMLТекст := Шаблон.ПолучитьПутиКШаблонам; ВывестиТекст(s.XMLТекст);
Результат:
<?xml version="1.0" encoding="utf-8" standalone="yes">
<ПутиШаблонов>
<ПутиКШаблонам>
<Change путь="Конфигурация\Шаблоны\Кадровый учет\Документы МЭФ МО\Служебные отчеты"/>
</ПутиКШаблонам>
</ПутиШаблонов>
</?xml>
Формат вызова:
ОфисныйДокумент.ПолучитьПутьКШаблону(ИмяШаблона: строка); /*только чтение*/
описание:
Не реализована.
Формат вызова:
ОфисныйДокумент.РедактироватьЗапись(ИмяШаблона, ИмяТаблицы, Поля...: строка; Значения ...: БезТипа); /*только чтение*/
описание:
Не реализована.
РедактироватьИзКонфигурацииШабло
Формат вызова:
ОфисныйДокумент.РедактироватьИзКонфигурацииШабло(СодержаниеШаблона: строка);
описание:
Не реализовано.
Формат вызова:
ОфисныйДокумент.СохранитьЗапись(ИмяШаблона, ИмяТаблицы: строка); /*только чтение*/
описание:
Не реализована.
Формат вызова:
ОфисныйДокумент.СохранитьСкрипт(ИмяШаблона: строка): строка; /*только чтение*/
описание:
Не реализована.