Darstelllung von *:1-Beziehungen mit ILLDataProvider

Hallo liebe Helfer,
Ich habe eine Rechnungstabelle mit einer *:1-Relation in die Kundentabelle. Realisiert ist das, wie in der Doku vorgeschlagen, mit Feldern namens “Rechnungen.Kunden.”.
im Variables/Fields Fenster sieht man im Designer unter “Rechnungen” einen Ordner namens “Kunden” und da befinden sich die Felder.
Nun würde ich noch gerne die Info unterkriegen, dass es sich um eine *:1-Relation handelt. Die Doku sagt, die Felddefinition müsste dann so durchgeführt werden: “Rechnungen:Kunden.”.
Das funktioniert aber bei mir nicht. Es taucht dann ein neuer Fields-Ordner namens “Rechnungen:Kunden” in besagtem Fenster auf.
Was mache ich falsch?
Danke und viele Grüße
Michael

Hallo Michael,

ich weiß nicht auf welche Doku du dich beziehst. Generell arbeitet ein DP mit dem LL Tabellenmodell, bestehend aus Tabellen und Relationen. Damit der Kunde als N:1 Relation bei der Rechnung erscheint, macht man / ein DataProvider eigentlich folgendes:

  • Tabellen Rechnung, Kunde registrieren

  • Relation “KundeRechnung” registieren : Table1, Table2, ParentField(s), ChildField(s) → “Kunde”, “Rechnung”, “Id”, “KundeId” je nach dem, wie die Felder in deiner Datenstruktur definiert sind und wie der entsprechende Data Provider arbeitet. List&Label greift dann eigentlich nur auf Listen vom “Tables” und “Relations” zu, die eine DataProvider liefert.

Vermutlich versuchst du gerade einen eigenen Data Provider zu schreiben. Das ist keineswegs trivial.

Schaue doch erstmal nach, ob es für deinen Anwendungsfall nicht den passenden bereits gibt. Wenn du nicht mit einer besonders exotischen Technologie arbeitest, sollte deiner eigentlich dabei sein und du bist fertig.

(siehe combit.ListLabel30.chm → combit.Reporting.DataProviders Namespace)

Viele Grüße,
Thomas

1 Like

Hi Michael, der Thomas hat es ja schon Top erklärt, falls du mit seiner Info nicht weiter kommst, oder es einen passenden DP für dich gibt, dann spendier mal mehr Infos und dann wird dir sicher geholfen :wink: hau rein und schönes WE

Hallo Thomas und Erdal,
habt Dank für Eure Posts, aber ich bin noch keinen Schritt weiter. Ich weiß aus Erfahrung, dass die Erstellung eines ILLDataProvider nicht trivial ist. Meine (Xbase+±dbf-Tabellen und Indizes, Xbase+±Arrays) funktionieren auch schon wunderbar und jetzt geht es darum, die Ecken und Kanten rund zu kriegen.
Ich setze nochmal an.
Beispiel Relation Kunden-Rechnungen 1:n.
Es ist für meinen Rechnungs-Report irrelevant, dass ich von einem Kunden ausgehend alle seinen Rechnungen ablaufen könnte. Also sehe ich (noch) keinen Grund, diese Relation dem L&L bekanntzugeben. Bringt ja nix, weil ihr ja in der Doku schreibt, dass ich mich um :1-Beziehungen selber kümmern muss. Das tue ich ja auch und LlDefineField()e in der Rechnungen-Tabelle die Kunden-Felder mit dem Prefix “Rechnungen.Kunden.”.
Jetzt wär’s halt schön, wenn man auch sähe, dass “Kunden” eine über Relation angebundene Datenbank ist und nicht nur eine Feldstrukturierung innerhalb von Rechnungen.
Viele Grüße
Michael

Dafür musst du eigentlich nur eine andere Syntax für die Feldnamen verwenden, das ist hier dokumentiert:

https://docu.combit.net/progref/de/index.html#!Documents/11relationmitschlsselfeldangabe.htm

Das machen unsere Provider genau so. Dann werden die Felder mit einem 1:1 Logo angezeigt.

Habe ich versucht. Geht nicht. Deswegen bin ich ja hier und weine.

Situation Rechnungen - 1:n - Positionen - n:1 - Artikel

Die Artikelfelder hätte ich gerne mit dem 1:1 Symbol bei den Positionen dargestellt.

Ich melde die Artikel-Felder mit dem Namensprefix “Positionen:Artikel.” an den L&L, z.B. “Positionen:Artikel.artkbz”.

Dann passiert dies im Variables / Fields Fenster:

Bei den Tabellen taucht neben “Rechnungen” und “Positionen” eine weitere Tabelle namens “Positionen:Artikel” auf.

Die n:1-Felder bei der Positionen-Tabelle sind verschwunden.

Bei der Rechnungen-Tabelle gibt es die 1:n-Tabelle Positionen und die hat nun die Artikel-Felder mit dem Prefix “Positionen:Artikel.”.

Ich habe es mit dem Debwin4 überprüft. Kommt alles im L&L an. L&L Version 29.

Muss ich vorneweg noch irgendwas machen?

Ich würde es mal mit Schlüsselfeldangabe probieren. Mittlerweile zeigen wir die Schlüsselfelder auch nur noch an, wenn eine Relation nicht eindeutig ist. Ich kann nicht ausschließen, dass es - ohne Schlüsselfelder - noch ein Problem mit dem Tree gibt, das könnten wir uns dann gerne noch ansehen. Da wäre es dann das Beste, mit einem kleinen Beispiel bei unserem Support vorbeizuschauen.

Hab’s probiert. Geht nicht.
Wie funktioniert “bei unserem Support vorbeischauen”? Reise nach Konstanz? Wäre machbar.

Kann ich empfehlen, hier ist es sehr schön :wink: .

Ich meinte über unser Supportportal. Die Lösung können wir dann gerne hier teilen.