Как сделать Mailmerge в Openoffice с помощью Vb.net - PullRequest
0 голосов
/ 29 января 2009

Это 5-й вопрос, и кроме одного я не получил ответа от экспертов ...

Надеюсь, на этот раз я получу руку помощи.

Я хочу сделать mailmerge в openoffice, используя Vb.net, и я совершенно новичок в openoffice. Я искал в сети некоторую помощь, чтобы понять, как использовать openoffice с vb.net, но все, что я получаю, это наполовину информация ..... Так что вы можете помочь мне и дать мне код для mailmerge в vb.net для openoffice. *

1 Ответ

0 голосов
/ 03 февраля 2009

Ну, у меня есть список работников в БД, и есть такая возможность, что если они захотят отправить всем или некоторым работникам по почте, они могут это сделать. предоставление возможности выполнить ту же задачу с помощью Open Office.

Что им нужно сделать, это просто выбрать Список работников и нажать на кнопку, и она автоматизирует почтовое слияние, используя поле данных о работниках из БД. Мой код, как показано ниже

Public Sub OpenOfficeMail(ByVal StrFilter As String)
    Dim oSM ''Root object for accessing OpenOffice from VB
    Dim oDesk, oDoc As Object ''First objects from the API
    Dim arg(-1) ''Ignore it for the moment !

    ''Instanciate OOo : this line is mandatory with VB for OOo API
    oSM = CreateObject("com.sun.star.ServiceManager")
    ''Create the first and most important service
    oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

    ''Create a new doc
    oDoc = oDesk.loadComponentFromURL("private:factory/swriter", "_blank", 0, arg)
    ''Close the doc
    oDoc.Close(True)
    oDoc = Nothing

    ''Open an existing doc (pay attention to the syntax for first argument)
    oDoc = oDesk.loadComponentFromURL("file:///C:\Users\Savan\Documents\1.odt", "_blank", 0, arg)
    Dim t_OOo As Type
    t_OOo = Type.GetTypeFromProgID("com.sun.star.ServiceManager")
    Dim objServiceManager As New Object
    objServiceManager = System.Activator.CreateInstance(t_OOo)
    Dim oMailMerge As New Object
    oMailMerge = t_OOo.InvokeMember("createInstance", Reflection.BindingFlags.InvokeMethod, Nothing, _
 objServiceManager, New [Object]() {"com.sun.star.text.MailMerge"}) 'com.sun.star.text.MailMerge"})
    oMailMerge.DocumentURL = "file:///C:\Users\Savan\Documents\1.odt"
    oMailMerge.DataSourceName = CreateSource(StrFilter)''Function that will return the datasource name which will be a text file's path
    oMailMerge.CommandType = 0
    oMailMerge.Command = "file:///C:\Mail.txt"
    oMailMerge.OutputType = 2
    oMailMerge.execute(New [Object]() {})**---->I am getting Error here**
End Sub
...