So schränken Sie Ihre SQL-Datenquellen zu Auswertungszwecken ein
Ihre selbst erstellte SQL-Datenquelle liefert im Rahmen Ihrer auf Datenbankebene gewählten Felder und Tabellen ja stets alle dort eingetragenen Informationen. Nun sollen für den Druck des Smart Reports aber vielleicht gar nicht alle Datensätze berücksichtigt werden, sondern ein Benutzer möchte ggf. nur einen Teilbereich der in der Datenquelle angebotenen Datensätze ausgeben bzw. ausdrucken. In solch einem Fall haben Sie die Möglichkeit, die Datenquelle bzw. deren Ausgabe einzuschränken.
Konfiguration der Einschränkungen auf DatenbankebeneEinschränkung der Parameter in der myfactory-AnwendungKonfiguration der Einschränkungen auf Datenbankebene
Eine solche Einschränkung müssen Sie jedoch nicht hartkodiert auf Datenbankebene vornehmen, sondern können diese direkt beim Drucken des Berichts konfigurieren. Dazu ist es nötig, die zweite für Ihre Datenquelle zentrale Datenbanktabelle heranzuziehen: Die
tdSmartReportSQLDataSourceParams.
Hier können Sie beliebige Parameter für Ihre Datenquelle definieren. Diese Parameter werden dem Anwender beim Drucken des Berichts in einem XML-Dialog zum Befüllen angeboten. Eingesetzt werden diese Parameter jedoch nur dann, wenn der Anwender diese Parameter auch tatsächlich mit Werten befüllt. Befüllt er sie nicht mit Werten, dann werden sie auch nicht verwendet. Das heißt, es wird keinerlei Einschränkung vorgenommen. Stattdessen werden alle Informationen aus der Datenquelle ausgegeben (in unserem Beispiel die Verkaufsbelege).
Für die konkrete Umsetzung einer solchen Parametereinschränkung gilt es zunächst, die Tabelle
tdSmartReportSQLDataSourceParams mit entsprechenden Einträgen zu konfigurieren. Zuallererst ist natürlich die Datenquelle anzugeben, auf die Sie sich beziehen und für die Sie Parameter definieren möchten. Diese tragen Sie bitte in die Spalte
"SourceName" (1) ein (hier:
SalesOrders).
In der nächsten Spalte
"ParamName" (2) vergeben Sie dann einen Namen für Ihren einschränkenden Parameter. Wenn Sie - wie in unserem Beispiel - einen Einschränkungsbereich festlegen, dann ist es notwendig, gleich zwei eingrenzende Parameter zu definieren. In unserem Anwendungsszenario soll eine Verkaufsbelegliste beispielhaft auf einen gewissen Zeitraum eingegrenzt werden. Das heißt, Sie benötigen hier beispielsweise einen Von-Parameter
"OrderDateFrom" sowie einen Bis-Parameter
"OrderDateTo". Zu diesem Zweck können Sie die erste der beiden benötigten Zeilen einfach kopieren (mit einem Rechtsklick auf den weißen Bereich vor der Zeile) und dann die zweite Zeile entsprechend anpassen.
In der darauffolgenden Spalte
"CtlType" (3) legen Sie anschließend bitte fest, welche Eingabemöglichkeit dem Anwender für das Befüllen des Parameters zur Verfügung stehen soll. Beispielsweise könnten Sie hier
"CHECK" eingeben, wenn dem Anwender eine Checkbox bereitgestellt werden soll. Mit einem Eintrag wie
"DATACOMBO" hätte er eine Auswahlliste mit Datenbankeinträgen zur Verfügung. Nähere Informationen zu dieser Auswahlliste können Sie dann wiederum in der Spalte
"DataComboDescs" spezifizieren.
In unserem Screenshot-Beispiel bieten Sie dem Anwender ein einfaches Eingabefeld an, indem Sie in der Spalte
"CtlType" das Schlüsselwort
INPUT hinterlegen. Möchten Sie dem Benutzer zusätzlich noch eine Optionsschaltfläche [ ! ] zur Verfügung stellen, dann befüllen Sie bitte zeitgleich noch das Feld
"EntityName“ mit einem beliebigen Namen. In der sich anschließenden Spalte
"CtlDesc" (4) geben Sie dann bitte noch an, wie die Eingabemöglichkeit im XML-Druckdialog beschriftet werden soll. Damit ordnen Sie gleichzeitig auch dem Parameter selbst einen öffentlich einsehbaren Namen zu (hier: "Belegdatum von" und "Belegdatum bis").
Die entscheidende Spalte in dieser Tabelle ist jedoch die Spalte
"AddClause" (5). Damit legen Sie fest, wie die Eingabe eines Benutzers auf Datenbankebene verarbeitet werden soll bzw. auf welchen Datenbankbereich der eingegebene Parameter angewendet werden soll. Sie können mit der Parametereingabe also einen Abgleich auf ein bestimmtes Datenbankfeld in Ihrer Datenquelle durchführen, damit der Anwender sein gewünschtes Filterergebnis beim Druck des Smart Reports erhält.
Dazu muss der Name des dynamischen Platzhalters in der
"AddClause"-Spalte mit der unter
"ParamName" eingetragenen statischen Parameterbezeichnung korrespondieren (hier:
"OrderDateFrom" bzw.
"OrderDateTo"). Ein Platzhalter muss außerdem stets in $-Zeichen eingerahmt sein (also:
$OrderDateFrom$ bzw.
$OrderDateTo$).
Als Bedingung für den Von-Parameter wird dann das Folgende definiert:
"tdSalesOrders.OrderDate > $OrderDateFrom$“ Äquivalent dazu muss dann noch eine Bedingung für den zweiten Bis-Parameter festgelegt werden:
"tdSalesOrders.OrderDate < $OrderDateTo$“ Damit können Sie später im XML-Druckdialog z.B. einen genau datierten Zeitraum für Ihre Belegabfrage eingeben (siehe unten).
An dieser Stelle wichtig zu wissen ist, dass diese Abfrage / dieser Abgleich nur dann ausgeführt wird, wenn der Benutzer die Parameter jeweils auch mit einem bestimmten Belegdatum befüllt. Lässt er die beiden Eingabefelder für die Belegdaten-Parameter leer, dann greift diese
AddClause-Abfrage natürlich auch nicht. Die Ausgabe wird dementsprechend nicht eingeschränkt und der Benutzer erhält alle verfügbaren Datensätze aus der gegebenen Datenquelle.
Einschränkung der Parameter in der myfactory-Anwendung
Sie haben zwei Möglichkeiten, Ihre auf Datenbankebene konfigurierten Parametereinschränkungen in der myfactory-Standardanwendung auszuführen.
Zum einen erhalten Sie im Smart Report-Designer nach Auswahl Ihrer selbst zusammengebauten Datenquelle automatisch einen Einschränkungsdialog mit Ihren in der Datenbank definierten Eingabefeldern.
Damit können Sie bereits auf die Vorschaudaten im Designer selbst Einfluss nehmen.
Sie können diese Ausgabe jedoch auch jederzeit anpassen, indem Sie den eigentlichen XML-Druckdialog über den Berichtestamm mittels der [ Drucken ]-Schaltfläche aufrufen.
Hier haben Sie ebenfalls die Möglichkeit, eine zeitraumbezogene Einschränkung für Ihre auszuwertenden Verkaufsbelege vorzunehmen.
Das Ergebnis Ihrer Datumseingrenzung erhalten Sie mit Klick auf eine weitere [ Drucken ]-Schaltfläche im unteren Bereich des XML-Dialogs.
Zum AnfangDetaillierte Informationen zu diesem Thema: