Ladeliste/Packliste mit FastReport

Aus GEVITAS
Version vom 23. Februar 2024, 13:59 Uhr von Gevitas (Diskussion | Beiträge) (Gewichts- und Volumen-Berechnung mit Verpackungseinheit)
Wechseln zu: Navigation, Suche

1 Allgemeines

Dieser Artikel beschreibt den Aufbau eines Standard-Reports für ein Ladeliste/Packliste mit FastReport.

Es wird Bezug genommen auf den Report Ladeliste_02_Artikelgruppen_Vxx.fr3, wobei das "xx" hier die Versionsnummer des Reports darstellt.

Allgemein benutzen wir den Begriff "Ladeliste". Firmen, die zwischen dem Vorgang des Packens und des Ladens unterscheiden, würden wohl eher den Begriff "Packliste" verwenden. Da diese aber in der Minderheit sind, verwenden wir den Begriff "Ladeliste".

Die Ladeliste kann man aus REFLEX heraus aufrufen, indem man in der Auftragsverwaltung oder im Lagerprogramm den Auftrag öffnet und auf Ladeliste klickt.

Es öffnet sich das Dialogfenster für den Druck der Ladeliste:

Ladeliste Dialog.png


1.1 Formularname

Name des verwendeten Formular-Reports. Es werden alle Dateien mit der Endung ".fr3" angezeigt, die in dem Formular-Ordner "Ladeliste" liegen.

Um Bedienungsfehler zu vermeiden, kann man im Report-Namen bestimmte Begriffe unterbringen, die dem Programm "sagen", welche Sortierung benötigt wird. Beispiele:

  • Wenn das Wort "Gruppe" im Reportnamen drin ist, erlaubt das Programm nur die Sortierung nach Artikelgruppen und stellt diese auch automatisch ein.
  • Wenn das Wort "Kapitel" im Reportnamen drin ist, erlaubt das Programm nur die Sortierung nach Kapitel+Positionen und stellt diese auch automatisch ein.

1.2 Benutzer Drucker

Auswahl des gewünschten Druckers.


1.3 Optionen

Kopien
Hier kann man die Anzahl der Kopien wählen, die man drucken will. 1 Kopie = 1 Original + 1 Kopie, also 2 Ausdrucke.
Seiten
Ausserdem kann man angeben, dass man nur bestimmte Seiten drucken will, z.B. "1,3,5" oder "2-99".
Beim Drucken als PFD speichern
Wenn aktiviert, erzeugt das Programm beim drucken oder mailen eine PDF-Datei im festgelegten Ordner (siehe Programmparameter) und verknüpft diese Datei mit dem Auftrag und dem Kunden.
Dateiname und Betreff werden vorgegeben, können jedcoh geändert werden.


1.4 Auftrag fixieren (Beim Drucken)

Wenn aktiviert, wird der Auftrag nach dem Drucken automatisch fixiert. Damit kann man keine Änderungen mehr im Auftrag vornehmen. Im Lager kann die Fixierung wieder aufgehoben werden.

Die Fixierung verhindert, dass in einem Auftrag nach dem Drucken der Ladeliste Änderungen vorgenommen werden, von denen das Lager nicht mitbekommt!


1.5 Nur offene Positionen

Druckt nur Positionen, die nicht vollständig ausgegeben werden.


1.6 Nur Material-Positionen

Druckt nur Positionen mit Miet- oder Verkaufsartikeln, keine Dienstleistungs-/Arbeitszeit-Positionen.

1.7 Sortieren nach

Legt die Sortierung (Reihenfolge) der Positionen fest.

  • Bitte beachten Sie: Wenn im Report-Namen bestimmte Schlüsselworte enthalten sind (z.B. "Gruppe", "Kapitel"), dann wird die Sortierung automatisch festlegt und kann nicht geändert werden.
  • Das ist unter bestimmten Umständen gewollt so und wird hier beschrieben.

2 Der Report in der Vorschau

Der Report sieht in der Vorschau so aus:

Erste Seite:

