Funkcione
Shembuj me Function dlStringReplace
Në raportin '10A - Raporti mbi Lëvizjet e Materialeve - të Detajuar' që është në menunë e programit 'Mallit | Lëvizja e Materialeve ' shtoni një objekt "Tekst" në bandën e quajtur 'Detaj' dhe shkruani një shprehje që kthen shfaqjen e numrave serial që i përkasin pozicionit të zgjedhur dhe faturës së zgjedhur. Funksioni SQLExp kthen të gjitha rekordet, secilin në rreshtin e tij, por ne duam të shfaqim numrat serial në një rresht, të ndarë me presje.
[dlStringReplace(SQLExp('SELECT acSerialNo, FROM tHE_MoveItemSerialNo WHERE acKey = ''' + <qReportIzpis."acKey"> + ''' AND acIdent = ''' + <qReportIzpis."acIdent"> + ''' GROUP BY acSerialNo UNION ALL SELECT acSerialNo FROM tHE_OrderItemSerialNo WHERE acKey = ''' + <qReportIzpis."acKey"> + ''' AND acIdent = ''' + <qReportIzpis."acIdent"> + ''' GROUP BY acSerialNo ORDER BY acSerialNo'), #13#10, ', ', 'rfReplaceAll', '')]
Shembuj me Fushat e Datës
Në klonin e raportit '241 - Faturat' që është në menunë e programit 'Malli | Lëshimi | Dokumenti (p.sh. 3000 - Shitje)' shtoni bilancin e marrësit të faturës së lëshuar në llogarinë 2200 në ditën e faturës. Është e rëndësishme që data të formatohet në formën yyyymmdd.
[SQLExp('SELECT SUM(anValDebit-anValCredit) from tHE_AcctTransItem where acAcct = 2200 and acSubject=''' + <qReportIzpisD."acReceiver"> + ''' and adDateDoc <= ''' + FormatDateTime('yyyymmdd',<qReportIzpisD."adDateInv">) + '''')]
Shembuj me Numra
Në këtë rast ne përdorim raportin '156 - Raporti mbi Lëvizjet e Materialeve - Përmbledhje sipas Artikujve' që është në menunë e programit 'Malli | Lëvizjet e Materialeve' që tregon sasinë në njësinë alternative të matjes.
Që ne nuk kemi faktor për konvertimin e sasisë në njësinë primare të matjes (U/M) në U/M 2, ne duhet t'i marrim ato nga regjistri i Njësive të Matjes duke përdorur funksionin SQLExp.
Ne e bëjmë këtë me shprehjen e mëposhtme:
[SQLExp('SELECT anUMToUM2 FROM tHE_SetItem WHERE acIdent = ' + dlQuotedStr(<qReportIzpis."acIdent">)+'')]
Shprehja e mësipërme kthen numrin si tekst. Tani ne duam të printojmë sasinë e printuar në U/M2, kështu që duhet të konvertojmë vlerën e marrë me dlStrToFloatDef funksionin në një numër. Pastaj ne e ndajmë shumën në EM me faktorin e marrë, dhe duke përdorur dlDiv funksionin në vend që ta ndajmë nga zero, përveç ndarjes së zakonshme. Në fund, ne marrim:
[dlDiv(<qReportIzpis."anBegState">, dlStrToFloatDef(SQLExp('SELECT anUMToUM2 FROM tHE_SetItem WHERE acIdent = ' + dlQuotedStr(<qReportIzpis."acIdent">) +''), 1))]
Shembuj me Leximin e të Dhënave nga Dritarja PANTHEON
Ne do të bëjmë shembullin e mëposhtëm që mund të bëhet në një klon të raportit '16B - Raporti mbi Faturat e Lëshuara - sipas Furnizuesve dhe Artikujve', që është në menunë e programit 'Malli | Raportet mbi Faturat e Lëshuara | Raporti mbi Faturat e Lëshuara/Marginin e Fitimit'. Nëse depoja është e zgjedhur në dritare, shprehja shfaq të gjithë stokun e artikullit, përndryshe vetëm printon stokun në depozitat e zgjedhura.
Dritarja në program nga e cila fillon raporti quhet 'PrometObracunIzdRac', fusha e inputit në të cilën ne zgjedhim depozitat dhe ka emrin 'fWarehouse'. Termi që kthen tekstin në këtë objekt është tashmë i njohur:
[GetFormValue('PrometObracunIzdRac.fWarehouse')]
Së pari ne kontrollojmë nëse depoja është e zgjedhur. Nëse jo, shprehja e parë SQLExp që kthen të gjithë stokun e artikullit të zgjedhur në të gjitha depozitë, përndryshe e dyta kthen stokun e artikullit vetëm në depozitat e zgjedhura.
[IIF (GetFormValue('PrometObracunIzdRac.fWarehouse') = '',
SQLExp('select SUM (anStock) from tHE_Stock where acIdent = ' +
dlQuotedStr(<qReportIzpis."acIdent">) + ''),
SQLExp('select anStock from tHE_Stock where acIdent = ' +
dlQuotedStr(<qReportIzpis."acIdent">) + ' and acWarehouse = ''' +
GetFormValue('PrometObracunIzdRac.fSkladisce') + ''''))]
Shembuj me Deklarat e Zgjedhjes Kompleks
Një trajtim të veçantë meriton shprehja në raportin '3AR - Regjistri i Punonjësve' që shfaq nëse punonjësi është i paaftë apo jo. Është në menunë e programit 'Personeli | Dosjet e Punonjësve'. Pastaj klikoni në ikonën 'Printo'.
Kjo informacion nuk është shkruar drejtpërdrejt në dataset, por përmban kategorinë e paaftësisë në fushën "acDisabilityCode" në tabelën "tHR_PrsnHealth". Duke qenë se kategoria e paaftësisë së një punonjësi të veçantë mund të ndryshojë, ne duhet të marrim atë që është futur së fundmi. Data e ndryshimit të paaftësisë ruhet në fushën "adCreationDate" në të njëjtën tabelë. Termi në vijim ju jep datën e fundit kur kategoria e paaftësisë për punonjësin e zgjedhur ka ndryshuar.
[SQLExp('select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + '''')]
Pastaj, me termin më poshtë, ne marrim kategorinë e paaftësisë së punonjësit
[SQLExp('select acDisabilityCode from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and adCreatonDate = (select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''')')]
Nëse në termin e mësipërm ne zëvendësojmë fushën "acDisabilityCode" me 'PO', shprehja kthen 'PO' nëse punonjësi është i paaftë, përndryshe kthen një varg të zbrazët. Duke qenë se, në rastin kur një punonjës nuk është i paaftë, shprehja kthen 'JO', ne i japim termin një fraze kushtore IIF dhe në fund marrim
[IIF(SQLExp('select ''YES'' from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and adCreatonDate = (select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and acDisabilityCode > ''0'')') = 'YES','YES','NO')]
Renditja dhe Grupimi sipas Fushës që nuk është në Dataset
Përdorimi shumë i pazakontë dhe i dobishëm i funksionit SQLExp është për renditjen dhe grupimin sipas fushës që nuk është në dataset.
Si bazë, ne do të marrim një raport '164 - Raporti mbi Faturat e Lëshuara - të Detajuar' që është në menunë e programit 'Malli | Raportet mbi Faturat e Lëshuara | Raporti mbi Faturat e Lëshuara/Marginin e Fitimit'. Së pari ne krijojmë një klon mbi të cilin do të operojmë. Të dhënat do të grupohen sipas lëshuesit të faturës dhe do të renditen sipas lëshuesit dhe numrit të dokumentit.
Ne vendosim pronën "Kushti" të "GrupHeader band" në;
SQLExp('select G.acIssuer from tHE_Move G where G.acKey = ''' + <qReportIzpis."acKey"> + '''')
Pastaj zëvendësojmë përshkrimin që përshkruan informacionin që ne grupojmë, dhe për të dhënat vetë. Ne futim të njëjtën si më sipër, por le të vendosim atë në kllapa katrore (siç tregohet në figurë). Për të ndryshuar renditjen ndryshoni fushën 'Rendit sipas' në regjistrin e raporteve:
(select G.acIssuer from tHE_Move G where G.acKey = P.acKey), G.acKey

