Priprema podataka za prikaz
Priprema podataka za prikaz
Priprema podataka je identična za sve tri postavke traženja.
Postavkama određujemo SQL naredbu, koja nam vrati kolone tabele (recordseta), koje prikazujemo na panelu Pregled u programu.
Srce podešavanja traženja artikala je oblikovanje odgovarajuće select stavke, koja vraća odgovarajuće podatke. Pogledajmo najjednostavniji primer, koji je predefinisan u PANTHEON-u.
select acIdent, acActive, acName, anRTPrice, anWSPrice, anWSPrice2, anPrtPrice
from tHE_SetItem
order by acIdent
Ova naredba nam kao rezultat vraća 7 kolona, u kojima je šifra artikla, status, naziv, te sve vrste cene.
Pogledajmo, kako bi stavku nadogradili, kako bi kao 8. kolonu imali prvih 30 znakova iz tehnološkog opisa:
select acIdent, acActive, acName, anRTPrice, anWSPrice, anWSPrice2, anPrtPrice,
Left(cast(acTechProcedure as varchar),30) as TEH
from tHE_SetItem
order by acIdent
Do ovog nivoa je sve jednostavno, jer uvek pripremamo podatke, čiji je izvor u jednoj tabeli. Problem se javlja, ako bi želeli u prikazu da prikažemo podatke, koji proizilaze iz više tabela, npr:
select M.acIdent,M.acName,M.anRTPrice,Z.anStock, Z.acWarehouse
from tHE_SetItem M
left join tHE_stock Z on Z.acIdent = M.acIdent
order by M.acName
Iako je gornja naredba sa stajališta SQL sintakse potpuno pravilna, za izborne tabele je neupotrebljiva.
 |
U select naredbama možemo upotrebiti samo jednu tabelu!
Ako želimo upotrebiti podatke iz različitih tabela, u tu svrhu moramo da definišemo view!
|
Ako npr. želimo u postavku traženja da uključimo zalihu artikla na veleprodajnom skladištu prvo uradimo view, koji nam prikuplja sve željene podatke u jednom recordsetu:
create view dl_ IdentLookup
as
select M.acIdent, M.acName, M.acClassif, M.acSetOfItem, M.acActive, Sum(Z.anStock) as ZALIHA
from tHE_SetItem M
left join tHE_Stock Z on M.acIdent = Z.acIdent
and Z.acWarehouse = 'Veleprodajno skladište'
group by M.acIdent, M.acName, M.acClassif, M.acSetOfItem, M.acActive
*U ovoj naredbi vidimo jednu poteškoću - skladište, na kojem sakupljamo zalihu je predefinisano i kao takvo ga ne možemo dinamički menjati. Ako promenimo ime skladišta, moramo popraviti ovaj view.
Kada imamo kreiran view u polje Select upišemo uobičajenu select stavku iz view-a, koja nam daje željene kolone
select acIdent,acName,anStock from _IdentLookup
order by acIdent