Ladeliste Vorschau 01.png

Diese Seite beinhaltet Kunden- und Auftragsdaten. Optional wird die Liefer-Anschrift und die Rückhol-Anschrift ausgegeben, aber nur, wenn es eine davon gibt!


Die nächsten Seiten:

Ladeliste Vorschau 02.png

Auf diesen Seiten stehen die eigentlichen Positionen, und zwar sortiert und gruppiert nach den Artikelgruppen Obergruppe, Gruppe und Untergruppe. Jede Oberguppe steht dabei auf einer eigenen Seite.


Am Ende des Reports

Ladeliste Vorschau 03.png

stehen die Summen des Gewichts und Volumens und einige Textfelder.


3 Der Report im ReportDesigner

Der Report dazu sieht folgendermaßen aus:


Ladeliste Report 01.png


Hinweis
Da der Report mehr Bänder enthält als auf eine Seite passen, wurde die Seite im (für den) Entwurfsmodus vergrößert:

FastReport Seiteneinstellung SeiteVergroessern.png


3.1 Seitenkopf/Seitenfuß (PageHeader/PageFooter)

In diesen Bereichen stehen die Firmendaten, wie z.B. ein Firmenlogo oben und unten die Firmen-Informationen, Bankverbindungen usw. Diese Daten kommen jedoch nicht aus dem Report selbst, sondern aus einem Basis-Report, der in den Report-Optionen unter dem Reiter Vererbung festgelegt wurde. Weitere Informationen dazu finden Sie unter FastReport Vererbung/Basis-Report.

Achtung!
Wenn Sie einen Basis-Report verwenden, muss der Basis-Report im angegebenen Verzeichnis mit dem angegebenen Namen vorhanden sein!. Wenn Sie diese Datei verschieben oder umbenennen, laufen die Reports nicht mehr, die auf den Basis-Report Bezug nehmen!


3.2 Auftragskopf (MasterData)

Im Auftragskopf stehen die Kunden- und Veranstaltungsdaten sowie optional eine Lieferanschrift und Rückholanschrift. Diese Informationen werden in REFLEX im Auftragskopf unter Lieferdaten eingegeben.


3.3 Positionen (DetailData)

Im Positionsbereich stehen die Positionen des Auftrags, umgeben von Gruppen (Artikel-Obergruppe, -Gruppe und -Untergruppe), einer Überschrift und einem Fußbereich.


3.3.1 Mengen, Gewichte und Volumen

Das Programm stellt in der Tabelle Positionen diese Felder zur Verfügung:

AusgabeMenge
Die Ausgabemenge errechnet sich aus:
AuftragsMenge + Reservemenge - AktuellAusgegeben - WiederZurückGenommen


GesamtBruttoGewichtMiete
Errechnet aus
AusgabeMenge * Artikel-Bruttogewicht
GesamtNettoGewichtMiete
Errechnet aus
AusgabeMenge * Artikel-Nettogewicht
GesamtBruttoGewichtVK
Errechnet aus
AusgabeMenge * Artikel-Bruttogewicht-Verkauf
GesamtNettoGewichtVK
Errechnet aus
AusgabeMenge * Artikel-Nettogewicht-Verkauf
GesamtVolumenMiete
Errechnet aus
AusgabeMenge * Artikel-Volumen
GesamtVolumenVK'
Errechnet aus
AusgabeMenge * Artikel-Volumen-Verkauf


Man kann im Report auch auf die Gewichte/Volumen der Artikel zugreifen, ohne Berücksichtigung der Ausgabe-Menge. Die Felder heißen:

  • AuftrPosBruttoGewichtMiete
  • AuftrPosNettoGewichtMiete
  • AuftrPosBruttoGewichtVK
  • AuftrPosNettoGewichtVK
  • AuftrPosVolumenMiete
  • AuftrPosVolumenVK

Die oben schon beschriebenen Felder berücksichtigen die schon gebuchte Ausgabe-Menge:

  • GesamtBruttoGewichtMiete
  • GesamtNettttoGewichtMiete1)
  • GesamtBruttoGewichtVK
  • GesamtNettttoGewichtVK1)
  • GesamtVolumenMiete
  • GesamtVolumenVK

1) Der Entwickler entschuldigt sich für den Schreibfehler, der nun aus Kompatibilitätsgründen beibehalten werden muss.


Lagerort
Der Haupt-Lagerort des Artikels (nicht des Einzel-Artikels!)

3.4 Auftragsfuss

3.4.1 Gewichte und Volumen

Das Programm stellt in der Tabelle AuftrStatistik diese Summenfelder zur Verfügung:

GesamtBruttoGewicht
Beinhaltet die Summe des Bruttogewichts x der Ausgabemenge aller Artikel-Positionen des Auftrags.
GesamtNettoGewicht
Beinhaltet die Summe des Nettogewichts x der Ausgabemenge aller Artikel-Positionen des Auftrags.
GesamtVerpackVolumen
Beinhaltet die Summe des Verpackungs-Volumens x der Ausgabemenge aller Artikel-Positionen des Auftrags.

Die Ausgabemenge errechnet sich aus:

AuftragsMenge + Reservemenge - AktuellAusgegeben - WiederZurückGenommen


4 Gewichts- und Volumen-Berechnung mit Verpackungseinheit

4.1 Auftrags-Statistik-Felder

Das Programm stellt einige Felder zur Gewichtsberechnung bereit:

[AuftrStatistik."GesamtBruttoGewichtMitVerpEinh"]

Dieses Feld beinhaltet das Gesamtgewicht des Auftrags unter Berücksichtigung der Artikel-Verpackungseinheiten. Dazu wird das Artikel-Verpackungsgewicht benutzt (ab Release 240223, vorher das Netto-Gewicht).

Die Formel dazu
sum( ( MART.BRUTTOGEWICHT / MART.VERP_EINHEIT ) * (MAUFPO.AUFTRMENGE + MAUFPO.RESERVEMENGE ) )
Also:
Summe aus ( ( Artikel-Brutto-Gewicht / Artikel-Verpackungseinheit ) * (Auftragsmenge + Reservemenge ) )
[AuftrStatistik."GesamtBruttoVolumenMitVerpEinh"]

Dieses Feld beinhaltet das Gesamtvolumen des Auftrags unter Berücksichtigung der Artikel-Verpackungseinheiten. Dazu wird das Artikel-Verpackungsvolumen benutzt.

Die Formel dazu
sum( ( MART.VERP_VOLUMEN / MART.VERP_EINHEIT ) * (MAUFPO.AUFTRMENGE + MAUFPO.RESERVEMENGE ) )
Also:
Summe aus ( ( Artikel-Verpackungsvolumen / Artikel-Verpackungseinheit ) * (Auftragsmenge + Reservemenge ) )

4.2 Im Detail-Bereich mit den Positionen

Wenn man dort das Gewicht unter Berücksichtigung der Artikel-Verpackungseinheiten berechnen will, kann man zwei Variablen deklarieren und diese im Detail-Band berechnen:

Beispiel
procedure DetailPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Dieser Code wird ausgeführt, BEVOR das Positionen-Detail-Band ausgegeben wird.
  // Gewicht der Position berechnen:
  if <Positionen."Artikel_VerpEinheit"> > 0 then
  begin
    Set( 'GewichtProPos',  <Positionen."GesamtBruttoGewichtMiete">  / <Positionen."Artikel_VerpEinheit">   );
    Set( 'VolumenProPos', <Positionen."GesamtVolumenMiete"> / <Positionen."Artikel_VerpEinheit">   );
 end
 else
 begin
    Set( 'GewichtProPos',0 );
    Set( 'VolumenProPos',0 );
 End;

end;

Im Fuss kann man zwei Funktionsfelder einfügen mit diesen Berechnungen:

[SUM(<GewichtProPos>,DetailPositionen,1)]
[SUM(<VolumenProPos>,DetailPositionen,1)]

(",1" berechnet auch unsichtbare Bänder)

5 Links