"Speichern ?" -Abfrage unterdrücken...

  • Das Feld $SaveOptions auf 1 setzen

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • hast natürlich recht [Blockierte Grafik: http://www.zr750.de/logos/smilys/au_mann.gif]
    noch ein Tag, der nicht meiner ist

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Du kannst

    Code
    doc.SaveOptions = "0"
    Call doc.Save(False, True)
    Call uidoc.Close


    schreiben. Die Form wird dann um dieses eine Feld ergänzt. SaveOptions ist ein reserviertes Feld, ähnlich zu MailOptions oder Sign. Da man das Feld allerdings nirgendwo sieht (außer in den Dokumenteneigenschaften), macht das nichts weiter.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • damit ich mit doc.---- arbeiten kann muss das dokument schon mal abgespeichert worden sein oder ?


    ich überprüfe die eingaben bei einem neuen dokument. wenn es ein dokument mit dem z.b. gleichen namen gibt (Entering-Event des Namens-Feldes), soll da msgbox erscheinen " bla bla" und dann schliessen ohne abzuspeichern/sprich dokument verwerfen!


    P.S.: Dokumente löschen darf ich auch nicht :-?

  • Häng doch ein Feld mit diesem Namen und der "0" ein, dann brauchst Du es vorher nicht speichern...


    Gruß


    Norbert

  • Wenn man situativ automatisch ein Feld SAVEOPTIONS einbaut und mit dem Wert "0" versieht, dann muß man beim Wiederöffnen des Dokuments dieses Feld als erstes löschen. Ich hatte das einmal für ein paar Wochen in einer Datenbank vergessen. Die Anwender haben Berichte erstellt, sind mit ESC rausgegangen - und weg war alles.


    Das gilt es noch zu bedenken, wenn man damit arbeitet.

  • Noch ne Frage zum SaveOptions Feld.


    Ich habe in meiner Maske ein solches Feld eingebaut und setze es per Script auf "0" um unter bestimmten Bedingungen das Speichern zu verhindern.


    Um das Feld wieder auf 1 zu setzen habe ich zusätzlich im Postopen und Querymodechange der Maske noch den folgenden Code eingebaut:


    Dim eformula As String
    Dim eresult As Variant
    eformula = {!@IsMember("[operating]";@UserRoles)}
    eresult = Evaluate(eformula)
    If Not Source.EditMode Then 'Wenn im Edit-Mode geöffnet werden soll
    If eresult(0) = 1 Then 'und der User nicht berechtigt ist
    Continue = False 'dann öffnen im Edit-Mode unterbinden
    Else 'Wenn er berechtigt ist
    Call Source.FieldSetText("SaveOptions","1") 'Im Edit-Mode öffnen und Speichern auf 1 setzen
    End If
    End If


    Komischerweise ist SaveOptions auch dann auf "1" wenn der User nicht zum Editieren berechtigt ist und das Dokument nur im Read-Mode geöffnet wurde.


    Ist das ein undokumentiertes Feature dass es automatisch wieder auf "1" gesetzt wird ?
    Weiss da jemand was?

  • Schau dir einmal im Debugger eresult(0) an. Wenn mich nicht alles täuscht, wechselt das zwischen 0 und -1 - und nicht zwichen 0 und 1. Und mit -1 landest du verständlicherweise immer im ELSE-Zweig.

  • Das Ergebnis des Evaluate Ausdrucks habe ich vorher geprüft. Es ist entweder 0 oder 1. Nie -1.

    • Offizieller Beitrag

    setze das Feld Saveoptions nach dem uidoc.Close auf "1"

    Code
    doc.SaveOptions = "0"
    Call doc.Save(False, True)
    Call uidoc.Close
    doc.SaveOptions = "1"
    Call doc.Save(False, True)


    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