FastReport 6: Unterschied zwischen den Versionen
Aus Vosp.info
V (Diskussion | Beiträge) |
F (Diskussion | Beiträge) (→Folgende(r) Fehler trat(en) auf: Unbekannte Variable oder Datenfeld: seite) |
||
(19 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
=== IF ELSE:=== | === IF ELSE:=== | ||
+ | '''Im Memo''' | ||
<source lang=bash> | <source lang=bash> | ||
− | [IIF(<KOPF_Fuss."LIEFERTERMIN">= 0,'', ' | + | [IIF(<KOPF_Fuss."LIEFERTERMIN">= 0,'_if_', '_else_')] [IIF(<Kopf_Fuss."LIEFERTERMIN">= 0, ' ', <Kopf_Fuss."LIEFERTERMIN">)] |
+ | </source> | ||
+ | '''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> | </source> | ||
Zeile 14: | Zeile 50: | ||
[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
Inhaltsverzeichnis
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)