Autor Thema: Hochzählen beim verlassen der Maske  (Gelesen 1328 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