Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Axel am 05.07.06 - 15:25:59
-
Heute will ich auch mal wieder ein Problem haben.
Es gibt bei uns eine Orga-Datenbank mit einigen Dokumenten. Die Gliederung der Dokumente ist auf 4 Ebenen festgelegt. Im Moment wird die Nummerierung in Textfeldern abgelegt, was logischer zu einer etwas seltsamen Sortierung führt (1, 10, 11, 2, 2.1, 2.20, 2.2 ...)
Was noch dazu kommt, dass die Anzahl der Gliederungsebenen flexibel (bis max. 4) sein soll. Im Moment wird das in der Ansicht über eine Spaltenformel (vereinfacht: Ebene2 + "\\" Ebene3 + "\\" + Ebene4) geregelt. Die erste Ebene wird in der ersten Spalte angezeigt.
Bis auf die Sortierung funktioniert das auch soweit.
Wie krieg ich denn jetzt hier eine vernüftige Sortierung hin? Kann mir jemand von der Leitung helfen auf der ich gerade stehe?
-
Müsstest halt die Texte entweder in Nummern umwandeln und dann sortieren oder aber die Texte auf eine bestimmte Anzahl stellen normiern. z.B. 0001 / 00010 etc.
Das sind so spontan die 2 Möglichen Ansätze
-
Yoo, aber das Problem ist, dass die Ebenen in den Feldern als 1.1 für die zweite, 1.1.1 für die dritte Ebene usw. abgelegt sind.
Axel
-
Dann halt zuerst ein @Explode(), dann die einzelnen Ebenen normieren und wieder ein @implode mit "\\" oder?
-
Wäre eine Idee. Werde ich mal probieren.
Axel
-
Hallo Axel,
ich gehe einmal davon aus, das du mit Gliederung auch eine Dokumentstruktur hast. Die Dokumente die du erstellst sind hierarchisch unterteilt.
A Gehört in Ebene1 = 1
B Gehört in Ebene2 unter B = 1.1
C Gehört in Ebene2 unter A = 1.2
D Gehört in Ebene1 = 2
E Gehört in Ebene2 unter D = 2.1
Wenn du also im Dokuement die zugehörigkeit zum Übergeordneten Dokument merkst dann hast du die Hirarchie Struktur.
(Da schau dir doch einfach das Design der Hilfe DB an)
Die Aufzählung erhälst du mittels @DocNumber
-
Genauso solls aussehen. Ich werde mir die Hilfe - DB mal näher anschauen. Danke für den Tipp.
Axel
-
Die Hilfe-DB bringt mir leider wenig, da dort keine Nummerierung vorhanden ist. @Docnumber bringt mich auch nicht weiter.
Die Dokumente sind zwar hierarchisch geordnet, aber ich habe keine echt Zugehörigkeit zum übergeordneten Dokument.
Ich versuch's mal kurz zu skizzieren wie das Ganze aussieht.
In der Maske gibt es vier Felder (Datentyp Text) für die Gliederungsnummerierung.
Im einen Dokument in der dritten Ebene sehen die Felder so aus:
Feld Inhalt
Ebene1 5
Ebene2 5.1
Ebene3 5.1.1
Ebene4
Es gibt dann noch ein berechnetes Feld in dem die Ebenen mit dem jeweiligen Titel zusammengesetzt werden.
Für obiges Beispiel ergibt sich dann folgender Inhalt:
5. Titel Ebene1\\5.1 Titel Ebene2\\5.1.1 Titel Ebene3
Die Darstellung der Hierarchie innerhalb der Ansichten erfolgt nun mit diesem Feld und der Kategorisierung.
Axel
-
Hi,
wenn du in deinem Dokument ein Bezugsfeld machst auf das sich das Untergeordnete Dokument bezieht und du baust eine Ansicht auf in der du eben
BezugEbene1
BezugEbene2
BezugEbene3
Dann kannst du das ganze Kategorisieren BezugEbene1\\BezugEbene2\\BezugEbene4\\Titel
Dann kannst du mit @DocNumber automatisch die Hierarchiebene angeben.
-
So ähnlich mache ich das schon. Ich habe in allen Dokumenten die Infos zur Gliederungsebene.
Aber um die ganze Sache zum Abschluß zu bringen, es wird wahrscheinlich auf eine komplette Neuentwicklung hinauslaufen. Dort wird dann die Struktur gleich so angelegt, dass die Sortierung passt.
Danke nochmal an alle die sich hier an der Diskussion beteiligt haben.
Axel
-
Sei der Inhalt 5.7.81
Dann liefert
Liste:=@Explode(Inhalt;".") eine Liste "5":"7":"81"
Erweitert:="00000"+Liste;
liefert dir dann "000005":"000007":"0000081"
Normiert:=@Right(Erweitert;5)
liefert dir dann "00005":"00007":"00081"
Und schließlich führt
@Implode(Normiert;".")
zu "00005.00007.00081"
Und das ist dein eigentliches Sortierfeld, das du der Kategorisierung voranstellst
Zusammengezogen sieht das dann so aus
@Implode(@Right("00000"+@Explode(Liste;".");5);".")
-
Danke. Ich werde das mal testen.
Kann aber ein bisschen dauern. Aus Zeitgründen liegt das Teil mal wieder auf Eis. Es gibt angeblich wieder wichtigeres. :o
Axel