Formel in einem berechneten Abschnitt greift erst beim 2. Öffnen des Dokuments :o(

  • Hallo zusammen,


    ich habe in einer Maske einen berechneten Abschnitt mit der Formel


    @If(Status="Neu";"[Rolle1]":"[ Rolle2]":"[ Rolle3]";"Nobody")


    Dieser Abschnitt beinhaltet bearbeitbare Felder.


    Nachdem sich der Wert im Feld Status von "Neu" in irgendeinen anderen Wert ändert, dürfen die Felder im Abschnitt nicht mehr bearbeitet werden.


    Ich habe das Phänomen, dass die o.g. Formel beim ersten Öffnen des Dokuments – nachdem es mit einem neuen Status gespeichert und geschlossen wurde – nicht greift.
    Erst beim 2. Öffnen sind die Felder für die Bearbeitung gesperrt.
    Oder wenn man vor dem Öffnen das Doc in der Ansicht mit @Command([ToolsRefreshSelectedDocs]) aktualisiert hat.


    Warum ist es so?
    Wie kann man erreichen, dass die Formel schon beim 1. Öffnen das tut was sie soll?


    Für eure Antworten – im Voraus vielen Dank.


    Gruß aus Mainz


    Laura

    • Offizieller Beitrag

    Befindet sich das Feld Status vor, in oder nach dem Abschnitt?


    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

  • Hi,


    Wertänderung im Feld Status über Schaltfläche, darin
    result = Msgbox("Nach der Statusänderung können keine Änderungen mehr an den Daten vorgenommen werden. ", 52, "Sind Sie sicher?")
    If result = 6 Then
    ...setze neuen Wert in Feld Status...
    Set doc = uidoc.Document
    Call uidoc.Refresh
    Call uidoc.Save
    unid$ = doc.UniversalID
    Call uidoc.Close(True)
    Set uidoc = Nothing
    Set doc = Nothing
    Set doc2 = db.GetDocumentByUNID(unid$)
    Call workspace.EditDocument(True, doc2)
    End If


    Nachtrag:
    Weiß nicht, ob das Refresh ausreicht, ich setze das berechnete Feld für den Teilmaskenabschnitt direkt mit


    Call uidoc.FieldSetText("UserControlStandard", "[Admin];[SERVER];")


    um den User auszusperren. Funzt bei mir so seit 2006 mit über 4K Docs.

  • Danke Sloe,


    ich werde nächste Woche weiter experimentieren und melde mich dann mit den Ergebnissen.


    ...Refresh, Reload und Save haben bis jetzt nichts gebracht.


    ...die Idee mit dem Doc schließen und wieder öffnen hatte ich auch schon, war mir aber zu umständlich...


    Lieber Gruß aus Mainz nach Berlin :o)


    Laura

  • Welchen Typ hat denn die Zugriffsformel (Berechnet oder Berechnet zur Anzeige)?
    Habe schon mehrfach beobachtet, das es vorkommt, das bei einer Änderung das Doc zweimal refresht werden muss damit die Formel zieht, wenn die Zugriffsformel auf "Berechnet" steht. Am zuverlässigsten arbeitet bei mir der Typ "Berechnet zur Anzeige"


    PS: Glückwunsch zum 100.sten Posting! :)