Domino 9 und frühere Versionen > Entwicklung

Erstellen von Kundennummern

(1/4) > >>

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