REFLEX Standard-Report Ladeliste

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

Der Report "Ladeliste_Standard_Vxx.fr3" wird für den Druck einer Ladeliste aus der Auftragsverwaltung heraus verwendet. Er unterscheidet im Design zwischen Miete und Verkauf.


1.1 Verzeichnis, Basis-Report

Der Report befindet sich im Formular-Verzeichnis "Formular\Ladeliste". Hinweis: Die Ladeliste wird in REFLEX in der Auftragsverwaltung mit dem Button Ladeliste (Umsch-F12) gedruckt, ein Angebot oder Auftrag aber mit dem Button Drucken (F12)!

Der Report verwendet den Basis-Report nicht, da die Ladeliste eher ein internes Formular ist und die Geschäftsdaten nur Platz weg nehmen.


1.2 Auftragskennzeichen

Die Auftragskennzeichen, die für Angebot/Auftrag/Rechnung benutzt werden, werden in diesem Report nicht verwendet.

1.3 Sortierung

Eine Ladeliste wird standardmäßig sortiert nach der Option, die man im Druckprogramm eingestellt hat. Wenn man mehrere Ladelisten benutzt (z.B. eine nach Kapiteln sortiert und eine nach Lagerorten), muss man darauf achten, dass die Sortieren nach-Option zu dem ausgewählten Report passt. Damit die Sache etwas komfortabler wird, stellt das Druckprogramm die Sortieren nach-Option automatisch ein, wenn der Report-Name bestimmte Begriffe beinhaltet:

Begriff Sortiert wird nach Beispiel
"Kapitel" Kapitel- und Positionssnummer aufsteigend. Ladeliste_Kapitel_V09.fr3
"Lagerort" oder "StorageLocation" Lagerort aufsteigend. Hinweis: Der Lagerort ist ein alphanumerisches Textfeld, also wird nach Buchstaben und Zahlen sortiert. Bitte auf eine einheitliche Schreibweise der Lagerort achten! Der Lagerort "C 5-1-01" (mit Leertaste) kommt vor dem Lagerort "C1-1-01" (ohne Leertaste)! Ladeliste_Lagerort_V09.fr3

PackingList_StorageLocation_V09.fr3

Groß- und Kleinschreibung ist dabei nicht relevant.

2 Vorschau

In der Vorschau sieht das Formular so aus:

Ladeliste Standard 01 Vorschau.png



3 Bereiche

3.1 1.png Seitenkopf

In diesem Bereich steht der Firmenname (formlos, weil die Liste eher intern verwendet wird).

Rechts wird die Auftragsnummer in Barcode-Form angedruckt. Es wird der Barcode-Type Code-39 verwendet, der universal und nicht längenabhängig ist.

  • Barcodes können direkt im Report eingefügt werden. FastReport unterstützt alle gängigen Barcodes.
  • QR-Code kann auch verwendet werden, dazu ist jedoch eine Zusatz-Lizenz erforderlich.

Der Barcode wird auf jeder Seite wiederholt. Grund: Wenn man die Option "Jedes Kapitel auf neue Seite" verwendet, um z.B. für jedes Gewerk ein anderes Team zum laden zu schicken, wäre nur auf der ersten Seite der Auftragsnummern-Barcode drauf.

Das Feld für den Formular-Titel hat folgenden Inhalt:

[Titel] Nr. [AuftragsKopf."AuftrNr"] vom [Date]


Feld Beschreibung
[Titel] Diese Variable wird vom Programm an den Report übergeben. Der Text dazu kommt aus den Programm-Parametern. Weitere Informationen dazu
[AuftragsKopf."AuftrNr"] Hier wird die Auftragsnummer ausgegeben
[Date] In dieser Systemvariable steht das aktuelle Tagesdatum.

Alternativ dazu könnte man auch das gespeichert Druckdatum benutzen. Das Feld würde dann so aussehen:

 [Titel] Nr. [AuftragsKopf."AuftrNr"] vom [AuftragsKopf."DruckDat"]
Hinweis
Der Titel für die Folgeseiten wird über den Header der Positionen HeaderPositionen ausgegeben.

Damit dieser Bereich auf der ersten Seite unterdrückt wird, gibt es diesen Code in HeaderPositionenOnBeforePrint:

