REFLEX Angebot/Auftrag Styles Code
Aus GEVITAS
1 Allgemeines
Hier finden Sie den Programm-Code, der in den Standard-Style-Reports für Angebot/Auftrag verwendet wird.
2 Code
procedure MasterDataAnschriftOnBeforePrint(Sender: TfrxComponent);
begin
// Dies ist der erste Bereich des Reports, der gedruckt wird (außer dem PagerHeader des Basis-Reports).
// Hier kann man generelle Einstellungen des Reports vornehmen.
// Anschriftenfeld zusammenstellen:
memoAnschrift.Lines.Clear;
memoAnschrift.Lines.Add( <AuftragsKopf."NameFirma"> );
if <Ansprechpartner."Briefanrede"> > then
memoAnschrift.Lines.Add( <Ansprechpartner."Briefanrede"> );
memoAnschrift.Lines.Add( <AuftragsKopf."Str"> );
memoAnschrift.Lines.Add( <AuftragsKopf."PLZ"> + ' ' + <AuftragsKopf."Ort"> );
memoAnschrift.Lines.Add( UpperCase( <Adresse."Landname"> ) );
// Kennzeichen 3 = Rabatt im Fuss Ja/Nein
if <AuftragsKopf."KENNZ3"> = 'Nein' then
ChildMaterialRabatt.Visible := False;
// Kennzeichen 5 = Kapitelpreise Ja/Nein
if <AuftragsKopf."KENNZ5"> = 'Nein' then
begin
memoKapitelBetrag.Visible := False;
GroupFooterKapitel.Visible := False;
end;
// Kapitel-Summe im Fuss:
if <AuftragsKopf."KENNZ7"> = 'Nein' then
GroupFooterKapitel.Visible := False;
// Bänder nur für ANGEBOT (bzw. ANFRAGE):
if <AuftragsKopf."StatusNr"> in [3,7,103,107] then // ANGEBOT, ANFRAGE, ANGEBOT im Archiv, ANFRAGE im Archiv
begin
// Angebots-Text im Fuß:
ChildAngebotAuftragserteilung.Visible := True;
// Wenn keine Arbeitszeit im Auftrag: Band unterdrücken:
MasterDataArbeitszeitAng.Visible := <AuftragsFuss."SummeArbzeit"> > 0;
end
else
begin
// Wenn kein Angebot, müssen diese Bereiche IMMER ausgeblendet werden:
ChildAngebotAuftragserteilung.Visible := False;
MasterDataArbeitszeitAng.Visible := False;
end;
end;
procedure pictureBasisKopfLogoOnBeforePrint_inherited(Sender: TfrxComponent);
begin
if <AuftragsKopf."KENNZ1"> = 'Nein' then
pictureBasisKopfLogo.Visible := False;
end;
procedure MemoNummerOnBeforePrint(Sender: TfrxComponent);
begin
MemoAuftrNrTitelHeaderPositionen.Visible := True;
end;
procedure HeaderSeitenNummerOnBeforePrint(Sender: TfrxComponent);
begin
// Seitennummer auf der ersten Seite unterdrücken:
if <Page>=1 then
HeaderSeitenNummer.Visible := False
else
HeaderSeitenNummer.Visible := True;
end;
procedure MasterDataVARaumOnBeforePrint(Sender: TfrxComponent);
begin
// Wenn beide Felder leer sind: Ausblenden!
if ( <AuftragsKopf."VA-OrtKurzname"> = ) and ( <AuftragsKopf."VA-Raum"> = ) then
MasterDataVARaum.Visible := False;
end;
procedure MasterDataStandardTextKopfOnBeforePrint(Sender: TfrxComponent);
begin
if <StandardTextKopf."StandardText"> = then
MasterDataStandardTextKopf.Visible:= False
else
MasterDataStandardTextKopf.Visible:= True;
end;
procedure MasterDataKopftextOnBeforePrint(Sender: TfrxComponent);
begin
if <AuftragsKopf."Kopftext"> = then
MasterDataKopftext.Visible:= False
else
MasterDataKopftext.Visible:= True;
end;
procedure MasterDataKopfMieteOnBeforePrint(Sender: TfrxComponent);
begin
if <AuftragsKopf."Bereich_1Verkauf_2Miete_3Mietverkauf"> <> 2 then
MasterDataKopfMiete.Visible := False
else
begin
MasterDataKopfMiete.Visible := True;
// Bei Miete Datumsfelder im Kopf nur sichtbar, wenn Text drin steht:
if <AuftragsKopf."AufbauText"> = then
begin
AuftragsKopfAufbauDatum.Visible := False;
AuftragsKopfAufbauText.Visible := False;
AuftragsKopfAufbauZeit.Visible := False;
end;
if <AuftragsKopf."AbbauText"> = then
begin
AuftragsKopfAbbauDatum.Visible := False;
AuftragsKopfAbbauText.Visible := False;
AuftragsKopfAbbauZeit.Visible := False;
end;
if <AuftragsKopf."ProbeText"> = then
begin
AuftragsKopfProbeDatum.Visible := False;
AuftragsKopfProbeText.Visible := False;
AuftragsKopfProbeZeit.Visible := False;
end;
end;
end;
procedure MasterDataKopfVerkaufOnBeforePrint(Sender: TfrxComponent);
begin
if <AuftragsKopf."Bereich_1Verkauf_2Miete_3Mietverkauf"> = 2 then
MasterDataKopfVerkauf.Visible := False
else
MasterDataKopfVerkauf.Visible := True;
end;
// Positionen:
procedure ChildDetailPositionenOnBeforePrint(Sender: TfrxComponent);
begin
if ( <Positionen."TextPosition"> = ) or ( <AuftragsKopf."KENNZ8"> = 'Nein' ) then
ChildDetailPositionen.Visible := False
else
ChildDetailPositionen.Visible := True;
end;
procedure MemoTitelHeaderPositionenOnBeforePrint(Sender: TfrxComponent);
begin
// Auf der 1. Seite unterdrücken:
if <Page> = 1 then
HeaderSeitenNummer.Visible := False
else
HeaderSeitenNummer.Visible := True;
end;
procedure GroupHeaderKapitelOnBeforePrint(Sender: TfrxComponent);
begin
// Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird.
// Wenn das Kennzeichen "Seitenwechsel Vorher" gesetzt ist:
if <Positionen."Seitenwechsel_0Nein_1Vorher_2Nachher"> = 1 then
Engine.NewPage; // Neue Seite, Seitenkopf usw. drucken
end;
procedure ChildGroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
// Unterdrücken, wenn kein Zusatztext vorhanden ist:
if <Positionen."TextPosition"> = then
ChildGroupHeader1.Visible := False
else
ChildGroupHeader1.Visible := True;
end;
procedure DetailPositionenOnBeforePrint(Sender: TfrxComponent);
begin
// Dieser Code wird ausgeführt, BEVOR das Positionen-Detail-Band
// ausgegeben wird.
// Grundeinstellung: Erst mal alles einschalten, unten u.U. wieder aus:
MemHeaderEinzPreis.Visible := True;
memoHeaderRabattTitel.Visible := True;
memoHeaderGesPreis.Visible := True;
memoPositionenRabattProz.Visible := True;
memoPosEinzelPreis.Visible := True;
memoPosGesBetrag.Visible := True;
// Derzeit unbenutzt: AuftrStatistikSummeRabatt.Visible:= True;
// Kennzeichen 4 = Einzelpreise sichtbar Ja/Nein:
if <AuftragsKopf."KENNZ4"> = 'Nein' then
begin
MemHeaderEinzPreis.Visible := False;
memoHeaderRabattTitel.Visible := False;
memoHeaderGesPreis.Visible := False;
end;
// Wenn der Gesamtpreis 0 ist, den Einzelpreis unterdrücken:
// (z.B. bei 100 % Rabatt)
if <Positionen."GesBetrag"> = 0 then
begin
memoPosEinzelPreis.Visible := False;
memoPositionenRabattProz.Visible := False;
end;
// Titel "Rabatt" in Überschrift unterdrücken, wenn keine
// Rabatt-Postion vorhanden ist.
// (Hinweis: Hinter diesem Feld liegt ein leeres Textfeld, das den Rahmen anzeigt, wenn dieses Feld unsichtbar ist!)
if <AuftrStatistik."AnzahlRabattPos"> = 0 then
memoHeaderRabattTitel.Visible := False;
// Kennzeichen 2 = Rabatt Ja/Nein
if <AuftragsKopf."KENNZ2"> = 'Nein' then
begin
memoHeaderRabattTitel.Visible := False;
memoPositionenRabattProz.Visible := False;
// Derzeit unbenutzt: AuftrStatistikSummeRabatt.Visible := False;
end;
// Kapitel-Position ausblenden:
// Kennzeichen "Nur Kapitel" = 'Ja': Positionen unterdrücken:
if ( <Positionen."PosNr"> = 0 )
or ( <AuftragsKopf."KENNZ6"> = 'Ja' ) then
begin
DetailPositionen.Visible := False;
end
else
DetailPositionen.Visible := True;
// Rabatt % unterdrücken, wenn's keinen Rabatt-Betrag gibt:
if <Positionen."RabattBetrag"> = 0 then
memoPositionenRabattProz.Visible := False;
// Einzelpreise sichtbar abhängig vom Kennzeichen 4:
if <AuftragsKopf."KENNZ4"> = 'Nein' then
begin
memoPosEinzelPreis.Visible := False;
memoPositionenRabattProz.Visible := False;
memoPosGesBetrag.Visible := False;
end;
// Bei Mietartikeln den Mietpreisfaktor anzeigen,
// bei Arbeitszeit die Stunden/Tage:
PositionenMietFaktor.Visible := False;
PositionenStundenSoll_BeiArbZeit.Visible := False;
if <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> = 1 then
begin
PositionenMietFaktor.Visible := True;
end;
if <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> = 4 then
begin
PositionenStundenSoll_BeiArbZeit.Visible := True;
end;
// Alternativ-Position kennzeichnen:
// 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
begin
memoPosGesBetrag.Font.Color := clGray; // clWindowFrame;
MemoAlternativStern.Visible := True;
end
else
begin
MemoAlternativStern.Visible := False;
memoPosGesBetrag.Font.Color := clBlack; // clWindowText;
end;
// Wenn das Kennzeichen "Seitenwechsel Vorher" gesetzt ist:
if <Positionen."PosNr"> > 0 then // NICHT bei Kapitel-Position, das wird da schon gemacht!
if <Positionen."Seitenwechsel_0Nein_1Vorher_2Nachher"> = 1 then
Engine.NewPage; // Neue Seite, Seitenkopf usw. drucken
end;
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;
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;
// FUSS:
procedure FussPositionenOnBeforePrint(Sender: TfrxComponent);
begin
// Kennzeichen 2 = Rabatt Ja/Nein
if <AuftragsKopf."KENNZ2"> = 'Nein' then
begin
// Derzeit unbenutzt: AuftrStatistikSummeRabatt.Visible:= False;
MemoFooterGespreis.Visible:= False;
end;
// Ohne Mwst.: Mwst-Felder unterdrücken:
if <AuftragsFuss."MwstBetrag"> = 0 then
begin
AuftragsFussMwstBetrag.Visible:= False;
AuftragsFussMwstSatzProzent.Visible:= False;
memoFussGesamtbetragText.Visible:= False;
AuftragsFussGesamtBetragBrutto.Visible:= False;
end;
// Rabatt % berechnen:
if ( <AuftragsFuss."KalkSummeGesamt"> > 0 ) then
Set( 'FussRabattProzent', 100 - ( (<AuftragsFuss."SummeMiete"> + <AuftragsFuss."SummeVerkauf"> ) / <AuftragsFuss."KalkSummeGesamt"> * 100 ) )
else
Set( 'FussRabattProzent',0);
end;
procedure AuftrStatistikAnzahlAlternativPosOnBeforePrint(Sender: TfrxComponent);
begin
// Hinweis aus Alternativ-Positionen:
if <AuftrStatistik."AnzahlAlternativPos"> = 0 then
AuftrStatistikAnzahlAlternativPos.Visible := False
else
AuftrStatistikAnzahlAlternativPos.Visible := True;
end;
begin
end.