BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Erklärunf für Sort Parameter
-
- Beiträge: 13
- Registriert: Fr 21. Jan 2022, 10:58
Erklärunf für Sort Parameter
Hallo
Kann mir jemand untenstehende Dispatcher-Sort-Parameter (fett markiert)erklären und/oder mitteilen wo ich eine detailierte Beschreibung dazu finde.
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 = "ToPoint"
args1(0).Value = "$A$32"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$32:$M$45"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, Array())
Vielen Dank Verstancla
Kann mir jemand untenstehende Dispatcher-Sort-Parameter (fett markiert)erklären und/oder mitteilen wo ich eine detailierte Beschreibung dazu finde.
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 = "ToPoint"
args1(0).Value = "$A$32"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$32:$M$45"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, Array())
Vielen Dank Verstancla
Re: Erklärunf für Sort Parameter
Hallo,
die Dispatcher-Befehle bilden im Prinzip die Menüfunktionen ab und unterscheiden sich grundsätzlich von der Makroprogrammierung via Basic (basierend auf der API).
Die drei fett markierten Zeilen
1) definieren den so genannten Dispatcher, der praktisch die Befehlsübermittlung übernimmt
2) veranlasst den Cursor in die Zelle A32 zu gehen
3) geht zu /markiert den Bereich A32:M45
Der eigentliche Sortierbefehl erfolgt erst durch die Zeile
die aber auskommentiert ist und daher nicht wirksam wird.
Wenn du das rem wegnimmst, wird er wirksam. Dann passiert aber nicht so viel, denn es wird lediglich der Sortierdialog aufgerufen.
Hier https://wiki.documentfoundation.org/Dev ... mands#Calc
findet sich die Info, dass auch Parameter übergeben werden können:
ByRows (bool)
HasHeader (bool)
CaseSensitive (bool)
NaturalSort (bool)
IncludeAttribs (bool)
UserDefIndex (integer)
Col1 (long)
Ascending1 (bool)
Col2 (long)
Ascending2 (bool)
Col3 (long)
Ascending3 (bool)
IncludeComments (bool)
IncludeImages (bool)
Sie entsprechen den Einstellungen, die man im Dialog machen würde.
die Dispatcher-Befehle bilden im Prinzip die Menüfunktionen ab und unterscheiden sich grundsätzlich von der Makroprogrammierung via Basic (basierend auf der API).
Die drei fett markierten Zeilen
1) definieren den so genannten Dispatcher, der praktisch die Befehlsübermittlung übernimmt
2) veranlasst den Cursor in die Zelle A32 zu gehen
3) geht zu /markiert den Bereich A32:M45
Der eigentliche Sortierbefehl erfolgt erst durch die Zeile
Code: Alles auswählen
rem dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, Array())
Wenn du das rem wegnimmst, wird er wirksam. Dann passiert aber nicht so viel, denn es wird lediglich der Sortierdialog aufgerufen.
Hier https://wiki.documentfoundation.org/Dev ... mands#Calc
findet sich die Info, dass auch Parameter übergeben werden können:
ByRows (bool)
HasHeader (bool)
CaseSensitive (bool)
NaturalSort (bool)
IncludeAttribs (bool)
UserDefIndex (integer)
Col1 (long)
Ascending1 (bool)
Col2 (long)
Ascending2 (bool)
Col3 (long)
Ascending3 (bool)
IncludeComments (bool)
IncludeImages (bool)
Sie entsprechen den Einstellungen, die man im Dialog machen würde.
Gruß,
mikele
mikele
-
- Beiträge: 13
- Registriert: Fr 21. Jan 2022, 10:58
Re: Erklärunf für Sort Parameter
Hallo mikele
Vielen Dank für deine Antwort und entschuldige meine Begriffsstutzigkeit. Dein angegebener Link verwirrt mich mehr als dass er mir nützt. Wo ist z. B. 'ByRows (bool)' beschrieben. Auch kann ich im Dialog diese Angabe nicht machen. Da habe ich nur die Möglichkeit 'Aufsteigend' oder 'Absteigend' anzugeben. In meinem Beispiel werden Statements wie 'args2().name' verwendet, in deinem jedoch solche wie ''ByRows(bool)' etc. Meine Verwirrung ist komplett. Was ich vermisse ist eine detailierte Beschreibung aller Statements und Parameter für ein Sort-Makro.
Ich war fast 40 Jahre in der Systemprogrammierung für Grosssysteme tätig und ich fand die damalige Systemliteratur um einiges verständlicher, vollständiger und brauchbarer.
Gruss Verstancla.
Vielen Dank für deine Antwort und entschuldige meine Begriffsstutzigkeit. Dein angegebener Link verwirrt mich mehr als dass er mir nützt. Wo ist z. B. 'ByRows (bool)' beschrieben. Auch kann ich im Dialog diese Angabe nicht machen. Da habe ich nur die Möglichkeit 'Aufsteigend' oder 'Absteigend' anzugeben. In meinem Beispiel werden Statements wie 'args2().name' verwendet, in deinem jedoch solche wie ''ByRows(bool)' etc. Meine Verwirrung ist komplett. Was ich vermisse ist eine detailierte Beschreibung aller Statements und Parameter für ein Sort-Makro.
Ich war fast 40 Jahre in der Systemprogrammierung für Grosssysteme tätig und ich fand die damalige Systemliteratur um einiges verständlicher, vollständiger und brauchbarer.
Gruss Verstancla.
Re: Erklärunf für Sort Parameter
Hallo Verstancla,
Ich habe kürzlich gelesen, dass es mehr als 300.000 Commands, usw. gibt.
Die einzige Doku, welche aber wohl nie fertiggestellt wird ist diese:
https://thebiasplanet.blogspot.com/p/blog-page.html
Mikele erwähnte es schon, die Command's unterscheiden sich erheblich
von der Starbasic-Programmierung auf Basis der API (objektorientiert).
Die Dispatch-Command sind eher so etwas wie eine Batch-Stapelverarbeitung.
Die Starbasic-Programmierung ist wesentlich besser dokumentiert.
Ausserdem gibt es kostenlose Handbücher und jede Menge Codebeispiele im Netz.
Hier eine Linksammlung, welche Stephan im OpenOffice-Forum zusammengestellt hat.
und wie immer im Leben: "Aller Anfang ist schwer..."
Was die Dispatch-Command an geht, bin ich auch zum großen Teil sehr verwirrt.Meine Verwirrung ist komplett. Was ich vermisse ist eine detailierte Beschreibung aller Statements und Parameter für ein Sort-Makro.
Ich habe kürzlich gelesen, dass es mehr als 300.000 Commands, usw. gibt.
Die einzige Doku, welche aber wohl nie fertiggestellt wird ist diese:
https://thebiasplanet.blogspot.com/p/blog-page.html
Mikele erwähnte es schon, die Command's unterscheiden sich erheblich
von der Starbasic-Programmierung auf Basis der API (objektorientiert).
Die Dispatch-Command sind eher so etwas wie eine Batch-Stapelverarbeitung.
Die Starbasic-Programmierung ist wesentlich besser dokumentiert.
Ausserdem gibt es kostenlose Handbücher und jede Menge Codebeispiele im Netz.
Hier eine Linksammlung, welche Stephan im OpenOffice-Forum zusammengestellt hat.
und wie immer im Leben: "Aller Anfang ist schwer..."
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Erklärunf für Sort Parameter
Hallo,
die Dispatch-Befehle sind (als Abbildung der Menübefehle) in den Tiefen des Quellcodes implementiert und greifen auf dieselben Funktionalitäten zurück. Daher sind sie häufig schneller in der Ausführung bzw. manche Dinge gehen eleganter oder überhaupt nur damit. Ein Klassiker ist das Kopieren von Zellen: um alle Varianten der Formatierung (bedingte, harte, per Vorlagen) zu erfassen wäre ein ganz schöner Aufwand per Basic und API-Schnittstelle nötig.
Andererseits sind die Dispatch-Befehle nicht so flexibel und eben schlecht oder gar nicht dokumentiert (theoretisch kann man es dem frei verfügbaren Quellcode entnehmen, was hier https://wiki.documentfoundation.org/Dev ... mands#Calc per Python-Script automatisiert wurde). Manche rufe auch nur die entsprechenden Dialoge auf.
Für ein Sortierungsmakro würde ich den Weg über die API gehen (siehe https://api.libreoffice.org/docs/idl/re ... fcbd114f90), das erfordert aber einen tieferen Einstieg in diese Art der Programmierung.
Für uno:DataSort versuche ich mich mal an einer Übersetzung:
Wenn einzelne Eigenschaften nicht gesetzt werden, dann werden die Standardwerte gesetzt.
Um also einfach einen Bereich nach der erste Spalte aufsteigend zu sortieren, würde folgende Variante reichen:Es wäre allerdings etwas sinnlos, weil es dafür schon eine Schaltfläche gibt, die das leistet.
die Dispatch-Befehle sind (als Abbildung der Menübefehle) in den Tiefen des Quellcodes implementiert und greifen auf dieselben Funktionalitäten zurück. Daher sind sie häufig schneller in der Ausführung bzw. manche Dinge gehen eleganter oder überhaupt nur damit. Ein Klassiker ist das Kopieren von Zellen: um alle Varianten der Formatierung (bedingte, harte, per Vorlagen) zu erfassen wäre ein ganz schöner Aufwand per Basic und API-Schnittstelle nötig.
Andererseits sind die Dispatch-Befehle nicht so flexibel und eben schlecht oder gar nicht dokumentiert (theoretisch kann man es dem frei verfügbaren Quellcode entnehmen, was hier https://wiki.documentfoundation.org/Dev ... mands#Calc per Python-Script automatisiert wurde). Manche rufe auch nur die entsprechenden Dialoge auf.
Für ein Sortierungsmakro würde ich den Weg über die API gehen (siehe https://api.libreoffice.org/docs/idl/re ... fcbd114f90), das erfordert aber einen tieferen Einstieg in diese Art der Programmierung.
Für uno:DataSort versuche ich mich mal an einer Übersetzung:
Code: Alles auswählen
Sub Main
' ----------------------------------------------------------------------
'Festlegung der Argumente in Form eines Arrays, jedes Element ist ein PropertyValue,
' besteht also aus einem Namen (der Eigenschaft) und einem Wert (der Eigenschaft)
' ----------------------------------------------------------------------
Dim args(13) as new com.sun.star.beans.PropertyValue
'Sortierung von links nach rechts (Spalten sortieren?)
args(0).Name = "ByRows"
args(0).Value = False
'Bereich enthält Spaltenbeschriftungen
args(1).Name = "HasHeader"
args(1).Value = True
'Groß- und Kleinschreibung?
args(2).Name = "CaseSensitive"
args(2).Value = False
'Natürliche Sortierung
args(3).Name = "NaturalSort"
args(3).Value = False
'Formate einschließen
args(4).Name = "IncludeAttribs"
args(4).Value = True
'Benutzerdefinierte Sortierreihenfolge
args(5).Name = "UserDefIndex"
args(5).Value = 1
'Sortieschlüssel 1: Nummer der Spalte in der Auswahl
args(6).Name = "Col1"
args(6).Value = 1
'Aufsteigend?
args(7).Name = "Ascending1"
args(7).Value = True
'Sortieschlüssel 2: Nummer der Spalte in der Auswahl
args(8).Name = "Col2"
args(8).Value = 2
'Aufsteigend?
args(9).Name = "Ascending2"
args(9).Value = False
'Sortieschlüssel 3: Nummer der Spalte in der Auswahl
args(10).Name = "Col3"
args(10).Value = 4
'Aufsteigend?
args(11).Name = "Ascending3"
args(11).Value = True
'Kommentare einschließen
args(12).Name = "IncludeComments"
args(12).Value = False
'Bilder einschließen
args(13).Name = "IncludeImages"
args(13).Value = False
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args())
End Sub
Um also einfach einen Bereich nach der erste Spalte aufsteigend zu sortieren, würde folgende Variante reichen:
Code: Alles auswählen
Sub sortierung_kurz
Dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "Col1"
args(0).Value = 1
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args())
End Sub
Gruß,
mikele
mikele
-
- Beiträge: 13
- Registriert: Fr 21. Jan 2022, 10:58
Re: Erklärung für Sort Parameter
Hallo,
ein letzer verzweifelter Versuch: Ich nehme an die args-Parameter (s. unten) geben dem Sort die Parameter für die Sortierung an. Meine hellseherischen Fähigkeiten reichen jedoch nicht aus, um den Zweck der Nummer nach args sowie diejenige in der nachfolgenden Klammer zu interpretieren. Was um Himmels Willen bezweckt args8(5).Name = "UserDefIndex", args8(10).Name = "IncludeComments", args8(11).Name = "IncludeImages", um nur einige zu nennen und wo sind diese beschrieben. Auch die anderen Parameter wie NaturalSort (bool), UserDefIndex (integer) und IncludeComments (bool) konnte ich nirgends finden. In keinen von euren Dokumentationshinweisen konnte ich irgend etwas in dieser Richtung finden. Es kann doch nicht so kompliziert sein, ein Sort-Makro zu programmieren!
args8(0).Name = "ByRows"
args8(0).Value = true
args8(1).Name = "HasHeader"
args8(1).Value = true
args8(2).Name = "CaseSensitive"
args8(2).Value = false
args8(3).Name = "NaturalSort"
args8(3).Value = false
args8(4).Name = "IncludeAttribs"
args8(4).Value = true
args8(5).Name = "UserDefIndex"
args8(5).Value = 0
args8(6).Name = "Col1"
args8(6).Value = 13
args8(7).Name = "Ascending1"
args8(7).Value = true
args8(8).Name = "Col2"
args8(8).Value = 2
args8(9).Name = "Ascending2"
args8(9).Value = true
args8(10).Name = "IncludeComments"
args8(10).Value = false
args8(11).Name = "IncludeImages"
args8(11).Value = true
ein letzer verzweifelter Versuch: Ich nehme an die args-Parameter (s. unten) geben dem Sort die Parameter für die Sortierung an. Meine hellseherischen Fähigkeiten reichen jedoch nicht aus, um den Zweck der Nummer nach args sowie diejenige in der nachfolgenden Klammer zu interpretieren. Was um Himmels Willen bezweckt args8(5).Name = "UserDefIndex", args8(10).Name = "IncludeComments", args8(11).Name = "IncludeImages", um nur einige zu nennen und wo sind diese beschrieben. Auch die anderen Parameter wie NaturalSort (bool), UserDefIndex (integer) und IncludeComments (bool) konnte ich nirgends finden. In keinen von euren Dokumentationshinweisen konnte ich irgend etwas in dieser Richtung finden. Es kann doch nicht so kompliziert sein, ein Sort-Makro zu programmieren!
args8(0).Name = "ByRows"
args8(0).Value = true
args8(1).Name = "HasHeader"
args8(1).Value = true
args8(2).Name = "CaseSensitive"
args8(2).Value = false
args8(3).Name = "NaturalSort"
args8(3).Value = false
args8(4).Name = "IncludeAttribs"
args8(4).Value = true
args8(5).Name = "UserDefIndex"
args8(5).Value = 0
args8(6).Name = "Col1"
args8(6).Value = 13
args8(7).Name = "Ascending1"
args8(7).Value = true
args8(8).Name = "Col2"
args8(8).Value = 2
args8(9).Name = "Ascending2"
args8(9).Value = true
args8(10).Name = "IncludeComments"
args8(10).Value = false
args8(11).Name = "IncludeImages"
args8(11).Value = true
Re: Erklärung für Sort Parameter
Hallo,
ich habe die Bedeutung der Parameter direkt in meinem Beispielcode erläutert.
Die Parameter werden in einem Array gespeichert. Wie man es bezeichnet ist egal. Beim Aufzeichnen eines Makros werden diese Arrays einfach durchnummeriert.
Ob du es arg8 nennst oder meineparameterliste ist deine Entscheidung.
ich habe die Bedeutung der Parameter direkt in meinem Beispielcode erläutert.
Die Parameter werden in einem Array gespeichert. Wie man es bezeichnet ist egal. Beim Aufzeichnen eines Makros werden diese Arrays einfach durchnummeriert.
Ob du es arg8 nennst oder meineparameterliste ist deine Entscheidung.
Überhaupt nicht, ich habe dir ein einfaches Beispiel bereits gegeben. Was passt daran nicht?Es kann doch nicht so kompliziert sein, ein Sort-Makro zu programmieren!
Gruß,
mikele
mikele
-
- Beiträge: 13
- Registriert: Fr 21. Jan 2022, 10:58
Re: Erklärung für Sort Parameter
Ich glaube wir können aufhören. Du willst mich nicht verstehen. Aber ich möchte den Sort und dessen Parameter verstehen und nicht einfach nur eine Lösung. Dazu bräuchte ich eine brauchbare und verständliche Beschreibung.
Re: Erklärunf für Sort Parameter
Hallo,
du möchtest offensichtlich keine Antworten und Erklärungen.
du möchtest offensichtlich keine Antworten und Erklärungen.
Gruß,
mikele
mikele
-
- Beiträge: 13
- Registriert: Fr 21. Jan 2022, 10:58
Re: Erklärung für Sort Parameter
Hallo mikele,
was ich möchte sind Antworten auf meine Fragen, ganz einfach.
Gruss verstancla
was ich möchte sind Antworten auf meine Fragen, ganz einfach.
Gruss verstancla
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️