Пример 1
Описание:
В данном примере:
- создадим диалог;
- с помощью макроса Basic напишем функционал для диалога, который берет из ячейки A1 данные + данные из диалога и выводит в MessageBox;
Реализация:
1) откроем AlterOffice ACell -> сохраним документ с названием example_1.ods
2) переходим в "Сервис" -> "Макросы" -> "Редактировать макрос..."
3) переходим в "Диалог" -> "Управление диалогами..."
4) в открывшимся окне "Управление макросами Basic" -> переходим во вкладку "Диалоги" -> выбираем наш сохраненный файл "example_1.ods" -> выбираем "Standart" -> нажимаем "Создать..."
5) в открывшимся окне "Новый диалог" -> введем название "test_dialog" -> "Ок"
6) окно "Управление макросами Basic" закрываем
7) переходим в созданный диалог "test_dialog"
8) создадим "Текстовое поле" и "Кнопку"
9) Сохраним (Ctrl + S) и закроем "example_1.odsStandart - AlterOffice Basic"
10) Создадим макрос Basic: "Сервис" -> "Макросы" -> "Управление макросами"
-> "Basic"
11) в открывшимся окне "Макрос Basic" -> в поле "Макрос из" выбираем "example_1.ods" -> Standart -> "Создать"
12) в новом диалоговом окне "Новый модуль" -> в поле "Имя" введем имя модуля, в данном случае "test_macros" -> нажимаем "Ок"
13) напишем макрос Basic и сохраним (полный код во вложении):
Sub Dialog1Show
DialogLibraries.LoadLibrary("Standard") -- загружает стандартную библиотеку диалогов
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.test_dialog ) -- cоздает диалоговое окно с именем oDialog1, используя шаблон test_dialog из стандартной библиотеки
oDialog1.Execute() -- отображает созданное ранее диалоговое окно
End Sub
Sub read_dialog
Dim cell_val
ot_1 = oDialog1.GetControl("TextField1") -- получает элемент управления с именем TextField1 из диалогового окна oDialog1 и присваивает его ot_1
cell_val = ThisComponent.Sheets(0).getCellByPosition(0, 0) -- получает значение ячейки, расположенной в строке = 0 и столбце = 0, из первого листа текущего документа и присваивает его значению cell_val
msgbox cell_val.String & chr(13) & "Что то: " & ot_1.Text -- отображает окно сообщения со значением cell_val, разрывом строки (chr(13)), текстом "Что то: " и текст, введенный в элемент управления TextField1
End Sub
14) теперь необходимо привязать макрос к диалогу (кнопкам), переходим к диалогу
15) выбираем кнопку -> переходим во вкладку "События"
16) находим "Выполнить действие" -> нажимаем на "..."
17) выбираем "Назначенное действие" -> "Макрос..."
18) выбираем "test_macros" -> "read_dialog" -> "Ок"
19) в окне "Назначить действие" появился макрос -> "Ок"
20) сохраняем "Ctrl + S" и закрываем редактор
21) запишем любые данные в ячейку А1
22) запустим макрос "Сервис" -> "Макросы" -> "Выполнить макрос..."
23) запускаем "Dialog1Show"
24) заполним поле (1) и нажмем на кнопку (2)
25) результат
Пример 2
Описание:
В данном примере:
- создадим диалог;
-
с помощью макроса Basic напишем функционал для диалога, при нажатии кнопки, в окне диалога, счетчик отсчитывает числа
Реализация:
Необходимо выполнить шаги как в примере 1, с 1 - 12.
13) напишем макрос Basic и сохраним (полный код во вложении):
Sub Dialog_Show
DialogLibraries.LoadLibrary("Standard") -- загружает стандартную библиотеку диалогов
oDialog1 = CreateUnoDialog(
DialogLibraries.Standard.test_dialog ) -- cоздает диалоговое окно с
именем oDialog1, используя шаблон test_dialog из стандартной библиотеки
oDialog1.Execute() -- отображает созданное ранее диалоговое окно
End Sub
Sub Add_Data_Dialog
Dim iCount as integer
ot_1 = Dialog_1.GetControl("ListBox1") -- извлекает элемент управления с именем "ListBox1" из Dialog_1 и присваивает его ot_1
iCount = ot_1.ItemCount -- получает количество элементов в ListBox и присваивает его iCount
ot_1.additem("Счетчик: " & iCount,0) -- добавляет в ListBox новый элемент с меткой "Счетчик: ", за которой следует значение iCount с индексом 0
End Sub
Далее, выполним шаги, как в примере 1, с 14 по 22.
23) запускаем "Dialog_Show"
24) результат