Стандартні процедури вводу-виводу

Макрос, як і будь-яка програма, опрацьовуючи інформацію повинен отримувати для своєї роботи вхідні дані, та виводити результати їх обробки. В ідеалі макрос для обробки повинен отримувати дані з деякого документа OpenOffice та виводити результат їх роботи також в документ (той самий, чи інший буде залежати від завданння макроса). Проте часто доводиться отримувати дані для роботи макроса від користувача, а також повідомляти йому проміжні результати роботи макроса в режимі діалогу. Для цього можна використовувати вікна повідомлень, які закладені в графічному інтерфейсі усіх сучаних операційних систем.

Так само як і у VBA, в OOo Basic використовують стандартні функції виклику вікна повідомлень і вікна вводу. Вікно повідомлень MsgBox виводить прості повідомлення для користувача, а вікно вводу InputBox забезпечує ввід інформації у вигляді текстових рядків (String).

Функція InputBox виводить на екран діалогове вікно з повідомлення, встановлює режим очікування вводу тексту користувачем та натискання командної кнопки вікна. Повертає значення типу String, яке містить текст, введений в поле для вводу. Синтаксис:
InputBox (Msg [, Title [, Default [, xpos, ypos ]]]])
Аргументи:
Msg – рядковий вираз (String), відображений як повідомлення в діалоговому вікні;
Title – рядковий вираз (String), відображений в рядку заголовка діалогового вікна;
Default – рядковий вираз (String), відображений в полі вводу діалогового вікна InputBox, що використовується за замовчуванням, якщо користувач не введе інший рядок. Якщо цей аргумент опущений, поле вводу відображається порожнім;
xpos, ypos – цілі числа, що задають відповідно відстань по горизонталі та вертикалі між верхнім лівим кутом вікна InputBox і верхнім лівим кутом екрана у твіпах (1 твіп становить приблизно 1/567 см).

Зрозуміло, що порядок запису аргументів є суттєвим, а обов’язковим є лише перший аргумент Msg. Необов’язкові аргумети можна не задавати, якщо задані наступні аргументи, то міце прпущеного аргумента обмежують комами, наприклад:

x = InputBox(“Введіть значення x” , , , 567, 567)

Процедура MsgBox має ситаксис:
MsgBox Text [,Type [,Title]]

Вона виводить на екран вікно, що містить задане текстовим аргуметом Text повідомлення, зупиняє виконання програми, доки користувач не натисне одну з командних кнопок цього вікна. Кількість та вигляд кнопок та вигляд самого вікна повідомлення задається цілим числом Type, а текст заголовку вікна аргументом Dialogtitle.

Ціле число для аргумента Type визначається як сума трьох чисел, які визначають три наступні характеристики вікна:

  • Кількість і назви кнопок:
  • 0 – відображається тільки кнопка “OK”;
    1 – відображаються кнопки “OK” і “Cancel”;
    2 – відображаються кнопки “Abort”, “Retry” і “Ignore”;
    3 – відображаються кнопки “Yes”, “No” and “Cancel”;
    4 – відображаються кнопки “Yes” і “No”;
    5 – відображаються кнопки “Retry” і “Cancel”.

  • Вигляд значка на вікні повідомлення:
  • 16 – додає до вікна заборонний знак;
    32 – додає до вікна значок із знаком питання;
    48 – додає до вікна значок із знаком оклику;
    64 – додає до вікна інформаційний значок.

  • Порядок кнопки за замочуванням:
  • 128 – перша кнопка є кнопкою за замочуванням;
    256 – друга кнопка є кнопкою за замочуванням;
    512 – третя кнопка є кнопкою за замочуванням.

Навідміну від VBA, в OOo Basic для задання цього параметра не передбачені вбудовані константи з префіксом vb (vbYesNo, vbOkCancel, тощо).

Окрім MsgBox в OOo Basic повідомлення можна виводити процедурою Print, яка зазвичай використовується запису у файл. Процедура Print виводить повідомлення з текстом, який задається списком аргументів, розділених знаком “,” – вивід без пропусків між аргументами, або «;» – вивід з пропуском між значеннями аргументів зі списку.