Druckreport - Detailband ?

Alles über Formulare, deren Erstellung und deren eventueller Austausch

Moderator: SYNERPY

Antworten
Egon
Beiträge: 58
Registriert: Di Feb 19, 2008 5:58 pm

Druckreport - Detailband ?

Beitrag von Egon »

Hallo an Alle,

ich versuche mich zur Zeit an einem Druckreport, welches folgendes Ausgibt.
Eine Stückliste mit allen eingetragenen Lieferanten und deren Preise mit Datum des letzten Preises.

Also ungefähr so:

Stücklistenpos. Artikelinfos
Lieferant A - Preis xxxx vom xx.xx.xxxx
Lieferant B - Preis xxxx vom xx.xx.xxxx

Wie man das Formular bearbeitet und die SQL Anweisung bearbeitet ist mir so halbwegs klar. Ich krieg auch einen Lieferanten angezeigt !

Wie kriege ich aber eine Liste alle Lieferanten zu einer Stücklistenposition ?
Ich vermute das die Lösung in den Detailbändern liegt. Finde aber keine Lösung.

Danke für die Hilfe.
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Beitrag von festus01 »

Hallo Egon,

es wird nur ein Datensatz von q_rep1 ausgedruckt wenn aus der Maske gedruckt wird.
Sollen mehrere Datensätze ausgedruckt werden, so muss der Ausdruck über die Datenübersicht erfolgen.

Es gibt da zwar andere knifflige Tricks, aber dazu müsste man den Report kennen. :wink:
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Ausgehend von einer der schon vorhandenen Stücklisten in Averp geht das ungefähr wie folgt:

Die Stücklistenpositionen sind auf einem Detailband enthalten. Die zugehörige Query benutzt als MasterLink den Hauptdatensatz. Um jetzt die Lieferanten pro Position zu erhalten, wird zu dem Detailband ein SUBdetailband definiert, dessen Query sich dann per Masterlink Parameter auf den Detaildatensatz bezieht.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Egon
Beiträge: 58
Registriert: Di Feb 19, 2008 5:58 pm

Beitrag von Egon »

Hallo
vielen Dank für die Infos.

Ich bin dran, aber er klemmt schon am Anfang.

Ich bin dabei mir den q_rep4 anzupassen.

Hier der erste Versuch, um überhaupt Daten zu bekommen.

inherited q_rep4: TIB_Query
SQL.Strings = (
'SELECT LIEF.* FROM V_BSAL LIEF')
MasterSource = d_rep3
MasterLinks.Strings = (
'BSAL.BSA_ID_LINKKEY=V_BSA.ID')

end

Mein Problem steckt jetzt im Masterlink.
Woher kommen überhaupt die V_ ?

Ich will jetzt von den einzelnen Stücklistenpositionen die BSA_ID bekommen und im Rep4 abbilden.
Dann hierraus die angelegten Lieferanten aus der Tabellel BSAL über das Feld BSA_ID_LINKKEY und dann über ein paar LEFT OUTER JOINS die restlichen Infos, wie Preis usw. auslesen.

Wäre nett, wenn mir jemand bei der Verknüfung mit dem Masterlink helfen könnte !

Danke.
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo Egon
Woher kommen überhaupt die V_ ?
:?: Wenn Deine Frage so gemeint ist wie ich sie verstehe ...
:arrow: Die V_* sind die Views (virtuelle Tabellen) über die (physikalischen) Tabellen und stehen in der AvERP-Datenbank.

Einfach mal mit IBExpert in der AvERP.GDB nachschauen, da gibt es sogar mehr Views als Tabellen. :wink:

Gruß
Geri12
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Beitrag von festus01 »

Hallo Egon,
Egon hat geschrieben: Hier der erste Versuch, um überhaupt Daten zu bekommen.

inherited q_rep4: TIB_Query
SQL.Strings = (
'SELECT LIEF.* FROM V_BSAL LIEF')
MasterSource = d_rep3
MasterLinks.Strings = (
'BSAL.BSA_ID_LINKKEY=V_BSA.ID')

end

Mein Problem steckt jetzt im Masterlink.
Woher kommen überhaupt die V_ ?
Das kann so meines Erachtens nach nicht funktionieren, denn der Eintrag MasterLinks ist das Feld,
dass aus der MasterSource bzw. der dazugehörigen QUERY geholt wird.
Der obige Eintrag wird in SQL so dargestellt:

SELECT LIEF.* FROM V_BSAL LIEF
WHERE BSAL.BSA_ID_LINKKEY=V_BSA.ID

wobei V_BSA.ID sich auf q_rep3 bezieht.

Das Feld BSAL.BSA_ID_LINKKEY gibt es nicht, es müsste LIEF.BSA_ID_LINKKEY heißen, da in diesem Fall mit dem Alias LIEF gearbeitet wird.

Sehen Sie jetzt ein wenig klarer :?:
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
Egon
Beiträge: 58
Registriert: Di Feb 19, 2008 5:58 pm

Beitrag von Egon »

Also erstmal vielen Dank,
in der Tat, es wird langsam klarer.

Probiere zur Zeit folgenden Code:

inherited q_rep4: TIB_Query
SQL.Strings = (
'SELECT A.*, B.ID,B.BADR_ID_ADRNR,C.NAME'
' FROM bsal A'
' LEFT OUTER JOIN blief B on (A.blief_id_liefnr=B.id)'
' LEFT OUTER JOIN badr C on (B.badr_id_adrnr = C.id)')
MasterSource = d_rep3
MasterLinks.Strings = (
'BSAL.BSA_ID_LINKKEY=VC.BSA_ID_ARTNR')
end


Jetzt wird nur der erste Lieferant angezeigt.
Name, Bestellnummer, letzer Preispflege und der Preis wird ausgedruckt.

Soweit so gut !
Wenn ich das ganze mit IBExpert mache, werden alle Lieferanten für den Artikel ausgegeben. -> so soll es mal werden !

Wahrscheinlich liegt das Problem noch im Fastreport selber.
So ist der aktuelle Stand:
Die Stücklistenpositionen liegen im Hauptdatenband.
Dann habe ich einen Detailkopfband und ein Detaildatenband eingefügt.
Im Kopf stehen nur Überschriften, im Detailband wird auf die req4 verwiesen.
Stimmen die Bänder ?

Noch eine Frage am Rande:
Im Fastreport wird das q_req4 nicht in den DB-Feldern angezegt. Ich kann nur "manuell" zugreifen. Jemand eine Idee ?

Gruß
Egon
Egon
Beiträge: 58
Registriert: Di Feb 19, 2008 5:58 pm

Beitrag von Egon »

Hallo nochmals,
leider habe ich noch keine Lösung gefunden.

Die SQL Anweisung schein ok zu sein.

Mein Report listet jedoch nur den ersten Datensatz auf, obwohl die SQL Anweisung mehrere ausgibt.
Ich verwende im Moment ein Detaildatenband unter einen Hauptband.

Hat jemand noch einen Tip ?

Gruß
Egon
Egon
Beiträge: 58
Registriert: Di Feb 19, 2008 5:58 pm

Keiner eine Idee ?

Beitrag von Egon »

Hallo nochmals ans Forum,

ich möchte wirklich nicht drängeln, aber hat wirklich keiner eine Idee ?

Auch nicht die Admins ?

Bin für jeden Tip dankbar !

Egon
Antworten