Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TomLudwig am 26.11.03 - 15:57:36
-
Hallo,
ich habe in meinem Dokument einen Button Dokument löschen
Hinter diesem Button liegt die Formel:
@Command([EditClear]);
@Command([FileCloseWindow])
Dadurch wird aber nur die Löschmarkierung gesetzt. Und erscheint auch immernoch die Abfrage ob ich das Dokument wirklich löschen möchte.
Wie kann ich es bewerkstelligen, dass Das Dokument wirklich komplett nach dem Druck auf den Butten gelöscht wird?
-
Hi,
über Formelsprache wäre mir da nichts bekannt, über Script würds funktionieren.
Call doc.Remove(True)
-
@DeleteDocument
-
Diese Funktion ist nur für die Verwendung in Formeln vorgesehen, die von Agenten ausgeführt werden; sie hat an anderer Stelle keine Wirkung.
-
Hi,
zu @DeleteDocument :
Diese Funktion ist nur für die Verwendung in Formeln vorgesehen, die von Agenten ausgeführt werden; sie hat an anderer Stelle keine Wirkung.
Quelle : Designer Hilfe
-
Siehe oben ;-)
-
@DeleteDocument funktioniert nicht über Buttons....
Call doc.Remove(True) funktioniert nur wenn ich das Dokument nicht gerade geöffnte habe.
Ich suche eine Rutine wie ich ein geöffnetes Dokument gleich lösche....
Hilfe...
-
Warum sollte NotesDocument.Remove nicht funktionieren ? Das putzt das Dokument im Backend weg.
Ein NotesUIDocument.Close und ein Refresh der View wäre dann auch noch angebracht, damit man die Resultate gleich sieht (bzw. nicht mehr sieht).
Bernhard
-
Bei Call doc.Remove(True) bekomme ich die Fehlermeldung:
Cannot Remove NotesDocument when instantiated by NotesUIDocument
-
Ach ja ... Sorry für meinen Schnellschuss. Du brauchst meine Tips aber nur eine andere Reihenfolge bringen:
NotesDocument instantiieren
UIDoc zuwerfen
NotesDocument löschen
So aus dem hohlen Bauch: Sollte funktionieren.
HTH,
Bernhard
-
Nochmal langsam bitte....
NoteDocument holen
NotesUIDocument zuwerfen ??? Wie bitte ?
NotesDocument löschen
-
Call NotesUIDocument.Close
Call NotesDocument.Remove (True)
Call NotesUIWorkspace.ViewRefresh
Das Ganze sollte dann in einem Agent stehen (Schnellschuss ! Sitze hier über 'nem ganz anderen Problem ;-), da ja mit "zugeworfenem" UIDoc auch der Code im Buhtong beendet wird.
HTH,
Bernhard
-
Immernoch die selbe Fehlermeldung bei diesem Quellcode...
Sub Click(Source As Button)
Dim uiwork As New NotesUiWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = uiwork.Currentdocument
Set doc = uidoc.Document
Call uidoc.Close(True)
Call doc.Remove (True)
Call uiwork.ViewRefresh
End Sub
Bitte helft mir....
-
guckst du:
http://www.eknori.de/cms/tipps/detail.php?nr=85&kategorie=tipps
-
Ulrich, das soll aber aus einem geöffneten Dokument per Button heraus erfolgen ...
Tom: Ich hoffe, ich finde heuet Abend 'nen freien Moment, um mir das mal genauer anzuschauen. Sorry für meine "wenig werthaltigen" Tips ...
Bernhard
-
die Lösung dürfte dann so etwas wie das hier sein
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/9a57fb7ad1a4c7b18525692e00815a0b?OpenDocument (http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/9a57fb7ad1a4c7b18525692e00815a0b?OpenDocument)
In deinem "Löschen" Knopf müsstest du dann ein Feld im betreffenden Document setzen und das Doc schließen. Dann vor der Ausführung des o.a. Code das Feld abgefragt. Wenn gesetzt wir der Code ausgeführt, wenn nicht, dann nicht.
Solange das UIDoc instantiiert ist, hast du keine Chance, das Doc zu löschen.
dazu
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/ee1148542057a36b85256b1b004e319e?OpenDocument (http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/ee1148542057a36b85256b1b004e319e?OpenDocument)
-
Also erst mal danke für eure Bemühungen.
Weils wahrscheinlich jeder gut gebrauchen kann. Fasse ichs nochmal zusammen in einem Beispiel ums den anderen leichter zu machen....
Im der Maske muss es ein Feld "flgDelete" mit dem Vorgabewert "0" geben.
Im Button ist folgende Funktion hinterlegt:
Sub Click(Source As Button)
Dim uiwork As New NotesUiWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = uiwork.Currentdocument
uidoc.EditMode = True
Call uidoc.Fieldsettext("flgDelete", "1")
Call uidoc.Save
Call uidoc.Close(True)
End Sub
Im Queryclose der Maske muss das Feld überprüft werden und das Dokument gelöscht werden:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
If source.FieldContains("Dozent_Delete","1") Then
noteid$ = source.document.NoteID
Delete source
Dim S As New notessession
Dim db As notesdatabase
Set db = s. currentdatabase
Dim doc As Notesdocument
Set doc = db.GetDocumentbyID(noteid$)
Call doc.Remove(True)
End If
End Sub