Autor Thema: Wert in einem Feld mit jedem Doc hochzählen  (Gelesen 4669 mal)

Offline tuxie

  • Senior Mitglied
  • ****
  • Beiträge: 381
  • Geschlecht: Männlich
  • Lieber Sinn als Unsinn !!!
    • offizielles Stadtinformations.
Wert in einem Feld mit jedem Doc hochzählen
« am: 08.06.02 - 12:28:02 »
Hallo

Ich möchte einen Nummer(Kundennummer), in einem Feld mit jedem neuen Dokument um 1 hoch zählen. Wie kann ich den Wert des letzten Dokumentes dieses Feldes ermitteln. (Sorry ist vielleicht einfang aber ich habe mit der Notesprog. erst begonnen)
Kann mir da jemand einen Tip geben.

TsChAu TuXiE
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
2x Domino R5.011 on Linux
85 Users Notes R5.0.10 on WIN NT4SP6/Win2k SP4

Offline Christopher

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.060
  • Geschlecht: Männlich
  • Dumm ist der, der dummes tut.
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #1 am: 08.06.02 - 16:27:07 »
Hallo,

schau mal auf der Seite das Beispiel mit der Fortlaufenden Nummer an:

http://www.pclp.de/download.htm
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Client & Server R 5.011
Principal Certified Lotus Professional R5 System Administration
Microsoft Certified Systems Engineer 2000
Microsoft Certified Systems Administrator 2000
Microsoft Certified Systems Administrator 2003
Microsoft Certified Systems Engineer 2003

Offline tuxie

  • Senior Mitglied
  • ****
  • Beiträge: 381
  • Geschlecht: Männlich
  • Lieber Sinn als Unsinn !!!
    • offizielles Stadtinformations.
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #2 am: 08.06.02 - 23:42:19 »
Thx

Mal schauen wie ich die Scripte auf meine DB anpassen kann.

TsChAu TuXiE
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
2x Domino R5.011 on Linux
85 Users Notes R5.0.10 on WIN NT4SP6/Win2k SP4

Offline Polgara

  • Frischling
  • *
  • Beiträge: 3
  • Geschlecht: Weiblich
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #3 am: 11.06.02 - 12:04:25 »
Hi,

danke, werde mir das mal anschauen!  :D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Gulliver

  • Junior Mitglied
  • **
  • Beiträge: 75
  • Geschlecht: Männlich
  • Das hat's alles früher teilweise gar nicht gegeben
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #4 am: 11.06.02 - 12:57:36 »
Hallo!

Genau diese Überlegungen habe ich auch angestellt, um einen Mechanismus zu bekommen, der mir Fortlaufende Nummern erzeugt.

Das mit dem Profildokument ist keine gute Idee und funktioniert auch nur im Single-User-Betrieb. Ein Profildokument wird für den schnellen Zugriff ge-cached und nicht sofort zurückgeschrieben (erst beim beenden der Sitzung).

Probier das empfohlene Beispiel mal an mehreren Stationen und Du wirst sehen, dass diese die Nummern paralell hochzählen.

Aber es gibt eine Lösung! Und zwar mit einem normalen Dokument, dessen docID man in einem Profildokument ablegt. Auch hier gibt es ein Problem: Es dürfen nicht mehrere User total gleichzeitig den Button drücken und das passiert eben bei vielen Usern.

Somit wären wir genau bei dem Punkt, den ich vor ein paar Minuten angefragt habe. :o
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline tuxie

  • Senior Mitglied
  • ****
  • Beiträge: 381
  • Geschlecht: Männlich
  • Lieber Sinn als Unsinn !!!
    • offizielles Stadtinformations.
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #5 am: 12.06.02 - 09:00:09 »
Hallo

hab das ganze so eingebaut und es wird auch eine Nummer erzeugt, aber diese wird nicht hochgezählt. Weiß aber noch nicht warum.

TsChAu TuXiE
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
2x Domino R5.011 on Linux
85 Users Notes R5.0.10 on WIN NT4SP6/Win2k SP4

Offline Christopher

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.060
  • Geschlecht: Männlich
  • Dumm ist der, der dummes tut.
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #6 am: 12.06.02 - 17:00:04 »
Hallo in Notes Script gibt es ein Möglichkeit einen Agenten für zu blockieren so das nur eine Person zu einer bestimmten Zeit den Agenten benutzt "CrateLock" "DestroyLock" damit besteht nicht das Problem das mehrere Nutzer zur gleichen Zeit eine fortlaufende Nummer erzeugen.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Client & Server R 5.011
Principal Certified Lotus Professional R5 System Administration
Microsoft Certified Systems Engineer 2000
Microsoft Certified Systems Administrator 2000
Microsoft Certified Systems Administrator 2003
Microsoft Certified Systems Engineer 2003

Offline Gulliver

  • Junior Mitglied
  • **
  • Beiträge: 75
  • Geschlecht: Männlich
  • Das hat's alles früher teilweise gar nicht gegeben
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #7 am: 12.06.02 - 17:12:48 »
Hallo Christopher!

Schön dass Du dich mit diesem Problem beschäftigen willst, das lässt hoffen!

Schau Dir bitte mal meine Anfrage 6 Beiträge vor diesem hier mit dem Namen "Lock Mechanismus" an, vielleicht kannst Du mir helfen!

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Christopher

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.060
  • Geschlecht: Männlich
  • Dumm ist der, der dummes tut.
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #8 am: 12.06.02 - 22:55:13 »
'Declartions
Dim LockNr As Integer


