[GELÖST]Layout wird nicht komplett angedruckt - Daten fehlen

18. Dezember 2015 11:15

Hallo zusammen,

bestimmt ist das ne blöde Frage aber ich habe im DataSet zwei Tabellen eingefügt, deren Felder ich auf einem simplen Layout (Bericht) ausgeben möchte. Jedoch werden mir die Daten aus der zweiten Tabelle einfach nicht angezeigt. Auf folgendem Pic seht ihr die Tabellen.
Pic1.png


Irgendwas mach ich da doch falsch. Könnte ich per Code denn auf die Felder zugreifen aus einer anderen Tabelle damit ich diese nicht im DataSet einfügen muss? Ich will keine Liste ausgeben, sondern einfach nur auf ein paar Felder verschiedener Tabellen zugreifen.

Vielen Dank für eure Hilfe!

Gruß

Daniel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von NavBeginner am 29. Januar 2016 13:02, insgesamt 1-mal geändert.

Re: Layout wird nicht komplett angedruckt - Daten fehlen

18. Dezember 2015 11:19

Hallo Daniel,

werden die Daten denn an den Bericht übergeben?

Gruß Fiddi

Re: Layout wird nicht komplett angedruckt - Daten fehlen

18. Dezember 2015 11:26

Hey fiddi,

woran konnte ich das nochmal sehen?
Ah habs gefunden, ja da werden die Daten mit übergeben.

Hab mal die Zuordnung im Bild gemacht.
Pic2.png


Und hier die Werte, aber glaub da stimmt was nicht.
Pic3.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Layout wird nicht komplett angedruckt - Daten fehlen

18. Dezember 2015 11:43

Hallo,

aus deiner hochgeladenen Liste kann ich leider nicht erkennen, das die Verkaufsköpfe übergeben werden, da sind nur die "Construction Header" zu sehen.

Gruß Fiddi

Re: Layout wird nicht komplett angedruckt - Daten fehlen

18. Dezember 2015 12:05

Aber "Shipname", "Shipdate" usw. werden doch in der Liste übergeben.

Re: Layout wird nicht komplett angedruckt - Daten fehlen

18. Dezember 2015 12:57

bist du sicher, das Shipmentdate aus dem ConstructionHeader und Shipmentdate aus dem SalesHeader fast zwei Jahre auseinander liegen?

Gehören die ConstructionHeader Daten wirklich alle zu dem einen Auftrag?

Eigentlich müssten die Salesheader- Datensätze unter den ConstructionHeader Daten stehen, und der ConstructionHeader-Teil sollte leer oder zumindest immer gleich sein.

Gruß Fiddi

Re: Layout wird nicht komplett angedruckt - Daten fehlen

21. Dezember 2015 17:42

"Construction Header" und "Sales Header" sind im DataSet offenbar auf gleicher Ebene. Ist das beabsichtigt? Oder müsste nicht eine von beiden Tabellen eingerückt sein? Mit entsprechendem Filter von der einen auf die andere Tabelle?

Re: Layout wird nicht komplett angedruckt - Daten fehlen

22. Dezember 2015 16:31

Soweit ich das sehen kann, müsste das komplette "Sales Header" DataItem eingerückt werden und die Belegnr. mit der Belegnr. (Document No.) des Construction Header entsprechend über das Property "DataItemLink" verlinkt werden. Um eine Verlinkung beider DataItems "sauberer" zu machen, sollte, sofern in der Tabelle "Construction Header" vorhanden, noch die Belegart des "Constrution Header" mit der Belegart des "Sales Header" zusätzlich verlinkt werden. Sollte das Feld "Belegart" nicht im Construction Header vorhanden sein, so würde ich empfehlen dieses noch hinzuzufügen, da es wenn auch unwahrscheinlich sein kann, dass beispielsweise ein Auftrag und eine Rechnung dieselbe Belegnr. haben und dies kann dann zu fehlerhaften Daten des Ausdruckes führen, bzw. auch evtl. bei anderen Funktionen.

Im Layout sollten dann in den Detailzeilen oder in der entsprechenden Gruppe des Tablix/List Controls alle erwarteten "Sales Header" Einträge erscheinen. Sofern dies nicht der Fall sein sollte, müsste man die Gruppierung oder den Code überprüfen, ob die Ausgabe an anderer Stelle noch unterbunden wird (z.B. durch CurrReport.SKIP).

Re: Layout wird nicht komplett angedruckt - Daten fehlen

7. Januar 2016 11:06

Hallo nochmal,

