Autor Thema: Hochzählen beim verlassen der Maske  (Gelesen 1253 mal)

Offline Bellerophon

  • Aktives Mitglied
  • ***
  • Beiträge: 187
  • Geschlecht: Männlich
  • "Der Wille entscheidet"
Hochzählen beim verlassen der Maske
« am: 08.02.06 - 08:46:35 »
*greetz* @ ALL!

Ich habe in der Suche nichts gefunden, deswegen Poste ich mal mein Problem:
Ich möchte eine "Mitgliedsnummer" automatisiert vergeben. Habe dafür im Querysave folgendes Script erstellt:

Code
'Vergabe der Mitgliedsnummer
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	
	Dim workspace As New NotesUIWorkspace
	Dim sess As New notessession
	Dim uidoc As NotesUIDocument
	Dim doc, docnext As NotesDocument
	Dim View As NotesView
	Dim choice As String
	Dim db As notesdatabase
	
	Set db=sess.currentdatabase
	Set uidoc = workspace.CurrentDocument
	
	If uidoc.IsNewDoc Then
		
		Set View = db.getview("(NachNr)")
		Set doc = view.getfirstdocument
		
		If Cint(doc.MitglNr(0)) > 1 Then
			uidoc.fieldsettext "MitglNr", "1"
			Exit Sub
		End If	
		
		If doc Is Nothing Then
			uidoc.fieldsettext "MitglNr", "1"
			Exit Sub
		End If
		
		While Not doc Is Nothing
			
			Set docnext = view.getnextdocument(doc)
			
			If docnext Is Nothing Then
				uidoc.fieldsettext "MitglNr", Cstr ( ( Cint(doc.MitglNr(0)) +1 ) )
				Exit Sub
			Else
				If Cint(docnext.MitglNr(0)) - Cint(C) <> 1 Then
					uidoc.fieldsettext "MitglNr", Cstr ( ( Cint(doc.MitglNr(0)) +1 ) )
					Exit Sub
				End If
			End If
			
			Set doc = docnext
			
		Wend
		
	End If
	
End Sub

Habe bei den Declarations folgendes stehen:

Code
Dim uidoc As notesuidocument
Dim db As notesdatabase
Dim doc  As notesdocument
Dim doc_save	As notesdocument
Dim view 	As notesview
Dim item As NotesItem
Dim dc As NotesDocumentCollection
Dim Str_Suchdoc As String
Dim Str_Suchuidoc As String
Dim SaveFlag As String


Das Feld "MitglNr" ist ein Zahlenfeld (Berechnet), auch als Textfeld (Berechnet) funktioniert das nicht!
Die Nummer 1 vergibt er, alle anderen bekommen die Nummer 2! ;-(
Sehe ich vor lauter Bäumen den Wald nicht mehr? Oder was habe ich Übersehen.
« Letzte Änderung: 08.02.06 - 09:19:02 von Bellerophon »
"Das Leben ist einfach, man trifft Entscheidungen und lebt mit den Konsequenzen."

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Hochzählen beim verlassen der Maske
« Antwort #1 am: 08.02.06 - 08:53:51 »
Hi,

Frage.
Wie ist denn die Ansicht aufgebaut?
(schon sortiert?)

Wenn aufsteigend sortiert, dann ...

set view = ...
view.Refresh
view.AutoUpdate = False

set doc = view.GetLastDocument

If (doc is Nothing) then
  Call uidoc.Document.ReplaceItemValue("MitglNr", 1)
Else
  Call uidoc.Document.ReplaceItemValue("MitglNr", _
         CLng(uidoc.Document.GetItemValue("MitglNr")(0)))
End If

Andreas

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Hochzählen beim verlassen der Maske
« Antwort #2 am: 08.02.06 - 08:56:36 »
1. Rot ist hässlich
Verwende doch lieber
Code
 die Code Tags 

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
   
   Dim workspace As New NotesUIWorkspace
   Dim sess As New notessession
   Dim uidoc As NotesUIDocument
   Dim doc as notesdocument
   dim  docnext As NotesDocument
   Dim View As NotesView
   Dim choice As String
   Dim db As notesdatabase
   
   Set db=sess.currentdatabase
   Set uidoc = workspace.CurrentDocument
   
   If uidoc.IsNewDoc Then
  
     dim max as integer

      Set View = db.getview("(NachNr)")
      Set doc = view.getfirstdocument
      
      
      If doc Is Nothing Then
         uidoc.fieldsettext "MitglNr", "1"
         Exit Sub
      End If
      
      While Not doc Is Nothing
        if (cint(doc.getitemvalue("MitGlNr")(0)) > max then
         max = cint(doc.getitemvalue("mitglnr")(0)
        end if
         
         Set doc = view.getnextdocument(doc)
         
      Wend
      call uidoc.fieldsettext("MitGlNr",cstr(max))
   End If
   
End Sub

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Hochzählen beim verlassen der Maske
« Antwort #3 am: 08.02.06 - 08:58:47 »
Und noch was.
Such doch einfach mal im Forum nach "laufender Nummer" Da gibt es haufenweise Beiträge mit funktionierenden Möglichkeiten und den entsprechenden Anmerkungen was man wann und warum machen oder nicht machen sollte.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Bellerophon

  • Aktives Mitglied
  • ***
  • Beiträge: 187
  • Geschlecht: Männlich
  • "Der Wille entscheidet"
Re: Hochzählen beim verlassen der Maske
« Antwort #4 am: 08.02.06 - 09:25:44 »
@ascabg:
Danke für die Info, werde es mal ausprobieren.


Wie ist denn die Ansicht aufgebaut?
(schon sortiert?)


Hi!

Ja, die Spalte in der Ansicht "NachNr" ist Aufsteigend sortiert und hat "keine Kategorien"
Zur Spalte habe ich noch folgende Formel geschrieben:

Code
@If(@Length(MitglNr) = 1 ; "00" + @Text(MitglNr) ;
@If(@Length(MitglNr) = 2 ; "0" + @Text(MitglNr) ; @Text(MitglNr)))

Dies ist Notwendig, da die Mitgliedsnummer 3-stellig sein sollte.........


@umi:
Thanx wurde sofort umgesetzt! War schon etwas länger nicht mehr im Forum....;-(

@Thomas Schulte:
TSCHULLIGUNG! ;-)
Darauf bin ich mal wieder nicht gekommen! Sorry! Werde beim nächsten mal ausführlicher Suchen! ;-)


« Letzte Änderung: 08.02.06 - 09:27:37 von Bellerophon »
"Das Leben ist einfach, man trifft Entscheidungen und lebt mit den Konsequenzen."

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz