Objektas Rivile API v2 (leidžiant procedūras tiesiogiai duomenų bazėje) užklausoms formuoti
(nuo 121.0100 RIV_GAMA versijos)
Sintaksė
V_RIV_SP([vartotojas])
Grąžina
Loginę reikšmę – ar užklausa įvykdyta sėkmingai
Parametrai
user – galima nurodyti, kokio vartotojo teisėmis vykdoma užklausa. Nenurodžius, bus vykdoma prisijungusio vartotojo teisėmis. (Ar galima pakeisti vartotoją nurodoma parametre RGI_USR_EDIT).
Metodai
Galima vykdyti užklausas dviem būdais (metodais):
Pastaba: Grąžinamas rezultatas (EDIT metodams) yra tik lentelės raktinės reikšmės (primary key).
Rezultatas grąžinamas
Dirbant sąrašų languose
Dirbant sąrašų languose, galima automatiškai atnaujinti informaciją sąraše. Tam naudojamas metodas:
Pavyzdžiai
m.loRivApi=v_riv_sp()
IF !loRivApi.Send("EDIT_I06_FULL","I",;
"<I06>"+;
" <I06_OP_TIP>51</I06_OP_TIP>"+;
" <I06_KODAS_KS>6987452</I06_KODAS_KS>"+;
" <I07>"+;
" <I07_TIPAS>1</I07_TIPAS>"+;
" <I07_KODAS>001</I07_KODAS>"+;
" <I07_KODAS_US>VNT</I07_KODAS_US>"+;
" <I07_KAINA_BE>1000.0001</I07_KAINA_BE>"+;
" <kiekis_u>2</kiekis_u>"+;
" </I07>"+;
"</I06>")
MESSAGEBOX(m.loRivApi.message,16,"Klaida")
RETURN .F.
ENDIF
m.loRivApi.refresh_grid(_thisform)
m.loRivApi=v_riv_sp()
IF !loRivApi.Exec("RGI_I07_EDIT","U","@i07_kodas_po='010000000258', @i07_eil_nr=1, @kiekis_u=1")
RETURN .F.
ENDIF
m.loRivApi.refresh_grid(_thisform,'010000000258')
_thisform=thisform
EXECSCRIPT(SUBSTR(komanda_v,ATC(CHR(13),komanda_v,ij_k+1)))
EXIT
ON ERROR
m.lcEipFile=GETFILE("EIP")
IF EMPTY(m.lcEipFile)
RETURN .F.
ENDIF
* Importuojame *
m.loRivApi=v_riv_sp()
IF !m.loRivApi.Send("EDIT_I06_FULL","I",FILETOSTR(m.lcEipFile))
=f_info("Klaida: "+m.loRivApi.Message,.T.)
RETURN .F.
ENDIF
** Atnaujiname informaciją pardavimo operacijų sąraše (grid'e)
m.loRivApi.refresh_grid(_thisform)
Pastaba. Reikėtų atkreipti dėmesį, kad tam tikri importui skirto failo laukai, pvz., bar_kodas, kiekis_u, skiriasi nuo tų, kurie standartiškai naudojami EIP failuose.
Informaciją apie kiekvieno metodo naudojamus laukus ir specifines to metodo savybes galima rasti prie jų aprašymo Metodų sąrašas.
Pavyzdžiui, apie pirkimų/ pardavimų detalios eilutės laukus ir koregavimą aprašyta EDIT_I07.
_thisform=thisform
EXECSCRIPT(SUBSTR(komanda_v,ATC(CHR(13),komanda_v,ij_k+1)))
EXIT
ON ERROR
LOCAL lcKodas_is
m.lcKodas_is=PS_KOD("IS","Naujas padalinys")
IF EMPTY(m.lcKodas_is)
RETURN .F.
ENDIF
* Keičiame *
m.loRivApi=v_riv_sp()
IF !m.loRivApi.Send("EDIT_I06_KOP","",;
"<I06>"+;
" <P_OPER>2</P_OPER>"+;
" <OLD_I06_KODAS_PO>"+Wi06r.i06_kodas_po+"</OLD_I06_KODAS_PO>"+;
" <NEW_I06_OP_TIP>"+TRANSFORM(Wi06r.i06_op_tip)+"</NEW_I06_OP_TIP>"+;
" <NEW_I06_DOK_NR>"+xml_encode(Wi06r.i06_dok_nr)+"</NEW_I06_DOK_NR>"+;
" <NEW_I07_KODAS_IS>"+xml_encode(m.lcKodas_is)+"</NEW_I07_KODAS_IS>"+;
"</I06>")
f_info("Klaida: "+m.loRivApi.Message,.T.)
RETURN .F.
ENDIF
** Atnaujiname informaciją pardavimo operacijų sąraše (grid'e)
m.loRivApi.refresh_grid(_thisform)
_thisform=thisform
EXECSCRIPT(SUBSTR(komanda_v,ATC(CHR(13),komanda_v,ij_k+1)))
EXIT
ON ERROR
* Perkeliame *
m.loRivApi=v_riv_sp()
m.loRivApi.user="MASTER"
IF !loRivApi.Exec("RGI_EDIT_I06","P","@I06_KODAS_PO=?Wi06r.i06_kodas_po")
=f_info("Klaida: "+m.loRivApi.Message,.T.)
RETURN .F.
ENDIF
** Atnaujiname informaciją pardavimo operacijų sąraše (grid'e)
m.loRivApi.refresh_grid(_thisform, Wi06r.i06_kodas_po)