Зградба изписа
Во оваа тема ќе разгледаме некои примери на употреба GetFormValue функција.
Добијање вредност на објект од PANTHEON прозорец
Во првиот пример ќе напишеме изразот што ја враќа складиштето на издадените фактури што е во програмското мени 'Стоки | Издадени фактури | Издадени фактури/Приходна маржа'. Името на Pantheon прозорецот е 'PrometObracunIzdRac', името на кутијата за проверка во која го селиме складиштето е 'fWarehouse'.
[GetFormValue('PrometObracunIzdRac.fWarehouse')]
Добијање вредност од PANTHEON Прозорец со Документ
Имената на некои документ прозорци се составени од основа и суфикс што го претставува типот на документ. Ако сакаме да го отпечатиме референтот на издавањето, го запишуваме терминот
[GetFormValue('PrometIzdDob3000.fReferentZap')]
Тој ќе врати вредност само во случај на тип на документ 3000. За да врати вредност за сите типови на документи, мора да го препишеме овој код на
[GetFormValue('PrometIzdDob'+<tbLookPoslDog."acDocType">+'.fReferentZap')]
Каде што сетот податоци "tbLookPoslDog" не е достапен, можеме да го добиеме името на прозорецот од бројот на документот. На извештајот за продажни нарачки пишуваме:
[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'))]
Пример со Датум
Функцијата GetFormValue враќа датум во yyyy/mm/dd формат. Сакаме да го прикажеме датумот во dd.mm.yyyy или d.m.yyyy формат.
Најдобриот пример е кога нема податоци што ви се потребни во сетот податоци, има известувања за неплатени обврски што се во програмата во 'Финансии | Извештаи | Неплатени ставки'.
Следниот израз враќа датум на состојбата во yyyy/mm/dd формат:
[GetFormValue('GLOutstandingItems.edtDate')]
Терминот исто така има недостаток што ако датумот не е внесен, враќа "1900/01/01" (што не е можно во овој случај).
Мораме да провериме дали датумот е внесен пред печатење со IIF функцијата:
[IIF(GetFormValue('GLOutstandingItems.edtDate')= '1900/01/01','',
GetFormValue(''GLOutstandingItems.edtDate'))]
Ако сакаме да го отпечатиме датумот во формат dd.mm.yyyy, треба да го промениме редоследот на бројките на извештајот:
[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))]
Датумот во d.m.yyyy форматот се добива со претворање на денот од месецот и месецот во број и потоа назад во текст:
[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))]
Пример со не-текстуален Објект
Функцијата GetFormValue може исто така да се користи за објекти што не претставуваат текст. Во овој случај, најважната карактеристика на оваа функција се враќа. Вратената вредност обично не е погодна за директно печатење, но можеме да ја користиме на самиот извештај. На пример, текстот се прикажува во прозорецот на оваа вредност.
Како пример, разгледуваме група на радио копчиња наречена 'grpGroupBy' на извештајот за сметководствена картичка за пример '32D- Сметководствена картичка' што е во програмското мени 'Финансии | Извештаи | Сметководствена картичка'. Името на прозорецот е 'GLAccountCard'. За овој тип на објект функцијата враќа својството 'ItemIndex' што одредува кое копче е селектирано. Во нашиот пример, ова својство одредува како податоците треба да се агрегираат и лентите на извештајот се скриени. Вредноста што ја враќа функцијата се запишува во променливата 'nGroupBy' и потоа, во зависност од нејзината вредност, ги криеме лентите на извештајот, во процедурата "SubjektFooterOnBeforePrint".
var nGroupBy: Integer;
...
procedure SubjektFooterOnBeforePrint(Sender: TfrxComponent);
begin
if nGroupBy <= 1 then
SubjektFooter.Visible := False;
end;
...
nGroupBy := GetFormValue('GLAccountCard.grpGroupBy');