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.

(LlPrintDbGetCurrentTableSortOrder)<br />

<br />

<br />

}<br />

<br />

<br />

(LlPrintEnd)<br />

<br />

{<br />

<br />

(LlPreviewDisplay)<br />

<br />

(LlPreviewDeleteFiles)<br />

}<br />

Ansteuerung der Druckengine<br />

Wenn Sie die "LLStaticTable"-Tabelle für statische Inhalte angemeldet haben und<br />

LlPrintDbGetCurrentTable() diese Tabelle als aktuelle Tabelle liefert, muss Ihre Druckschleife<br />

darauf mit dem Druck einer einzelnen Datenzeile über LlPrintFields() reagieren.<br />

Im Beispiel oben könnten Sie für den Fall von "LLStaticTable" einfach ein DataTable-<br />

Objekt mit nur einem beliebigen Datensatz erzeugen, dann läuft der Druck automatisch<br />

korrekt.<br />

Dieser Code erlaubt bereits die beliebige Abfolge von mehreren Tabellen hintereinander.<br />

Im folgenden Abschnitt wird eine Erweiterung für den Druck von Untertabellen vorgenommen.<br />

4.3.2. Einfache 1:n-Relationen<br />

Das typische Beispiel für diesen Fall ist die bereits angesprochene 1:n-Beziehung Bestellung<br />

– Bestellposten. In diesem Fall werden nach jeder Datenzeile mit Bestell-Daten<br />

n Bestellpositionen ausgegeben. Die Ausgabe einer Zeile erfolgt mit LlPrintFields(). Analog<br />

zum Verhalten von LlPrintFieldsEnd() im letzten Abschnitt erhalten Sie – wenn der<br />

Benutzer eine Untertabelle platziert hat – nun auch hier LL_WRN_TABLECHANGE zurück<br />

und müssen darauf entsprechend reagieren. Sie können die Tabellenbeziehung über<br />

LlPrintDbGetCurrentRelation() und den Namen der Kindtabelle über LlPrintDbGetCurrent-<br />

TableName() erfragen. Mit diesen Informationen können Sie dann wiederum die Hilfsfunktion<br />

DruckeTabelle() aus dem vorigen Abschnitt aufrufen. Dieser Aufruf muss direkt<br />

nach dem LlPrintFields() erfolgen – also aus der Funktion DruckeTabelle() selbst. Die<br />

Funktion muss also dahingehend abgeändert werden, dass sie sich selbst rekursiv aufruft:<br />

Funktion DruckeTabelle(DataTable Datenobjekt)<br />

{<br />

// DataTable ist ein geeignetes Datenzugriffsobjekt, z.B. eine<br />

// Datenbaktabelle, ein Klassenarray o.ä.<br />

<br />

{<br />

61

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!