REFLEX Angebot/Auftrag Styles Code

Aus GEVITAS
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