Moin, ich bräuchte mal einen Tipp.
Ich baue zzt an einer Datenbank mit OOBase / MySQL die unter anderem Adressfelder enthält.
Es wäre praktisch, per Knopfdruck den kompletten Adresssatz in die Zwischenablage zu kopieren, um auf die Schnelle einen einzelnen Brief verfassen zu können ohne über die Serienbrieffunktion zu gehen, oder auch zum Weitergeben der Adresse per eMail etc.
Meine Idee wäre, die entsprechenden Felder per Makro auszulesen, zu einem String zusammenzubasteln und den dann an die Zwischenablage zu übergeben.
Wie aber schreibe ich etwas in die Zwischenablage?
In der API findet sich unter :: com :: sun :: star :: datatransfer :: eine Clipboardfunktion, aber ich habe nicht den leisesten Plan wie ich die einsetzen kann . Für ein paar Zeilen Beispielcode wäre ich dankbar!
per Macro in die Zwischenablage kopieren
Moderator: Moderatoren
per Macro in die Zwischenablage kopieren
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40
herzliche Grüße aus Deutschlands Norden
herzliche Grüße aus Deutschlands Norden
Re: per Macro in die Zwischenablage kopieren
Hallo,
ich kürzlich eine Sache bei der ich die Zwischenablage auslese. Das Makro müsste zum Beschreiben nur umgestricke werden. Vieleicht ist Dir damit schon geholfen.
Gruß M.
ich kürzlich eine Sache bei der ich die Zwischenablage auslese. Das Makro müsste zum Beschreiben nur umgestricke werden. Vieleicht ist Dir damit schon geholfen.
Gruß M.
Code: Alles auswählen
Function ZwischenablageAuslesen()
'Author: Andrew Pitonyak
Dim oClip
Dim oClipContents
Dim oTypes
Dim oConverter
Dim convertedString$
Dim i%
Dim iPlainLoc%
Dim sClipService As String
iPlainLoc = -1
sClipService = "com.sun.star.datatransfer.clipboard.SystemClipboard"
oClip = createUnoService(sClipService)
oConverter = createUnoService("com.sun.star.script.Converter")
'Print "Clipboard name = " & oClip.getName()
'Print "Implemantation name = " & oClip.getImplementationName()
oClipContents = oClip.getContents()
oTypes = oClipContents.getTransferDataFlavors()
Dim msg$
Dim iLoc%
Dim outS
msg = ""
iLoc = -1
For i=LBound(oTypes) To UBound(oTypes)
If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
iPlainLoc = i
Exit For
End If
Next
If (iPlainLoc >= 0) Then
Dim oData
oData = oClipContents.getTransferData(oTypes(iPlainLoc))
convertedString = oConverter.convertToSimpleType(oData, com.sun.star.uno.TypeClass.STRING)
ZwischenablageAuslesen = convertedString
End If
End Function
Re: per Macro in die Zwischenablage kopieren
Hallo, vielen Dank für dein Hinweis. Ich bin der Spur nachgegangen und hier
http://openoffice.2283327.n4.nabble.com ... 68930.html
fündig geworden.
Leider bringt mich das aber nicht dorthin, wo ich hinwill, da ich ein Adressfeld mit Zeilenumbrüchen ins Clipboard übernehmen will. Hier aber streikt der Code: es werden nur die Felder vor dem Umbruch übernommen.
Nach vielen vergeblichen Versuchen wähle ich nun einen anderen Weg: Ich lasse mir den zusammengestellten Adress-Satz in einem Dialog anzeigen und hole es mir von dort per copy & paste.
Wenn einer eine bessere Lösung hat...
http://openoffice.2283327.n4.nabble.com ... 68930.html
fündig geworden.
Leider bringt mich das aber nicht dorthin, wo ich hinwill, da ich ein Adressfeld mit Zeilenumbrüchen ins Clipboard übernehmen will. Hier aber streikt der Code: es werden nur die Felder vor dem Umbruch übernommen.
Nach vielen vergeblichen Versuchen wähle ich nun einen anderen Weg: Ich lasse mir den zusammengestellten Adress-Satz in einem Dialog anzeigen und hole es mir von dort per copy & paste.
Wenn einer eine bessere Lösung hat...
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40
herzliche Grüße aus Deutschlands Norden
herzliche Grüße aus Deutschlands Norden