Daten aus Array nach Zwischenablage entladen
Moderator: Moderatoren
Daten aus Array nach Zwischenablage entladen
Hallo,
habe einige Textzeilen in einem eindimensionalen Array und möchte diese Daten nun in einer Schleife in die Zwischenablage entladen (als Sätze untereinander).
In der A00-Dokumentation habe ich diesen Weg als Service nicht beschrieben gefunden. Kann mir da jemand weiter helfen?
Oder muss ich die Daten erst in einen Tabellenbereich entladen um sie dann mit
go_doc = thisComponent
go_t2 = go_doc.sheets(1)
oDispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
oFrame1 = go_doc.CurrentController.Frame
'Die Zellen A1:B2 werden über den Controller ausgewählt.
oSheet = go_doc.Sheets(1)
oRng = oSheet.getCellRangeByName("A33:A35")
go_doc.CurrentController.select(oRng)
'Mit einem Dispatch-Befehl wird in die Zwischenablage kopiert.
oDispatcher.executeDispatch(oFrame1, ".uno:Copy", "", 0, Array())
in die Zwischenablage zu bringen?
Vielen Dank
habe einige Textzeilen in einem eindimensionalen Array und möchte diese Daten nun in einer Schleife in die Zwischenablage entladen (als Sätze untereinander).
In der A00-Dokumentation habe ich diesen Weg als Service nicht beschrieben gefunden. Kann mir da jemand weiter helfen?
Oder muss ich die Daten erst in einen Tabellenbereich entladen um sie dann mit
go_doc = thisComponent
go_t2 = go_doc.sheets(1)
oDispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
oFrame1 = go_doc.CurrentController.Frame
'Die Zellen A1:B2 werden über den Controller ausgewählt.
oSheet = go_doc.Sheets(1)
oRng = oSheet.getCellRangeByName("A33:A35")
go_doc.CurrentController.select(oRng)
'Mit einem Dispatch-Befehl wird in die Zwischenablage kopiert.
oDispatcher.executeDispatch(oFrame1, ".uno:Copy", "", 0, Array())
in die Zwischenablage zu bringen?
Vielen Dank
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
z.B.:
aus:
https://forum.openoffice.org/en/forum/v ... rd#p355824
Gruß
Stephan
Code: Alles auswählen
Global sTxtCString As String
Sub Start()
x = Array("aa","bb","cc")
For i = 0 To Ubound(x())
k = k & x(i) & CHR(13) & CHR(10)
Next i
CopyToClipBoard(k)
End Sub
Sub CopyToClipBoard( sText )
Dim oClip, oTR
' create SystemClipboard instance
oClip = CreateUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oTR = createUnoListener("Tr_", "com.sun.star.datatransfer.XTransferable")
' set data
oClip.setContents( oTR,Null )
sTxtCString = sText
'oClip.flushClipboard() ' does not work
End Sub
Function Tr_getTransferData(aFlavor as com.sun.star.datatransfer.DataFlavor)
If (aFlavor.MimeType = "text/plain;charset=utf-16") Then
Tr_getTransferData() = sTxtCString
End If
End Function
Function Tr_getTransferDataFlavors()
Dim aFlavor As new com.sun.star.datatransfer.DataFlavor
aFlavor.MimeType = "text/plain;charset=utf-16"
aFlavor.HumanPresentableName = "Unicode-Text"
Tr_getTransferDataFlavors() = array( aFlavor )
End Function
Function Tr_isDataFlavorSupported(aFlavor as com.sun.star.datatransfer.DataFlavor ) as Boolean
If aFlavor.MimeType = "text/plain;charset=utf-16" Then
Tr_isDataFlavorSupported = true
Else
Tr_isDataFlavorSupported = false
End If
End Function
aus:
https://forum.openoffice.org/en/forum/v ... rd#p355824
Gruß
Stephan
Re: Daten aus Array nach Zwischenablage entladen
Hallo Stephan,
oh das werde ich heute abend einmal studieren und ausprobieren.
Vielen Dank
Winni
oh das werde ich heute abend einmal studieren und ausprobieren.
Vielen Dank
Winni
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Funktioniert leider nicht in A00 bei mir unter Windows 10.
Wenn ich den Code durchlaufe dann springt er plötzlich komisch und AOO hängt sich auf.
Schade!
Wenn ich den Code durchlaufe dann springt er plötzlich komisch und AOO hängt sich auf.
Schade!
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Dann mache es über ein Dokument:
Gruß
Stephan
Code: Alles auswählen
Sub Main()
Dim arg(0) as New com.sun.star.beans.PropertyValue
arg(0).Name = "Hidden"
arg(0).Value = True
x = Array("aa","bb","cc")
For i = 0 To Ubound(x())
k = k & x(i) & CHR(13)
Next i
x = StarDesktop.loadComponentFromURL ("private:factory/swriter","_blank", 0, arg())
x.Text.String = LEFT(k, LEN(k)-1)
ccf = x.CurrentController.Frame
With createUnoService("com.sun.star.frame.DispatchHelper")
.executeDispatch(ccf, ".uno:SelectAll", "", 0, Array())
.executeDispatch(ccf, ".uno:Copy", "", 0, Array())
End With
x.close(true)
End Sub
Stephan
Re: Daten aus Array nach Zwischenablage entladen
ja, so klappt es. Super!
Danke
Danke
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Hallo Stephan,
würde dem Text gleich eine nichtproportionale Schriftart mitgeben wollen (z.B. DejaVu Sans Mono). Wie würde das funktionieren?
Mein Problem:
VBA-Code:
Mein Problem ist, das er beim reinkopieren dieses Zwischenablagetextets in unterschiedliche Tools (Notepad, Thunderbird, hier in Forumbeitrag) die string(42," ") weglässt. CHR$(32) geht auch nicht. Nach Notepad klappts!
Werde noch zum "Hirsch"
Danke
Gruß
Winni
würde dem Text gleich eine nichtproportionale Schriftart mitgeben wollen (z.B. DejaVu Sans Mono). Wie würde das funktionieren?
Mein Problem:
VBA-Code:
Code: Alles auswählen
la_ab(li_abzeile) = " | Rechnungsbetrag " & string(42," ") & "| " & ls_repr & " |"
Werde noch zum "Hirsch"
Danke
Gruß
Winni
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Wie würde das funktionieren?
z.B.:
Code: Alles auswählen
Sub Main()
Dim arg(0) as New com.sun.star.beans.PropertyValue
arg(0).Name = "Hidden"
arg(0).Value = True
dim args2(4) as new com.sun.star.beans.PropertyValue
args2(0).Name = "CharFontName.StyleName"
args2(0).Value = ""
args2(1).Name = "CharFontName.Pitch"
args2(1).Value = 0
args2(2).Name = "CharFontName.CharSet"
args2(2).Value = -1
args2(3).Name = "CharFontName.Family"
args2(3).Value = 5
args2(4).Name = "CharFontName.FamilyName"
args2(4).Value = "DejaVu Sans Mono"
x = Array("aa","bb","cc")
For i = 0 To Ubound(x())
k = k & x(i) & CHR(13)
Next i
x = StarDesktop.loadComponentFromURL ("private:factory/swriter","_blank", 0, arg())
x.Text.String = LEFT(k, LEN(k)-1)
ccf = x.CurrentController.Frame
With createUnoService("com.sun.star.frame.DispatchHelper")
.executeDispatch(ccf, ".uno:SelectAll", "", 0, Array())
.executeDispatch(ccf, ".uno:CharFontName", "", 0, args2())
.executeDispatch(ccf, ".uno:Copy", "", 0, Array())
End With
x.close(true)
End Sub
Ich habe keine Ahnung was Du damit meinst.Mein Problem:
VBA-Code:
Code: Alles auswählen
la_ab(li_abzeile) = " | Rechnungsbetrag " & string(42," ") & "| " & ls_repr & " |"
Mein Problem ist, das er beim reinkopieren dieses Zwischenablagetextets in unterschiedliche Tools (Notepad, Thunderbird, hier in Forumbeitrag) die string(42," ") weglässt. CHR$(32) geht auch nicht. Nach Notepad klappts!
Gruß
Stephan
Re: Daten aus Array nach Zwischenablage entladen
Hi,
a) ein Array wird mit unterschiedlichen Textzeilen gefüllt um eine Auftragsbestätigung für Thunderbird zusammenzubauen
Alle Textzeilen werden schön formatiert damit letztendlich alle Zeilen zu den Überschriften passen. Deshalb auch eine nichtproportionale Schriftart.
Eine Textzeile davon wäre z.B.
b) dann wird das Array in die Zwischenablage entladen (mithilfe deiner Lösungen)
c) dann wird mit Strg+V dieser Text in eine Thunderbirdmail eingefügt und sieht dann so aus:
| Rechnungsbetrag | 25,49 EUR | (aber Mist die 42 Blanks fehlen nach dem Wort Rechnungsbetrag)
mache ich STRG+V in Notepad dann funktioniert das dagegen korrekt so:
| Rechnungsbetrag ……………………………………….. | 25,49 EUR |
Hatte gedacht, wenn ich den Text schon als nicht proportional in der Zwischenablage habe (deine 2. Lösung) dann ist der Fehler behoben aber ich glaube das ist kein Problem von LO sondern hier muss ich in Thunderbird suchen. Auf jeden Fall vielen Dank für deine Lösungen, habe jetzt auch verstanden wie das mit den Texteigenschaften funktioniert.
Gruß
Wini
a) ein Array wird mit unterschiedlichen Textzeilen gefüllt um eine Auftragsbestätigung für Thunderbird zusammenzubauen
Alle Textzeilen werden schön formatiert damit letztendlich alle Zeilen zu den Überschriften passen. Deshalb auch eine nichtproportionale Schriftart.
Eine Textzeile davon wäre z.B.
Code: Alles auswählen
x(li_abzeile) = " | Rechnungsbetrag " & string(42," ") & "| " & ls_repr & " |"
c) dann wird mit Strg+V dieser Text in eine Thunderbirdmail eingefügt und sieht dann so aus:
| Rechnungsbetrag | 25,49 EUR | (aber Mist die 42 Blanks fehlen nach dem Wort Rechnungsbetrag)
mache ich STRG+V in Notepad dann funktioniert das dagegen korrekt so:
| Rechnungsbetrag ……………………………………….. | 25,49 EUR |
Hatte gedacht, wenn ich den Text schon als nicht proportional in der Zwischenablage habe (deine 2. Lösung) dann ist der Fehler behoben aber ich glaube das ist kein Problem von LO sondern hier muss ich in Thunderbird suchen. Auf jeden Fall vielen Dank für deine Lösungen, habe jetzt auch verstanden wie das mit den Texteigenschaften funktioniert.
Gruß
Wini
Zuletzt geändert von Postbyme am Sa, 09.11.2019 22:20, insgesamt 1-mal geändert.
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Hier ist ein Hinweis auf den Bug:aber ich glaube das ist kein Problem von LO sondern hier muss ich in Thunderbird suchen
https://www.thunderbird-mail.de/forum/t ... -verloren/
mir ist allerdings der Status der dortigen Bugmeldung nicht ganz klar:
https://bugzilla.mozilla.org/show_bug.cgi?id=1174452
mir scheint der Bug wurde gefixt, aber es gibt dort den Hinweis auf einen Regressionsbug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1568313
Bei Letzterem ist mir nur nicht klar warum der als REgressionsbug gilt, denn die FEhlerbeschreibung ist inhaltlich, meine Meinung nach, eine Andere.
Gruß
Stephan
Re: Daten aus Array nach Zwischenablage entladen
Hallo,
nach einem schnellen Test mit Tabulator würde ich sagen "nein".
nach einem schnellen Test mit Tabulator würde ich sagen "nein".
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Ja, das wäre der Bug, oje. Werde die Sache auch einmal nachverfolgen.
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Hallo,
nein, mit Tabulator klappt auch nicht.
Parallel habe ich mein Problem in einem Thunderbird-Forum aufgemacht und da schon eine Lösung bekommen. Mit Shift+Verfassen wird eine Mail als html oder Reintext (noch Fragen offen) eröffnet und das reinkopieren erfolgt dann schön "mit Blanks".
Gruß
Winni
nein, mit Tabulator klappt auch nicht.
Parallel habe ich mein Problem in einem Thunderbird-Forum aufgemacht und da schon eine Lösung bekommen. Mit Shift+Verfassen wird eine Mail als html oder Reintext (noch Fragen offen) eröffnet und das reinkopieren erfolgt dann schön "mit Blanks".
Gruß
Winni
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Ich werde jetzt wahrscheinlich die Auftragsbestätigung ohne Tabelle aufbauen. Habe gegoogelt und viele Kommentare warnen vor einer unkorrekten / verschobenen Darstellung beim Empfänger.
Ggf. werde ich noch später ein PDF dazu hängen - hier aus LO generiert .
Ggf. werde ich noch später ein PDF dazu hängen - hier aus LO generiert .
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Re: Daten aus Array nach Zwischenablage entladen
Hallo Stephan,
a)wenn ich entsprechend deinem Programmbaustein ein Arrayelement als bold machen wollte dann müsste ich wie vorgehen?
Geht das als Eigenschaft von CharFontName oder muss ich da .executeDispatch(ccf,".uno:Bold","",0,args3()) machen.
Wie lauten dann die Einträge für .Name und .Value?
Natürlich muss ich die fetten und nicht fetten Arrayelement getrennt behandeln und zum Schluss wieder zusammensetzen.
b) Gibt es tiefergehende Informationen zu den folgenden Uno-"Dingsbums oder Services????" und wie Name und value belegt werden können?
.uno:CharFontName
.uno:FontHeight
.uno:Grow
.uno:Shrink
.uno:Bold
.uno:Italic
.uno:Underline
.uno:Strikeout
.uno:SuperScript
.uno:SubScript
.uno:Color
.uno:BackColor
.uno:LeftPara
.uno:CenterPara
.uno:RightPara
.uno:JustifyPara
.uno:LineSpacing
.uno:Spacing
.uno:ParaspaceIncrease
.uno:ParaspaceDecrease
.uno:IncrementIndent
.uno:DecrementIndent
Danke
Gruß
Winni
a)wenn ich entsprechend deinem Programmbaustein ein Arrayelement als bold machen wollte dann müsste ich wie vorgehen?
Geht das als Eigenschaft von CharFontName oder muss ich da .executeDispatch(ccf,".uno:Bold","",0,args3()) machen.
Wie lauten dann die Einträge für .Name und .Value?
Natürlich muss ich die fetten und nicht fetten Arrayelement getrennt behandeln und zum Schluss wieder zusammensetzen.
b) Gibt es tiefergehende Informationen zu den folgenden Uno-"Dingsbums oder Services????" und wie Name und value belegt werden können?
.uno:CharFontName
.uno:FontHeight
.uno:Grow
.uno:Shrink
.uno:Bold
.uno:Italic
.uno:Underline
.uno:Strikeout
.uno:SuperScript
.uno:SubScript
.uno:Color
.uno:BackColor
.uno:LeftPara
.uno:CenterPara
.uno:RightPara
.uno:JustifyPara
.uno:LineSpacing
.uno:Spacing
.uno:ParaspaceIncrease
.uno:ParaspaceDecrease
.uno:IncrementIndent
.uno:DecrementIndent
Danke
Gruß
Winni
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)