Seite 1 von 1

Wie Bericht nach Fremdschlüsseln trennen bzw. in Formular...

Verfasst: Sa, 08.02.2014 12:23
von Connor0308
Guten Morgen zusammen,

ich bin aktuell dabei, mich an Base zu versuchen, da mein vorhaben an einer Stelle scheinbar nur über eine Datenbank zu realisieren ist.
Es soll ein Dokument erstellt werden, dass an unsere Lieferanten geht, um die Artikelstammdaten unseres ERP-Systems abzugleichen. Jeder Lieferant liefert eine unterschiedliche Anzahl von Artikeln. Diese Artikel bekomme ich über eine Abfrage.
Auf Grundlage dieser Abfrage habe ich einen Bericht erstellt. Das klappt auch soweit. Die Relationen gehen von einer Lieferantenübersicht an einen Auszug an die Info-Sätze (Verknüpfung Lieferant mit Artikel).
Relationen.jpg
Relationen.jpg (135.78 KiB) 1170 mal betrachtet
Aktuell scheitere ich noch an einer sinnvollen Ausgabe, die an jeden Lieferanten getrennt gehen soll. Hierzu habe ich aktuell zwei Ansätze, die theoretisch (!) auch funktionieren sollten.

1. Wie kann ich den Bericht nach Lieferanten (LAR.Lief_ID) trennen, so dass ich (in diesem Fall) 68 unterschiedliche Dokumente bekomme? Und eine weitere Nachfrage dazu: Kann ich den BEricht auch direkt als PDF erstellen oder "muss" ich den Umweg über die Berichterstellung im .odf-Format mit anschließendem Export ins .pdf-Format gehen?

2. Diese Übersicht ist Teil eines längeren Lieferantenanschreibens, dieses ist als Formular aufgebaut. Der Vorteil des Formulars ist der, dass ich daraus einen Serienbrief im PDF-Format speichern kann. Besteht hier die Möglichkeit, die jeweilige Ausgabe in das Formular zu integrieren?

Danke für Eure Ideen,
Gruß,

Connor

Re: Wie Bericht nach Fremdschlüsseln trennen bzw. in Formula

Verfasst: Sa, 08.02.2014 13:03
von RobertG
Hallo Connor,

Du kannst Berichte an einzelne Lieferanten nur dadurch erstellen, dass Du später den Gesamttext eines Berichtes auftrennst. Einen Seitenumbruch kannst Du bei jedem Gruppenbeginn (neuer Lieferant) ja erstellen. Ein *.pdf direkt zu erzeugen geht mit dem Report-Builder nicht. Bedeutet also für Dich zusätzliche Eingriffe.
Du kannst auch nacheinander einen Bericht vorfiltern (mit der Lieferanten-ID). Dann kannst Du einen Bericht an jeden einzelnen Lieferanten direkt erstellen.

Nimm nicht das Formular, um daraus einen Serienbrief zu erstellen. Baue direkt einen Serienbrief. Schau Dir dazu die entsprechende Beispieldatenbank aus dem Datenbankpaket zum Handbuch an: Beispiel_Datenbank_Serienbrief_Direkt.odb
Vielleicht ist das auch eine Möglichkeit für Dich, die Probleme mit dem Report-Builder zu umgehen.

Gruß

Robert

Re: Wie Bericht nach Fremdschlüsseln trennen bzw. in Formula

Verfasst: Sa, 08.02.2014 18:45
von Connor0308
Hallo Robert,

danke für Deine schnelle Hilfe. So habe ich nun eine "Goldsternchen"-Lösung und eine Notfalllösung über den Report-Builder.
Ich habe mir die von Dir genannte Datenbank heruntergeladen und angeschaut. Leider habe ich kein Tutorial hierfür gefunden, indem die einzelnen Tabellen und Abfragen erläutert werden. Sollte es so etwas geben, sollte auch ein Link reichen, damit ich die Tabellen und Zusammenhänge besser verstehen kann.
Wenn ich die Struktur richtig verstehe, dann erfolgen durch die Abfrage "Rechnung_einzeilig" die wesentlichen Abfragen in die Verkaufstabelle. Dabei ist das Feld "Rechnungsinhalt" das Feld, dass in dem Serienbrief angestoßen wird und zu der entsprechenden Ausgabe der Rechnung führt.
Soweit - so klar. Ich habe daraufhin für meine Tabellen eine Abfrage

Code: Alles auswählen

SELECT "Lieferanten"."ID", "LAR"."Lief_ID", "Lieferanten"."LiefNr", "Lieferanten"."Name 1", "Lieferanten"."Name 2", "Lieferanten"."Name 3", "Lieferanten"."Adressblockanrede", "Lieferanten"."Strasse", "Lieferanten"."PLZ", "Lieferanten"."Ortsname", "Lieferanten"."Briefanrede", "Lieferanten"."KdNr", ( SELECT "ARTIKEL", "ARTBEZ1", "ARTBEZ2", "LIEFARTIKEL", "LIEFBEZ1", "LIEFBEZ2" FROM "LAR" ) AS "Einzelabfrage" FROM "LAR", "Lieferanten" WHERE "LAR"."Lief_ID" = "Lieferanten"."ID"
definiert, um über das Feld "Einzelabfrage" einen ähnlichen Effekt zu erzielen. Leider klappt das noch nicht, die Abfrage zeigt keinerlei Ausgabe.
Ich habe aktuell noch kein Formular hinterlegt (analog zu dem Rechnungsformular), dürfte dieses der Grund sein?
Weiterhin habe ich noch eine NAchfrage zu dem Code in der Beispiel-Datei. Hier wird zeilenweise definiert:

Code: Alles auswählen

( SELECT "Warenzeile" FROM "Nummerierung_Verkauf" WHERE "Rechnung_ID" = "a"."ID" AND "Nummer" = 1 )
. Ich versuch zu verstehen, wozu diese "Nummer" gut sein soll...
Könnte mich da vielleicht noch einmal jemand aufschlauen?
Danke im Voraus,

Gruß,

Connor

Re: Wie Bericht nach Fremdschlüsseln trennen bzw. in Formula

Verfasst: Sa, 08.02.2014 19:19
von RobertG
Hallo Connor,

ich weiß jetzt nicht mehr aktuell genau, was ich da so alles gemacht habe. Um das Grundgerüst gerade dieser Konstruktion (mit Ausnahme des Serienbriefes) zu verstehen könnte eventuell dies hier hilfreich sein.
http://robert.familiegrosskopf.de/base_ ... banken.zip
Ich schaue nachher noch einmal nach, warum da eine "Nummer" = 1 drin steht.

Schon erledigt: Bei den Serienbriefen ist ja ein Feld für einen Inhalt zuständig. Jeder Serienbrief stellt einen Datensatz dar. Dabei kommt es dann zu dem Problem, dass der Rechnungsinhalt sich nur auf einen Datensatz beschränken würde, also jeder Kunde nur eine Ware kaufen könnte. Das habe ich umgangen - allerdings erst einmal nur für insgesamt 10 Waren. Die Nummerierung ist notwendig, damit ich die Waren hintereinander eingelesen bekomme. Ich erledige so das, was in anderen Datenbanken als der HSQLDB durch Befehle wie Group_Concat() oder List() erstellt wird: Den Inhalt von mehreren Datensätzen zusammen in einem Feld zusammenzufassen.
Das ist so, wie es da aufgebaut ist, erst einmal eine Krücke. Gegebenenfalls würde ich so etwas über Makros realisieren, wenn ich weiß, dass die Anzahl der Waren deutlich höher und vor allem nicht einschätzbar ist.
Schau Dir in der Datenbank die Ansicht "Nummerierung_Verkauf" an. Auf die beziehen sich ja die Unterabfragen mit der Nummer.
So eine Auflistung habe ich im Handbuch im Kapitel "Datenbank-Aufgaben" beschrieben (Unterkapitel: "Gruppieren und Zusammenfassen").

Gruß

Robert

Re: Wie Bericht nach Fremdschlüsseln trennen bzw. in Formula

Verfasst: So, 09.02.2014 15:51
von Connor0308
Hallo Robert,

danke für Deine Hilfe und die Erklärung. Ich werde mich da dann etwas genauer einarbeiten, um im kommenden Jahr die "Goldsternchen"-Lösung zu realisieren...
Aktuell bleibt es wohl bei der Berichts-Variante, die ich dann mit "PDF-Split-and-Merge" zerteile.
Dir noch ein angenehmes Wochenende,
Gruß,

Connor