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.
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:
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".
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.
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.
select state_id,state_name from my_state_table where country_id=%selected_country%
Ein gültiger Wert kann Folgendes sein:
Hinweis: Setzen Sie die Zeichenfolge in einfache Anführungszeichen, wie gezeigt. Verwenden Sie innerhalb einer in Anführungszeichen gesetzten Zeichenfolge einen Schrägstrich (\) als Ersatz für ein einfaches Anführungszeichen oder einen Apostroph. Beispiel: $({‘what\’s the status?’})
$({'reportvar':_.user.lastName,’reportvar1’:’abc’,’reportvar2’:12,’reportvar3’:foo()})
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]})
Gibt den Wert des Attributes _id des Formulars an, das das erste Auswahlfeld enthält. Auf dieses Formular wird in Schritt 2 verwiesen.
Gibt den Wert des Attributes _id des ersten Auswahlkästchens an. Dieser Wert wird in Schritt 2 erstellt und aufgezeichnet.
ca_fdFetchSelectData('<form _id>','<field _id>');
Gibt den Wert des Attributes _id des Formulars an, das das zweite Auswahlfeld enthält. Auf dieses Formular wird in Schritt 4 verwiesen.
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>');
Wir empfehlen Ihnen, dieses Formular mit einem Service in einer Testumgebung zu testen, ehe Sie es in einer Produktionsumgebung verwenden.
| Copyright © 2013 CA. Alle Rechte vorbehalten. |
|