Listen-Formular aus Header und Line

8. Februar 2013 16:53

Hallo,

ich habe eine Header Tabelle und eine Line Tabelle und möchte jetzt ein Formular in Listenform anzeigen, das alle Datensätze aus der Line anzeigt mit Feldern aus der Headertabelle.

Also Felder in Header: Code und Name
Felder in Line Code und Telefon1

In Der Liste soll jetzt stehen:
Code Name Telefon
C001 Tom 0145123
C001 Tom 0245321
C002 Max 065412
C003 Tim 0049123

Beim Doppelklick auf die Zeile soll dann im Formular mit Header und Line der entsprechende Datensatz angezeigt werden.

Geht das ohne die Tabellen zu verändern? Könnt ihr mir aus dem Standard ein Beispiel nennen?

Gruß
Ralf

Re: Listen-Formular aus Header und Line

8. Februar 2013 17:13

ralf5 hat geschrieben:Geht das ohne die Tabellen zu verändern?
Ja.

Könnt ihr mir aus dem Standard ein Beispiel nennen?
Nein. Der Standard verwendet nicht ohne Grund hierfür Dokumenten Forms/Pages, wo oben also ein Kopf-Datensatz und unten alle dazu gehörigen Zeilen angezeigt werden.

Die Lösung für deine Liste ist recht simpel: Du erstellst eine Liste auf die Line-Tabelle, Felder Code und Telefon1. Für Name erstellt du entweder ein FlowField (also Headertabellel ändern) oder berechnest in OnAfterGetRecord-Trigger den Namen per C/AL (Kopf holen und auslesen).
Nachteil der letzteren Lösung: Auf das Namefeld kann nicht gesucht oder gefiltert werden. Es kann nur anzeigen.

Re: Listen-Formular aus Header und Line

8. Februar 2013 17:22

Natalie hat geschrieben:Für Name erstellt du entweder ein FlowField (also Headertabellel ändern)


Tschuldige: Wenn ich ihn richtig verstanden habe, möchte er in der Line- Tabelle die Header- Daten sehen. Dann muss er in der Line- Tabelle Lookup- Flowfields auf den Header einfügen.

Gruß, Fiddi

Re: Listen-Formular aus Header und Line

8. Februar 2013 17:30

fiddi hat geschrieben:
Natalie hat geschrieben:Dann muss er in der Line- Tabelle Lookup- Flowfields auf den Header einfügen.

Ja, meinte ich doch :mrgreen:
Nie glaubt mir einer, dass ich tagsüber meine Beiträge nur nebenher schreibe und kaum Zeit dafür investiere ... bitte, dieser Flüchtigkeitsfehler war der Beweis! :roll:

Re: Listen-Formular aus Header und Line

8. Februar 2013 17:32

Nochmal die Frage: Geht das auch ohne die Tabellen zu verändern?

Ich habe im Formular die Line-Tabelle als Basis, und ein neues Feld über die Toolbox eingefügt. Wenn ich diese über TabelRelation mit der
Headertabelle verknüpfe erhalte ich beim kompilieren den Fehler:
Data Controls müssen einen Ausdruck haben.

Re: Listen-Formular aus Header und Line

8. Februar 2013 17:36

ralf5 hat geschrieben:Nochmal die Frage: Geht das auch ohne die Tabellen zu verändern?

Dann nochmal meine Antwort ;-)
Natalie hat geschrieben:oder berechnest in OnAfterGetRecord-Trigger den Namen per C/AL (Kopf holen und auslesen).


Ich habe im Formular die Line-Tabelle als Basis, und ein neues Feld über die Toolbox eingefügt. Wenn ich diese über TabelRelation mit der
Headertabelle verknüpfe erhalte ich beim kompilieren den Fehler:
Data Controls müssen einen Ausdruck haben.

Wenn ich "C/AL im OnAfterGetRecord-Trigger" schreibe, meine ich keine TableRelation setzen.
Dort musst du den Header-Datensatz mit GET holen. Hiefür eine neue globale Recordvariable auf die Header-Tabelle deklarieren.
In dein neues Feld trägst du als SourceExpr ein: "DeinHeaderVariablenname".Name

Re: Listen-Formular aus Header und Line

8. Februar 2013 17:57

OK, habe ich soweit verstanden.

Wenn ich allerdings im Formular mit dem Header und den Lines F5 drücke bekomme ich als Fehler:

Die angegebene Tabelle (Header) unterscheidet sich von der Tabelle, die das Formular verwendet (Line). :-o

Re: Listen-Formular aus Header und Line

8. Februar 2013 19:46

ralf5 hat geschrieben:OK, habe ich soweit verstanden.

Wenn ich allerdings im Formular mit dem Header und den Lines F5 drücke bekomme ich als Fehler:

Die angegebene Tabelle (Header) unterscheidet sich von der Tabelle, die das Formular verwendet (Line). :-o

Ich glaube du hast ein paar Schritte ausgelassen. Wir unterhielten und zunächst nur über diese Listform, die du neu erstellen wolltest. Ist diese nun fertig und funktioniert, oder wie kommst du jetzt auf die Dokumentform ("mit dem Header und den Lines")?

Re: Listen-Formular aus Header und Line

9. Februar 2013 12:38

Hallo Natalie, das Listenform funktioniert soweit.

Dieses Listenform soll als Übersicht aufgerufen werden wenn ich im Formular (card-type) Header und Lines, F5 drücke, um einen Datensatz aufzurufen.
Gruß
Ralf

Re: Listen-Formular aus Header und Line

9. Februar 2013 13:01

ralf5 hat geschrieben:Dieses Listenform soll als Übersicht aufgerufen werden wenn ich im Formular (card-type) Header und Lines, F5 drücke, um einen Datensatz aufzurufen.

Dann ist auch klar, was die Fehlermeldung bedeutet.
Deine Dokumentenform hat als SourceTable die Header-Tabelle. Deine Liste basiert aber auf der Line-Tabelle. Das sieht das Standard-F5 nicht vor. Hier bedarf es einiges an zusätzlichem C/AL-Code:
Die List-Form wird geöffnet. Beim Schließen wird der gewählte Line-Datensatz gelesen. Dann musst auf Basis des Line-Datensatzes den dazu gehörigen Header holen und diesen benutzen, um die aufrufende Dokumenten-Form auf eben diesen neuen Header-Datensatz zu setzen.

Hier gibt es allerdings wirklich etwas, was du dir vom Standard abgucken könntest. Es gibt die Form "Sales Lines" o.ä. (hab grad kein NAV zur Hand). Die basiert also auf allen Dokumentzeilen. Dort gibts einen Button, um sich den dazu gehörigen Beleg (Kopf und Zeilen) anzeigen zu lassen ...