Autor Thema: Berechnete Felder werden per Skript nicht aktualisiert  (Gelesen 2201 mal)

Offline Jérôme

  • Aktives Mitglied
  • ***
  • Beiträge: 108
  • Geschlecht: Männlich
  • Teigwaren heißen Teigwaren weil sie mal Teig waren
    • jerome-gamez.de
In einer Maske habe ich die folgenden Felder (die Inhalte der Felder habe ich vereinfacht - es werden noch mehr andere Felder eingebunden, das würde das Nachfolgende aber nur aufblähen):

readers_standard
Namensfeld, Versteckt, Bearbeitbar, Mehrfachwerte erlaubt, Vorgabewert: "[Revision]"
readers_document
Namensfeld, Versteckt, Bearbeitbar, Mehrfachwerte erlaubt, Vorgabewert: "*"
DocumentReaders
Leserfeld, Versteckt, Berechnet, Mehrfachwerte erlaubt, Wert: @Unique(readers_standard; readers_document)
DocumentReaders_Display
Namensfeld, Mehrfachwerte erlaubt, Berechnet zur Anzeige, Wert: DocumentReaders

projektleiter
Namensfeld, Bearbeitbar, Mehrfachwerte erlaubt, Vorgabewert: @Username
authors_standard
Namensfeld, Versteckt, Bearbeitbar, Mehrfachwerte erlaubt, Vorgabewert: "[DBAdmin]":"[SuperEditor]"
DocumentAuthors
Autorenfeld, Versteckt, Berechnet, Mehrfachwerte erlaubt, Wert: @Unique(authors_standard : projektleiter)
DocumentAuthors_Display
Namensfeld, Mehrfachwerte erlaubt, Berechnet zur Anzeige, Wert: DocumentAuthors


Folgende Probleme habe ich:

1.
Bei der Anlage eines neuen Dokuments sehe ich im Feld DocumentReaders_Display die richtigen Werte [Revision], *. Im Feld DocumentAuthors_Display jedoch nur Username. Erst nach einem F9-Tastendruck werden auch in diesem Feld die noch fehlenden Werte angezeigt, so dass hier nun steht Username, [DBAdmin], [SuperEditor].

2. Im QuerySave ändere ich den Wert des Felds readers_document (ich füge hier die Werte des Felds DocumentAuthors ein, falls das Dokument für den öffentlichen Zugriff gesperrt werden soll) und führe dann ein Source.Refresh() durch - die neuen Werte werden aber nicht in den sichtbaren Feldern nachgezogen. Auch hier geschieht das erst nach einem F9-Tastendruck.


Ich habe bereits versucht, an verschiedenen Stellen ein Source.Refresh oder Source.Reload einzubinden (QuerySave, PostSave, PostOpen) - leider ohne Erfolg.

Wer weiß die Lösung oder einen Hinweis?

- Jérôme

Lösung (von Tode)
Berechnungen werden strikt von links nach rechts und von oben nach unten durchgeführt, da kann es schon zu so seltsamen Ergebnissen kommen. Wenn ein berechnetes Feld also in der Maske vor den Feldern steht, aus denen es sich berechnet, werden die Inhalte falsch berechnet.
« Letzte Änderung: 24.01.06 - 11:18:25 von Jérôme »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Berechnete Felder werden per Skript nicht aktualisiert
« Antwort #1 am: 24.01.06 - 10:13:28 »
erstmal: super Fragestellung, da kann sich jeder ein Beispiel nehmen. Alle nötigen Informationen sind gegeben, Du hast angegeben, was Du schon alles probiert hast, alles nötige vorhanden. Vorbildlich !

zu Problem 1:
Wie sieht es mit der Reihenfolge der Felder aus: steht DocumentAuthors_Display in der maske UNTERHALB oder RECHTS von den Ursprungsfeldern aus denen es seine Werte bezieht ? Wenn nicht: stell das um. Berechnungen werden strikt von links nach rechts und von oben nach unten durchgeführt, da kann es schon zu so seltsamen Ergebnissen kommen.

zu Problem 2:
hier fehlt noch eine kleine Information: wie fügst Du den Wert ein... denn davon hängt ab, ob ein Refresh oder ein reload oder sogar beide Dich zum richtigen ergebnis bringen...

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Jérôme

  • Aktives Mitglied
  • ***
  • Beiträge: 108
  • Geschlecht: Männlich
  • Teigwaren heißen Teigwaren weil sie mal Teig waren
    • jerome-gamez.de
Re: Berechnete Felder werden per Skript nicht aktualisiert
« Antwort #2 am: 24.01.06 - 11:16:57 »
Danke - ich hatte mir meine bisherigen Anfragen gestellt und mich über mich selbst gewundert und geärgert, wie dumm und ineffizient ich mich manchmal ausgedrückt habe. Um unnötige Rückfragen zu vermeiden, wollte ich es diesmal besser machen. Zum Glück ist die Problemstellung relativ einfach.

zu Problem 1:
Das ist kein Problem mehr - dein Hinweis war genau der richtige - meine versteckten Felder habe ich der Übersichtlichkeit halber unter die eigentliche Maske gesetzt. Nachdem ich sie über die Maske gesetzt habe, wurden die Felder richtig angezeigt. (Zwar habe ich jetzt dadurch ganz andere Probleme, die vorher durch den von dir benannten Umstand nicht aufgetreten waren, aber jetzt weiß ich wenigstens, wo ich einen Anpack habe). Ein viel größeres Problem ist allerdings, dass sich alle meine HideWhen-Formeln, die unten in der sichtbaren Tabelle sind, verschoben haben, so dass gar nichts mehr funktioniert, wie es soll. Tolle Wurst!

zu Problem 2:
Ich gehe davon aus, dass dieses Problem auch daher gerührt hat - ich werde das testen, sobald ich die HideWhen-Formeln wieder korrigiert habe, aber ich denke, dass das Problem dann nicht bestehen wird.

Ich passe meinen Eingangsartikel an, so dass die Lösung des Problems für andere Leser direkt ersichtlich ist.

Danke für den kompetenten Hinweis, Tode!

Beste Grüße
- Jérôme

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz