Priprava podatkov za prikaz
Priprava podatkov za prikaz
Priprava podatkov je identična za vse tri nastavitve iskanja. Z nastavitvijo določamo SQL ukaz, ki nam vrne stolpce tabele (recordseta), ki jih prikazujemo v padajočem ekranu v programu.
Jedro nastavljanja iskanja identov je oblikovanje ustreznega select stavka, ki vrača ustrezne podatke. Poglejmo najenostavnejši primer, ki je preddefiniran v PANTHEON-u.
select acIdent, acActive, acName, anRTPrice, anWSPrice, anWSPrice2, anPrtPrice
from tHE_SetItem
order by acIdent
Ta stavek nam vrača 7 stolpcev, v katerih je šifra identa, status, naziv, ter vse vrste cene. Poglejmo, kako bi stavek dogradili, da bi imeli kot 8. stolpec prvih 30 znakov iz tehnološkega opisa:
select acIdent, acActive, acName, anRTPrice, anWSPrice, anWSPrice2, anPrtPrice,
Left(cast(acTechProcedure as varchar),30) as TEH
from tHE_SetItem
order by acIdent
Do tu so zadeve enostavne, saj vedno pripravljamo podatke, katerih izvor je v eni tabeli. Težava bi bila, če bi želeli v prikazu prikazati podatke, ki izvirajo iz večih tabel, 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
Čeprav je gornji stavek s stališča SQL sintakse popolnoma pravilen, pa je za izbirne tabele neuporaben.
 |
V select stavkih lahko uporabimo samo eno tabelo! Če želimo uporabiti podatke iz različnih tabel, v ta namen
definiramo view!
|
Če npr. želimo v nastavitev iskanja vključiti zalogo identa na veleprodajnem skladišču najprej naredimo view, ki nam zbere vse željene podatke v enem recordset:
Primer view-ja
create view dl_IdentLookup
as
select M.acIdent, M.acName, M.acClassif, M.acSetOfItem, M.acActive, Sum(Z.anStock) as anStock
from tHE_SetItem M
left join tHE_Stock Z on M.acIdent = Z.acIdent
and Z.acWarehouse = 'Veleprodajno skladišče'
group by M.acIdent, M.acName, M.acClassif, M.acSetOfItem, M.acActive
*V tem stavku vidimo le eno težavo - skladišče, na
katerem pobiramo zalogo je preddefinirano in ga kot takega ne moremo dinamično
spreminjati. Če spremenimo ime skladišča, moramo popraviti tudi ta view.
Ko imamo view kreiran v polje Select vpišemo običajen select stavek iz view-ja, ki nam zbere stolpce
select acIdent,acName,anStock from dl_IdentLookup
order by acIdent