Додавання нового шаблону:
Приклад, для Клієнта:
Клієнти - Клієнти - Шаблонна друк - Додати
Аналогічним чином можна додати шаблон договору:
Клієнти - Договори - Шаблонна друк - Додати
Розширення файлів. В OpenOffice Writer шаблони зберігаються з розширенням * .ott.
Збереження шаблону в OpenOffice Writer:
- Файл - Зберегти як ... - вибрати Шаблон текстового документа OpenDocument (* .ott)
В OpenOffice Calc шаблони зберігаються з розширенням * .ots.
Збереження шаблону в OpenOffice Calc:
- Файл - Зберегти як ... - вибрати Шаблон електронної таблиці OpenDocument (* .ots)
Шаблони в OpenOffice Writer
Шаблони можуть містити текст, таблиці та інші елементи форматування OpenOffice Writer. Як і в MS Office, в шаблон можна додати поля для заповнення і макроси.
Створення полів в шаблоні:
Вставка - Поля - Додатково ... - перейти на вкладку "Функції" - Поле введення - ввести в поле Підказка реквізит, наприклад "Кліент.Імя" - Вставити - Закрити
Ті поля, які будуть в подальшому використовуватися в макросі іменуються наступним чином:
Вставка - Поля - Додатково ... - перейти на вкладку "Функції" - Поле введення - Вставити - ввести найменування поля, наприклад "Ім'я" - ОК - Закрити
Створення скриптів в шаблоні:
У шаблон також можна додати процедуру VBA, для цього в вікні редагування шаблону потрібно вибрати вже існуючий макрос або додати новий.
При написанні скриптів для OpenOffice Writer і OpenOffice Calc в скрипт передається наступне:
Set oXPL = NamedObjects. ParamList () - список параметрів об'єкта.
Set oApp = oXPL.VariantProperty ( "Додаток") - інтерфейс програми, в яке буде відбуватися висновок.
Set oDesktop = oXPL.VariantProperty ( "ДОПОБ'ЕКТ1") - містить інтерфейс робочого столу OpenOffice
Set oDoc = oXPL.VariantProperty ( "ДОПОБ'ЕКТ2") - містить інтерфейс документа
Для звернення до полю в макросі використовується функція getPropertyValue ( "Content"), результатом якої є значення підказки, для присвоєння даного полю значення - setPropertyValue "Content", нове значення.
Для того, щоб знайти на шаблоні потрібне поле в макросі використовується перебір всіх полів, розташованих на шаблоні. Функція getTextFields (). CreateEnumeration () створює список всіх полів шаблону. Поля можна перебирати або поки вони не закінчилися (функція hasMoreElements () в цьому випадку повертає значення True), або поки не знайшлося потрібне поле (порівнюємо значення підказки поля (getPropertyValue ( "Content")) з потрібним значенням).
Для запису в поточне поле використовується функція setPropertyValue "Content", нове значення
Set oFields = oDoc.getTextFields (). CreateEnumeration () 'список всіх полів шаблону записується в oFields
Do While (oFields.hasMoreElements ())
Set oElem = oFields.nextElement ()
If oElem.supportsService ( "com.sun.star.text.TextField.Input") Then
If oElem.getPropertyValue ( "Content") = "Дата" Then
Функція oElem.supportsService ( "com.sun.star.text.TextField.Input") перевіряє текстове це поле чи ні.
Приклад виведення суми прописом в кінці документа:
Set oXPL = NamedObjects.ParamList ()
Set oApp = oXPL.VariantProperty ( "Додаток")
Set oDesktop = oXPL.VariantProperty ( "ДОПОБ'ЕКТ1")
Set oDoc = oXPL.VariantProperty ( "ДОПОБ'ЕКТ2")
Set wf = CreateObject ( "wfintools.comtools")
sFields = wf.Propis ( "45.1", "978")
Set oEnd = oDoc.getText (). GetEnd ()
If Not oEnd Is Nothing Then
Приклад перетворення формату дати:
Set oXPL = NamedObjects.ParamList ()
Set oApp = oXPL.VariantProperty ( "Додаток")
Set oDesktop = oXPL.VariantProperty ( "ДОПОБ'ЕКТ1")
Set oDoc = oXPL.VariantProperty ( "ДОПОБ'ЕКТ2")
Set wf = CreateObject ( "wfintools.comtools")
dstr = G2C .GetSysParam ( "Дата опердня")
oDoc.getText (). setString ( "Дата опердня" vbNewLine wf.FormatDate (dstr))
Шаблони в OpenOffice Calc
Створення скриптів в шаблоні:
У скрипт OpenOffice Calc передаються ті ж дані, що і в OpenOffice Writer.
Для того, щоб записати дані в клітинку, потрібно спочатку до неї звернутися за допомогою функції getCellByPosition (N1, N2), де N1 - номер комірки (нумерація осередків починається з 0) по горизонталі, N2 - номер по вертикалі. Потім записати дані, використовуючи функцію SetString () (для тексту) або SetValue () (для чисел).
Set oXPL = NamedObjects .ParamList ()
Set oApp = oXPL.VariantProperty ( "Додаток")
Set oDesktop = oXPL.VariantProperty ( "ДОПОБ'ЕКТ1")
Set oDoc = oXPL.VariantProperty ( "ДОПОБ'ЕКТ2")
'В oSheet передається значення поточного листа
Set oSheet = oDoc.CurrentController.getActiveSheet ()
Set oCell_1 = oSheet.getCellByPosition (1, 2)
- змінна oCell_1 вказує на другу по горизонталі і третю по вертикалі осередок (В3), в яку записується "текст".
Приклад складання списку відкритих договорів клієнта:
Set oSheet = oDoc.CurrentController.getActiveSheet ()
Set Client = NamedObjects .ActiveObject ( "Клієнт")
Startdate = G2C .GetSysParam ( "Дата опердня")
'Змінної Dogovor через об'єкт "Клієнт" присвоюється об'єкт "Договору"
Set Dogovor = client.GetMultiLink ( "Договору")
If Dogovor.GetFirst () Then
nbsp Set Dog = Dogovor.GetBaseObject (True)
dataO = Dog.GetProperty ( "ДатаОткритія". Nothing) .GetStr ()
dataz = Dog.GetProperty ( "ДатаЗакритія". Nothing) .GetStr ()
'Якщо дата відкриття договору менше дати опердня і договір не закрите (тобто в' поле дата закриття варто порожнє значення), то в клітинку з номером (i, 6) 'заноситься номер, а в (i, 9) дата відкриття договору зі зміною в ній знаків ' "/" на "."
If (CDate (dataO)