Domino 9 und frühere Versionen > ND7: Entwicklung
Sortierung von Werten
DocNotes:
Ich werde heute mal versuchen die Normierung umzusetzen und das Array dementsprechend zu sortieren. Dafür finde ich bestimmt im Forum eine Funktion.
Vielen Dank!
diali:
meinst Du eventuell die Sortierung in einer Ansicht?
Dann sind dies keine Zahlen sondern ein String. Entweder Du machst 4 versteckte Spalten, die Du nach den Nummern (ZahlenTyp) sortierst und dann eine Spalte in der Du den String anzeigst oder Du baust den String so um, dass er sich alphanumerisch sortieren lässt. Also anstelle 8.2.1.1 muss dann 08.02.01.01 stehen und wenn Du über 99 an einer Stelle kommst/kommen kannst, dann muss da 008.002.001.001 stehen. Dieser String kann wieder in eienr versteckten Spalte sortiert werden ...
DocNotes:
--- Zitat von: diali am 15.01.08 - 07:49:38 ---meinst Du eventuell die Sortierung in einer Ansicht?
Dann sind dies keine Zahlen sondern ein String. Entweder Du machst 4 versteckte Spalten, die Du nach den Nummern (ZahlenTyp) sortierst und dann eine Spalte in der Du den String anzeigst oder Du baust den String so um, dass er sich alphanumerisch sortieren lässt. Also anstelle 8.2.1.1 muss dann 08.02.01.01 stehen und wenn Du über 99 an einer Stelle kommst/kommen kannst, dann muss da 008.002.001.001 stehen. Dieser String kann wieder in eienr versteckten Spalte sortiert werden ...
--- Ende Zitat ---
Ich habe die eine NotesDocumentCollection. Daher werde ich wie von Dir beschrieben ein Array aufbauen mit der Normierung auf 008.002.001.001. Dann das Array sortieren und dann eine Liste von Dokumenten danach aufbauen.
DocNotes:
Hier mal meine Funktion um die Werte zu normieren, habe die Punkte zwischen den Werte weggelassen. Jetzt noch in ein Array und dieses sortieren. Dann gehts so langsam weiter!
--- Code: ---Function umwandeln_OECD( strNr As String, strNrNormiert As String, strErrMsg As String ) As Boolean
%REM ------------------------------------------------------------
Aufgabe:
Erstellt: 2008-01-15, Autor: Markus Langer
Parameter:
- strNr [in] - die OECD Nummer nicht normiert
- strNrNormiert [out] - die OECD Nummer in normierten Form
- strErrMsg [out] - im Fehlerfall die Fehlermeldung
Rückgabe: True, wenn erfolgreich / sonst False
Beispiel:
8.2.1.1 -> 008002001001
8.10 -> 008010000000
Historie:
2008-01-15 Markus Langer
- Funktion neu erstellt
%END REM ----------------------------------------------------
On Error Goto ErrorHandling
Const TRENNER$ = "." 'Trennzeichen zwischen den Zahlen
Const MAX_EBENEN% = 5 'Maximale Anzahl Ebenen
Const MAX_STELLEN% = 3 'Maximale Anzahl Zahlen pro Ebene
Dim arrEinzelWerte() As String
Dim strNrTmp As String
Dim intCount As Integer
Dim x As Integer
strNrNormiert = ""
If strNr = "" Then Goto EndJmp
'Textstring in die einzelnen Werte aufteilen
If ScriptExplode( strNr, TRENNER, arrEinzelWerte, strErrMsg ) = False Then Error 15010, strErrMsg
'durch alle Werte laufen und in die normierte Form bringen
Forall strWert In arrEinzelWerte
strNrTmp = Right$( String$( MAX_STELLEN, "0" ) + strWert, MAX_STELLEN )
strNrNormiert = strNrNormiert + strNrTmp
intCount = intCount + 1
End Forall
'Falls noch Null-Werte angehängt werden müssen
If ( intCount < MAX_EBENEN ) Then
For x = intCount To ( MAX_EBENEN - 1 )
strNrNormiert = strNrNormiert + String$( MAX_STELLEN, "0" )
Next
End If
EndJmp:
umwandeln_OECD = True
ExitJmp:
Exit Function
ErrorHandling:
strErrMsg = Error$
If Err < 15000 Then strErrMsg = strErrMsg & " [sbProductDataSheed - umwandeln_OECD - Zeile " & Cstr ( Erl ) & "]"
umwandeln_OECD = False
Resume ExitJmp
End Function
--- Ende Code ---
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln