Domino 9 und frühere Versionen > Entwicklung

neu Nummerierung in einer Maske

(1/8) > >>

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