Questions & Answers

SOLVED
tonja_pfeiffer
I'm new here

CMS_INPUT_DATE zweites Datumsfeld mit der Eingabe aus dem ersten vorbelegen?

Jump to solution

Hallo Zusammen,

wir haben in mehreren Eingabekomponenten zwei Datumsfelder, wobei das zweite Datum immer nach dem ersten Datum (oder hรถchstens gleich dem ersten Datum) sein darf. Hier ein Formularbeispiel:

<CMS_INPUT_DATE name="st_validfrom" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Valid from" description="Before this date, the paragraph is no longer displayed"/>

          <LANGINFO lang="DE" label="Gรผltig von" description="Vor diesem Datum wird der Absatz nicht mehr angezeigt"/>

        </LANGINFOS>

      </CMS_INPUT_DATE>

      <CMS_INPUT_DATE name="st_validto" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Valid to" description="After this date, the paragraph is no longer displayed"/>

          <LANGINFO lang="DE" label="Gรผltig bis" description="Nach diesem Datum wird der Absatz nicht mehr angezeigt"/>

        </LANGINFOS>

      </CMS_INPUT_DATE>

Die Validierung erfolgt รผber die Rules. Wรคhlt man das erste Datum sehr weit in der Zukunft aus, was viel geklicke mit sich bringt, dann muss man das anschlieรŸend fรผr das zweite Feld noch mal wiederholen.

Ich suche nun den Weg, das zweite Datum mit den im ersten Feld ausgewรคhlten Datum vor zu belegen, damit dort dann nicht mehr so viel geklickt werden muss.

DatumVonBis.PNG

Wir haben versucht, die Vorbelegung รผber die RULES zu erreichen. Auf den ersten Blick scheint das auf zu funktionieren. Beim Speichern wird der Inhalt des zweiten Datumsfeldes dann aber immer wieder mit der "Vorbelegung" รผberschrieben.

Hat jemand vielleicht ein Beispiel fรผr mich, wie man das macht?

Viele GrรผรŸe,

Tonja

0 Kudos
1 Solution

Accepted Solutions

Hallo,

wir hatte eine รคhnliche Anforderung und unsere Regel sieht nun so aus:

<ON_EVENT>
     <IF>
          <AND>
               <NOT>
                    <PROPERTY source="tt_start_date" name="EMPTY"/>
               </NOT>
               <OR>                    
                    <PROPERTY source="tt_end_date" name="EMPTY"/>
                    <LESS_THAN>
                         <PROPERTY source="tt_end_date" name="VALUE"/>
                         <PROPERTY source="tt_start_date" name="VALUE"/>
                    </LESS_THAN>
               </OR>
          </AND>
     </IF>
     <WITH>
          <PROPERTY source="tt_start_date" name="VALUE"/>
     </WITH>
     <DO>
          <PROPERTY source="tt_end_date" name="VALUE"/>
     </DO>
</ON_EVENT>

Sobald das Startdatum gepflegt ist und gleichzeitig das Enddatum leer ist oder vor dem Startdatum liegt, wird das Enddatum auf das Startdatum gesetzt.

View solution in original post

0 Kudos
5 Replies
StefanSchulz
I'm new here

Hi Tonja,

das klingt fรผr mich nicht ganz so einfach. Hier mรผsste man sich grรผndlich รผberlegen, unter welchen Bedingungen das zweite Datumsfeld รผberschrieben werden soll. Vielleicht postest du einfach mal eure aktuell eingesetzen Regeln und schreibst natรผrlichsprachig auf, wann eine รœberschreibung erfolgen soll. Ich befรผrchte mal, dass nicht alle Fรคlle einfach oder รผberhaupt abzudecken sind.

GruรŸ

Stefan

0 Kudos

Hallo Stefan,

das waren unsere Rules:

<ON_EVENT>
    <WITH>
        <ADD value="0">
            <PROPERTY source="st_validfrom" name="VALUE"/>
        </ADD>
    </WITH>
    <DO>
        <PROPERTY source="st_validto" name="VALUE"/>
    </DO>
</ON_EVENT>

Wir wollen das Feld immer รคndern kรถnnen. Es geht lediglich darum, wenn man den Kalender vom zweiten  Feld รถffnet, dass dieser dann schon das Datum aus dem ersten Feld anzeigt.

Bei Beispiel oben habe ich fรผr das erste Datum den 8.11. genommen und musste ein paar mal klicken bis ich im November war. Das zweite Feld mรถchte ich nun auf den 10.11 setzten und es wรคre dann schรถn, wenn sich der Kalender vom zweiten Feld mit dem 8.11. ausgewรคhlt รถffenen wรผrde, damit ich nur noch die zwei Tage weiter klicken muss.

Viele GrรผรŸe,

Tonja

0 Kudos

Ja, diese Regel setzt den Wert natรผrlich jedesmal, wenn ein Event unter Beteiligung von st_validfrom ausgelรถst wird. Hier fehlen Vorbedingungen fรผr die Regel. So wie du es beschreibst, schรคtze ich mal ein "Wenn st_validto leer ist" kรถnnte erstmal hinreichend sein.

Eine Vorbedingung zur Ausfรผhrung der Regel kannst du รผber deren IF-Teil erstellen. Ein Beispiel dazu findest du hier:

http://www.e-spirit.com/odfs50/de/vorlagenentwicklung/regeln/vorbedingungen/vorbedingung.html?commun...

GruรŸ

Stefan

Hallo,

wir hatte eine รคhnliche Anforderung und unsere Regel sieht nun so aus:

<ON_EVENT>
     <IF>
          <AND>
               <NOT>
                    <PROPERTY source="tt_start_date" name="EMPTY"/>
               </NOT>
               <OR>                    
                    <PROPERTY source="tt_end_date" name="EMPTY"/>
                    <LESS_THAN>
                         <PROPERTY source="tt_end_date" name="VALUE"/>
                         <PROPERTY source="tt_start_date" name="VALUE"/>
                    </LESS_THAN>
               </OR>
          </AND>
     </IF>
     <WITH>
          <PROPERTY source="tt_start_date" name="VALUE"/>
     </WITH>
     <DO>
          <PROPERTY source="tt_end_date" name="VALUE"/>
     </DO>
</ON_EVENT>

Sobald das Startdatum gepflegt ist und gleichzeitig das Enddatum leer ist oder vor dem Startdatum liegt, wird das Enddatum auf das Startdatum gesetzt.

0 Kudos

Vielen Dank,

das funktioniert prima und ist genau das was ich gesucht habe.

Viele GrรผรŸe,

Tonja

0 Kudos

Type a product name