procedure HeaderPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Auf der 1. Seite unterdrücken:
  if <Page#> = 1 then
  begin
    MemoAuftrNrTitelHeaderPositionen.Visible := False;
    HeaderSeitenNummer.Visible := False;
    HeaderPositionen.Visible := False;
  end
  else
  begin
    MemoAuftrNrTitelHeaderPositionen.Visible := True;
    HeaderSeitenNummer.Visible := True;
    HeaderPositionen.Visible := True;
  end;
end;

(Eigentlich gehört dieser Bereich nicht zum Kopf sondern zum Header über den Positionen)



3.1.1 Der Bereich

Ladeliste Standard 02 Seitenkopf.png


der Bereich hat keinen Code.


3.2 Der Auftragskopf

Die folgenden Bereiche gehören alle zum Auftragskopf.

Die Bänder haben alle das Dataset AuftragsKopf. Sie gehören zum Band-Typ MasterData, werden also nur ein mal ausgegeben!

Der Kopf ist in verschiedene Bereiche eingeteilt, die teilweise unter bestimmten Umständen unterdrückt werden.

Ladeliste Standard 03 Kopf.png


3.2.1 2.png Auftragsdaten im Kopf

3.2.1.1 Kunden-Adresse, Veranstaltungs- und Projektdaten

Die Kunden-Adresse liegt im Band MasterDataKopfMiete bzw. MasterDataKopfVerkauf. Diese beiden Bänder werden wechselweise ein- bzw. ausgeschaltet.

3.2.1.2 MasterDataKopfMiete

In diesem Bereich stehen die Kopfdaten für einen Miet-Auftrag.

Deshalb muss dieser Bereich ausgeblendet werden, wenn es um einen Verkaufs-Auftrag geht.

Dazu gibt es diesen Code in MasterDataKopfMieteOnBeforePrint:

procedure MasterDataKopfMieteOnBeforePrint(Sender: TfrxComponent);
begin
  if <AuftragsKopf."Bereich_1Verkauf_2Miete_3Mietverkauf"> <> 2 then
    MasterDataKopfMiete.Visible := False  // Es ist Verkauf, also Bereich ausschalten!
  else
  begin
    MasterDataKopfMiete.Visible := True;  // Es ist Miete, also Bereich einschalten!  
  end;
end;

Wenn im Feld <AuftragsKopf."Bereich_1Verkauf_2Miete_3Mietverkauf"> (es heißt wirklich so!) 1 steht, ist es ein Verkaufs-Auftrag, bei 2 ein Miet-Auftrag, bei 3 ein Mietartikel-Verkaufen-Auftrag.



3.2.1.3 MasterDataKopfVerkauf

In diesem Bereich stehen die Kopfdaten für einen Verkaufs-Auftrag.

Deshalb muss dieser Bereich ausgeblendet werden, wenn es um einen Miet-Auftrag geht. Dazu gibt es den Code in MasterDataKopfMieteOnBeforePrint, wie oben beschrieben.


3.2.1.4 MasterDataVARaum

In diesem Bereich stehen die Veranstaltungs-Raum und -VA-Ort (Kurzname) für einen Miet-Auftrag.

Dieser Bereich soll nur gedruckt werden, wenn es einen Raum oder VA-Ort-Namen gibt. Deshalb gibt es diesen Code in MasterDataVARaumOnBeforePrint:

procedure MasterDataVARaumOnBeforePrint(Sender: TfrxComponent);
begin
  // Wenn beide Felder leer sind: Ausblenden!
  if ( <AuftragsKopf."VA-OrtKurzname"> =  ) and ( <AuftragsKopf."VA-Raum"> =  ) then
    MasterDataVARaum.Visible := False;
end;

Hinweis
Der VA-Ort-Name wird im Auftragskopf unter dem VA-Ort optional angegeben.



3.2.2 3.png MasterKoptext

In diesem Bereich stehen die Ansprechpartner-Daten des Auftrags.

Er wird immer ausgegeben und hat keine Ereignisse.

Ansprechnpartner Kunde
Die Daten kommen aus den Kontakt-Stammdaten des Kunden bzw. Ansprechpartners. Weitere Informationen.
Ansprechnpartner Auftrag
Die Daten kommen aus den Personen-Stammdaten des Auftragsbearbeiters. Weitere Informationen.

3.2.3 4.png HeaderPositionen, Überschrift über die Positionen

Dieser Bereich beinhaltet den Titel über die Positionen. Dieser wird oben im Kopf beschrieben.

Wichtig ist die Eigenschaft (rechte Maustaste auf dem Bereich) Auf neuer Seite wiederholen. Diese legt fest, dass der Header auf jeder neuen Seite oben gedruckt wird!

Der Bereich hat ein Child (Kind) mit dem Namen "ChildHeaderPositionen", in den die Überschrift über den Positionen liegt.

Weil die Überschrift nicht gedruckt werden soll, wenn es auf der neuen Seite gar keine Positionen mehr gibt, wird dieser Code in ChildHeaderPositionenOnBeforePrint verwendet:

procedure ChildHeaderPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Überschriftszeile unterdrücken, wenn keine Positionen mehr kommen:
  if DetailPositionen.DataSet.EOF then
    ChildHeaderPositionen.Visible := False
  else
    ChildHeaderPositionen.Visible := True;
end;

Weitere Hinweise dazu



3.3 5.png Positionen

Zentrales Band der Positionen ist das Band DetailPositionen. Es gehört zum Band-Typ DetailData mit den Daten aus der Tabelle Positionen. Das bedeutet, dass dieser Bereich wiederholt ausgegeben wird, bis es keine Positionsdaten mehr gibt!

Um, dieses Band herum wurden andere Bänder gelegt:

  • Ein Header ("HeaderPositionen"), der den Titel über die Positionen beinhaltet. Dieser wird oben im Kopf beschrieben.
  • Ein GroupHeader ("GroupHeaderKapitel"), der die Kapitel-Bezeichnungen beinhaltet. Das bedeutet, dass in dem Report die Gruppierungs-Funktion benutzt wird. Gruppieren bedeutet, dass die Positionen nach der Kapitel-Nummer getrennt werden. Die Kapitel-Überschrift steht im GroupHeader, die eigentlichen Positionen im Band DetailPositionen.
  • Ein Child-Band ("ChildGroupHeader1") für den Hinweis auf abweichende Daten. Ein Child-Band deshalb, weil das Band ausgeblendet wird, wenn es keine Abweichung zwischen Kopf und Positionen gibt.
  • Ein Footer ("FussPositionen"), in dem Hinweise, Unterschriftenfelder usw. stehen. Dieser Bereich wird unten unter "Fuss" behandelt.


Ladeliste Standard 04 Positionen.png


3.3.1 Mengenfelder in den Positionen einer Packliste/Ladeliste

Für die Positionen bietet das Programm diese Mengenfelder an:


Feldname im Report (Positionen."xxx") Beschreibung Feld(er) in der Datenbank
Menge Auftragsmenge lt. Auftragsposition AUFTRMENGE
MengeReserve Reserve-Menge RESERVEMENGE
MengeFremd Fremd-Menge FREMDMENGE
MengeAusgegeben Menge derzeit ausgegeben AKTAUSGMENGE
MengeZurueck Menge wieder zurückgebucht BISHRUECKMENGE
AusgabeMenge Menge, die aktuell noch auszugeben ist. Für eine Packliste/Ladeliste ist das die richtige Menge in den Positionen! AUFTRMENGE + RESERVEMENGE - AKTAUSGMENGE - BISHRUECKMENGE - AUSGFREMDMENGE
MengeAusgegebenFremd Menge ausgegeben Fremd AUSGFREMDMENGE
MengeRueckhol Rückholmenge für das spezielle Modul "Langzeit-Miete" RUECKHOLMENGE
MengeRueckholZurueck Menge Rückholung schon zurück für das spezielle Modul "Langzeit-Miete" RUECKHOLZURUECK
MengeFremdZurueck Fremd-Menge zurückgebucht BISHRUECKFREMDMENGE
AbholMenge Menge die (noch) vom Kunden abgeholt werden muss. AKTAUSGMENGE - BISHRUECKMENGE + AUSGFREMDMENGE - BISHRUECKFREMDMENGE
OriginalMenge Für Modul "LagerLogistik" und das Modul "System-Boxen" (jeweils für andere Zwecke) ORIGINALMENGE
MengePackliste Feld "Packlistenmenge" als Lagermenge verwenden. False=Konzernmenge (MultiLager) PACKLISTMENGE
ZentralLagerMenge Für Modul "LagerLogistik" ZentralLagerMenge
KapitelAusgabeMenge Enthält die Summe der AusgabeMenge des gesamten Kapitels. Kann z.B. verwendet werden, um eine Kapitelüberschrift zu unterdrücken, wenn in dem Kapitel gar nichts mehr auszugeben ist. KapitelAusgabeMenge

3.3.2 GroupHeaderKapitel

Beinhaltet die Kapitel-Bezeichnungen. Das bedeutet, dass in dem Report die Gruppierungs-Funktion benutzt wird. Gruppieren bedeutet, dass die Positionen nach der Kapitel-Nummer getrennt werden. Die Kapitel-Überschrift steht im GroupHeader, die eigentlichen Positionen im Band DetailPositionen.

Es gibt diese Besonderheiten:

  • Wenn die Option "Jedes Kapitel auf neue Seite" (im Drucken-Fenster) gesetzt wurde, soll ein Seitenwechsel durchgeführt werden, bevor dieser Bereich gedruckt wird.
  • Wenn in Bezeichnung das Wort "Personal" steht, soll die Kapitelüberschrift unterdrückt werden.

Deshalb gibt es im Ereignis GroupHeaderKapitelOnBeforePrint diesen Code:

procedure GroupHeaderKapitelOnBeforePrint(Sender: TfrxComponent);
begin
  // Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird.

  // Wenn in der Kapitel-Bezeichnung irgendwo 'Personal' steht: Unterdrücken!
  // (Groß- Kleinschreibung ist egal)
  if Pos('PERSONAL',  Uppercase( <Positionen."Bezeichnung">) ) > 0 then  // Pos( SuchenNach, SuchenIn ) sucht nach Texten und bring die Position zurück oder 0.
    GroupHeaderKapitel.Visible := False
  else
    GroupHeaderKapitel.Visible := True;
  // Wenn die Option "Jedes Kapitel auf neue Seite" im Druckfenster eingeschaltet ist.
  // Aber - Nicht bei dem 1. Kapitel!
  //      - Nicht wenn der Bereich unsichtbar ist!
  if ( <KapitelNeueSeite> = 1 )
  and ( <Positionen."Kapitel">  >  1 )
  and ( GroupHeaderKapitel.Visible ) then
    Engine.NewPage;   // Neue Seite, Seitenkopf usw. drucken
end;


3.3.3 DetailPositionen

In diesem Bereich werden die eigentlichen Auftragspositionen ausgegeben.

In DetailPositionenOnBeforePrint gibt es einigen Code, der das Verhalten der Objekte dieses Bereiches beeinflusst.

Er befindet sich nach

procedure DetailPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Dieser Code wird ausgeführt, BEVOR das Positionen-Detail-Band
  // ausgegeben wird.


3.3.3.1 Kapitel-Position ausblenden:
Da die Kapitel-Positionen (1.0, 2.0, 3.0 usw.) im Gruppenkopf gedruckt werden, müssen sie hier im eigentlichen Positionsbereich unterdrückt werden.
Außerdem sollen Dienstleistung/Arbeitszeit komplett unterdrückt werden:
 // Kapitel-Position ausblenden:
 // Kennzeichen "Nur Kapitel" = 'Ja': Positionen unterdrücken:
 if ( <Positionen."PosNr"> = 0  )
 or ( <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> > 2 ) then    // Dienstleistung/Arbeitszeit unterdrücken!
   DetailPositionen.Visible := False
 else
   DetailPositionen.Visible := True;


3.3.3.2 Formatierungen für Sets und Zubehör
Hier werden z.B. die Feld-Schrift-Styles geändert, wenn die Position einen Haupt-Set-Artikel oder -Zubehör-Artikel beinhaltet.
Außerdem wird gezeigt, wie man die Bezeichnungs- und Text-Felder für Set-Positionen einrücken kann.
  • Wichtig: Positionsangaben im Code werden in Pixeln gemacht! Damit man Pixel einfach in cm umrechnen kann, stellt FastReport eine Funktion namens fr1cm zur Verfügung. Die Umrechnung in cm wird mit einer Formel gemacht:
  • "xxx.Left := 1.3 * fr1cm;"
Standard-Einstellungen
Erst einmal werden alle Felder auf den Standard positioniert:
 MemoPositionenBezeichnung.Left := 0.2 * fr1cm;
 MemoPositionenBezeichnung.Width := 9.2 * fr1cm;
Die cm-Angaben (1.3 und 9.2) müssten Sie u.U. an Ihre Positionen anpassen, wenn Sie die Felder verschoben haben!
  • Bitte beachten: Kommstellen im Code werden mit dem Punkt angegeben!
3.3.3.3 Set-Position

werden eingerückt, also der Wert der Left-Eigenschaft der Felder wird verändert: Genau genommen muss man die Breite der Felder auch verändern:

  • In jeder Position des Sets steht in in dem Feld STLISTKENNZ (im Report <Positionen."SetNr">) die Set-Nummer.
  • Allerdings steht in der ERSTEN Position des Sets (also dem Häuptling) noch zusätzlich in dem Feld STLISTE <Positionen."SetNrHauptArtikel"> die Set-Nummer (aber in der übrigen Set-Positionen NICHT).
  • So kann man der Häuptling ausmachen!
 if ( <Positionen."SetNr"> > 0 ) and ( <Positionen."SetNrHauptArtikel"> = ''  ) then
 begin
   MemoPositionenBezeichnung.Left := 2.3 * fr1cm;
   MemoPositionenBezeichnung.Width := 8.2 * fr1cm;
 end
 else
 begin
   MemoPositionenBezeichnung.Left := 1.3 * fr1cm;
   MemoPositionenBezeichnung.Width := 7.2 * fr1cm;
 end;




Alternativ dazu könnte man das Feld auch kursiv darstellen:
 if ( <Positionen."SetNr"> > 0 ) and ( <Positionen."SetNrHauptArtikel"> =   ) then
 begin
   memoPosBezeichnung.Font.Style := fsItalic;
 end;
Dann muss man aber oben den Font auf den Standard setzen:
   memoPosBezeichnung.Font.Style := 0;
3.3.3.4 Zubehör-Hauptartikel
Könnten z.B. in Fettschrift dargestellt werden:
 if <Positionen."ZubehoerKennzch_1Haupt_2Unter"> = 1 then
 begin
   MemoPositionenBezeichnung.Font.Style := fsBold;
 end;


3.3.3.5 Zubehör-Unterposition
Könnten z.B. kursiv darstellen:
 if <Positionen."ZubehoerKennzch_1Haupt_2Unter"> = 2 then
 begin
   MemoPositionenBezeichnung.Font.Style := fsItalic;
 end;
Alternativ könnten die Felder auch eingerückt werden:
 if <Positionen."ZubehoerKennzch_1Haupt_2Unter"> = 2 then
 begin
   MemoPositionenBezeichnung.Left := 2.3 * fr1cm;
   MemoPositionenBezeichnung.Width := 8.2 * fr1cm;
 end;


3.3.3.6 Alternative Positionen im Auftrag
Alternativ-Positionen darf es in einem bestätigten Auftrag eigentlich nicht geben. Deshalb werden solche Positionen mit einem * markiert und zusätzlich wird im Fuss ein entsprechende Hinweis gedruckt.
Das geht dann in MemoAlternativSternOnBeforePrint z.B. so:
procedure MemoAlternativSternOnBeforePrint(Sender: TfrxComponent);
begin
  // Markierung mit " * " nur bei Alternativ-Position anzeigen
  // (und nicht beim Kapitel, das auch das Alternativ-Kennzeichen hat!)
  if (<Positionen."Alternativ_0_1"> = 1) and (<Positionen."PosNr"> > 0 ) then
    MemoAlternativStern.Visible := True
  else
    MemoAlternativStern.Visible := False;
end;
Die Markierung mit * wird nur bei Alternativ-Positionen angezeigt.

3.3.4 Optionen für die Positionen

3.3.4.1 Barcode von Mengenartikeln

Wenn auf der Ladeliste Barcodes drucken will, mit dessen Hilfe Mengenartikel per Barcode-Scanner erfasst werden können, stellt das Programm für jede Auftragsposition in der Tabelle "Positionen" das Feld "BarcodeNrMengenartikel" zur Verfügung (ab Rel. 160226). Dieses Feld ist der "Dummy-Eintrag" einer Inventarnummer in den Einzelartikel-Stammdaten (physisch das Feld "MArtEinz.InventarNr") mit der "LfdNr" = 1!


Beispiel:

Ladeliste BspMengenArtikel Barcode 01.png


Der Report-Abschnitt dazu:

Ladeliste BspMengenArtikel Barcode 02.png


Zum Unterdrücken des Barcodes beim Einzelartikeln und Nicht-Mietartikeln kann man diesen Code verwenden:


procedure DetailPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Dieser Code wird ausgeführt, BEVOR das Positionen-Detail-Band
  // ausgegeben wird.

  // Barcode nur für Miet-Mengenartikel:                                                                                              
  BarCodeMengenArtikel.Visible := ( <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> = 1 ) and (<Positionen."Artikel_Einzelartikel"> = 0);
end;

3.4 6.png Bestellungen zu einer Auftragsposition

In diesem Bereich werden die Bestellungen zu einer Auftragsposition angezeigt, falls welche vorhanden sind. Das Programm sorgt dafür, dass alle Bestellungen (unabhängig von ihrem Status) abgerufen werden, die zu einer Auftragsposition gehören.

Dazu gibt es einen Subdetail-Bereich, der sozusagen unterhalb des Detail-Bereichs liegt:


Ladeliste Standard 05 PositionsBestellungen.png

Die Tabelle BestellPositionen stellt folgende Felder aus der Bestell-Position und dm zugehörigen Bestell-Kopf zur Verfügung:

Ladeliste Standard 05 PositionsBestellungen Felder.png



3.5 7.png Inhalt von Paket-Sets

Wenn zu einem Artikel in einer Position ein Inhalt von Paket-Set vorhanden ist, kann man die Inhalt von Paket-Set-Positionen auflisten.

Dazu gibt es einen Subdetail-Bereich, der sozusagen unterhalb des Detail-Bereichs liegt:


Ladeliste Standard 06 PaketSets.png


Die Tabelle StListenPakete stellt folgende Felder aus der Bestell-Position und dm zugehörigen Bestell-Kopf zur Verfügung:

Ladeliste Standard 06 PaketSets Felder.png

3.6 8.png Abweichendes Datum

Wenn in einer Position ein anderes Von- oder Bis-Datum steht als im Kopf (Dispo-Von und -Bis), wird dieser Bereich eingeblendet. Dazu gibt es in DetailPositionenChildOnBeforePrint diesen Code:

begin
  // Das Band zeigt ein abweichendes Pos.Datum zum Kopf-Dispo-Datum:
  DetailPositionenChild.Visible := False;
  if <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> = 1 then        // Nur bei Miete!
  begin
    if ( <AuftragsKopf."DispoDatumVon"> <> <Positionen."DatumVon"> )
    or ( <AuftragsKopf."DispoDatumBis"> <> <Positionen."DatumBis"> ) then
      DetailPositionenChild.Visible := True;
  end;
end;


Alternative Positionen im Auftragt:

In einem Auftrag sollte es eigentlich keine alternativen Positionen mehr geben. Wenn doch, sollte ein Warnhinweis ausgegeben werden.

Im Standard-Formular werden diese Positionen mit einem "*" gekennzeichnet.

Im Fuss gibt es einen Hinweis, dass Alternativen vorhanden sind. Dieser Hinweis soll natürlich nur erscheinen, wenn es überhaupt Alternativ-Positionen gibt.

Dazu stellt das Programm in der Tabelle AuftrStatistik das Feld "AnzahlAlternativPos" zur Verfügung. Steht dort eine Zahl größer als 0, gibt es eine entsprechende Anzahl von Alternativ-Positionen im Angebot.

Hinweis auf Alternativ-Positionen
Dieser wird nur angezeigt, wenn die Anzahl der Alternativ-Positionen > 0 ist.
Das Feld AuftrStatistikAnzahlAlternativPos wird sonst unterdrückt:
procedure AuftrStatistikAnzahlAlternativPosOnBeforePrint(Sender: TfrxComponent);
begin
  // Hinweis aus Alternativ-Positionen:
  if <AuftrStatistik."AnzahlAlternativPos"> = 0 then
       AuftrStatistikAnzahlAlternativPos.Visible := False
  else
      AuftrStatistikAnzahlAlternativPos.Visible := True;
end;


3.7 9.png Fuss

Im Fuss steht eine Tabelle zur händischen Erfassung der Tätigkeiten:


Ladeliste Standard 07 Fuss.png




4 Updates

Version Datum Beschreibung


5 Standard-Reports

6 Links