GRPAJ()

Greita paieška

(nuo 113.0101 versijos)

Sintaksė

GRPAJ(cParametras1,cParametras2,[cParametras3])

Grąžina

Vykdoma greita paieška pagal kodą arba pavadinimą

Parametrai

Parametras Aprašymas Formatas
Parametras1 tekstinio lauko adresas C
Parametras2 sąrašo tipas (arba išvardinti keli sąrašų tipai) C
Parametras3 sąrašo tipas (jeigu antram parametre buvo išvardintas keli tipai) C(2)

Pastaba

Užprogramuojamas formos INIT.

Pavyzdžiai

  1. Visai formai visiems laukams. Pavyzdys iš pardavimo INIT-o:
_thisform=thisform
grpaj("_thisform")
  1. Visai formai visiems laukams. Kodo reikšmė parenkama priklausomai nuot tipo: iš prekių, paslaugų arba kodų. Pavyzdys iš pardavimo detalios eilutės INIT-o:
_thisform=thisform
grpaj("_thisform")
grpaj("_thisform.KOR.KODAS","PS,AS,BS",titi_pagr.adf.KOR.TIPAS)
(nuo 114.0101 versijos)

Galima užprogramuoti specializuotą SQL „select“ sakinį bet kokios informacijos greitai paieškai.

Perduodami parametrai:

Parametras Aprašymas Formatas
Parametras1 tekstinio lauko adresas C
Parametras2 modulio kodas -- C
Parametras3 SQL „select“ priskiriamas lauko objektui gp.sak_sel

Kintamieji, kuriuos galima naudoti:

Parametras Aprašymas
pTipas Įrašo tipas, perduotas per parametrą
pValue Tiksli įvesta frazė (ABCD = ABCD)
pValue1 Paieška pagal pradžią (ABCD = AB) (pValue+'%')
pValue2 Paieška pagal fragmentą (ABCD = BC) ('%'+pValue+'%')

Reikalavimas, kad grąžintas rezultatas :

  • turėtų tik 2 laukus: kodas ir pav,
  • grąžinamų rezultatų būtų ne daugiau 50,
  • pav reikšmė ne ilgesnė nei 240 simbolių.
  1. Pardavimo INIT-o (MS SQL užklausos) pavyzdys. Klientų sąrašas filtruojamas pagal galiojančius klientus, kurių tipas pirkėjas arba pirkėjas/tiekėjas, o frazė atitinka kodą arba pavadinimą.
_thisform=thisform
grpaj("_thisform.KOR.lapas.page1.kodas_ks","--")
_thisform.KOR.lapas.page1.kodas_ks.gp.sak_sel=[select top 50 n08_kodas_ks as kodas, n08_pav as pav from n08_klij where n08_rusis in (1,3) and (n08_poz_date=0 or getdate() between n08_beg_date and n08_end_date) and (n08_kodas_ks like ?m.pValue1 or n08_pav like ?m.pValue2) order by n08_kodas_ks asc]
  1. INIT-o (MS SQL užklausos) pavyzdys pardavimo detalios eilutės koregavimo lange. Prekių sąrašas filtruojamas pagal prekės kodą, pavadinimą ir tiekėjo kodą prekės kortelėje, o paslaugų ir pardavimų kodų filtravimas naudojamas standartinis.
_thisform=thisform
grpaj("_thisform.KOR.KODAS","--,AS,BS, , ,--",_thisform.KOR.TIPAS)
_thisform.KOR.KODAS.gp.sak_sel=[select top 50 n17_kodas_ps as kodas, (case when n17_kod_t<>'' then '('+rtrim(n17_kod_t)+') ' else '' end)+rtrim(n17_pav) as pav from n17_prod where n17_tipas=1 and (n17_kod_t like ?m.pValue1]+[ or n17_kodas_ps like ?m.pValue1 or n17_pav like ?m.pValue2) order by n17_kodas_ps asc]

(nuo 118.0201+DI versijos)

  1. Prekės kortelės koregavimo lango INIT-o (MS SQL užklausos) pavyzdys. Vedant prekės pavadinimą ieškoma tarp jau įvestų pavadinimų. Ieškant pavadinimų, grąžintiname užklausos rezultate negali būti stulpelio "kodas" .
