Domino 9 und frühere Versionen > ND7: Entwicklung
Frage zu Save..
iworks:
Hi zusammen,
beim beiliegenden LS Code speichert das Dokument nicht nach dem Öffnen, einer eine Idee warum nicht?
Ziel ist es einige Docs in einer View zu markieren und per Agent zu Öffnen, Speichern und wieder schliessen. Momentan versuche ich zunächst nur zu speichern, aber wie erwähnt das klappt nicht ganz, statt dessen bleiben alle Docs geöffnet.
Hier der LS dazu:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim item As NotesItem
Dim projektbez As String
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
zaehler=1
While Not ( doc Is Nothing )
Set item=doc.GetFirstItem( "Projektbez" )
projektbez=item.Text
If projektbez="" Then
doc.ID = doc.UniversalID
Else
doc.ID = doc.UniversalID
End If
Call doc.Save ( True, False )
If doc.Save( False, False ) Then
Messagebox "Document " & doc.UniversalID & _
" successfully saved"
Else
Messagebox "Document " & doc.UniversalID & _
" was not saved"
End If
If zaehler=1 Then
Print zaehler & " Dokument bearbeitet"
Else
Print zaehler & " Dokumente bearbeitet"
End If
Set doc = dc.GetNextDocument(doc)
zaehler=zaehler+1
Wend
End Sub
klaussal:
--- Zitat --- aber wie erwähnt das klappt nicht ganz,
--- Ende Zitat ---
.... und was heißt das jetzt ?
Driri:
Bitte nimm mir das nicht übel, aber weißt Du eigentlich, was Du da tust ? Ich würde ganz dringend eine Schulung empfehlen oder zumindest den verstärkten Einsatz der Designer-Hilfe.
In dem Code aus dem anderen Thread waren schon einige offensichtliche Fehler drin und bei diesem Code gibt es eine klar Abweichung zwischen deiner Beschreibung der Funktionalität und dem, was der Code tatsächlich tut.
Wie gesagt, das ist nicht böse gemeint. Ich habe nur den Eindruck, daß Du da nicht strukturiert genug herangehst und Dir wild Code zusammenstrickst.
m3:
Warum speicherst Du 2x hintereinander?
Driri:
Um meinen Beitrag ein wenig deutlicher zu machen, mal einige Zeilen aus deinem Code kommentiert :
--- Zitat ---...
Set item=doc.GetFirstItem( "Projektbez" )
projektbez=item.Text
If projektbez="" Then
doc.ID = doc.UniversalID
Else
doc.ID = doc.UniversalID
End If
--- Ende Zitat ---
Wozu die If-Schleife ? Du setzt das Feld ja sowieso.
--- Zitat --- Call doc.Save ( True, False )
If doc.Save( False, False ) Then
...
--- Ende Zitat ---
Das hat Martin schon angemerkt. Du speicherst so gleich zweimal.
Momentan schießt Dir der Code lediglich die UniversalID in ein Feld. Das bekommt man in Formelsprache auch mit einem Einzeiler hin.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln