CALC: benutzerdef. Sortierliste

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

CALC: benutzerdef. Sortierliste

Beitrag von TrueColor »

CALC: benutzerdef. Sortierliste

Hallo,

ich habe ein von hier:
[gelöst] Calc: Sortier-Macros über Pulldown ausführen
weiterführendes Problem.

Jeder kennt sicher die vordefinierten Sortierlisten in Calc (Wochentage, Monate). Ich habe nun eine eigene benutzerdefinierte Liste (Statuskennungen eines fortlaufenden Prozesses): O, A, Ä, K, P, L, erl, --
Diese möchte ich nun aber nicht im System (Menü --> Optionen --> Calc --> Sortierlisten --> Liste kopieren aus...) erstellen, sondern direkt im Macro fest hinterlegen und anwenden.

(1) Wie kann ich die Liste im Marco hinterlegen?
Aus einem Zellbereich einlesen wäre ok. Die bessere Lösung wäre IMO aber, direkt zu definieren, da die Liste sich nicht ändert.

DIM ARRAY ... ?

(2) Wie kann ich das dann als Argument verwenden?
Der Kram vom Dispatcher

Code: Alles auswählen

[...]
args1(4).Name = "UserDefIndex"
args1(4).Value = 5
[...]
ist ja vermutlich nicht zu gebrauchen.

Vielen Dank!

Grüße
TrueColor
Dateianhänge
Projekte aktuell_v02_20120306.ods
(32.01 KiB) 54-mal heruntergeladen
System:
LibO 6 + LibO 7
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CALC: benutzerdef. Sortierliste

Beitrag von balu »

Hallo TrueColor,

so rein zufälliger Weise hatte ich vor kurzem in einem Thread von mir ein ganz simples und einfaches ARRAY Beispiel zitiert. GuckstDu hier. Gleich der erste Code mit "Fred","Tom","Bill".

Nein, ich hab mir deine Datei nicht angeschaut. Aber vielleicht hilft dir das dortige Beispel trotzdem.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: CALC: benutzerdef. Sortierliste

Beitrag von TrueColor »

Huhu Balu,

das war ja schnell, ich gucks mir mal an, danke!

Grüße
TrueColor
System:
LibO 6 + LibO 7
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: CALC: benutzerdef. Sortierliste

Beitrag von TrueColor »

balu hat geschrieben:ein ganz simples und einfaches ARRAY Beispiel zitiert. GuckstDu hier. Gleich der erste Code mit "Fred","Tom","Bill".
Hm... ok, sieht einfach und verständlich aus.

Warum verwendest du VARIANT? Und warum warnt Danneberger davor (das hab ich nicht rausgefunden, aber ich würde das so interpretieren, dass man in das Variant-Array alle möglichen Typen reinkippen kann, und dann bei der Verwendung höllisch aufpassen muss, was man damit macht)? Ich denke, sowohl für dein Beispiel, als auch für meinen Anwendungsfall müsste STRING eigentlich reichen, oder?

Grüße
TrueColor
System:
LibO 6 + LibO 7
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CALC: benutzerdef. Sortierliste

Beitrag von balu »

Hallo TrueColor,
Warum verwendest du VARIANT?
Ich hatte das Beispiel auch nur von wo anders her, und da stand das schon drin.
Natürlich kannst Du in deinem Falle alles auf String setzen. Es spricht nichts dagegen.

Und warum warnt Danneberger davor
Warum Dannenhöfer in diesem Zusammenhang vor Variant warnt, ist mir auf die schnelle auch nicht bewusst.

Ich denke, sowohl für dein Beispiel, als auch für meinen Anwendungsfall müsste STRING eigentlich reichen, oder?
Yep, so seh ich das auch.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: CALC: benutzerdef. Sortierliste

Beitrag von TrueColor »

Hi Balu, hallo Forum

sorry für das lange Delay, bin erst jetzt wieder dazugekommen, mich damit zu beschäftigen.

> [STRING vs. VARIANT]

STRING fkt. doch nicht, die Objektvariable sei nicht belegt.

Code: Alles auswählen

SUB SortList

DIM aSortList AS STRING
aSortList = ARRAY("O", "A", "Ä", "K", "P", "L", "erl", "--")
FOR i = 0 to 7
  MSGBOX aSortList(i)
next

END SUB
Mit VARIANT hingegen fkt. das einwandfrei. Was ist nun der Unterschied zw. beiden?

Wer kann mir helfen, wie ich das Array nun verwenden kann, um damit eine benutzerdefinierte Sortierliste zu erzeugen, die im Dokument gespeichert ist?
System:
LibO 6 + LibO 7
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: CALC: benutzerdef. Sortierliste

Beitrag von komma4 »

Du definierst die Variable als STRING - nicht als Array von STRINGs

Code: Alles auswählen

DIM aSortList(7) AS STRING
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: CALC: benutzerdef. Sortierliste

Beitrag von TrueColor »

Ah, danke dir, so ist das um einiges besser!
System:
LibO 6 + LibO 7
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: CALC: benutzerdef. Sortierliste

Beitrag von TrueColor »

Hab jetzt zumindest eine vorübergehende Lösung für eine logische Sortierung gefunden: Mittels Hilfsspalte, in der die Kennzeichen in Zahlen übersetzt werden.

Code: Alles auswählen

=WENN(F2="O";1;"") & WENN(F2="A";2;"") & WENN(F2="Ä";3;"") & WENN(F2="K";4;"") & WENN(F2="P";5;"") & WENN(F2="L";6;"") & WENN(F2="erl";7;"") & WENN(F2="--";8;"")
Damit kann ich die Hilfsspalte einfach alphanumerisch sortieren. Nicht schön, ich stehe nicht auf Hilfsspalten, die keine Nutzdaten enthalten. Aber das tut es erstmal.

Edit: Danke, Mobbi, für die Idee!
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: CALC: benutzerdef. Sortierliste

Beitrag von Karolus »

Hallo
Vergiss diese bescheuerte Formel und nimm:

Code: Alles auswählen

=VERGLEICH( F2  ; {1;"A";"Ä";"K";"P";"L";"erl";"--"} ;  0 )
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten