Vorheriges Thema: So wird ein Kombinationsfeld auf Basis eines Berichtsdatenobjektes vorausgefüllt

Nächstes Thema: So verwenden Sie JavaScript-Ausdrücke in Feldern:


So verwenden Sie Anwendereingaben für das Vorausfüllen eines Auswahlkästchens:

Sie können vom Anwender in ein oder mehrere Formularfelder eingegebenen Inhalt verwenden, um die Werte in einem Auswahlfeld zu bestimmen. Diese Technik ist nützlich, wenn Sie dem Anwender zwei Sätze mit mehreren gültigen Optionen aus Ihrer Datenquelle zur Verfügung stellen und damit eine individuelle Auswahl unterbinden möchten. Diese Option trägt also dazu bei, die Gültigkeit und Vereinheitlichung der vom Anwender getroffenen Auswahl durchzusetzen, wobei der Anwender in der Regel trotzdem die Möglichkeit hat, aus mehreren Optionen auszuwählen.

Eine gängige Anwendung für diese Technik finden Sie in Formularen, die Auswahlfelder sowohl für "Land" als auch für "Bundesland" enthalten. Mit den Attributen "reportobjid" und "reportobjvars" können Sie das Auswahlfeld "Bundesland" so konfigurieren, dass es nur die Bundesländer des vom Anwender ausgewählten Landes anzeigt.

