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.

Jeigu užprogramavus greitą paiešką, darbo metu atsiranda klaidos, gali būti, kad yra likęs senas grpaj.app (ALL arba įmonės kataloguose) - jį reikia išmesti.

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ą.