REFLEX Angebot/Auftrag Styles Code

Aus GEVITAS
Version vom 15. Juli 2016, 10:38 Uhr von Gevitas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Allgemeines == Hier finden Sie den Programm-Code, der in den Standard-Style-Reports für Angebot/Auftrag verwendet wird. == Code == <nowiki> procedur…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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.



3 Links