FastReport 6: Unterschied zwischen den Versionen

Aus Vosp.freesn.de
Zur Navigation springen Zur Suche springen
V (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
F (Diskussion | Beiträge)
 
(22 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:


'''Einfaches IF:'''
 
= Fast Report 6=
 
== Anweisungen ==
 
=== IF ELSE:===
'''Im Memo'''
<source lang=bash>  
<source lang=bash>  
[IIF(<KOPF_Fuss."LIEFERTERMIN">= 0,'', 'Lieferdatum:')]  [IIF(<Kopf_Fuss."LIEFERTERMIN">= 0,  ' ', <Kopf_Fuss."LIEFERTERMIN">)]
[IIF(<KOPF_Fuss."LIEFERTERMIN">= 0,'_if_', '_else_')]  [IIF(<Kopf_Fuss."LIEFERTERMIN">= 0,  ' ', <Kopf_Fuss."LIEFERTERMIN">)]
</source>
</source>
'''Einfaches TRim:'''
'''Pascal Script'''
<source lang=bash>
if( <Kopf_Fuss."ZAHLART">='VK' ) then
  begin
      AncMemoSpecialInfo.Text :=  '';
      AncMemoSpecialInfo.Visible := False;
  end
else
  begin
      AncMemoSpecialInfo.Visible := True;
      AncMemoSpecialInfo.Text := 'Text ';
  end;
</source>
 
=== Case ===
 
<source lang="pascal">
case <Kopf_Fuss."BELEGART"> of
  '0100':
      begin
        Zahl.visible := True
      end;
  '0200':
      begin
        Zahl.visible := True
      end;
  '0400':
      begin
        Zahl.visible := True
      end;
  else
      begin
        Zahl.visible := FALSE;
      end;
</source>
 
===Trim:===
<source lang=bash>  
<source lang=bash>  
[TRIM(<Kopf_Fuss."KOPFTEXT">)]
[TRIM(<Kopf_Fuss."KOPFTEXT">)]
</source>
</source>
===Leerzeilen unterdrücken:===
<source lang=bash>
[vLeerzeilenUnterdruecken(<Lieferanschrift."AUSGABE">)]
</source>
== Funktionen ==
'''Hier Soll Ein Element Prozedural versteckt werden, normalerweise ist das ja nicht nötig '''
Es Muss ein MasterData Band existieren und das Child
ancAncMasterData1HideIfNoData
Im Child Ereignisse
OnBeforePrint: ancAncMasterData1HideIfNoData 
=== Zeige nicht bei 0 Datensätzen ===
<source lang=pascal>
procedure ancAncMasterData1HideIfNoData(Sender: TfrxComponent);
begin
  if AncMasterData1.RowCount = 0 then
  begin
  Engine.ShowBand(AncHeaderDatenNichtVersendet);
  AncHeaderDatenNichtVersendet.Visible := True;
  end;
end;
</source>
=== String mit Datum verknüfen und anzeiogen ===
<source lang=pascal>
procedure FixdatumOnBeforePrint(Sender: TfrxComponent);
begin
        if  <qrBEK."FIXDATUM"> > 0 then
            Fixdatum.Text := 'Fixtermin: '+ FormatDateTime(  'd-mmm-yyyy' ,  <qrBEK."FIXDATUM"> )  +'!'         
        else
            Fixdatum.Text :=''; 
end;
</source>
'''vs. als Memo'''
<source lang=pascal>
[IIF(<qrBEK."FIXDATUM"> >0,  'Fixtermin: '+ FormatDateTime( 'd-mmm-yyyy' ,<qrBEK."FIXDATUM">)+'!','' )]
</source>
=== Zeige nur auf der ersten Seite ===
<source lang=pascal>
procedure Memo67OnBeforePrint(Sender: TfrxComponent);
begin
  // Zeige nur auf der ersten Seite                                                                             
  if <Page#> > 1 then
    begin
      Memo67.Visible := False
    end
  else
    begin
      Memo67.Visible := True
    end             
end;
</source>
== Datenband mit Liste, Gruppierung und Überschrift ==
Über dem Datenbankband wird ein Gruppenkopfband angelegt mit dem Gruppienwechsel bei Datenfeld.
Darüber kommt der Kopf.
== Probleme Bei der Übernahme von firebird 2.5 auf 3 Querys==
===  Zero length identifiers are not allowed ===
<source lang=sql>
select
  bek.id bek_id,
  bek.belegnr,
  iif(coalesce(adr.kurzname, "") <> "", adr.kurzname, adr.name1) kurzname,
</source>
'''Quotes müssen einfach sein:'''
<source lang=sql>
select
  bek.id bek_id,
  bek.belegnr,
  iif(coalesce(adr.kurzname, '') <> '', adr.kurzname, adr.name1) kurzname,
</source>
== Probleme Bei der Vererbung ==
=== Folgende(r) Fehler trat(en) auf: Unbekannte Variable oder Datenfeld: seite ===
Im Band unter Page/Ereignisse die verknüpfte Funktion OnBeforePrint (oder andere) geht ins leere oder auf jeden fall nicht auf den Code der gewünscht ist (und z.b. Variablen wurden nicht gesetzt)

Aktuelle Version vom 29. Oktober 2019, 16:44 Uhr


Fast Report 6

Anweisungen

IF ELSE:

Im Memo

 
[IIF(<KOPF_Fuss."LIEFERTERMIN">= 0,'_if_', '_else_')]   [IIF(<Kopf_Fuss."LIEFERTERMIN">= 0,  ' ', <Kopf_Fuss."LIEFERTERMIN">)]

Pascal Script

 
if( <Kopf_Fuss."ZAHLART">='VK' ) then
   begin
      AncMemoSpecialInfo.Text :=  '';
      AncMemoSpecialInfo.Visible := False;
   end
else
   begin
      AncMemoSpecialInfo.Visible := True;
      AncMemoSpecialInfo.Text := 'Text ';
   end;

Case

case <Kopf_Fuss."BELEGART"> of
  '0100':
      begin
         Zahl.visible := True
      end;
  '0200':
      begin
         Zahl.visible := True
      end;
  '0400':
      begin
         Zahl.visible := True
      end;
   else
      begin
         Zahl.visible := FALSE;
      end;

Trim:

 
[TRIM(<Kopf_Fuss."KOPFTEXT">)]

Leerzeilen unterdrücken:

 
[vLeerzeilenUnterdruecken(<Lieferanschrift."AUSGABE">)]

Funktionen

Hier Soll Ein Element Prozedural versteckt werden, normalerweise ist das ja nicht nötig

Es Muss ein MasterData Band existieren und das Child

ancAncMasterData1HideIfNoData

Im Child Ereignisse

OnBeforePrint: ancAncMasterData1HideIfNoData  

Zeige nicht bei 0 Datensätzen

 
procedure ancAncMasterData1HideIfNoData(Sender: TfrxComponent);
begin
  if AncMasterData1.RowCount = 0 then
  begin
   Engine.ShowBand(AncHeaderDatenNichtVersendet);
   AncHeaderDatenNichtVersendet.Visible := True;
  end;
end;

String mit Datum verknüfen und anzeiogen

 
procedure FixdatumOnBeforePrint(Sender: TfrxComponent);
begin
         if  <qrBEK."FIXDATUM"> > 0 then
            Fixdatum.Text := 'Fixtermin: '+ FormatDateTime(  'd-mmm-yyyy' ,  <qrBEK."FIXDATUM"> )   +'!'           
         else
            Fixdatum.Text :='';  
end;

vs. als Memo

 
[IIF(<qrBEK."FIXDATUM"> >0,  'Fixtermin: '+ FormatDateTime( 'd-mmm-yyyy' ,<qrBEK."FIXDATUM">)+'!','' )]

Zeige nur auf der ersten Seite

 
procedure Memo67OnBeforePrint(Sender: TfrxComponent);
begin
  // Zeige nur auf der ersten Seite                                                                              
  if <Page#> > 1 then
    begin
       Memo67.Visible := False
    end
  else
    begin
       Memo67.Visible := True
    end              
end;

Datenband mit Liste, Gruppierung und Überschrift

Über dem Datenbankband wird ein Gruppenkopfband angelegt mit dem Gruppienwechsel bei Datenfeld. Darüber kommt der Kopf.


Probleme Bei der Übernahme von firebird 2.5 auf 3 Querys

Zero length identifiers are not allowed

 
select 
  bek.id bek_id,
  bek.belegnr,
  iif(coalesce(adr.kurzname, "") <> "", adr.kurzname, adr.name1) kurzname,

Quotes müssen einfach sein:

 
select 
  bek.id bek_id,
  bek.belegnr,
  iif(coalesce(adr.kurzname, '') <> '', adr.kurzname, adr.name1) kurzname,


Probleme Bei der Vererbung

Folgende(r) Fehler trat(en) auf: Unbekannte Variable oder Datenfeld: seite

Im Band unter Page/Ereignisse die verknüpfte Funktion OnBeforePrint (oder andere) geht ins leere oder auf jeden fall nicht auf den Code der gewünscht ist (und z.b. Variablen wurden nicht gesetzt)