DEFINISANJE SQL UPITA ZA IZVEŠTAJ 
Prozor za unos SQL upita ima šest polja sa šest osnovnih sekcija SQL upita: SELECT, FROM, WHERE, GROUP BY, HAVING i ORDER BY. Onaj ko poznaje SQL zna o čemu se radi, a za druge, na žalost, ovde nije moguće niti je namena ovog uputstva da detaljno objašnjava SQL jezik. Uz svako od ovih polja nalazi se dugme
kojim se otvara poseban prozor za unos SQL upita, sa ponuđenim tabelama, kolonama, operatorima i funkcijama u bazi.
Kod unosa SELECT sekcije, dobro je držati se pravila da se svakoj koloni dodeli posebno ime (alias). Ta imena će se kasnije koristiti za definisanje polja izveštaja i kao promenljive za definisanje izraza izveštaja. Iako bi SQL upit u većini slučajeva radio i bez aliasa, ipak je, zbog izbegavanja dvosmi sl.nosti i lakšeg snalaženja preporučljivo da se koriste. Alias se definiše navođenjem ključne reči as i iza nje imena kolone. Npr. za kolonu nalog.brojb mogli biste napisati nalog.brojb as brojnaloga. Najbolji primer za neophodnost aliasa je kad u upitu imate dve kolone sa istim imenom iz različitih tabela, npr. artikal.naziv i kom.naziv. U tom slučaju aliasima artikal.naziv as nazivartikla i kom.naziv as nazivkomitenta rešili biste dvosmi sl.nost.
Kad potvrdite uneti upit, program proverava njegovu ispravnost i ne dozvoljava Vam da snimite neispravan SQL upit.
Polje "Polja za vremenski uslov" služi da se navede kolona u bazi (ili više njih razdvojenih zarezima) nad kojima će se primenjivati filter za vremenske uslove, koji se koristi u trenutku formiranja izveštaja. Ovaj filter je jedinstven za sve izveštaje, pa je neophodno u svakom izveštaju navesti koja kolona predstavlja datum nad kojim se primenjuje vremenski filter. Kod izveštaja slobodnog tipa nema definisanja SQL upita, a filter za vremenske uslove uvek postavlja uslov nad kolonom stavkanalog.datum. Kolone nad kojima se postalja vremenski uslov ne moraju biti navedene u SELECT sekciji, ali njihove tabele moraju biti navedene u FROM sekciji.
Ako se ovo polje ostavi prazno, u prozoru za prikaz izveštaja neće se pojaviti filter za vremenske uslove.
Polje "Primeni vremenski uslov" treba da bude uključeno kad želite da se vremenski uslov primeni u WHERE sekciji celog SQL upita. Ako se vremenski uslov postavlja samo radi prosleđivanja argumenata u SQL upit, onda ovo polje treba isključiti (pogledati korišćenje argumenata niže u tekstu).
U zaglavlju ovog prozora nalazi se padajuća lista sa ponuđenim inicijalnim SQL upitima. U uputstvu za unos novog izveštaja već je pomenuto da program automatski ubacuje SQL upit za novi izveštaj na osnovu unete oblasti poslovanja. Ovde možete dugmetom <Postavi inicijalni upit> ponovo pozvati tu inicijalizaciju upita.
Korišćenje argumenata u SQL upitu
Ponekad su u SQL upitu neophodni argumenti, odnosno promenljive koje će u trenutku izvršavanja upita biti zamenjene odgovarajućim vrednostima. OPonekad su u SQL upitu neophodni argumenti, odnosno promenljive koje će u trenutku izvršavanja upita biti zamenjene odgovarajućim vrednostima. Ovo je najčešće potrebno kad se u upitu koriste funkcije iz baze i treba popuniti njihove argumente. Jedino mesto u ovom programu, gde je moguće uneti vrednosti koje će se koristiti u trenutku formiranja izveštaja su filter za vremenske uslove i filter izveštaja. Argumenti koje možete koristiti u SQL upitu su sledeći.
Argumenti iz filtera za vremenske uslove:
- '#CTIME#' - zamenjuje se kompletnim vremenskim uslovom
- '#an_CYC#' - zamenjuje se tekućom poslovnom godinom definisanom u bazi
- '#an_CYR1#' i '#an_CYR2#' - zamenjuju se vrednošću prvog i drugog polja perioda "Godina relativno"
- '#an_CYA1#' i '#an_CYA2#' - zamenjuju se vrednošću prvog i drugog polja perioda "Godina"
- '#an_CM1#' i '#an_CM2#' - zamenjuju se vrednošću prvog i drugog polja perioda "Mesec"
- '#ad_CD1#' i '#ad_CD2#' - zamenjuju se vrednošću prvog i drugog polja perioda "Datum"
Argumenti iz filtera izveštaja:
Ovi argumenti navode se u sledećem formatu: '#PrefiksTipa_PoljeFilteraIzvestaja#'
PrefiksTipa određuje tip podatka i može biti as (string, odnosno tekstualni podatak), an (numerički podatak), ad (datum), at (vreme) ili adt (datum i vreme).
PoljeFilteraIzvestaja je naziv polja iz filtera izveštaja.
Npr. tekstualno polje iz filtera izveštaja "nazivkomitenta" bi se u SQL upitu koristilo kao argument u sledećem obliku: '#as_nazivkomitenta#'
a datumsko polje "datumizvestaja" u obliku: '#ad_datumizvestaja#'
Obratite pažnju na to da argumenti kod navođenja u SQL upitu moraju biti zatvoreni u jednostruke navodnike (apostrofe), baš kako su ovde prikazani. U suprotnom, SQL upit će prijaviti grešku.