_thisform=thisform
grpaj("_thisform.kor.pav","--")
_thisform.kor.pav.gp.sak_sel=[select top 50 n17_pav as pav from n17_prod where (n17_poz_date=0 or getdate() between n17_beg_date and n17_end_date) and (n17_kodas_ps like ?m.pValue1 or n17_pav like ?m.pValue2) order by n17_pav asc]

Šis INIT-as sprendžia problemą, kai vedant naujas prekių korteles reikia pastebėti, jog prekė su tokiu pavadinimu jau yra.
Šis INIT-as gali būti patogus, kai vedami sudėtingi pavadinimai, kurių tik nedidelė dalis skiriasi nuo jau suvestų - tada paprasčiau pasirinkti iš sąrašo ir pakeisti tai, kas skiriasi.

  1. Pardavimo koregavimo lango INIT-o (MS SQL užklausos) pavyzdys. Renkantis klientą, šalia kodo ir pavadinimo matoma ir jo skola įmonei bei kredito limitas.

Naudojant savybę gp.width galima praplėsti atsakymo langą.

_thisform=thisform
grpaj("_thisform.KOR.lapas.page1.kodas_ks","--")
_thisform.KOR.lapas.page1.kodas_ks.gp.width=900
m.lcSakSel=""
m.lcSakSel=m.lcSakSel+" select top 50 n08_kodas_ks as kodas," 
m.lcSakSel=m.lcSakSel+" cast(rtrim(left(n08_pav,80)) as varchar(80))+isnull(' (-'+skola+' €)','')+'   Kredito limitas '+ltrim(str(n08_credit_lim,12,2)) as pav"
m.lcSakSel=m.lcSakSel+" from n08_klij"
m.lcSakSel=m.lcSakSel+"         left join ("
m.lcSakSel=m.lcSakSel+"                    select t03_kodas_ks, cast(SUM(t03_suma_db-t03_suma_cr) as varchar(18)) as skola from t03_sdok where t03_data_mok<getdate() group by t03_kodas_ks having SUM(t03_suma_db-t03_suma_cr)>0) as S on t03_kodas_ks=n08_kodas_ks" 
m.lcSakSel=m.lcSakSel+" where n08_rusis in (1,3) and (n08_poz_date=0 or ?titi_pagr.date between n08_beg_date and n08_end_date) and (n08_kodas_ks like ?m.pValue1 or n08_pav like ?m.pValue2)" 
m.lcSakSel=m.lcSakSel+" order by n08_kodas_ks asc"
_thisform.KOR.lapas.page1.kodas_ks.gp.sak_sel=m.lcSakSel

grpaj_2

  1. INIT pavyzdys lange "Statistika -> Einamieji prekių likučiai"
_thisform=thisform
grpaj("_thisform")
grpaj("_thisform.grid1.KODAS1","--,GS, ,KS,--",_thisform.grid1.raktas)
_thisform.grid1.KODAS1.gp.sak_sel=[select top 50 n17_kodas_ps as kodas, rtrim(n17_pav) as pav from n17_prod where n17_tipas=1 and (]+[n17_kodas_ps like ?m.pValue2 or n17_pav like ?m.pValue2) order by n17_kodas_ps asc]

Ieškoma pagal prekės, prekių grupės, tiekėjo, tiekėjo prekės kodo ar pavadinimo fragmentą.

grpaj_1

  1. INIT pavyzdys lange "Statistika -> Detalus Fifo"
_thisform=thisform
grpaj("_thisform")
grpaj("_thisform.grid1.KODAS1","--",_thisform.grid1.raktas)
_thisform.grid1.KODAS1.gp.sak_sel=[select top 50 n17_kodas_ps as kodas, rtrim(n17_pav) as pav from n17_prod where n17_tipas=1 and (]+[n17_kodas_ps like ?m.pValue2 or n17_pav like ?m.pValue2) order by n17_kodas_ps asc]

Ieškoma pagal prekės kodo ar pavadinimo fragmentą.