ich habe mich jetzt noch ein wenig mehr eingelesen bezüglich dem Holen der Daten aus anderen Tabellen. Aber es läuft noch nicht so wie geplant.
Hier nochmal zum besseren Verständnis meine Problemstellung.
Ich möchte im Konstruktionsauftrag ("Construction Header") einen Report drucken lassen, auf dem Daten aus dem Konstruktionsauftrag und aus dem Verkaufsauftrag ("Sales Header") ausgegeben werden.

Die Daten aus dem "Construction Header" bekomme ich wunderbar auf dem Report angezeigt.

Hier mein DataSet:
Bild1.png


Probleme habe ich immernoch mit der GET-Funktion, um die Daten aus dem "Sales Header" anzusteuern (ich weiß was Sie macht aber irgendwas fehlt in der Syntax).
Mit folgendem Code habe ich gestartet:
Code:
CONSTRUCTION HEADER - ONAFTERGETRECORD()

FANr := "Construction Header"."Document No.";
FAType := Format("Construction Header"."Document Type");

IF SalesHeader.GET("Construction Header"."Document Type", "Construction Header"."Document No.") THEN
  MESSAGE('Auftrag gefunden! ' + FAType + FANr)
ELSE
  ERROR('Auftrag nicht gefunden! '+ FAType + FANr);


Die GET-Funktion brauche ich doch um mir die Daten aus der "Sales Header" zu holen, richtig?
Das der Primärschlüssel auf "Document Type" und "Document No." ist auch korrekt, oder? Könnte es auch nur "No." sein?
Die Variablen "FANr" und "FAType" habe ich nur zur Kontrolle eingebunden.
Ich bekomme halt immer die Meldung "Auftrag nicht gefunden!"!

Wo liegt mein Fehler?

Danke euch und Gruß

Daniel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Layout wird nicht komplett angedruckt - Daten fehlen

7. Januar 2016 12:45

Hallo Daniel,

leider kenne ich die Tabelle "Construction Header" nicht. Deshalb weiß ich nicht, welche "Document Type"-Optionen
diese Tabelle hat. Ich vermute, dass "Document Type" NICHT "Order" ist, sondern irgendwie anders heißt.

Wenn der "Document Type" nicht gleich ist, tut das GET natürlich nicht. Stattdessen kann man ja sagen ..

Code:
IF SalesHeader.GET(SalesHeader."Document Type"::Order, "Construction Header"."Document No.") THEN


wenn man von Aufträgen redet.

Andi

Re: Layout wird nicht komplett angedruckt - Daten fehlen

7. Januar 2016 13:25

Danke für die schnelle Antwort!

Glaube habe den Fehler entdeckt. Man sollte natürlich auch auf einen Auftrag zugreifen der noch aktiv ist und der sich nicht im Auftrags-Archiv befindet.

Mit folgendem Code habe ich eine positive Rückmeldung das der Auftrag gefunden wurde.

Code:

IF SalesHeader.GET(SalesHeader."Document Type"::Order, "Construction Header"."Document No.") THEN
  MESSAGE('Auftrag ' + "Construction Header"."Document No." + ' in "SalesHeader-Tabelle" gefunden.')
ELSE
  MESSAGE('Auftrag ' + "Construction Header"."Document No." + ' wurde in "SalesHeader-Tabelle" nicht mehr gefunden. Dieser wurde wahrscheinlich schon archiviert.');


Jetzt mal schauen ob der Rest klappt. Was sich für mich noch etwas schwierig herausstellt ist, wie ich nun einen Wert (Liefername) aus der "SalesHeader" in eine Variable packe um diese dann im Report anzeigen zu lassen. Jemand nen kleinen Hinweis?

Re: Layout wird nicht komplett angedruckt - Daten fehlen

8. Januar 2016 10:46

Leider komme ich wieder nicht weiter.

Ich kann mit:
Code:
  IF SalesLine.GET(SalesLine."Document Type"::Order,"Construction Header"."Document No.","Construction Header"."Line No.") THEN BEGIN

    TRD_Kommission := SalesLine."Kommision Description";
    TRD_Lieferant  := SalesLine."Shipping Agent Code";
    MESSAGE('Zeile ' + Format("Construction Header"."Line No.") + ' gefunden.' + TRD_Kommission + TRD_Lieferant);
    MESSAGE('Deckblatt wurde zum Drucker gesendet.');
  END
  ELSE
    MESSAGE('Zeile nicht gefunden.')
  END

auf die richtige Zeile zugreifen. Bekomme aber in die Variablen "TRD_Kommission" und "TRD_Lieferant" keine Werte zurückgegeben.
Was fehlt mir denn dazu?

Danke und Gruß
Daniel