Makroaufzeichnung fehlerhaft

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makroaufzeichnung fehlerhaft

von Stephan » So, 13.02.2005 18:33

Miteinander zu tun hat es insofern, dass bei beiden Vorgängen der Makrorecorder nicht komplett aufzeichnete.
Ja, hast Du recht. Diesen Zusammenhang hatte ich nicht gesehen.
Der Makrorekorder ist manchmal wirklich nicht so toll.


Gruß
Stephan

von stephan p. » So, 13.02.2005 14:43

:? mir ist zwar bekannt, dass man das "than" in der if-Anweisung, wie vom Commodore C64 gewöhnt, nicht mehr schreibt, aber ...
Ich verstehe nur nicht was Sortieren in einer Tabelle in einem Textdokument mit dem Export einer Calc-Tabelle als Text-Datei zu tun hat.
erstmal hierzu die Antwort:
  • Da das automatische Sortieren unter Writer nicht klappte, wollte ich unter Calc sortieren. Aber es bleibt sich gleich, ob ich den Sortierdialog bei Writer per Hand ausfülle oder den Exportdialog bei Calc.
  • Miteinander zu tun hat es insofern, dass bei beiden Vorgängen der Makrorecorder nicht komplett aufzeichnete. Wobei ich zum zweiten Problem noch nicht weiter recherchiert habe.
Ansonsten erstmal Danke, bin im Hintergrund am Herunterladen.
Gruß
stephan p.

von Stephan » So, 13.02.2005 13:56

Gleiches hatte ich jetzt bei Calc. Ich möchte als Text-Datei speichern und dabei immer andere Texttrenner verändern, als sie in der Vorgabe eingestellt sind. Auch hier hilft mir der Makrorecorder nicht weiter.
Ich verstehe nur nicht was Sortieren in einer Tabelle in einem Textdokument mit dem Export einer Calc-Tabelle als Text-Datei zu tun hat.
Zu letzterem habe ich zweimal hier im Forum gepostet, ich habe das Dokument das notwendige Informationen enthält ganz oben ins Forum gestellt "Informationen zur Starbasic-Programmierung"...
Was Du suchst ist hier beschrieben: http://api.openoffice.org/basic/man/tut ... torial.pdf (Seite 41 ff.).
Ja schön, das dachte ich mir auch schon. Hatte ich ja bei meinem zweiten Code versucht. Aber wo bekomme ich raus, wie sich die Variablen nennen?


ja, bloß Thomas hat Dir gesagt das es mit einem Dispatchercode nicht geht:
dann ist der Dispatcher Mode eben ungeeignet für das Problem.
Da ich Dir derzeitig auch nicht sagen kann wie Du das mittels Dispatcher realisieren kannst, würde ich das so machen das ich die Zeilen ganz konventionell sortiere.
Dazu mußt Du nur auf die Tabelle zugreifen, die Werte auslesen und dann per Code sortieren und in die Tabelle zurückschreiben. Das Sortieren kannst Du mit jedem beliebigen Sortieralgorithmus (z.B. Bubble-Sort) durchführen und alles was Du zum Zugriff auf die Tabellenwerte brauchst ist z.B. hier: http://docs.sun.com/db/doc/817-3924?l=de (Seite 106 ff.) beschrieben.


Gruß
Stephan

von stephan p. » So, 13.02.2005 13:32

Ergänzung:

.uno:SortDialog sagt ihm ja anscheinend nur, dass er den Dialog aufmachen soll. Nutze ich aber .uno:DataSort, kennt er unter Writer natürlich weder ByRows noch Col.

Schönen Tag
Stephan

von stephan p. » So, 13.02.2005 12:59

Danke Thomas,

ich benutze Version 1.1.4 und sowohl unter Windows als auch unter Linux passiert das Gleiche - nichts.

Du hast recht, wenn ich das "rem" entferne geht das Diologfenster auf, ich muß nur noch die Einstellungen erledigen und auf OK drücken. Immerhin etwas :). So mache ich das jetzt auch, aber ich wollte die Argumente aus dem Diologfenster eigentlich irgendwie dem Makro übergeben ....
Gleiches hatte ich jetzt bei Calc. Ich möchte als Text-Datei speichern und dabei immer andere Texttrenner verändern, als sie in der Vorgabe eingestellt sind. Auch hier hilft mir der Makrorecorder nicht weiter.
Nun, wenn es jetzt nicht funktioniert - und das sit schon öfter mal der Fall -, dann ist der Dispatcher Mode eben ungeeignet für das Problem. Jetzt hilft nur - manuelles Programmieren.
Ja schön, das dachte ich mir auch schon. Hatte ich ja bei meinem zweiten Code versucht. Aber wo bekomme ich raus, wie sich die Variablen nennen?

Viele Grüße
stephan p.

von Toxitom » So, 13.02.2005 08:49

Hallo Stephan,

Hmm, ich weiss leider nicht, welche Version von OOo du benutzt. Das, was du beschreibst, ist aber ein typischer Schwachpunkt des Makro-Recorders. Er nutzt das Dispatcher Modell, das ist ein eigenes Objektmodell zur Steurerung von OOo. Damit geht aber nicht alles - insofern hat auch der Rekorder seine Schwächen. Dazu kommt, dass er sich manchmal nicht einmal selbser si cher ist und die ausführenden Zeilen auskommentiert. Dann passier tgar nichts.
1. Versuch wäre also immer, den Kommentar vor der ausführenden Zeile zu entfernen:

Code: Alles auswählen

rem dispatcher.executeDispatch(document, ".uno:SortDialog", "", 0, args1()) 
ersetzen durch:

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:SortDialog", "", 0, args1()) 
Nun, wenn es jetzt nicht funktioniert - und das sit schon öfter mal der Fall -, dann ist der Dispatcher Mode eben ungeeignet für das Problem. Jetzt hilft nur - manuelles Programmieren.

Viele Grüße
Thomas

Makroaufzeichnung fehlerhaft

von stephan p. » Sa, 12.02.2005 02:48

Hallo,

ich habe in Writer ein Makro aufgezeichntet, das soweit funktioniert. Am Ende wollte ich noch das Sortieren aufzeichnen. Nun steht folgendes im Makro:

Code: Alles auswählen

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:SortDialog", "", 0, Array())

end sub
Ist ja ganz nett, dass Ooo den SortDialog auskommentiert, denn sonst geht ja nur der Dialog auf, aber wo bleiben die Anweisungen? Aus Symmetrieüberlegungen müßte da doch irgendwas kommen wie

Code: Alles auswählen

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

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

end sub
Aber da geht auch nichts. Wie müßen die Werte heissen oder wie sortiert man mit einem Makro?

Danke
stephan p.

PS.: Wenn ich es recht verstanden habe, sind alle Menuebefehle von Writer eigentlich Makros. Aber ein Makro zur Sortierung finde ich nicht. Dann könnte ich ja dort abschreiben, denn über das Menue und während der Aufzeichnung funktioniert die Sortierung.

Nach oben