KontaktDB Daten an OOo schicken

  • Hallo,


    ich möchte gerne einen Button für mein persönliches Adressbuch erstellen, der die Adress-Daten des markierten Kontakt rauszieht und an OpenOffice sendet um diese dann in einer Briefvorlage einfügt.


    Nur mein Problem ist, dass ich es einfach nicht hinbekomme....

  • ich hab es schon geschafft dass sich per button OOo öffnet und ich einen text einfügen kann... mein Hauptproblem ist, dass er die Daten aus dem Kontakt rausliest, also Name und Anschrift und dann natürlich dass er sie auch richtig einfügt aber so weit bin ich ja noch nicht weil ich es noch nicht mal schaff dass er die daten ausliest...

  • Danke!!!
    Habs geschafft die daten auszulesen und in OOo einzufügen...
    Problem jetzt ist halt erstens, dass er mir neue Zeilen mach und nicht hintereinander wegschreibt und dann noch, dass ers mir in die vorlage einfügt und nicht in ein blank.... aber denk mal da muss ich mich an ein OOo-Forum wenden, oder?



    Sub Click(Source As Button)
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = workspace.CurrentDocument
    Dim composed As String
    Set uidoc = workspace.CurrentDocument
    company = uidoc.FieldGetText( "CompanyName" )
    anrede = uidoc.FieldGetText("Anrede")
    fname = uidoc.FieldGetText("dspFullName")
    Set SM=CreateObject("com.sun.star.ServiceManager")
    Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")
    Dim args()
    Set WriterApplication=Desktop.loadComponentFromURL("private:factory/swriter","_blank",0,args)
    Set WriterText=WriterApplication.getText()
    Set Cursor=WriterText.createTextCursor()
    Call WriterText.insertString(Cursor,company,False)
    Call WriterText.insertString(Cursor,anrede,False)
    Call WriterText.insertString(Cursor,fname,False)
    End Sub

  • Nochmals Danke für die schnelle Hilfe und ich hab mittlerweile das Prob gelöst, wenn auch noch auf eine einfache Art und Weiße wird aber noch verfeinert...


    Sub Click(Source As Button)

    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document

    company = uidoc.FieldGetText( "CompanyName" )
    company2 = uidoc.FieldGetText("CompanyName2")
    anrede = uidoc.FieldGetText("Anrede")
    fname = uidoc.FieldGetText("dspFullName")
    strasse=uidoc.FieldGetText("OfficeStreetAddress")
    plz = uidoc.FieldGetText("OfficeZip")
    ort = uidoc.FieldGetText("OfficeCity")

    Konda = company + Chr$(10) + company2 + Chr$(10) + anrede + " " + fname + Chr$(10) + strasse + Chr$(10) + plz + " " + ort

    Set SM=CreateObject("com.sun.star.ServiceManager")
    Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")

    Dim args()
    Dim objDocument As Variant
    Set objDocument=Desktop.loadComponentFromURL("file:///c:/Vorlage.ott","_blank",0,args)

    Dim objText As Variant
    Set objText = objDocument.getText()

    Dim vsearch As Variant
    Dim vfound As Variant

    Set vsearch = objDocument.createSearchDescriptor()
    vsearch.searchstring=syscompany
    vsearch.replacestring=Konda
    vsearch.searchwords=True
    vsearch.searchcasesensitive = False
    vfound = objDocument.replaceAll(vsearch)
    End Sub

  • Danke für die Rückmeldung - das ist viel wertvoller, als manch einer denkt.
    Ein paar Hinweise noch:
    - Option Declare scheint nicht gesetzt zu sein, sonst wäre ein nicht deklariertes "Konda" nicht möglich.
    - ErrorHandler einbauen
    - "+" ist nicht der Operator für string concatenation! Hierfür ist "&" zu verwenden. Irgendwann fällt man sonst auf die Nase, wenn implizites Typwandeln dann zu ganz anderen Ergebnissen führt als erwartet!
    - Nach dem Versuch, Objekte zu instantiieren, diese immer auf Vorhandensein überprüfen.


    HTH,
    Bernhard