Pogledaj upute za PANTHEON™

 Categories
 Početna stranica
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Expand]Vodič kroz Datalab PANTHEON Farming
  [Expand]Vodič za mobilni POS
  [Collapse]Vodič po DataLab PANTHEON™-u
   [Expand]Pomoć
   [Collapse]Postavke
    [Expand]Dokumentacija
    [Expand]POS
    [Expand]Dokumentacija-staro
    [Expand]Redak s naredbama
    [Expand]Dokumentacija
    [Expand]Subjekti
    [Expand]Identi
    [Expand]Proizvodnja
    [Expand]Zaposleni
     Kalendar - Vrste zapisa
    [Expand]Računovodstvo
    [Expand]Carina
    [Collapse]Program
     [Collapse]Ispisi u PANTHEONU
      [Collapse]Oblici ispisa
        Prijenos ispisa u druge baze
        Postavke u Administrativnoj Ploči
        Izvoz oblika ispisa
        Uvoz oblika ispisa
        Prečac za ispis
       [Expand]Izvještaji Registar
        Pregled ispisa
       [Expand]Izvještajni dizajner
        Dupliciranje ispisa i mijenjanje tipa ispisa
       [Expand]Izrada Izvještaja
       [Expand]Grupe i Agregati
       [Expand]Poruke pri oblikovanju ispisa
       [Expand]Oblikovanje ispisa
       [Expand]Formatiranje i Isticanje
        Ugniježdene izvještaje (podizvještaji)
       [Expand]Specifičnosti ispisa u PANTHEON-u
       [Collapse]Scenarij
         "Pozdrav, svijete!" Skripta
         Korištenje varijabli, polja baze podataka i agregatnih funkcija
         Korištenje izvještajnih objekata u skripti
         Dogodci
         Primjer korištenja "OnBeforePrint" događaja
         Ispisivanje zbroja grupe u zaglavlju grupe
         Trenutni Zbroj
         "OnAfterData" Događaj
         Servisni objekti
         Koristeći "Engine" objekt
        [Collapse]PANTHEON Funkcije za FastReport
          Izjave i jednostavni primjeri
          Funkcija GetFormValue
         [Collapse]Funkcija EQLExp
           Napredni Primjeri
        [Expand]Primjeri s Tablicama i Upitima
        Razmatranja o dizajnu izvještaja
       Radno okruženje
     [Expand]Kartice povjerenja
     [Expand]Knjiga pošte
     [Expand]Kartice vjernosti
     [Expand]Ad-hoc analize
     [Expand]Vrste dokumenata
      Tekstovi za dokumente
      Načini dostave
      Izvještaji nadzorne ploče
      Ad-hoc analiza
     [Expand]Izvještaji nadzorne ploče
     [Expand]ARES
      SQL urejevalnik
     [Expand]Administratorska konzola
     [Expand]Zamijeni korisnika Ctrl - U
     [Expand]Elementi nadzorne ploče
   [Expand]Narudžbe
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]Servis
   [Expand]POS
   [Expand]Novac
   [Expand]Kadrovi
   [Expand]Radna površina
   [Expand]Analize
   [Expand]Plansko-analitički alati ZEUS
   [Expand]Poruke programa
   [Expand]Dodatni programi
   [Expand]Sistemska okolina
   [Expand]Dodatni programi
   [Expand]Stari proizvodi
    Riječnik pojmova
  [Expand]Vodič po PANTHEON Vet
 [Expand]PANTHEON korisnički priručnici
[Expand]PANTHEON Web
[Expand]PANTHEON Granule

Load Time: 765,6222 ms
print   |
Label

Funkcije

Primjer s zabavomction dlStringReplace


Na izvještaju '10A - Izvještaj o materijalnim kretanjima - Detaljno' koji se nalazi u izborniku programa 'Roba | Materijalno kretanje' dodajte objekt "Tekst" na traku nazvanu 'Detalj' i napišite izraz koji vraća prikaz serijskih brojeva koji pripadaju odabranoj poziciji i odabranom računu. Funkcija SQLExp vraća sve zapise, svaki u svom redu, ali želimo prikazati serijske brojeve u jednom redu, odvojene zarezima.
 
