Domino 9 und frühere Versionen > Entwicklung
Erstellen von Kundennummern
TeeJay:
Diese Frage wurde bestimmt schon häufig gestellt ich möchte aber trotzdem dieses Thema nochmal ansprechen.
Was meine ich mit Kundennummern ? In einer Maske soll es ein Feld ( berechnet ) geben welches sich immer die größte Zahl aus einer bestimmten Spalte einer liste holt und diese um eins erhöht. mit dem abspeichern der Maske ist dieser Datensatz in der Liste und enthaelt wieder die Max Kundennummer.
Jetzt meine Frage wie bekomme ich die größte Zahl einer Spalte zurückgegeben.
Kann man das so realisieren ??
Glombi:
Du sortierst die Spalte absteigend, so dass die höchste Nummer ganz oben steht. Dann machst Du ein
_Nummer := @DbColumn("Notes":"NoCache";"";"Ansicht";1);
und mit
@Subset(_Nummer;1)
erhälst Du die Zahl.
Andreas
TeeJay:
also ich habe s mal so ausprobiert
ich habe die Kundennr absteigend sortiert (in der namen liste) also kleinste zahl ganz oben.
ich habe nun ein datensatz erstellt der als kundennummer die eins hat damit ein vorgabe wert da ist.
dann gehe ich in die eingabe maske auf das NR Feld und setzte es auf berechnet um dann diesen code dort einzufügen
Nummer := @DbColumn("Notes":"NoCache";"";"Namen";1);
@Set( "Nummer";@TextToNumber(@Subset(Nummer;1))+1)
mit deinem code incremtierst du nicht.
wenn ich jetzt einen weiteren Datensatz einfügen möchte funktioniert das auch, er zeigt mir die 2 in der Maske und Speichert diese auch. Wenn ich einen weiteren Datensatz speichern möchte kommt ein Fehler
Die Datentypen der beiden Vergleichsergebnisse sind nicht kompatibel
woran kann das liegen
TeeJay:
hmmm ich hab grad nochmal die Hilfe durchgeschaut, nach der es so gar nicht funktionieren kann. Dbcolumn sucht alle Werte einer Spalte raus. Sobald 2 Werte in einer Spalte stehen wird keine Zahl mehr zurückgegeben, ich nehme an eine Liste.
Wie bekomme ich denn nun die unterste bzw die oberste Zahl (je nachdem wie man sortiert) heraus.
TMC:
Wie wärs mit einem kleinen Script:
--- Code: ---Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
If Source.IsNewDoc Then
Set db = session.CurrentDatabase
Set view = db.GetView("DEINE VIEW")
Set doc = view.GetLastdocument
If doc Is Nothing Then
Source.Document.KUNDENNUMMER = 1
Else
Source.Document.KUNDENNUMMER = doc.KUNDENNUMMER(0) + 1
End If
End If
--- Ende Code ---
Dazu hat Deine View 1 Spalte mit der Kundennummer, aufsteigend sortiert (wegen dem GetLastdocument). Kannst natürlich auch absteigend sortieren, dann schreibste halt GetFirstdocument ;)
Du weißt ja hoffentlich über die Problematik der fortlaufenden Nr. Bescheid, siehe auch z.B. auch hier: http://www.atnotes.de/index.php?board=7;action=display;threadid=12905
TMC
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln