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.

7.3.2. Einfache Print- und Design-Methoden<br />

Arbeiten mit der OCX Komponente<br />

Die Print- und Design-Methoden des OCX-Controls wurden analog zu den korrespondierenden<br />

VCL- und .NET-Controls realisiert. Die Methoden implementieren eine standardisierte<br />

Druckschleife, die für den Großteil der einfacheren Anwendungen direkt verwendbar<br />

ist, wenn Sie die Daten nicht per DataBinding übergeben. Die Daten werden bei<br />

diesem Ansatz innerhalb der Ereignisse CmndDefineVariables und CmndDefineFields an<br />

<strong>List</strong> & <strong>Label</strong> übergeben. Auf diese Weise können beliebige Datenquellen individuell angebunden<br />

werden. Die Ereignisargumente erlauben den Zugriff auf nützliche Informationen<br />

wie die übergebenen Benutzerdaten, den Design-Mode und so weiter. Über die<br />

Eigenschaft pbLastRecord wird der Druckschleife mitgeteilt, dass der letzte Datensatz<br />

erreicht wurde. Solange dies nicht der Fall ist, wird das jeweilige Ereignis wiederholt<br />

aufgerufen, um die Daten abzufragen.<br />

Zusätzliche Optionen lassen sich im Ereignis CmndSetPrintOptions festlegen. Intern<br />

wird dieses Ereignis nach dem Aufruf von LlPrintWithBoxStart aber vor dem eigentlichen<br />

Druck ausgelöst.<br />

Eine sehr einfache Verwendung der Methode Print sieht wie folgt aus:<br />

Private Sub <strong>List</strong><strong>Label</strong>1_CmndDefineVariables(ByVal nUserData As Long, ByVal bDummy As Long,<br />

pnProgressInPerc As Long, pbLastRecord As Long)<br />

Dim i As Integer<br />

For i = 0 To Recordset.Fields.Count - 1<br />

Select Recordset.Fields(i).Type<br />

Case 3, 4, 6, 7: para = LL_NUMERIC: content$ = Recordset.Fields(i)<br />

Case 8: para = LL_DATE_MS: a! = CDate(Recordset.Fields(i)): content$ = a!:<br />

Case 1: para = LL_BOOLEAN: content$ = Recordset.Fields(i)<br />

Case Else: para = LL_TEXT: content$ = Recordset.Fields(i)<br />

End Select<br />

nRet = LL.LlDefineVariableExt(Recordset.Fields(i).Name, content$, para)<br />

Next i<br />

If bDummy = 0 Then<br />

pnProgressInPerc = Form1.Data1.Recordset.PercentPosition<br />

Recordset.MoveNext<br />

End If<br />

End Sub<br />

7.3.2.1. Verwendung des UserData-Parameters<br />

Die Methoden Print und Design erlauben die Übergabe eines Parameters UserData vom<br />

Typ integer. Mithilfe dieses Parameters können Sie in den Ereignis verschiedene Daten<br />

für <strong>List</strong> & <strong>Label</strong> bereitstellen. So wäre es z.B. möglich in den Events anhand des Parameters<br />

sowohl Daten für den Rechnungsdruck als auch für eine Kundenliste bereit zu stellen.<br />

111

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!