FastReport Tipp Top-Position im Code: Unterschied zwischen den Versionen
K  | 
				|||
| Zeile 3: | Zeile 3: | ||
In diesem Artikel wird ein beschrieben, wie man im Fuss eines Bestellung Felder nach oben schieben kann, wenn die "Zeile" darüber ausgeschaltet wurde.  | In diesem Artikel wird ein beschrieben, wie man im Fuss eines Bestellung Felder nach oben schieben kann, wenn die "Zeile" darüber ausgeschaltet wurde.  | ||
| − | == Beispiel ==  | + | == Beispiel 1 ==  | 
In einem Report für eine Bestellung gibt es im Fuss rechts die Felder für die Netto-Summe, die Mehrwertsteuer-Zeilen und den Brutto-Betrag:  | In einem Report für eine Bestellung gibt es im Fuss rechts die Felder für die Netto-Summe, die Mehrwertsteuer-Zeilen und den Brutto-Betrag:  | ||
| Zeile 13: | Zeile 13: | ||
| − | == Die Vorgaben ==  | + | === Die Vorgaben ===  | 
Es soll folgendes passieren:  | Es soll folgendes passieren:  | ||
| Zeile 21: | Zeile 21: | ||
* Wenn es '''gar keine''' Mehrwertsteuer-Beträge gibt, sollen nur die Netto-Zeile angezeigt werden.  | * Wenn es '''gar keine''' Mehrwertsteuer-Beträge gibt, sollen nur die Netto-Zeile angezeigt werden.  | ||
| − | == Der Code ==  | + | === Der Code ===  | 
Im Ereignis '''FussPositionen⇒OnBeforePrint'''  | Im Ereignis '''FussPositionen⇒OnBeforePrint'''  | ||
| Zeile 101: | Zeile 101: | ||
...blendet die Zeile mit dem '''Brutto-Betrag aus''', wenn es weder '''Mehrwertsteuer-Betrag 1''' noch '''Mehrwertsteuer-Betrag 2''' gibt.  | ...blendet die Zeile mit dem '''Brutto-Betrag aus''', wenn es weder '''Mehrwertsteuer-Betrag 1''' noch '''Mehrwertsteuer-Betrag 2''' gibt.  | ||
| + | |||
| + | |||
| + | == 2. Beispiel ==  | ||
| + | |||
| + | In den Auftragspositonen soll die Überschrift "Alternativ:" über der Positions-Bezeichnung stehen (wenn's alternativ ist):  | ||
| + | |||
| + |  Alternativ:  | ||
| + |  Artikelbeispielbezeichnung                    100,00 usw.  | ||
| + | |||
| + | |||
| + |  <nowiki>  // Alternativ-Positionen farbig kennzeichnen:</nowiki>  | ||
| + |  <nowiki>  if <Positionen."Alternativ_0_1"> = 1 then</nowiki>  | ||
| + |  <nowiki>  begin</nowiki>  | ||
| + |  <nowiki>    // Alternativ-Position: Ges.Betrag farbig:    </nowiki>  | ||
| + |  <nowiki>    memoPosGesBetrag.Font.Color := clHighlight;</nowiki>  | ||
| + |  <nowiki> </nowiki>  | ||
| + |  <nowiki>    // Textfeld "Alternativ" (Überschrift) sichtbar:</nowiki>  | ||
| + |  <nowiki>    memoAlternativCaption.Visible := True;</nowiki>  | ||
| + |  <nowiki> </nowiki>  | ||
| + |  <nowiki>    // Felder um 0.5 cm nach unten verschieben, weil die Überschrift jetzt da ist:</nowiki>  | ||
| + |  <nowiki>    memoPosMenge.Top := 0.5 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    RichPosText.Top := 0.5 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosEinzelPreis.Top := 0.5 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosFaktor.Top := 0.5 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosRabattProzent.Top := 0.5 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosGesBetrag.Top := 0.5 * fr1cm;</nowiki>  | ||
| + |  <nowiki> </nowiki>  | ||
| + |  <nowiki>  end</nowiki>  | ||
| + |  <nowiki>  else</nowiki>  | ||
| + |  <nowiki>  begin</nowiki>  | ||
| + |  <nowiki>    // Normale Position: Ges.Betrag schwarz, Textfeld "Alternativ" unsichtbar:</nowiki>  | ||
| + |  <nowiki>    memoPosGesBetrag.Font.Color := clWindowText;</nowiki>  | ||
| + |  <nowiki>    memoAlternativCaption.Visible := False;</nowiki>  | ||
| + |  <nowiki> </nowiki>  | ||
| + |  <nowiki>    // Felder ganz oben (in dem Band!) auf 0.5 cm:</nowiki>  | ||
| + |  <nowiki>    memoPosMenge.Top := 0 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    RichPosText.Top := 0 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosEinzelPreis.Top := 0 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosFaktor.Top := 0 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosRabattProzent.Top := 0 * fr1cm;</nowiki>  | ||
| + |  <nowiki>    memoPosGesBetrag.Top := 0 * fr1cm;</nowiki>  | ||
| + |  <nowiki>  end;</nowiki>  | ||
| + | |||
| + | |||
| + | |||
== Links ==  | == Links ==  | ||
Aktuelle Version vom 24. Januar 2019, 11:35 Uhr
Inhaltsverzeichnis
1 Allgemeines
In diesem Artikel wird ein beschrieben, wie man im Fuss eines Bestellung Felder nach oben schieben kann, wenn die "Zeile" darüber ausgeschaltet wurde.
2 Beispiel 1
In einem Report für eine Bestellung gibt es im Fuss rechts die Felder für die Netto-Summe, die Mehrwertsteuer-Zeilen und den Brutto-Betrag:
Wir bezeichnen die Felder als "Zeilen". Wie in anderen Report-Generatoren gibt es in FastReport allerdings keine wirklichen Zeilen, wie in einem Text-Editor wie z.B. Microsoft Word©. Die Felder können ja millimetergenau positioniert werden. Die Verwendung des Begriffs "Zeilen" veranschaulicht aber besser, was gemeint ist.
2.1 Die Vorgaben
Es soll folgendes passieren:
- Wenn es alle beiden Mehrwertsteuer-Beträge gibt, sollen alle "Zeilen" angezeigt werden (in Anführungszeichen, weil es ja keine Zeilen im Sinne eines Texteditors gibt).
 - Wenn es nur die erste Mehrwertsteuer gibt, soll die zweite Zeile unterdrückt werden und die Brutto-Zeile nach oben "rutschen".
 - Wenn es gar keine Mehrwertsteuer-Beträge gibt, sollen nur die Netto-Zeile angezeigt werden.
 
2.2 Der Code
Im Ereignis FussPositionen⇒OnBeforePrint
muss man dazu folgenden Code eingeben:
 
procedure FussPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Ohne Mwst. 1: Felder unterdrücken:
  if <BestellFuss."MwstBetrag1"> <= 0 then
  begin
    // Mwst 1 ist 0, also Zeile ausblenden:
    MemoFussMwstSatz1.Visible := False;
    MemoFussMwstBetrag1.Visible := False;
  end;
  // Ohne Mwst. 2: Felder unterdrücken:
  if <BestellFuss."MwstBetrag2"> <= 0 then
  begin
    // Mwst 2 ist 0, also Zeile ausblenden:
    MemoFussMwstSatz2.Visible := False;
    MemoFussMwstBetrag2.Visible := False;
    // Die Brutto-Summenzeile dahin setzen, wo die Mwst2 steht:
    memoFussGesamtbetragText.Top := MemoFussMwstSatz2.Top;
    memoFussGesamtBetragBrutto.Top := MemoFussMwstSatz2.Top;
  end;
  // Wenn es GAR KEINE Mwst. gibt: Brutto-Zeile ausblenden:
  if ( <BestellFuss."MwstBetrag1"> <= 0 ) and ( <BestellFuss."MwstBetrag2"> <= 0 ) then
  begin
    memoFussGesamtbetragText.Visible := False;
    memoFussGesamtBetragBrutto.Visible := False;
  end;
end;
Im Einzelnen:
Dieser Code...
  if <BestellFuss."MwstBetrag1"> <= 0 then
  begin
    // Mwst 1 ist 0, also Zeile ausblenden:
    MemoFussMwstSatz1.Visible := False;
    MemoFussMwstBetrag1.Visible := False;
  end;
...blendet die Zeile mit den Mehrwertsteuer-Feldern 1 aus, wenn es keinen Mehrwertsteuer-Betrag 1 gibt.
Dieser Code...
  if <BestellFuss."MwstBetrag2"> <= 0 then
  begin
    // Mwst 2 ist 0, also Zeile ausblenden:
    MemoFussMwstSatz2.Visible := False;
    MemoFussMwstBetrag2.Visible := False;
    // Die Brutto-Summenzeile dahin setzen, wo die Mwst2 steht:
    memoFussGesamtbetragText.Top := MemoFussMwstSatz2.Top;
    memoFussGesamtBetragBrutto.Top := MemoFussMwstSatz2.Top;
  end;
...blendet die Zeile mit den Mehrwertsteuer-Feldern 2 aus, wenn es keinen Mehrwertsteuer-Betrag 2 gibt.
Zusätzlich wird die Zeile mit dem Brutto-Betrag nach oben verschoben, und zwar auf die Position, an der die Mehrwertsteuer-Felder 2 stehen. Dazu wird die Eigenschaft Top der Felder auf die Top-Eigenschaft der Mehrwertsteuer-Felder 2 gesetzt. Die Felder werden also nach oben versetzt, und zwar auf die Top-Position, auf der die (ausgeblendeten) Mehrwertsteuer-Felder 2 stehen!
Dieser Code...
  // Wenn es GAR KEINE Mwst. gibt: Brutto-Zeile ausblenden:
  if ( <BestellFuss."MwstBetrag1"> <= 0 ) and ( <BestellFuss."MwstBetrag2"> <= 0 ) then
  begin
    memoFussGesamtbetragText.Visible := False;
    memoFussGesamtBetragBrutto.Visible := False;
  end;
...blendet die Zeile mit dem Brutto-Betrag aus, wenn es weder Mehrwertsteuer-Betrag 1 noch Mehrwertsteuer-Betrag 2 gibt.
3 2. Beispiel
In den Auftragspositonen soll die Überschrift "Alternativ:" über der Positions-Bezeichnung stehen (wenn's alternativ ist):
Alternativ: Artikelbeispielbezeichnung 100,00 usw.
  // Alternativ-Positionen farbig kennzeichnen:
  if <Positionen."Alternativ_0_1"> = 1 then
  begin
    // Alternativ-Position: Ges.Betrag farbig:    
    memoPosGesBetrag.Font.Color := clHighlight;
 
    // Textfeld "Alternativ" (Überschrift) sichtbar:
    memoAlternativCaption.Visible := True;
 
    // Felder um 0.5 cm nach unten verschieben, weil die Überschrift jetzt da ist:
    memoPosMenge.Top := 0.5 * fr1cm;
    RichPosText.Top := 0.5 * fr1cm;
    memoPosEinzelPreis.Top := 0.5 * fr1cm;
    memoPosFaktor.Top := 0.5 * fr1cm;
    memoPosRabattProzent.Top := 0.5 * fr1cm;
    memoPosGesBetrag.Top := 0.5 * fr1cm;
 
  end
  else
  begin
    // Normale Position: Ges.Betrag schwarz, Textfeld "Alternativ" unsichtbar:
    memoPosGesBetrag.Font.Color := clWindowText;
    memoAlternativCaption.Visible := False;
 
    // Felder ganz oben (in dem Band!) auf 0.5 cm:
    memoPosMenge.Top := 0 * fr1cm;
    RichPosText.Top := 0 * fr1cm;
    memoPosEinzelPreis.Top := 0 * fr1cm;
    memoPosFaktor.Top := 0 * fr1cm;
    memoPosRabattProzent.Top := 0 * fr1cm;
    memoPosGesBetrag.Top := 0 * fr1cm;
  end;

