---
title: "GRPAJ()"
url: "https://gidas.rivile.lt/sistemos_programavimas/funkcijos/kitos_funkcijos/grpaj"
updated: "2026-04-21"
parent: "https://gidas.rivile.lt/sistemos_programavimas/funkcijos/kitos_funkcijos.md"
---

# 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")
```

2. 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ų.

3. 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]
```

4.  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)**

5. 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]
```

> **Informacija:** Šis INIT-as sprendžia problemą, kai vedant naujas prekių korteles reikia pastebėti, jog prekė su tokiu pavadinimu jau yra.<br/>Š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.

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

> **Informacija:** 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](https://gidas.rivile.lt/user/pages/145.sistemos_programavimas/01.Funkcijos/08.kitos_funkcijos/GRPAJ/grpaj_2.png)





7. INIT pavyzdys lange "Statistika -> Einamieji prekių likučiai"

```
_thisform=thisform
grpaj("_thisform")
grpaj("_thisform.grid1.KODAS1","--,GS, ,KS,--,LS, ",_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](https://gidas.rivile.lt/user/pages/145.sistemos_programavimas/01.Funkcijos/08.kitos_funkcijos/GRPAJ/grpaj_1.png)



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



9. INIT pavyzdys personalo operacijos koregavimo lange

```
_thisform=thisform
grpaj("_thisform.KOR.KODAS_4a","--")
_thisform.KOR.KODAS_4a.gp.sak_sel=[select top 50 k14_kodas_4a as kodas, rtrim(k14_vardas)+' '+k14_pav as pav from k14_asm where k14_kodas_4a like ?m.pValue1 or k14_pav like ?m.pValue1 or k14_vardas like ?m.pValue1]
```

Ieškoma pagal personalo kodo, pavardės arba vardo fragmentą.



10. INIT pavyzdys algos dokumento koregavimo lange

```
_thisform=thisform
grpaj("_thisform.KOR.kodas_tb","--")
_thisform.kor.kodas_tb.gp.sak_sel=[select top 50 A06_KODAS_TB as kodas, rtrim(A06_VARDAS)+' '+rtrim(A06_PAV) as pav from A06_TAB where A06_KODAS_TB like ?m.pValue1 or A06_VARDAS like ?m.pValue2 or A06_PAV like ?m.pValue2 order by A06_KODAS_TB asc]   
```

Ieškoma pagal tabelinio numerio, pavardės arba vardo fragmentą.
