 |
SQLEXP
je funkcija, koju program koristi za
generisanje
ispisa i omogućava ispis podataka, koje u izvornom RecordSetu
pojedinog ispisa nemamo na raspolaganju. Na taj način možemo u određene
korisničke ispise da uključimo podatke iz ispisa i obračuna iz drugih
tabela i šifarnika. |
Sintaksa:
[SQLexp('SQL upit')]
 |
SQLEXP
funkcija, u Pantheonu 5.5 može se pisati u sintaksi PA50 tj. mogu se
koristiti nazivi tabela i polja Pantheon-a 5.0 |
Primer upotrebe na ispisu 103 Obračun narudžbina - detaljno:
 |
Pošto imena RecordSeta i polja u RecordSetu na svakom
ispisu mogu biti drugačija, onda se pisanje SQL sintaksi za ispise mora
radititi
tako, da se provere imena RecordSeta i polja za konkretan ispis. |
Sabiramo narudžbine kupaca i jednom nedeljno sopstvenim kamionom razvozimo
do kupaca. U
obračunu
narudžbina kupaca možemo da kreiramo obračun neisporućenih narudžbina sa načinom
dostave "Dostava sopstvenim kamionom".
U ispisu obračuna narudžbina kupaca u RecordSetu nemamo na raspolaganju
adresu
kupca robe, ni njihovih kontaktnih osoba. Svi ti podaci su na raspolaganju u šifarniku
subjekata, šifra poslovnog partnera u RecordSetu ispisa 103
- Obračun narudžbina Detajlno već postoji.
Ispunjeni su svi uslovi za upotrebu izraza SQLEXP u ispisu. Pogledajmo!
1. Iz ispisa 103 - Obračun narudžbina Detajlno kreiramo novi ispis, u kome
dodamo novo polje sa funkcijom:
2. U polje "Memo" unesemo SQL sintaksu:

 |
Trenutno je dužina izraza ograničena na 255 znakova! |
Ispis adrese naručioca iz narudžbine
U sintaksi PA50
[SQLexp('select Naslov from Subjekt where Naziv = ''' + <qReportIzpis."acConsignee">+ '''')]
Odnosno u sintaksi PA55
[SQLexp('select acAddress from tHE_SetSubj where acSubject = ''' + <qReportIzpis."acConsignee">+ '''')]
Komentar:
<qReportIzpis."acConsignee"> je polje iz RecordSet-a qReportIzpis, koji se koristi
za kreiranje reporta.
Nakon zamene <qReportIzpis."acConsignee"> SQL ukaz je ovakav:
'select Naslov from Subjekt where Naziv = ''Neki kupac'''
i ukaz, koji se izvede na SQL serveru je:
select Naslov from Subjekt where Naziv = 'Neki kupac'.
Ispis poštanskog broja i mesta naručioca iz narudžbine
SQLEXP('select K.Naziv from Subjekt S left join Posta K on S.Posta = K.Posta
where S.Naziv = ''' + <qReportIzpis."acConsignee"> + '''')
Ispis kontaktnih osoba naručioca iz narudžbine
SQLEXP('select LTrim(RTrim(KontOseba)) + '' '' +
Cast(case when (Tel is null) then '' '' else '' Tel: '' +
Tel end as Char(30)) as Ko
from KontOs where Subjekt = ''' + <qReportIzpis."acConsignee"> + '''
order by Poz')
Šifarnik oblika ispisa:
Ako želimo da zapise neisporučenih narudžbina razvrstamo po naručiocima i
potom
po broju narudžbine, vnesemo odgovarajući kriterijum razvrstavanja u
šifarniku oblika ispisa:

Primer ispisa obračuna narudžbina kupaca iz tako oblikovanog ispisa:
