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.