Um diese Technik zu verwenden, d. h, ein Auswahlfeld anhand der vom Anwender in einem früheren Auswahlfeld vorgenommenen Auswahl vorauszufüllen, gehen Sie wie folgt vor. Dieser Prozess legt ein Bundesland-Land-Szenario als Beispiel zugrunde.

  1. Erstellen Sie im Berichts-Generator ein Datenobjekt, das die Datenquelle (z. B. die MDB) nach den gewünschten Daten für das erste Auswahlfeld abfragt. Die Abfrage muss eine Liste aller möglichen Werte zurückgeben und das Kombinationsfeld mit dieser Liste ausfüllen. Dieser Schritt ist Bestandteil des Prozesses für das Vorbelegen eines Kombinationsfeldes auf der Basis eines Berichtsdatenobjekts.

    Erstellen Sie in unserem Beispiel ein Berichtsdatenobjekt, um die Liste mit Ländern aus der Datenbank abzurufen.

    Wenn das Formular angezeigt wird, wird das Datenobjekt ausgeführt und das Kombinationsfeld wird mit den Ergebnisdaten ausgefüllt.

    Zeichnen Sie die ID des Datenobjektes für spätere Verweise auf.

    Betrachten Sie das folgende Abfragebeispiel für ein Datenobjekt und die MDB. Dieses Beispiel gibt eine Liste der Länder zurück, die für den Service oder die Serviceoption, mit der das Formular verknüpft ist, verfügbar sind.

    SELECT country_id,country_name from my_country_table
    

    Diese Abfrage erreicht Folgendes:

  2. Fügen Sie auf dem Formular das erste Auswahlfeld ein. Es gehört zu den Elementen eines Formulars.
    1. Geben Sie für das Attribut _id einen aussagekräftigen Wert an und speichern Sie das Formular. Zeichnen Sie den Wert auf, um später, bei der Festlegung des Attributes "reportobjvars", darauf zu verweisen.
    2. Legen Sie als Wert für das HTML-Attribut "reportobjid" die ID des Datenobjektes fest und speichern Sie das Formular.

    Hinweis: Wenn Sie ein Kombinationsfeld mithilfe eines Datenobjektes ausfüllen, fügen Sie dem Auswahlfeld keine Optionen hinzu, weil diese ignoriert (nicht verwendet) werden, wenn der Anwender das Formular öffnet. Jegliche Optionen für das Auswahlfeld werden ignoriert, nur das Datenobjekt "zählt".

    1. Setzen Sie das Attribut "multiple" des Auswahlkästchens auf "falsch", damit Anwender im Kombinationsfeld nur eine Option auswählen können. Speichern Sie das Formular.
    2. Geben Sie optional für das Attribut "title" (QuickInfo) einen Anweisungstext an, z. B. "Klicken Sie auf den Pfeil und navigieren Sie, um ein Land auszuwählen". Speichern Sie das Formular.
    3. Ändern Sie bei Bedarf den Standardanzeigetext der Auswahlgruppe von "Auswählen" in eine aussagekräftigere Bezeichnung, indem Sie das Element in der Komponentenstruktur auswählen und auf das Umbenennen-Symbol am Anfang der Struktur klicken.

      Hinweis: Sie können den Text dieser QuickInfo oder den Namen des Auswahlkästchens wahlweise lokalisieren, wenn dieses Formular von Anwendern aus verschiedenen Gebieten verwendet wird.

    4. Lassen Sie das Attribut "value" leer. Dieser Wert wird mit dem ersten Ergebnis, das die Abfrage zurückgibt, ausgefüllt.
  3. Erstellen Sie ein zweites Berichtsdatenobjekt, um anhand der Anwendereingaben in das erste Auswahlfeld eine Liste mit Werten aus der Datenbank abzurufen. Geben Sie bei diesem Berichtsdatenobjekt einige Berichtsvariablen in die Abfrage ein, die anhand der Eingaben des Anwenders in andere Formularfelder ausgefüllt werden.

    Erstellen Sie in unserem Beispiel ein zweites Berichtsdatenobjekt, um anhand der Länderauswahl des Anwenders die Bundesländer abzurufen. Befolgen Sie zur Erstellung des zweiten Berichtsdatenobjektes die Richtlinien in Schritt 1.

  4. Fügen Sie das zweite Auswahlfeld auf dem Formular ein. Dieses Kästchen wird anhand der Anwenderauswahl für das erste Auswahlfeld vorausgefüllt. Befolgen Sie zur Erstellung des zweiten Auswahlkästchens die Richtlinien in Schritt 2. Berücksichtigen Sie dabei jedoch Folgendes:
  5. Geben Sie im zweiten Auswahlfeld das Attribut "reportobjvars" in folgendem Format an: $({'reportvar':value}).

    Ein gültiger Wert kann Folgendes sein:

    Erstellen Sie in unserem Beispiel ein zweites Auswahlfeld, das anhand der Länderauswahl des Anwenders mit den Bundesländern vorausgefüllt wird. Geben Sie für das Attribut "reportobjvars" des Auswahlkästchens für das Bundesland die vordefinierte JavaScript-Funktion "ca_fdGetSelectedOptionValues" wie folgt an:

    $({'selected_country':ca_fdGetSelectedOptionValues ('<form _id> ','country' )[0]})
    
    form _id

    Gibt den Wert des Attributes _id des Formulars an, das das erste Auswahlfeld enthält. Auf dieses Formular wird in Schritt 2 verwiesen.

    country

    Gibt den Wert des Attributes _id des ersten Auswahlkästchens an. Dieser Wert wird in Schritt 2 erstellt und aufgezeichnet.

  6. Stellen Sie das Attribut "onchange" im ersten Auswahlfeld so ein, dass die Daten für das zweite Auswahlfeld abgerufen werden, sobald der Anwender im ersten Auswahlfeld seine Auswahl trifft. Geben Sie für das Attribut "onchange" die vordefinierte JavaScript-Funktion "ca_fdFetchSelectData" in folgendem Format ein:
    ca_fdFetchSelectData('<form _id>','<field _id>'); 
    
    form _id

    Gibt den Wert des Attributes _id des Formulars an, das das zweite Auswahlfeld enthält. Auf dieses Formular wird in Schritt 4 verwiesen.

    field_id

    Gibt den Wert des Attributes _id des Formulars an, das das zweite Auswahlfeld enthält. Dieser Wert wird in Schritt 4 erstellt und aufgezeichnet.

    Stellen Sie das Attribut "onchange" für das Länderauswahlkästchen in unserem Beispiel auf:

    ca_fdFetchSelectData('<form _id>','<state field _id>'); 
    
  7. Testen Sie das Formular, ob es nach Ihren Vorgaben funktioniert.

Wir empfehlen Ihnen, dieses Formular mit einem Service in einer Testumgebung zu testen, ehe Sie es in einer Produktionsumgebung verwenden.