Search the FirstSpirit Knowledge Base
Hallo,
da wir mehrere Sichten auf eine Datentabelle haben, gibt es in jeder Tabellenvorlage ein "hidden"-Feld, in welchem ein Status geschrieben wird.
<CMS_INPUT_TEXT name="cs_bflag" hidden="yes" preset="copy" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="BFlag"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
Für dieses Feld habe ich bei der Tabellendefinition einen Wert hinterlegt.
Wenn ein neuer Datensatz angelegt wird, wird der vorbelegte Wert richtig gesetzt.
Nun gibt es eine Möglichkeit, dass in dem Statusfeld bereits ein Wert drin steht. (z.B. "A"). Wenn ich nun in einer Datensicht den Datensatz ändere, wird das "A" nicht überschrieben, obwohl in der Tabellendefinition für dieses Feld ein "B" eingegeben wurde.
Ich bilde mir ein, dass das vor dem Update auf 4.1.51.37961 funktionierte. Hat sich da was geändert?
Das automatische Übernehmen ist zurzeit leider nicht möglich.
Das Erstellen eines FR natürlich schon
Das beschriebene Verhalten hätte ich bei der Verwendung von preset="copy" auch erwartet. Wobei sich preset="default" in Zusammenhang mit Datenquellen wahrscheinlich gleich verhält.
Mit dem Attribut preset kann festgelegt werden, wie Vorgabewerte in einer Eingabekomponente behandelt werden (vgl. dazu auch Kapitel Vorgabewerte). Wird preset="default" gesetzt, wird der im Formular definierte Rückgriffwert verwendet. Nachträgliche Änderungen im Formular an diesem Wert wirken sich auf alle Verwendungen in den vom Redakteur gepflegten Eingabekomponenten aus, solange bis ein manueller Wert in die Eingabekomponente gesetzt wird. Dies ist die Standardeinstellung. Wird preset="copy" gesetzt, wird der durch den Redakteur gewählte Wert "hart" in der Eingabekomponente gespeichert. Nachträgliche Änderungen am Vorgabewert im Formular wirken sich nicht aus.
So aus dem Kopf sind mir keine Änderungen bekannt, aber die Release-Notes dürften da Auskunft geben.
Als Redakteur kann ich das Eingabefeld gar nicht ändern (wegen hidden="yes") somit müsste doch eigentlich der Vorgabewert gezogen und gesetzt werden. (preset="default" funktioniert auch nicht)
also.
Der Datensatz wird neu angelegt in das Hiddenfeld wird ein D geschrieben (Vorgabewert). Nun wird der Datensatz freigegeben. Der datensatz kann nun in einer anderen Sicht neu bearbeitet werden. beim Editieren sollte nun, da es sich um eine andere tabellenvorlage handelt ein anderer Wert in das hiddenfeld eingetragen werden (ich bilde mir das hoffentlich nicht nur ein, dass dies vorher funktionierte)
Mir ist in dem Szenario leider nicht ganz klar geworden, woher der Wert "A" stammt, der im Datensatz gesetzt ist. Vorgabewerte werden im Prinzip nicht automatisch gesetzt, hierzu benötigt es eine Übernahme des Wertes mittels des Vorgabwertübernahmeknopfes. Der im ODFS beschriebene Unterschied ist das Verhalten bei Betätigung des Knopfes: bei "default" wird die Eingabekomponente auf ungesetzt zurückgestellt, so dass beim Auslesen immer der aktuelle Vorgabewert verwendet wird, bei "copy" wird der Vorgabewert als echter Wert mit den Daten gespeichert. (Ausnahmen hiervon sind die Eigenschaften "modified" und "created" bei einem Datumsfeld.)
Wenn also "A" als Wert in den Daten gespeichert ist, bleibt dies auch so.
Wenn Sie das sagen ...
Bei einem HiddenFeld habe ich aber gar keinen Knopf (da war ich davon ausgegangen, dass das übernommen wird )
Hier ein Screen wo das "A" definiert ist
Wenn Sie eine Eingabemaske mit sichtbarer Komponente für dieses Feld haben (oder gegebenenfalls die hidden-Eigenschaft auf "no" setzen), dann könnten Sie für einen betroffenen Datensatz leicht sehen, ob der Wert "A" dort hart gesetzt (also in der DB gespeichert) ist, oder lediglich der Vorgabewert anstelle eines gespeicherten Wertes dargestellt wird (Darstellung mit Rahmen/Titelleiste in der Farbe der Vorlagen-Verwaltung). Der Vorgabewertübernahmeknopf sollte den entsprechenden Tooltip haben.
Hm, ich habe das bisherige Hidden-Textfeld mal zu einem sichtbaren-Feld gemacht. Mir wird der gespeicherte Wert in dem Feld angezeigt und daneben "auf Vorgabewert zurücksetzen".
Irgendwie schon einleuchtend die Funktionsweise (da hab ich mich wohl so stark geirrt ...)
Wäre es möglich, eben bei HiddenFeldern (notfalls über einen Parameter bei der Definiton) den eingegebenen Wert ohne Nutzereinwirkung zu übernehmen (FR)?
Wie gesagt. Ich nutze das hiddenFeld als StatusFeld (ist in Bearbeitung, Löschung, ...)
Übrigens wenn das Feld "null" ist, wird der definierte Wert übernommen, auch nicht ganz konsequent aus meiner Sicht (entweder immer oder gar nicht)
Das automatische Übernehmen ist zurzeit leider nicht möglich.
Das Erstellen eines FR natürlich schon
Wie wäre es mit einem Workaround, indem Sie einfach die Eingabekomponente auf sichbar, aber nicht bearbeitbar setzen?
<CMS_INPUT_TEXT name="text" editable="no" preset="copy" useLanguages="no" label="" length="1"/>
Dann wird der entsprechende Wert gespeichert, kann vom Redakteur nicht beeinflusst werden [und erscheint als häßliches Kästchen, aber es ist halt ein Workaround ]
Hmm, funktioniert bei mir auch nicht.
noch mal zum nachvollziehen:
Warum welcher Wert in der Spalte steht, das würde noch zusätzlich verwirren ... (hängt einfach mit unseren Abläufen zusammen)
eingesetzte Version 4.1.51.37961