Hallo,
ich versuche mit List&Label einen Report mit mehreren Tabellen zu erzeugen. Dazu steht in der Hilfe, dass man die einzelnen Tabellen mit LLDBAddTable() anmelden soll, z.B.:
LlDbAddTable(hJob, "Orders", NULL)
Beim zweiten Parameter handelt es sich lt. Anleitung um
'pszTableID: ID der Tabelle'
Meine Tabellen sind aber SQL-Tabellen aus ::Execute2Server(). Das ist eine Methode aus AceServer++.
Egal was ich probiere, ich bekomme im Designer keine Tabelle zur Auswahl angezeigt.
Folgende Werte als Tabellennamen hab ich schon erfolglos ausprobiert:
Objekt: ::oTable
LlDbAddTable(hJob, ::oTable, NULL) -> führt zu Runtime-Fehler
LlDbAddTable(hJob, "::oTable", NULL)
LlDbAddTable(hJob, "self:oTable", NULL)
LlDbAddTable(hJob, "oTable", NULL)
LlDbAddTable(hJob, ::oTable:hTable, NULL)
LlDbAddTable(hJob, VAR2CHAR(::oTable:hTable), NULL)
LlDbAddTable(hJob, ::oTable:hConnect, NULL)
Nutzt vielleicht irgendjemand ausser mir selbst noch die Kombination von AceServer++ und List&Label?
Oder gibt es jemanden, der noch eine Idee hat, welchen Wert man übergeben könnte, damit L&L das als Tabelle akzeptiert?
Danke
Sebastian
L&L 11, Tabellen anmelden mit LLDBAddTable()
Moderator: Moderatoren
- klammerauf
- UDF-Programmierer
- Beiträge: 69
- Registriert: Do, 08. Feb 2007 14:16
- Wohnort: Karlsruhe
- Hat sich bedankt: 3 Mal
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Sebastian.
Willkommen im Forum!
Ich beginne gerade erst, mit Kreuztabellen zu arbeiten. LlDbAddTable definiert die ID für die Tabelle, und die Felder aus dieser Tabelle werden im Anschluß - wie gehabt - mit LlDefineFieldExt definiert, wobei die Tabellen-ID mit einem Punkt getrennt vom Feldnamen publiziert wird, also LlDefineFieldExt(hJob,"orders.ordnumber",ord->number,LL_TEXT) oder ähnlich. Wie gesagt, ich arbeite noch nicht damit. Kann also sein, daß ich falsch liege.
Willkommen im Forum!
Ich beginne gerade erst, mit Kreuztabellen zu arbeiten. LlDbAddTable definiert die ID für die Tabelle, und die Felder aus dieser Tabelle werden im Anschluß - wie gehabt - mit LlDefineFieldExt definiert, wobei die Tabellen-ID mit einem Punkt getrennt vom Feldnamen publiziert wird, also LlDefineFieldExt(hJob,"orders.ordnumber",ord->number,LL_TEXT) oder ähnlich. Wie gesagt, ich arbeite noch nicht damit. Kann also sein, daß ich falsch liege.
Herzlich,
Tom
Tom
- klammerauf
- UDF-Programmierer
- Beiträge: 69
- Registriert: Do, 08. Feb 2007 14:16
- Wohnort: Karlsruhe
- Hat sich bedankt: 3 Mal
Unterschied beim Druck von mehreren Tabellen
Hi Tom,
stimmt, bei LLDefineFieldExt kommt das hin. Mir geht es aber darum, L&L ein gültiges 'Datenzugriffsobjekt, z.B. eine Datenbanktabelle, ein Klassenarray o.ä.' (steht so wortwörtlich im Handbuch) zu übergeben. Und mit Tabelle.Feldname geht das nicht, weil beim Zugriff auf Tabellenobjekte der Zugriff über ::Tabelle:Feldname stattfindet.
Es geht mir also wirklich nur darum, was ich als zweiten Parameter bei LlDbAddTable(hJob, "Orders", NULL) angeben muss.
Der Unterschied bei mehreren Tabellen ist übrigens, dass man ja je Tabelle angeben muss, dass da noch zu druckende Records kommen. Und das scheint nicht zu funktionieren, wenn ich nur mit LLPrintFieldExt() und LLPrintFieldsEnd() arbeite. Stattdessen muss ich mit LLPrintDBGetCurrentTable() abfragen, welche Tabelle zu füllen ist. Mit dem Rückgabewert von LLPrintFieldsEnd() prüfe ich dann, ob noch eine weitere Tabelle kommt.
Aber das bleibt alles graue Theorie, solange ich an L&L keine Tabellen sondern nur Felder und Werte übergeben kann.
Sebastian
stimmt, bei LLDefineFieldExt kommt das hin. Mir geht es aber darum, L&L ein gültiges 'Datenzugriffsobjekt, z.B. eine Datenbanktabelle, ein Klassenarray o.ä.' (steht so wortwörtlich im Handbuch) zu übergeben. Und mit Tabelle.Feldname geht das nicht, weil beim Zugriff auf Tabellenobjekte der Zugriff über ::Tabelle:Feldname stattfindet.
Es geht mir also wirklich nur darum, was ich als zweiten Parameter bei LlDbAddTable(hJob, "Orders", NULL) angeben muss.
Der Unterschied bei mehreren Tabellen ist übrigens, dass man ja je Tabelle angeben muss, dass da noch zu druckende Records kommen. Und das scheint nicht zu funktionieren, wenn ich nur mit LLPrintFieldExt() und LLPrintFieldsEnd() arbeite. Stattdessen muss ich mit LLPrintDBGetCurrentTable() abfragen, welche Tabelle zu füllen ist. Mit dem Rückgabewert von LLPrintFieldsEnd() prüfe ich dann, ob noch eine weitere Tabelle kommt.
Aber das bleibt alles graue Theorie, solange ich an L&L keine Tabellen sondern nur Felder und Werte übergeben kann.
Sebastian