Sub Initialize()
LockNr = Createlock("lfdNummer")
Call NummerHochzaehlen()
End Sub

Sub Terminate()
LockNr=Destroylock(LockNr)
End Sub


Sub NummerHochzaehlen()
 
Dim result As Variant
 
result=Codelock(LockNr)
 
While result = False
 Sleep(5)
 result=Codelock(LockNr)
Wend
 
'Setzen der laufenden Nummer
 
result=Codeunlock(lfdNummer)
 
End Sub
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Client & Server R 5.011
Principal Certified Lotus Professional R5 System Administration
Microsoft Certified Systems Engineer 2000
Microsoft Certified Systems Administrator 2000
Microsoft Certified Systems Administrator 2003
Microsoft Certified Systems Engineer 2003

Offline tuxie

  • Senior Mitglied
  • ****
  • Beiträge: 381
  • Geschlecht: Männlich
  • Lieber Sinn als Unsinn !!!
    • offizielles Stadtinformations.
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #9 am: 13.06.02 - 17:53:53 »
könnte man nicht auch eine Ansicht basteln

und dann mit @elements(DBColumn....))  die Anzahl der Dokumente Zählen und dann 1 Hochzählen ???
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
2x Domino R5.011 on Linux
85 Users Notes R5.0.10 on WIN NT4SP6/Win2k SP4

Offline Linus

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Weiblich
  • Notes ... ähm ... is'n das?
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #10 am: 14.06.02 - 10:08:13 »
Mit so einer Ansicht kommst du nur weiter, wenn NIE ein Dokument gelöscht wird. Ansocnsten hast du ziemlich schnell doppelte Nummern.
Aber Du kannst eine Ansicht basteln, die so sortiert ist, daß das Dokument mit der höchsten Nummer an erster Stelle steht. Dann das erste Dokument ermitteln, die Nummer auslesen und um 1 erhöhen.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #11 am: 14.06.02 - 10:18:50 »
@Linus:

Ja, so würde ich es im Prinzip auch machen; das Problem dabei ist aber, dass du sehr schnell auch doppelte Nummern haben wirst. Ist das neue Doc nämlich noch nicht abgespeichert, erhäst du beim nächsten Dokument die gleiche Nummer.

Wir haben hier auch so eine Anwendung, wo einige Hansel meinen, nicht ohne fortlaufende Nummer auszukommen. Hier gehe ich aber einen etwas anderen Weg. Die Nummer ist nur für spätere Rückfragen erforderlich und muss nicht sofort beim Erstellen des Docs bekannt sein. Daher lasse ich die Nummer systemseitig von einem periodischen Agenten ermitteln.
Das funktioniert ganz gut auch in replizierten Umgebungen.

Allerdings stellt sich mir immer wieder die Frage, wozu man überhaupt eine solche sequentielle Nummer braucht.
Um Dokumente zu zählen ?? Nun was passiert, wenn ein Dokument gelöscht wird ? Dann stimmt ja auch die Summe nicht mehr.
Um Dokumente bei Rückfragen schneller zu finden ?? Auch da gibt es andere und bessere Methoden.


Also wozu dann ??? ??? ???

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Gulliver

  • Junior Mitglied
  • **
  • Beiträge: 75
  • Geschlecht: Männlich
  • Das hat's alles früher teilweise gar nicht gegeben
Antwort
« Antwort #12 am: 14.06.02 - 13:42:48 »
Hi!

Ja, Du hast recht. Das funktioniert auch ganz gut, aber bei wieviel Benutzern?

Wenn man ehrlich ist, hofft man doch, dass nicht zwei gleichzeitig ein Doc erstellen.

Die Geschichte besteht ja immer aus zwei Aktionen:
1. letzte Nummer lesen
2. eins drauf hauen und doc speichern

dazwischen vergehen ein paar milli... und plötzlich gibt es zwei Docs mit der gleichen Nummer

wie gasagt, für den Hausgebrauch
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Gulliver

  • Junior Mitglied
  • **
  • Beiträge: 75
  • Geschlecht: Männlich
  • Das hat's alles früher teilweise gar nicht gegeben
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #13 am: 14.06.02 - 13:46:25 »
Nochmal Hallo!

Ich war zu spät mit der vorherigen Antwort (senden vergessen)

Wann braucht man eine fortlaufende Nummer:

Wenn es für physisch vorhandene Dokumente (Posteingang) eine Referenz braucht. D.h. ein dokument wird erzeugt und die Nummer auf den Brief geschrieben.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #14 am: 14.06.02 - 13:54:51 »
Aber genau dann ist doch wurscht, ob die nummer fortlaufend ist. Nur eindeutig muss sie sein, oder ?

Schau dir doch das hier mal an:

http://www.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/5e0be790b7fb7b6f852569ba005078aa?OpenDocument&Highlight=0,sequential

Das macht einen guten Eindruck und ist auch noch konfiguruerbar.

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Gulliver

  • Junior Mitglied
  • **
  • Beiträge: 75
  • Geschlecht: Männlich
  • Das hat's alles früher teilweise gar nicht gegeben
Re: Wert in einem Feld mit jedem Doc hochzählen
« Antwort #15 am: 14.06.02 - 16:15:54 »
Hallo eknori!

Das Beispiel ist sehr aufschlussreich und in der Form sehr komfortabel (mir zu kompliziert), aber die Lösung ist enthalten, danke!

Gulliver
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz