Domino 9 und frühere Versionen > Entwicklung
neu Nummerierung in einer Maske
7Stein:
Habe eine Bestellung, kann einen Artikel aus der Bestellung löschen, und danach sollen halt die Positionsnummern der Bestellung neu durchgezählt werden.
Was ist an diesem Codebeispiel falsch?
--- Code: --- thisDoc.LastDetailPos= collection.count
Call thisdoc.Save(True, True)
If thisDoc.LastDetailPos(0) > 1 Then
For i = 1 To collection.count
Set docdetail = collection.GetNthDocument(i)
docDetail.Pos = i
Call docDetail.Save( True, True )
Next
thisDoc.LastDetailPos = collection.count
Else
thisDoc.LastDetailPos = 0
End If
Call viewForRefresh.Refresh()
Call uiDoc.Refresh()
End If
--- Ende Code ---
Thomas Schulte:
wissen? Auf den erste nschnellen Blick schaut der doch brauchbar aus.
Bitte, wie beim letzten Mal such dir erst einmal die Bücher vom Herdt Verlag raus, mach die Kurse durch und fang dann das Entwickeln an.
Thomas
7Stein:
na da kommt ja keine Fehlermeldung, er macht es einfach nicht!
P.S. Habe mir ein Buch bestellt, ist aber noch nicht da, und wenn es da ist, werde ich euch hier nicht mehr "belästigen"!!!!!
Glombi:
Das Script ist ok, wenn auch nicht besonders performant bei vielen Positionen (aber das ist ein anderes Thema).
Ist das jetzt nur ein Beispiel oder ein Auszug aus dem richtigen Code. Es fehlt ja wohl der Anfang, wo die Collection aufgebaut wird.
Gibt es die Felder Pos und LastDetailPos?
Was sagt der Debugger?
Andreas
7Stein:
der Debugger sagt :
--- Zitat ---Script debugger cannot debug the current object in a dialog.Script debugger will be disabled until dialog is closed.
/quote]
Der komplette Code für dei Action"Artikel löschen" sieht so aus:
--- Code: ---Sub Click(Source As Button)
Dim collection As NotesDocumentCollection
Dim docDetail As NotesDocument
Dim viewForRefresh As NotesView
Dim strPos As String
Dim i As Integer
Set viewForRefresh = db.GetView( "(BestellPositionen)" )
Set view2 = db.GetView( "(BestellPositionenByKey)")
Call view2.Refresh()
Set collection = view2.GetAllDocumentsByKey(thisDoc.UniversalID)
Select Case collection.Count
Case 0:
Msgbox "Keine Position vorhanden.", 48, db.title
Case 1:
Set docDetail = collection.GetFirstDocument
Call docDetail.Remove (True)
Case Else:
strPos = Inputbox$( "Welche Position löschen?", "Position löschen", "1" )
If strPos <> "" Then
Call view2.Refresh()
Set docDetail = view2.GetDocumentByKey( thisDoc.UniversalID + "-" + strPos )
Call docDetail.Remove( True)
End If
End Select
REM Positionen neu durchnummerieren
Set collection = db.Search( |Form = "BestandsabfrageDetail" & ParentUNID = "| + thisDoc.UniversalID + |"|, Nothing, 0 )
thisDoc.LastDetailPos= collection.count
Call thisdoc.Save(True, True)
If thisDoc.LastDetailPos(0) > 1 Then
For i = 1 To collection.count
Set docdetail = collection.GetNthDocument(i)
docDetail.Pos = i
Call docDetail.Save( True, True )
Next
thisDoc.LastDetailPos = collection.count
Else
thisDoc.LastDetailPos = 0
End If
Call viewForRefresh.Refresh()
Call uiDoc.Refresh()
End Sub
--- Ende Code ---
--- Ende Zitat ---
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln