Speichern ohne Rückfrage?

  • Folgender "Versuchsaufbau"


    Eine Maske (Memo aus der Maildatei)
    Ein Dialogfeld
    Ein Button zum Aufruf des Dialogfelds mittels workspace.dialogbox


    Ich rufe die Maske auf, dann mit dem Button das Dialogfeld. Nach dem Schliessen des Dialogfelds werden die Daten ins Hauptdokument übernommen.


    Soweit alles wie gewünscht.


    Nun möchte ich diese Daten speichern ohne den Nutzer mit irgendwelchen Dialogen (nur speichern, senden und speichern...) zu nerven.


    Wie kann ich das erreichen?

    • Offizieller Beitrag

    mach einen NotesUIDoc.Save, dann erzeugst Du ein Feld SaveOptions und dieses setzt Du auf "0" und die MAske wird nicht gespeichert und es wird auch nciht nachgefragt.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • taurec hat auch nix gebracht...


    Aber ich habs geschafft das gewünschte Verhalten zu erreichen ;)


    Hier die Lösung:


    Aufruf Dialogmaske


    Dim ws As New notesuiworkspace
    Dim ui As notesuidocument
    Dim doc As notesdocument
    Set ui=ws.currentdocument
    Set doc=ui.document
    Call ui.close
    Call ws.Dialogbox("dlgMailbearbeitung", True,True, True, True, False,False, "Bearbeiter zuweisen", doc, True, True)

    Die aufrufende Maske (also die Memomaske bzw eine Teilmaske darin) hat ein Feld DokID das die DocumentUniqueID enthält (als Text)


    Das Dialogfenster hat das Feld auch und übernimmt die Daten.


    Im Dialogfenster habe ich OK und Cancel deaktiviert und eigene OK/Cancelbutton.


    Cancel schliesst einfach das Dialogfeld, es wird also nichts übernommen.


    Die OK-Schaltfläche sieht so aus:


    Dim ws As New notesuiworkspace
    Dim item As notesitem
    Dim ui As notesuidocument
    Set ui=ws.currentdocument
    Dim s As New notessession
    Dim db As notesdatabase
    Dim doc As notesdocument
    Set db=s.currentdatabase
    Set doc=db.getdocumentbyUnid(ui.fieldgettext("DokID"))
    Set doc2 = ui.document
    Call doc.replaceitemvalue("Bearbeiterlf","") 'alle Bearbeiter löschen!
    Call doc.removeitem("Bearbeiterlf") '"leeren Bearbeiter entfernen
    Set item=doc2.getfirstitem("Bearbeiterlf") 'neue Bearbeiterliste holen
    Call doc.copyitem(item, "Bearbeiterlf") ' ^^ kopieren
    Call doc.save(True,True)
    Call ui.close


    Nach Klicken auf OK wird das weiterhin offene UI geschlossen, das Backenddokument wird geändert (Bearbeiter werden eingetragen) und das Dialogfenster wird zugemacht.



    Alles ohne SINDSIESICHERDASSIENICHTSPEICHERNWOLLEN-Fragen ;)