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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Ansteuerung des Berichtscontainer-Objekts<br />

62<br />

<br />

(LlDefineField,<br />

LlDefineFieldExt,<br />

LlDefineFieldExtHandle,<br />

LlPrintIsFieldUsed)<br />

<br />

(LlPrintFields)<br />

<br />

(LlPrint,<br />

Rückgabewert = LlPrintFields)<br />

<br />

{<br />

<br />

(LlPrintDbGetCurrentTable)<br />

<br />

(LlPrintDbGetCurrentTableRelation)<br />

<br />

(LlPrintDbGetCurrentTableSortOrder)<br />

<br />

<br />

}<br />

<br />

}<br />

<br />

<br />

(Rückgabewert = LlPrintFieldsEnd)<br />

<br />

(Rückgabewert = LlPrintFieldsEnd)<br />

<br />

}<br />

Damit können nun auch beliebige Abfolgen von Untertabellen ausgegeben werden. Die<br />

Rekursion stellt hierbei sicher, dass dies beliebig "tief" funktioniert, d.h. der Code kann in<br />

dieser Form auch mehrstufige Relationen korrekt ansteuern.<br />

4.3.3. Die rekursive Druckschleife<br />

Für eine vollständige Druckschleife, die sowohl Folgetabellen als auch Untertabellen<br />

korrekt unterstützt muss nun nichts mehr getan werden – der Code aus den beiden<br />

letzten Abschnitten stellt sicher, dass der komplette Baum der Tabellenstruktur durchlaufen<br />

wird.<br />

Insofern bleibt nur noch Feinarbeit zu leisten – z.B. die Anzeige eines Fortschrittsbalkens.<br />

Da das Layout beliebig komplex werden kann, kann nicht mehr einfach die aktuelle<br />

Position innerhalb der Datenquelle zur Gesamtzahl der Datensätze in Verhältnis gesetzt<br />

werden. Dieser Ansatz funktioniert schon dann nicht mehr korrekt, wenn der Benutzer<br />

zwei Tabellen hintereinander im Designer platziert. Daher bietet <strong>List</strong> & <strong>Label</strong> über die<br />

Funktion LlPrintDbGetRootTableCount() die Möglichkeit, die Anzahl der Tabellen auf der

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!