[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', '')]
 

Primjer s datumskim poljima


Na klonu izvještaja '241 - Račun' koji se nalazi u izborniku programa 'Roba | Izdanje | Dokument (npr. 3000 - Prodaja)' dodajte saldo računa za izdanje na račun 2200 na dan računa. Važno je da je datum formatiran u obliku yyyymmdd.

[SQLExp('SELECT SUM(anValDebit-anValCredit) from tHE_AcctTransItem where acAcct = 2200 and acSubject=''' + <qReportIzpisD."acReceiver"> + ''' and adDateDoc <= ''' + FormatDateTime('yyyymmdd',<qReportIzpisD."adDateInv">) + '''')]

Primjer s brojem

U ovom slučaju koristimo izvještaj '156 - Izvještaj o materijalnim kretanjima - Sažetak po stavkama' koji se nalazi u izborniku programa 'Roba | Materijalna kretanja' koji prikazuje količinu u alternativnoj mjernoj jedinici.

Pošto nemamo faktor za konverziju količine u primarnoj mjernoj jedinici (U/M) u U/M2, moramo ih dobiti iz registra mjernih jedinica koristeći funkciju SQLExp.

To radimo s sljedećim izrazom:

[SQLExp('SELECT anUMToUM2 FROM tHE_SetItem WHERE acIdent = ' + dlQuotedStr(<qReportIzpis."acIdent">)+'')]

Gornji izraz vraća broj kao tekst. Sada želimo ispisati količinu ispisanu u U/M2, pa moramo konvertirati vrijednost dobivenu s dlStrToFloatDef funkcijom u broj. Zatim dijelimo iznos u EM s faktorom dobivenim, i koristeći dlDiv funkciju umjesto dijeljenja od nule, radije nego obične diobe. Na kraju, dobivamo:


[dlDiv(<qReportIzpis."anBegState">, dlStrToFloatDef(SQLExp('SELECT anUMToUM2 FROM tHE_SetItem WHERE acIdent =  ' + dlQuotedStr(<qReportIzpis."acIdent">) +''), 1))]

Primjer s čitanjem podataka iz PANTHEON prozora


Učinit ćemo sljedeći primjer koji se može napraviti na klonu izvještaja '16B - Izvještaj o izdanima računima - po dobavljačima i stavkama', koji se nalazi u izborniku programa 'Roba | Izvještaji o izdanima računima | Izvještaji o izdanima računima / Marža dobiti'. Ako je skladište odabrano u prozoru, izraz prikazuje cijeli inventar stavke, inače samo ispisuje inventar u odabranom skladištu.

Prozor u programu iz kojeg izvještaj počinje zove se 'PrometObracunIzdRac', ulazno polje u kojem odabiremo skladište nosi naziv 'fWarehouse'. Pojam koji vraća tekst u ovom objektu već je poznat:

[GetFormValue('PrometObracunIzdRac.fWarehouse')]

Prvo provjeravamo je li skladište odabrano. Ako nije, prvi SQLExp izraz koji vraća cijeli inventar odabrane stavke u svim skladištima, inače drugi vraća inventar stavke samo u odabranom skladištu.

[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') + ''''))]

Primjer s kompleksnom SELECT izjavom

Posebno postupanje zaslužuje izraz na izvještaju '3AR - Evidencija zaposlenika' koji prikazuje je li radnik invalid ili ne. Nalazi se u izborniku programa 'Osoblje | Datoteke zaposlenika'. Zatim kliknite na ikonu 'Ispis'.

Ova informacija nije izravno napisana u skupu podataka, ali sadrži kategoriju invalidnosti u polju "acDisabilityCode" u tablici "tHR_PrsnHealth". Budući da se kategorija invalidnosti pojedinog radnika može promijeniti, moramo dobiti onu koja je posljednja unesena. Datum promjene invalidnosti pohranjuje se u polju "adCreationDate" u istoj tablici. Sljedeći pojam daje vam posljednji datum kada se kategorija invalidnosti za odabranog radnika promijenila.

[SQLExp('select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + '''')]

Zatim, s pojmom ispod, dobivamo kategoriju invalidnosti radnika

[SQLExp('select acDisabilityCode from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and adCreatonDate = (select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''')')]
 

Ako u gornjem terminu zamijenimo polje "acDisabilityCode" s 'DA', izraz vraća 'DA' ako je radnik invalid, inače vraća prazan niz. Budući da, u slučaju kada radnik nije invalid, izraz vraća 'NE', dajemo pojam uvjetnoj rečenici IIF i konačno dobivamo

[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','DA','NE')]

Sortiranje i grupiranje po polju koje nije u skupu podataka

Vrlo neobična i korisna upotreba funkcije SQLExp je za sortiranje i grupiranje po polju koje nije u skupu podataka.

Kao osnovu, uzet ćemo izvještaj '164 - Izvještaj o izdanima računima - Detaljno' koji se nalazi u izborniku programa 'Roba | Izvještaji o izdanima računima | Izvještaji o izdanima računima / Marža dobiti'. Prvo stvaramo klon na kojem ćemo raditi. Podaci će biti grupirani prema izdavaču računa i sortirani prema izdavaču i broju dokumenta.

Postavljamo svojstvo "Uvjet" trake "GroupHeader" na;

SQLExp('select G.acIssuer from tHE_Move G where G.acKey = ''' + <qReportIzpis."acKey"> + '''')

Zatim zamijenite opis koji opisuje informacije koje grupiramo, i za same podatke. Unosimo isto kao gore, ali stavimo to u uglate zagrade (kao što je prikazano na slici). Da bismo promijenili sortiranje, promijenite polje 'Sort By' u registru izvještaja:
(select G.acIssuer from tHE_Move G where G.acKey = P.acKey), G.acKey


   



Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!