Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Raimund am 19.09.02 - 13:27:28
-
Hi Entwickler,
gibt es eine Möglichkeit für ein Feld in der Maske, dass sich mit einem neuen Doc die Zahl um 1 erhöht??
Gruß
Raimund
-
JA, die gibt es.
Ach so, du willst auch noch wissen, wie man das macht ??.
Guckst du hier:
http://217.160.137.156/html/cgi-bin/yabb/YaBB.pl?board=002-2;action=display;num=1031917607;start=2
eknori
-
Hi,
habe es damit schon versucht und es funktionierte nicht.
Die Feldnamen habe ich natürlich angepasst.
Gruß
Raimund
-
Dann poste mal bitte deinen code ...
-
Hi,
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("Rank")
Set doc = view.GetLastdocument '
If doc Is Nothing Then
Source.Document.OrderCat = 1
Else
Source.Document.OrderCat= doc.OrderCat(0) + 1
End If
End If
-
und was funktioniert da nicht; du müsstest schon ein bisschen lauter sprechen ;)
hab hier ne Formel, die ich mal eingestzt habe
create a Computed when Composed Number Field with the following formula:
REM "first doc number";
tempPRText := 1;
tempPRNumber := tempPRText;
REM "all docs after the first and add 1 to increase counter";
tempText:=@Subset(@DbColumn("" : "NoCache"; ""; "(docnumber)"; 1); 1);
temp := tempText;
@If(temp != ""; temp + 1; tempPRNumber)
then create a view called (docnumber) with the first column sorted in decsending order with the column value of the field you created above
-
Hi,
zählt leider nur bís 2. :-/
Dann ist ENDE
Gruß
Raimund
-
Ist die Ansicht richtig sortiert?
lg
gulp
-
eknori hat ne lösung, die würde ich auch nehmen ;)
Warum Dein Teil net funzt und nur bis zwei zählt?
A.) ich weiß nicht, wo das Script sitzt, also QuerySave oder wo? Wäre wichtig
B.) und B ob das Feld im Sourcedoccat mit 1 als Default Wert - wenn Doc neu generiert wird - gefüllt wird, aber ich bin mir ziemlich sicher, daß deswegen nur 2 kommt
If Source.IsNewDoc Then
'aha, Doc ist neu, dh nur dann soll das Ding rennen
Set db = session.CurrentDatabase
Set view = db.GetView("Rank")
'Rankview scheint wichtig
Set doc = view.GetLastdocument '
'holt sich das letzte doc...muß wohl das Zählerdoc sein oder alle Docs im Sinne des eknorischen dbcolumns ;D
If doc Is Nothing Then
'ah jetzt, wenn also Doc jungfräulich ist
Source.Document.OrderCat = 1
'dann setzt ne 1 ins aktuelle Doc
Else
'sonst setze eben in aktuelles Doc Zähler um 1 hoch zu dem, was im letzten Doc in der View zu finden ist
Source.Document.OrderCat= doc.OrderCat(0) + 1
End If
End If
Sach mal *schaut ihn mit blinzelnden Augen an*
hat du etwa die View aufsteigend oder absteigend sortiert? Heißt: bekommt er das Doc mit der höchsten oder niedrigsten Zahl bei der methode "getlast"
Ich wette meine Buchstaben auf der Tastatur, daß Du immer das älteste Doc (das Jungfrauendoc) ziehst und daher nur die 2 stets bekommst...rofl....
-
Hi Entwickler,
vielen Dank für die Hilfe.
Rob_Green hatte Recht. Die Formel von Eknori war OK.
Ich hatte die View aufsteigend und nicht absteigend sortiert.
War wohl nicht mein Tag gestern. ;D
Gruß
Raimund
-
Hi Entwickler,
und jetzt eine perfekte Lösung:
Sub Postopen(Source As Notesuidocument)
Dim session As New NotesSession
Dim WebDB As NotesDatabase
Dim View As NotesView
Dim WebDoc As NotesDocument
Dim uidoc As NotesUiDocument
Dim workspace As New NotesUIWorkspace
Dim i As Variant
Dim Count As String
Set uidoc = workspace.CurrentDocument
Set WebDB = session.CurrentDatabase
Set view = WebDB.GetView( "Rank" )
Set WebDoc = view.GetLastDocument
If WebDoc Is Nothing Then
Goto Label
Else
i = WebDoc.GetItemValue("OrderCat")(0)
count = i +1
If uidoc.FieldGetText("headline") = "" Then
Call uidoc.FieldSetText("ordercat",count)
End If
End If
End Sub
Gruß
Raimund
-
gewagte Lösung...
wenn das Doc nicht im Editmode geöffnet wird, was dann? Denn fieldsettext geht nur im Editmode.
Zumal der Counter ganz fix zu Speicherkonflikten führen kann.
Nun denn, viel Glück
*oi oi oi* ;D