Zgradba izpisa
In diesem Thema werden wir einige Beispiele für die Verwendung betrachten GetFormValue Funktion.
Wert des Objekts aus dem PANTHEON-Fenster abrufen
Im ersten Beispiel schreiben wir den Ausdruck, der das Lager auf den ausgestellten Rechnungen zurückgibt, das sich im Programmmenü 'Waren | Ausgestellte Rechnungen Bericht | Ausgestellte Rechnungen/Gewinnmargenbericht' befindet. Der Name des Pantheon-Fensters ist 'PrometObracunIzdRac', der Name des Kontrollkästchens, in dem wir das Lager auswählen, ist 'fWarehouse'.
[GetFormValue('PrometObracunIzdRac.fWarehouse')]
Wert abrufen von PANTHEON Fenster mit Dokument
Die Namen einiger Dokumentfenster setzen sich aus einer Basis und einem Suffix zusammen, das den Dokumenttyp darstellt. Wenn wir den Referenten auf dem Ausstellungsdokument drucken möchten, schreiben wir den Begriff
[GetFormValue('PrometIzdDob3000.fReferentZap')]
Es wird nur im Fall des Dokumenttyps 3000 einen Wert zurückgeben. Um einen Wert für alle Dokumenttypen zurückzugeben, müssen wir diesen Code umschreiben zu
[GetFormValue('PrometIzdDob'+<tbLookPoslDog."acDocType">+'.fReferentZap')]
Wo der Datensatz "tbLookPoslDog" nicht verfügbar ist, können wir den Namen des Fensters aus der Dokumentnummer abrufen. Im Verkaufsauftragsbericht schreiben wir:
[IIF(Copy(<qReportIzpisD."acKeyView">,Pos('-',
<qReportIzpisD."acKeyView">)+4,1) ='-',
GetFormValue('Naroc'+Copy(<qReportIzpisD."acKeyView">,Pos('-',
<qReportIzpisD."acKeyView">)+1,3)+'0.fReferentZap'),
GetFormValue('Naroc'+Copy(<qReportIzpisD."acKeyView">,Pos('-',
<qReportIzpisD."acKeyView">)+1,4)+'.fReferentZap'))]
Beispiel mit Datum
Die Funktion GetFormValue gibt das Datum im yyyy/mm/dd Format zurück. Wir möchten das Datum im dd.mm.yyyy oder d.m.yyyy Format anzeigen.
Das beste Beispiel ist, wenn keine Daten, die Sie im Datensatz benötigen, vorhanden sind, gibt es Benachrichtigungen über ausstehende Verpflichtungen, die im Programm unter 'Finanzen | Berichte | Ausstehende Posten' zu finden sind.
Der folgende Ausdruck gibt das Datum des Status im yyyy/mm/dd Format zurück:
[GetFormValue('GLOutstandingItems.edtDate')]
Der Begriff hat auch den Nachteil, dass, wenn das Datum nicht eingegeben wird, es "1900/01/01" zurückgibt (was in diesem Fall nicht möglich ist).
Wir müssen überprüfen, ob das Datum eingegeben wurde, bevor wir mit der IIF Funktion drucken:
[IIF(GetFormValue('GLOutstandingItems.edtDate')= '1900/01/01','',
GetFormValue(''GLOutstandingItems.edtDate'))]
Wenn wir das Datum im Format dd.mm.yyyyausdrucken möchten, müssen wir die Reihenfolge der Zahlen im Bericht ändern:
[IIF(GetFormValue('GLOutstandingItems.edtDate') ='1900/01/01','',
Copy(GetFormValue('GLOutstandingItems.edtDate'),9,2)+'.'+
Copy(GetFormValue('GLOutstandingItems.edtDate'),6,2)+'.'+
Copy(GetFormValue('GLOutstandingItems.edtDate'),1,4))]
Das Datum im d.m.yyyy Format wird erhalten, indem der Tag des Monats und der Monat in eine Zahl und dann zurück in Text umgewandelt werden:
[IIF(GetFormValue('GLOutstandingItems.edtDate') ='1900/01/01','',
IntToStr(StrToInt(Copy(GetFormValue('GLOutstandingItems.edtDate'),9,2)))
+'.'+IntToStr(StrToInt(Copy(GetFormValue('GLOutstandingItems.edtDate'),6,2)))
+'.'+Copy(GetFormValue('GLOutstandingItems.edtDate'),1,4))]
Beispiel mit nicht-textlichem Objekt
Die GetFormValue Funktion kann auch für Objekte verwendet werden, die keinen Text darstellen. In diesem Fall wird die wichtigste Eigenschaft dieser Funktion zurückgegeben. Der zurückgegebene Wert ist normalerweise nicht für den direkten Druck geeignet, aber wir können ihn im Bericht selbst verwenden. Zum Beispiel wird der Text in dem Fenster bei diesem Wert angezeigt.
Als Beispiel betrachten wir eine Gruppe von Optionsfeldern namens 'grpGroupBy' im Kontokartenbericht für das Beispiel '32D- Kontokarte', die im Programmmenü 'Finanzen | Berichte | Kontokarte' zu finden ist. Der Name des Fensters ist 'GLAccountCard'. Für diesen Objekttyp gibt die Funktion die 'ItemIndex'-Eigenschaft zurück, die bestimmt, welcher Button ausgewählt ist. In unserem Beispiel bestimmt diese Eigenschaft, wie die Daten aggregiert werden sollen, und die Bänder im Bericht werden ausgeblendet. Der von der Funktion zurückgegebene Wert wird in der Variablen 'nGroupBy' gespeichert und dann, abhängig von seinem Wert, blenden wir die Bänder im Bericht aus, in der Prozedur "SubjektFooterOnBeforePrint".
var nGroupBy: Integer;
...
procedure SubjektFooterOnBeforePrint(Sender: TfrxComponent);
begin
if nGroupBy <= 1 then
SubjektFooter.Visible := False;
end;
...
nGroupBy := GetFormValue('GLAccountCard.grpGroupBy');