Autor Thema: Erstellen von Kundennummern  (Gelesen 11317 mal)

Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Erstellen von Kundennummern
« am: 30.12.03 - 17:22:22 »
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 ??
jeder sollte so eine signatuer haben.

Glombi

  • Gast
Re:Erstellen von Kundennummern
« Antwort #1 am: 30.12.03 - 17:25:15 »
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

Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Re:Erstellen von Kundennummern
« Antwort #2 am: 30.12.03 - 18:03:27 »
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
jeder sollte so eine signatuer haben.

Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Re:Erstellen von Kundennummern
« Antwort #3 am: 30.12.03 - 18:10:41 »
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.
jeder sollte so eine signatuer haben.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Erstellen von Kundennummern
« Antwort #4 am: 30.12.03 - 20:40:24 »
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

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
« Letzte Änderung: 30.12.03 - 20:42:02 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Erstellen von Kundennummern
« Antwort #5 am: 30.12.03 - 21:07:31 »
ich würde immer view refresh da einfügen:

Code
Set view = db.GetView("DEINE VIEW")
view.refresh
Set doc = view.GetLastdocument

Was machst du, wenn Dokumente gelöscht werden. Dann sind Stellen frei.

Ich empfehle dringend, dies als nicht so wichtig anzusehen und nicht mit diesen beliebten Experimenten anzufangen, dass diese Lücken gefüllt werden. Das kompliziert nur den code (mit den bekannten negativen Folgen für Lesbarkeit und Performance) und bringt meistens nix!
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Erstellen von Kundennummern
« Antwort #6 am: 30.12.03 - 21:23:56 »
Im Gegenteil, diese Lücken in der Nummer sind eigentlich wichtige Hinweise dafür, dass da mal was war.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Re:Erstellen von Kundennummern
« Antwort #7 am: 30.12.03 - 21:28:59 »
Wir behandeln notes im Rahmen eins Studienfaches  wir sollen  einige geschaeftsprozesse  mit notes umsetzten in meinem fall rechnungen erstellen. es ist nicht so wichtig  das alles bis ins letzte Detail funktioniert. wichtig ist nur das es grundlegend funktioniert.

Ich habe diesen thread gelesen  und in meinem Fall ist es nicht so wichtig all die aufgeführten Sachen zu beachten.
jeder sollte so eine signatuer haben.

Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Re:Erstellen von Kundennummern
« Antwort #8 am: 30.12.03 - 21:34:14 »
aehm ich bin wirklich nicht sehr firm in Notes  wo kommt das Script jetzt genau hin ??

wenn ich es in den Vorgabe wert kopiere tut sich da nix es kommt nur ein fehler.

??? ???  ???
jeder sollte so eine signatuer haben.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Erstellen von Kundennummern
« Antwort #9 am: 30.12.03 - 21:40:40 »
Sollte z.B. in einen Maskenevent, Querysave z.B.

TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Erstellen von Kundennummern
« Antwort #10 am: 30.12.03 - 21:45:27 »
Kommt natürlich auf den Hintergrund an.

Soll die Lfd. Nummer z.B. beim Klick auf einen Button "Speichern" erzeugt werden musst Du da noch ein paar Dims und Sets machen.

   Dim session As New NotesSession
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim db As NotesDatabase
   Dim doc As NotesDocument   
   Set db = session.CurrentDatabase
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document

Die Bezeichnungen (Source etc.) musst Du entsprechend anpassen.

TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Re:Erstellen von Kundennummern
« Antwort #11 am: 30.12.03 - 21:56:43 »
ok ich habe es jetzt so gemacht wie du sagtest



Sub Querysave(Source As Notesuidocument, Continue As Variant)
   
   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("Namen")
      Set doc = view.GetLastdocument
      
      If doc Is Nothing Then
         Source.Document.nummernfeld = 1
      Else
         Source.Document.nummernfeld = doc.nummernfeld(0) + 1
      End If
   End If
   
End Sub



ich bekomme eine Fehlermeldung  Type missmatch  nach dem ich auf speichern gedrückt habe.  Also er speichert den datensatz allerdings  vergiebt er keine numme :/
jeder sollte so eine signatuer haben.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Erstellen von Kundennummern
« Antwort #12 am: 30.12.03 - 22:12:31 »
Bei mir klappt es.

Ist Dein "nummernfeld" vom Typ Zahl ?
Sollte es sein.
Lösche auch nochmal alle bisherigen Dokumente und lege dann mal ein paar neue an.

Ansonsten starte mal den Debugger und poste, in welcher Zeile er hängt.

Aber Type Mismatch kommt mir irgendwie so vor, dass Du da ein Textfeld verwendest (bzw. der Wert des letzten Doks vom Typ Text ist).

Ach ja, und füge auch den ViewRefresh ein wie von Axel gepostet, der Tipp ist gut! (hat aber jetzt nix mit der Fehlermeldung zu tun)


TMC
« Letzte Änderung: 30.12.03 - 22:15:06 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TeeJay

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
  • Sagen wir ich mag das Forum :)
    • Sv 94 Gievitz
Re:Erstellen von Kundennummern
« Antwort #13 am: 30.12.03 - 22:33:40 »
ok so funzt es jetzt   habt vielen dank   ich werde morgen bestimmt noch ein paar Fragen loswerden.

MFG TeeJay
jeder sollte so eine signatuer haben.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Erstellen von Kundennummern
« Antwort #14 am: 30.12.03 - 22:44:06 »
schön dass es klappt.

Setzt Du bitte den Thread noch auf Erledigt?
Geht mit diesem Button:


TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Erstellen von Kundennummern
« Antwort #15 am: 05.07.08 - 16:35:56 »
Auch, wenn dies ein uralter Thread ist (aber ein Anfänger ist heute bereits darüber gestolpert und hat das Dokument gefunden): Dieses Verfahren wird nicht sicher funktionieren, und die mehrfache Vergabe von Nummern ist mehr als wahrscheinlich:
- User A speichert ein Dokument auf Server X
- User B speichert ein Dokument auf Server Y
- User C speichert ein Dokument lokal.
Dann wird repliziert (Server X mit Server Y, User C mit Server X). Alles klar?

Also: Finger weg von solch einem Quatsch.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz