🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[Gelöst] Dialog "Textimport" automatisch quittieren <OK>

Alles zur Programmierung im LibreOffice.
Alex.Gehne
Beiträge: 18
Registriert: Do 10. Sep 2015, 17:56

[Gelöst] Dialog "Textimport" automatisch quittieren <OK>

Beitrag von Alex.Gehne » Di 15. Sep 2015, 13:19

Hallo zusammen.

Bin "Newbie" mit LO und stelle gerade meine Tabellen vom alten auf das neue Kalkulationsprogramm um...
Jetzt bitte lächeln: Ich arbeite tatsächlich noch immer mit MS Works 4.5 aus Win95, zwar mittlerweile auf XP aber es geht...
Mein neues System ist Win7/64 und LO in Version 4.3.7.2 auf PC1 und LO 4.4.5.2 auf PC2

Jetzt zum Problem:
LO wandelt ja wohl standardmässig <TAB's> aus der Zwischenablage in Leerzeichen um.
Dieses Verhalten lässt sich ja mit "Inhalte einfügen" gut vermeiden, allerdings muss man dann durch die aufklappenden Dialoge durchtickern, das behindert meine Arbeitsabläufe deutlich.

Hab' mal ein Makro aufgezeichnet und der Kombination <Strg>+<V> zugewiesen, soweit so schön.
Leider muss ich den Textimport-Dialog trotzdem manuell mit <OK> bestätigen ("Enter" oder per Maus),
lässt sich das automatisieren?

Hier der Code:

Code: Alles auswählen

Rem   ***BASIC***


sub zwischenablage
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Format"
args1(0).Value = 1

dispatcher.executeDispatch(document, ".uno:PasteSpecial", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args2())


end sub
Vielen Dank im Voraus für alle Hilfen

Gruß Alex
Zuletzt geändert von Alex.Gehne am Mi 21. Okt 2015, 12:01, insgesamt 1-mal geändert.

teufelshaus
Beiträge: 37
Registriert: Mo 15. Jun 2015, 15:37

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von teufelshaus » Di 15. Sep 2015, 18:14

Hallo Alex,
im LO_Calc-Forum hast Du ja auch schon das obige Thema angerissen und plötzlich beendet.
Hier fehlt noch folgende Erklärung von Dir :
Der einfache Text stammt aus "AZZCardfile", einer modernen Variante des Karteikastens, da drin hab' ich die Kundenadressen.
AZZ liefert wohl Formatierungen mit, der Textimport-Dialog (Inhalte einfügen) lässt mich wählen zwischen RTF und PlainText,
das folgende Fenster mit Zeichensatz etc dürftest du kennen...
2.) Wir haben hier unten das "Register": Dateianhänge
dort solltest Du eine "Textdatei" im "Pain- oder RTF_Text" zum testen einstellen.
3.) Folgende Daten sind sehr nützlich und werden benötigt :
a.) AZZCardfile-Version
b.) Betriebssystem & Version
c.) LibreOffice-Version

Wenn Du das auch noch ins "Calc-Forum" stellst, inclusive "Dateianhang", werden dort die Jungs noch mal "Gasgeben"

lg teufelshaus

Alex.Gehne
Beiträge: 18
Registriert: Do 10. Sep 2015, 17:56

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von Alex.Gehne » Mi 16. Sep 2015, 15:46

Hi Teufelshaus,

im Calc-Forum habe ich das Thema beendet mit dem Hinweis, daß ich es umziehe.
Denke mal, ein Thema in zwei Unterforen gleichzeitig zu behandeln ist auch in diesem Forum nicht so gerne gesehen...
Ausserdem denke ich, dasss ich hier "besser aufgehoben" bin, weil ich vermute, dass man das <OK> in den Aufruf von

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Format"
args1(0).Value = 1
dispatcher.executeDispatch(document, ".uno:PasteSpecial", "", 0, args1())


etwa als "args1(1).xxx.... integrieren muss...

Diese Annahme, weil wie du im Code sehen kannst ich testweise nach dem (manuellen) OK mit der aktiven Zelle nochmal nach links gegangen bin.
Der Aufruf des Makros lässt dann auch zuverlässig den Cursor nach dem manuellen OK nach links springen...

Zur fehlenden Erläuterung: Hab' mich wohl undeutlich ausgedrückt, "das folgende Fenster..." meint in diesem Fall den Textimport-Dialog:
http://www.libreoffice-forum.de/downloa ... hp?id=3289
Deutlicher wäre gewesen: "das dann folgende Dialog-Fenster..."

Operating System siehe Eingangspost oder hier: "Mein neues System ist Win7/64 und LO in Version 4.3.7.2 auf PC1 und LO 4.4.5.2 auf PC2"
Um auch hier genauer zu werden: Es gibt zwei identische Rechner, einer mit 4.3xx und einer mit 4.4xx, auf die verschiedenen Versionen habe ich nach Nikki's Hinweis zu Testzwecken umgestellt. Je nach Funktionalität wird nach Problemlösung auf eine gemeinsame Version umgestellt...

Testdatei ( .rtf aus WordPad ) lade ich hoch.

Was mir in der weiteren Beschäftigung noch aufgefallen ist:
Das aufgezeichnete Makro zeigt nur dann den Textimport-Dialog, wenn die kopierten Daten mehrzeilig sind...
>Objektname{TAB}Ser.-Nr.< wird vom Makro ohne weitere Interaktion eingefügt
aber bei
>Anrede{CR}<
>Vorname Nachname{TAB}DEB.-Kto< zeigt LO den Textimport-Dialog...
Die Zielzellen haben im übrigen keine eigene zellbezogene Formatierung wie "Text" oder "Zahl", ein neues, leeres Calc-Dokument reicht zum Testen.

Wenn ich zu langatmig bin oder neue Unklarheiten aufgeworfen habe, hier nochml in der Zusammenfasssung:
  • • Suche Makroergänzung
  • • Das aufgezeichnete Makro (siehe Eingangspost) fügt beinahe zufriedenstellend ein (Tabs bleiben Tabs)
  • • Der Textimport-Dialog soll automatisch mit <OK> bestätigt werden (Bei mehrzeiligem Inhalt der Zwischenablage, bei einzeiligem Inhalt dürfte ein "überzähliges" ENTER keinen Schaden anrichten)
  • • OS: Win7/64 und LO in Version 4.3.7.2 auf PC1 und LO 4.4.5.2 auf PC2
  • • Testdaten siehe Anhang, zum Testen leeres Calc-Dokument aufmachen
Gruß Alex
Dateianhänge
Dokument.rtf
(342 Bytes) 224-mal heruntergeladen

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von mikele » Di 6. Okt 2015, 21:24

Hallo,

anbei eine Erweiterung deines Codes aus http://www.libreoffice-forum.de/viewtop ... =6&t=15371
wodurch der Inhalt der Zwischenablage auf das erste Tabellenblatt übertragen wird.
Wäre es nicht einfacher, die ursprüngliche Datei (Format?) per Makro auszulesen bzw. zu konvertieren anstatt über die Zwischenablage zu gehen?
Dateianhänge
textimport per zwischenablage.ods
(19.26 KiB) 237-mal heruntergeladen
Gruß,
mikele

Alex.Gehne
Beiträge: 18
Registriert: Do 10. Sep 2015, 17:56

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von Alex.Gehne » Mi 7. Okt 2015, 10:41

Hi mikele

Erstmal vielen Dank, dass Du deine Zeit für mein Problem opferst.

Leider wirft dein Weiterentwicklung einen Laufzeitfehler...
Fehler_Makro.PNG
Fehler_Makro.PNG (21.27 KiB) 5996 mal betrachtet
Als Nicht-Programmierer kann ich auch nicht erkennen warum. :(

Die Quelldaten direkt auszulesen wäre wahrscheinlich eleganter, aber das Dateiformat der hinter der Anwendung stehenden Datenabnk ist mir nicht bekannt..
(Hatte ich es schon geschrieben? Die Quelldaten kommen aus "AZZ Cardfile") http://www.azzcardfile.com/
Ausserdem ist der auszulesende Bereich variabel, sprich es sind mal Anschriftendaten wie in der Testdatei, mal einzelne Zeilen mit Artikelnummern und -Preisen, mal mehrere Artikelzeilen und teils auch reine Textzeile(n) ohne Tab...
Ein Makro könnte ja nach meinem Verständnis nur einen vorher definierten "Bereich" auslesen?

Gruss Alex

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von mikele » Mi 7. Okt 2015, 14:53

Hallo Alex,
ich werde mal versuchen, die Fehlermeldung nachzuvollziehen. Die Ursache muss irgendwie im Inhalt der Zwischenablage liegen. Kannst du nachvollziehen, bei welchem Inhalt der Fehler auftritt? (Bei dem Text aus Dokument.rtf trat bei mir kein Fehler auf)

Zum "direkten" Import:
Kannst du die Datenbank per LO-Base öffnen?
Eine andere Option wäre, die gewünschten Daten aus der Datenbank in eine Textdatei (wie dein .rtf Muster) zu exportieren und dann von dort aus in die Tabellenkalkulation zu importieren.
Gruß,
mikele

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von mikele » Mi 7. Okt 2015, 21:29

Hallo Alex,

leider konnte ich den Fehler nicht reproduzieren (was nicht heißt, dass er nicht doch auftritt).
Bei AZZCardfile habe ich gelesen, dass ein Export der Daten als csv-Datei möglich ist. Damit sollten alle Probleme eigentlich gelöst sein.
Gruß,
mikele

Alex.Gehne
Beiträge: 18
Registriert: Do 10. Sep 2015, 17:56

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von Alex.Gehne » Do 8. Okt 2015, 10:53

Hi mikele

Werde mal zum Laufzeitfehler ein paar Varianten auch aus unterschiedlichen Quellanwendungen probieren, mal sehen ob ich was finde...
Wobei ja eigentlich nach der Funktion "getclipboardtext () as String" die Formatierungen aus der Zw-Ablage eliminiert sein müssten?
Vllt. liegt es ja einfach daran, dass das Originalmakro von Frieder noch in meiner LO-Bibliothek schlummert.

Ich werde berichten.
Komm' ich aber diese Woche nicht mehr dazu, heute (Do.) ist bei uns sozusagen "Grosskampftag" und morgen bin ich in eigener Gesundheitsvorsorge unterwegs...

.csv-Export wäre m.E. allenfalls eine Option, wenn ich Zeit und Nerven finden würde
-Base zu lernen
-die AZZ-Kartei in 3 Datenbanken aufzusplitten (Adressen, Artikellisten, Textpassagen), die "Struktuen" auf den Karteikarten unterscheiden sich deutlich und sind teilweise auch vermischt.
-und anschliessend mir in LO ein sozusagen "integriertes System" zusammenzubauen

Die Überlegung war schon mal kurz da, aber offen gesagt schaffe ich das nicht nebenher zum Job.
Und ich müsste dann die völlig neue Bedienung noch meinem Urlaubsvertreter beibringen, der schon Mühe mit Copy/Paste hat... :?

Gruss Alex

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2536
Registriert: Fr 10. Dez 2010, 10:01

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von karolus » Do 8. Okt 2015, 12:06

Hallo

Die Fehlermeldung lässt vermuten, daß die Dimensionen von `daten()` nicht auf die Dimensionen des Zellbereichs passt.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Alex.Gehne
Beiträge: 18
Registriert: Do 10. Sep 2015, 17:56

Re: Dialog "Textimport" automatisch quittieren <OK>

Beitrag von Alex.Gehne » Do 15. Okt 2015, 20:33

@ all:
Das Thema "Laufzeitfehler" scheint nur dann aufzutreten, wenn ich die Datei von mikele direkt von hier aus dem Forum öffne...
Als ich dieser Tage die Arbeitskopie von meiner Festplatte zum testen benutzt habe war alles i.O.
Scheint imho daran zu liegen, dass die von hier geöffnete Datei schreibgeschützt ist und dann der Versuch, das Array Daten() zu füllen am Schreibschutz scheitert...

@mikele
Deine Ergänzung funktioniert bis auf eine Einschränkung genau nach meinen Hoffnungen, aber
es wird immer in "Tabelle1" an Pos. "A1" eingefügt
Würdest du mir noch die Verwendung der aktuellen Zelle (Cursorposition) in der aktuellen Tabelle einpflegen?
(Ich hab' selbst versucht, an "odoc.sheets()" und "getcellrangebyposition(...)" rumzuspielen, aber bin offensichtlich einfach zu d..f) :(

Gruß Alex


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten