REFLEX Standard-Report Angebot/Auftrag: Unterschied zwischen den Versionen
Zeile 153: | Zeile 153: | ||
==== [[Datei:4.png]] Ab zweiter Seite: Formular-Titel, Datum, Seiten-Nummer ==== | ==== [[Datei:4.png]] Ab zweiter Seite: Formular-Titel, Datum, Seiten-Nummer ==== | ||
+ | Der Titel für die Seiten 2 - Ende wird über den Header der Positionen '''HeaderPositionen''' ausgegeben. | ||
+ | Damit dieser Bereich auf der ersten unterdrückt wird, gibt es diesen Code in ''' HeaderPositionenOnBeforePrint''': | ||
+ | |||
+ | <code> | ||
+ | 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; | ||
+ | </code> | ||
Version vom 22. Dezember 2015, 23:12 Uhr
Inhaltsverzeichnis
1 Allgemeines
Der Report "AngebotAuftrag_Standard_Vxx.fr3" wird für den Druck eines Angebots oder einer Auftragsbestätigung verwendet. Er unterscheidet im Design zwischen Miete und Verkauf.
Der Report befindet sich im Formular-Verzeichnis "Formular\Auftrag".
Der Report verwendet als Basis für den Kopf- und Fuss-Bereich den Basis-Report "BasisReport_01.fr3". Dieser muss im Verzeichnis "Formular" liegen.
Das Desgin des Reports kann über Auftragskennzeichen gesteuert werden. Folgende Kennzeichen werden verwendet:
Kennzeichen | Parameter-Text | Mögliche Werte | Auswirkung |
---|---|---|---|
<AuftragsKopf."KENNZ1"> | Einzelpreise | Ja, Nein, Leer | Bei Nein werden die Einzelpreise unterdrückt, bei allen anderen Werten werden die Einzelpreise gedruckt. |
<AuftragsKopf."KENNZ2"> | Logo drucken | Ja, Nein, Leer | Bei Nein wird das Logo unterdrückt, bei allen anderen Werten wird das Logo gedruckt. |
<AuftragsKopf."KENNZ3"> | Rabatt drucken | Ja, Nein, Leer | Bei Nein wird der Rabatt in den Positionen und im Fuss unterdrückt, bei allen anderen Werten wird er gedruckt. |
<AuftragsKopf."KENNZ4"> | Bezeichn.drucken | Ja, Nein, Leer | Bei Nein wird die Artikel-Bezeichnung in den Positionen, bei allen anderen Werten wird sie gedruckt. |
<AuftragsKopf."KENNZ5"> | Kapitelpreise drucken | Ja, Nein, Leer | Bei Nein werden die Kapitel-Preise in den Positionen unterdrückt, bei allen anderen Werten werden sie gedruckt. |
- Hinweis: "Gedruckt" heißt natürlich auch angezeigt, exportiert usw.
Siehe auch:
2 Vorschau
In der Vorschau sieht das Formular so aus:
3 Bereiche
3.1
Seitenkopf, Seitenfuss
Diese Bereiche kommen aus dem Basis-Report. Änderungen sollten immer im Basis-Report vorgenommen werden, weil diese sich auf alle anderen Reports auswirken, die den Basis-Report verwenden.
3.1.1 Der Bereich
3.1.2 Code dazu
Im Ereignis OnBeforePrint des Bild-Objektes 'pictureBasisKopf wird das Logo ausgeschaltet, wenn das Auftragskennzeichen 1 auf "Nein" steht:
procedure pictureBasisKopfLogoOnBeforePrint_inherited(Sender: TfrxComponent); begin if <AuftragsKopf."KENNZ1"> = 'Nein' then pictureBasisKopfLogo.Visible := False; end;
Hinweis: Das "_inherited" ("ererbt") im Prozedur-Namen kommt daher, weil das Objekt ursprünglich aus dem Basis-Report kommt.
Siehe auch: FastReport: Steuerung des Report mit Auftragskennzeichen.
3.2
Kunden-Adresse
Die Kunden-Adresse incl. Ansprechpartner liegt im BasisSeitenkopfChild aus dem Basis-Report.
Man kann also auch Felde in einen Bereich legen, der eigentlich nicht zum eigentlichen Report gehört. Die sind dort aber nur in dem Haupt-Report, nicht im Basis-Report!
Die Felder haben die Eigenschaften (rechte Maustaste und Option wählen)
- Dehnen: Das Feld wird automatisch an die Höhe des Inhalts angepasst.
- Verschieben wenn Überlappung: Das Feld wir nach unten verschoben, wenn sich ein Feld darüber ausdehnt.
- Hinweis
- Das Ansprechpartnerfeld wird derzeit vorausgesetzt! Es ist noch kein Mechanismus eingebaut, der die unteren Felder nach oben schiebt, wenn es keinen Ansprechpartner gibt. Die Schwierigkeit ist, dass die Felder die Option Verschieben wenn Überlappung haben, damit sie sich nach unten verschieben, wenn der Firmenname mehrzeilig ist. Dadurch verwaltet der Report die Positionen automatisch, ein Code, der die Position manuell anpasst
(z.B. if <Ansprechpartner."Briefanrede"> = then AuftragsKopfStr.Top := AnsprechpartnerBriefanrede.Top;
) hat dadurch keine Wirkung!
3.3 Der Auftagskopf
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.
3.3.1
Erste Seite: Formular-Titel, Datum, Seiten-Nummer
Der Bereich MasterAuftragskopf beinhaltet den Formulartitel und die Seitennummer für die erste Seite. (Die Schrift ist etwas größer als der Titel für die Folgeseiten)
Das Feld für den Formular-Titel hat folgenden Inhalt:
[Titel] Nr. [AuftragsKopf."AuftrNr"].[AuftrStatistik."AuftrVersion"] 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"].[AuftrStatistik."AuftrVersion"]
|
Hier wird die Auftragsnummer ausgegeben, gefolgt von einem Punkt und der Versionsnummer des Auftrags.
|
[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"].[AuftrStatistik."AuftrVersion"] vom [AuftragsKopf."DruckDat"] |
- Hinweis
- Der Titel für die Folgeseiten wird über den Header der Positionen HeaderPositionen ausgegeben.
3.3.2
Ab zweiter Seite: Formular-Titel, Datum, Seiten-Nummer
Der Titel für die Seiten 2 - Ende wird über den Header der Positionen HeaderPositionen ausgegeben.
Damit dieser Bereich auf der ersten 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;