Передача текста во Writer с помощью макроса

Автор Abaret, 6 ноября 2017, 22:28

0 Пользователи и 1 гость просматривают эту тему.

Abaret

Здравствуйте!

У меня следующая проблема, решение которой может понадобиться многим людям работающим с LO Base.

Есть две таблицы "Affair" и "Address". Таблицы связанны между собой третьей таблицей "Affair_Address".

Кроме того есть запрос "Affair_Query", который запрашивает данные из вышеуказанных таблиц. В запросе также показыватся ключи таблицы "Affair_Address", а именно "FK_Affair_ID" и "FK_Address_ID".

Формуляр состоит из основного формуляра "Filterformular", из субформуляра "Affairformular", и субсубформуляра "Addressformular", который связан с субформуляром "Affairformular" и получает свои данные из таблицы "Affair_Address".

Моя цель заключается в следующем: С помощью макроса нужно получить данные от запроса "Affair_Query" и отправить его во Writer.

Следующий макрос работает лишь с одним первичным ключем. Следовательно, данные принимаются или с одного, или с другого формуляра, но не с двух сразу. Нужно, чтобы макрос одновременно получил два первичных ключа таблицы "Affair_Address" ("FK_Affair_ID" и "FK_Address_ID"), отфильтровал их и затем отправил во Writer, в котором стоят соответствующие заполнители текста.


Цитировать
REM  *****  BASIC  *****

Sub Main
   
   oMainform = ThisComponent.drawpage.Forms.getbyname("Filterformular")
   oSubForm = oMainForm.getbyname("Affairformular")
   oSubSubForm = oSubForm.getbyname("Addressformular")
   nID = oSubSubform.getint(1)
   oMailMerge = createunoservice("com.sun.star.text.MailMerge")
   oMailMerge.DataSourceName = "Test-DB"
   oMailMerge.DocumentURL = "file:///E:/Test/Templates .odt"
   oMailmerge.SaveAsSingleFile = 0
   oMailMerge.CommandType = 1
   oMailMerge.Command = "Affair_Query"
   oMailMerge.Filter = "FK_Affair_ID ="+nid
   oMailMerge.SaveAsSingleFile = true
   oMailMerge.FileNameFromColumn = true
   oMailMerge.Filenameprefix = "Name"
   oMailMerge.OutputType = 2
   oMailMerge.OutputUrl = "file:///E:/Post/"
   Dim MyProps()
   oMailMerge.execute(MyProps()
      
End Sub


Версии:
LO Version: 5.4.2.2
MySQL 5.7.20

Есть идеи, как решить проблему?