[gelöst] Daten aus Subtabelle zeihen

8. Januar 2008 16:55

Hallo

Ich habe Problem beim Report Daten aus Subtabelle holen.

Ich habe zwei Tabelle. Den Report habe ich als Basis Tabelle 1 genommen. Jetzt befinden sich Informationen, die sich in der Subtabelle befinden.

Ich will den Ausgabesatz im Report aber auf eine Zeile beschränken und nicht zwei Zeilen machen. Dazu habe ich im Code die Subtabelle als Recordvaribale definiert. Anschließend wollte ich mir über Get-Befehl den Datensatz aus der Subtabelle holen um Felder auszulesen. Das ging schief, weil das Verbindungsfeld der Haupttabelle in der Subtabelle kein primärschlüssel ist.

Gibt es ausser Get noch andere möglichkeit Felder aus der Subtabelle zu lesen?

Viele Grüsse
Zuletzt geändert von dai am 9. Januar 2008 09:31, insgesamt 1-mal geändert.

Re: Daten aus Subtabelle zeihen

8. Januar 2008 17:00

dai hat geschrieben: Das ging schief, weil das Verbindungsfeld der Haupttabelle in der Subtabelle kein primärschlüssel ist.


Heißt das, es gibt zu keinem Haupttabellen-Datensatz einen Untertabellen-Datensatz?

Für mich hört sich das eher so an, als hättest du dein GET unvollständig gepflegt.
Um welche Untertabelle gehts? Wie lautet ihr Schlüssel? Was hast du in der Haupttabelle an Feldern?

Re: Daten aus Subtabelle zeihen

8. Januar 2008 17:01

dai hat geschrieben:Gibt es ausser Get noch andere möglichkeit Felder aus der Subtabelle zu lesen?

Ja, gibt es. Beispielsweise den Befehl FIND.

Code:
Subtabelle.SETFILTER(Verbindungsfeld, Tabelle1.Verbindungsfeld);
IF Subtabelle.FIND('-') THEN
  ...

Gruß, Marc

8. Januar 2008 17:08

Es handelt sich um zwei indivudelle Tabellen von uns.

Nun um Get anzuwenden muss man ja alle Felder der Primärkeys der Untertabelle kennen. Und das Feld in der Haupttabelle über der ich gehen will ist in der Untertabelle nicht als Primärschlüssel definiert.

Also Beispiel

Haupttabelle 1 hat Felder A B C
Untertabelle 2 hat Felder D E F (Primärschlüssl = D)

Feld B und E haben nun den gleichen Wert. Ich will nun Feld F in der Untertabelle auslesen. Um nun Get anzuwenden muss ich ja den Wert des Feldes D wissen. Leider kenne ich über die Haupttabelle nur den Wert des Feldes E.

8. Januar 2008 17:31

So findest du deinen Datensätze (oder auch mehrere):

Code:
Untertabelle2.RESET;
Untertabelle2.SETRANGE(E, Haupttabelle1.B);
IF FIND('-') THEN...

8. Januar 2008 17:32

Hallo Marc

es klappt prima. habe aber nun das nächste problem.

Beispiel

Zu Datensatz 1 der Haupttabelle gibt es ein Datensatz in der Subtabelle. Die Felder in der Subtabelle werden prima ausgelesen.

Der FolgeDatensatz 1 in der Haupttabelle hat aber keine zugehörige Datensatz in der Tabelle. Aber irgndwie werden trotzdem Daten btreffend des Datensatz 1 der Haupttabelle angezeigt. Solange bis wieder ein Datansatz kommt zu der in der Untertabelle ein passendes Datensatz vorhanden ist.

Ich hoffe, das ich mich verständlich ausgedruckt habe. ;-)

8. Januar 2008 17:40

Ist die Variable der Subtabelle als global angelegt?

Wie sieht denn dein Code genau aus?

8. Januar 2008 17:44

Hallo

Habe den Fehler selber gefunden. Habe vergessen die Variablee bei jeden OnAfterGetRecord zu leeren, die ich benutze um das Feldwert der Subtabelle aufzunehmen.

Danke euch für die raschen Antworten