Domino 9 und frühere Versionen > ND8: Entwicklung

Optionsfelder in Lotus Script

<< < (2/5) > >>

jr:
Hallo,

doch, muss gehen, der Code ist korrekt. Vielleicht darfst Du das Dokument nicht löschen? (ACL Häkchen bei Delete Document?) Oder vielleicht hast Du das Dokument gerade im Frontend geöffnet?

Oder gibt es immer noch den "Object Variable not set"-Error? GetProfileDocument gibt immer ein gültiges Dokument zurück, auch wenn noch gar keins existiert. Also hat profileDoc in jedem Fall einen gültigen Wert. Vielleicht ist im Feld "test" eine Zahl? Dann probiers mal mit CStr(profileDoc.test(0)) = "1". Oder - letzte Idee - doc hat keinen Wert. Kannst ja vorher mal mit "If (Not(doc Is Nothing)) ..." prüfen.

Gruß,

Joachim

Axel:
Zeigt mal den gesmaten Code. Mit dem Schnipsel kann man nichts anfangen. Das sieht nämlich, mit der Ergänzug von (0) ganz vernüftig aus.

Hast du eine vernüftige Fehlerbehandlung eingebaut.


Axel

Pir0x:
also, ich führ das ganze mal bissl weiter aus, diese Abfrage setzt sich aus 2 Bedingungen zusammen,

einmal wird überprüft ob das Document bearbeitet wurde (flagDocProcessed) und einmal halt welches kästchen im Optionsfeld ausgewählt wurde.

"flagDocProcessed" wird auf True gesetzt sobald das Document bearbeitet wurde

wenn ich jetzt sag
-----------------------------------------------------
"IF flagDocProcessed Then Call doc.Remove(True)"
-----------------------------------------------------

funktioniert das ohne Probleme , aber wenn ich das mit einander kombinieren will
------------------------------------------------------------------------------
"If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)"
------------------------------------------------------------------------------
funktioniert das wieder nicht. und im Feld test ist auch keine Zahl, das mit CStr hab ich bereits probiert

edit: Gesamter Code

--- Zitat ---Set docProfile = db.GetProfileDocument("MABP")
While Not(doc Is Nothing)
      flagDocProcessed = False
....
flagDocProcessed=True    
....
Set docx = doc
Set doc = docsUnprocessed.GetNextDocument(doc)
If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)

--- Ende Zitat ---

jr:
Hi,

hmm, sieht so aus, als ob Du den Remove zu einem falschen Zeitpunkt machst. Nach dem letzten "GetNextDocument" ist doc Nothing und dann funktioniert die nächste Zeile nicht mehr.

Du kannst doc in einer anderen Variablen zwischenspeichern und dann löschen.


--- Code: ---while (Not(doc Is Nothing))
   Set del = Nothing
   ...
   If (... ) Then Set del = doc
   Set doc = docsUnprocessed.GetNextDocument(doc)
   If (Not(del Is Nothig)) Then Call del.Remove(True)
Wend

--- Ende Code ---

So müsste es klappen.

Gruß,

Joachim

Pir0x:

--- Zitat von: jr am 18.08.08 - 09:45:59 ---Hi,

hmm, sieht so aus, als ob Du den Remove zu einem falschen Zeitpunkt machst. Nach dem letzten "GetNextDocument" ist doc Nothing und dann funktioniert die nächste Zeile nicht mehr.

Du kannst doc in einer anderen Variablen zwischenspeichern und dann löschen.

--- Ende Zitat ---

genau so mach ichs ja

Set docx = doc
If flagDocProcessed And (docProfile.test(0)= "1" )Then Call Docx.Remove(True)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln