29.11.2012 Aufrufe

combit List & Label - Programmierer-Referenz - combit GmbH

combit List & Label - Programmierer-Referenz - combit GmbH

combit List & Label - Programmierer-Referenz - combit GmbH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Datenquelle aufbereiten<br />

Drilldown-Berichte in der Vorschau<br />

Um auch die richtigen Daten für den Drilldown-Bericht zur Verfügung zu stellen, müssen<br />

Sie kleinere Anpassungen an der Bereitstellung Ihrer Daten in der Druckschleife vornehmen.<br />

Relation(en)<br />

Es müssen entsprechende Relationen angemeldet sein. Für Drilldown-Berichte verwenden<br />

Sie dazu die API LlDbAddTableRelationEx. Diese hat zwei zusätzliche Parameter –<br />

pszKeyField und pszParentKeyField. Diese stehen für das Schlüsselfeld der Child-Tabelle<br />

und das Schlüsselfeld der Eltern-Tabelle, damit eine eindeutige Zuordnung der Datensätze<br />

in der Child-Tabelle auf den Datensatz der Eltern-Tabelle erfolgen kann.<br />

Weitere Informationen finden Sie bei der Beschreibung der API LlDbAddTableRelationEx.<br />

Beachten Sie, dass die Schlüsselfelder mit dem Tabellennamen identifiziert werden<br />

müssen; bspw. "Customers.CustomerID".<br />

Beispiel:<br />

Relation zwischen den beiden Tabellen 'Customers' und 'Orders' aus der mitgelieferten<br />

Northwind-Datenbank für Drilldown anmelden.<br />

// add relation<br />

…<br />

Cstring sParentField = pMyDrillDownParameters->_pszSubreportTableID +<br />

_T(".")+pMyDrillDownParameters->_pszKeyField; //Orders.CustomerID<br />

Cstring sChildField = pMyDrillDownParameters->_pszTableID + _T(".") +<br />

pMyDrillDownParameters->_pszSubreportKeyField; //Customers.OrderID<br />

::LlDbAddTableRelationEx(hJob,<br />

pMyDrillDownParameters->_pszSubreportTableID, // "Orders"<br />

pMyDrillDownParameters->_pszTableID, // "Customers"<br />

pMyDrillDownParameters->_pszRelationID, _T(""),<br />

sParentField, sChildField);<br />

…<br />

Datenquelle<br />

Für den jeweiligen Drilldown-Bericht müssen Sie Ihre Datenquelle auf eine andere Art<br />

aufbereiten. Sie fragen dann ja nur noch spezialisierte Daten ab, genau diejenigen, die<br />

mit dem Eltern-Datensatz verknüpft sind, auf den der Anwender geklickt hat.<br />

Beispielsweise möchten Sie eine Drilldown-Struktur "Customers" zu "Orders" erstellen.<br />

Dann sollen Ihnen in der Eltern-Tabelle nur die Daten der "Customers" angezeigt werden.<br />

Beim Klick auf einen bestimmten "Customer" soll nun der Drilldown-Bericht erstellt werden,<br />

der dann die spezialisierten Daten für diesen "Customer" enthält; nämlich seine<br />

"Orders". Und hierfür müssen Sie die Datenquelle für den Drilldown-Bericht entsprechend<br />

anpassen – eben alle "Orders" von einem bestimmten "Customer". Alle notwendigen<br />

Daten für die Filterung der Child-Tabelle sind in der Drilldown-Struktur 'scLlDrill-<br />

DownJob' enthalten.<br />

53

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!