Norint turėti galimybę dirbti su MSCAN v3 versija, Rivile GAMA programoje reikia aprašyti parametrą MSCAN_V3.
Servisas -> Administravimas -> Parametrai
Parametras | Aprašymas |
---|---|
MSCAN_BAR_PA | Prekės paieška |
MSCAN_OBJ_PA | Objekto paieška |
MSCAN_SER_PA | Serijos paieška |
MSCAN_LAU_TV | Skenavimo laukų eiliškumas |
MSCAN_V3** | Versijų keitimo mygtukas |
** - veikia tiek senoje tiek naujoje V3 versijoje
Parametras turi dvi reikšmes. Pirmoji nurodo, kad vartotojui bus leidžiama naudoti Prekės paiešką. Antroji skirta aprašyti formulės kodui, jei bus poreikis koreguoti paieškai pateikiamų prekių sąrašą.
Kaip aprašyti formules paieškos laukams galima rasti čia.
Pagal nutylėjimą prekių paieška - išjungta.
Prekių paieška taip pat atsižvelgia į Rivile GAMA parametrą SS_FIL_PS - Prekių filtras
MSCAN aplikacijoje Prekių paiešką galima rasti skenavimo lange prie "Barkodas" lauko, paspaudus ant mygtuko . Jeigu parametras MSCAN_BAR_PA neaprašytas - pasirinkimų lange "Paieška" nebus matoma.
Atidarius Paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.
Parametras turi dvi reikšmes. Pirmoji nurodo, kad vartotojui bus leidžiama naudoti Objekto paiešką. Antroji skirta aprašyti formulės kodui, jei bus poreikis koreguoti paieškai pateikiamų objektų sąrašą.
Kaip aprašyti formules paieškos laukams galima rasti čia.
Pagal nutylėjimą objektų paieška - išjungta.
Objektų paieška taip pat atsižvelgia į Rivile GAMA parametrą SS_FIL_OS - Objektų filtras
MSCAN aplikacijoje Objektų paiešką galima rasti skenavimo lange prie "Objektas" lauko, paspaudus ant mygtuko . Jeigu parametras MSCAN_OBJ_PA neaprašytas - pasirinkimų lange "Paieška" nebus matoma.
Atidarius Paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.
Parametras turi dvi reikšmes. Pirmoji nurodo, kad vartotojui bus leidžiama naudoti Serijos paiešką. Antroji skirta aprašyti formulės kodui. Formulėje turi būti aprašyta logika iš kur formuojamas serijų sąrašas.
Kaip aprašyti formules paieškos laukams galima rasti čia.
Pagal nutylėjimą serijų paieška - išjungta.
Nėra sisteminio serijų sąrašo. Norint naudoti paiešką, būtina aprašyti formulę.
MSCAN aplikacijoje Serijų paiešką galima rasti skenavimo lange prie "Serija" lauko, paspaudus ant mygtuko . Jeigu parametras MSCAN_SER_PA neaprašytas - pasirinkimų lange "Paieška" nebus matoma.
Atidarius Paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.
MSCAN aplikacijoje skenavimo lange yra galimybė dirbti su 5 laukais - barkodo, kiekio, objekto, serijos ir papildomos informacijos. Barkodo ir kiekio laukai yra privalomi ir įjungti visada. Laukus objektas, serija ir papildoma informacija galima įjungti/išjungti MSCAN nustatymuose.
Norint pakeisti skenavimo laukų tvarką, tai galima padaryti aprašant parametrą MSCAN_LAU_TV. Parametras gali būti aprašytas modulio ir vartotojo lygyje.
Galimi laukų pavadinimai:
serija,objektas,barkodas,kiekis,papildomi
Nėra būtina išvardinti visus laukus. Jei laukas nebus įrašytas jis atsidurs skenavimo lango apačioje.
Jeigu vartotojas MSCAN nustatymuose bus išjungęs tam tikrus laukus, net ir aprašius šį parametrą - laukai nebus rodomi.
Aprašius parametrą MSCAN_V3 ir nustačius jo reikšmę į "Taip", tiek senoje tiek naujoje MSCAN versijoje nustatymuose atsiranda mygtukas, leidžiantis pakeisti versiją.
Senoje MSCAN aplikacijos versijoje nustatymuose atsiranda mygtukas "Pereiti prie naujos versijos".
Perėjus prie naujos versijos, nustatymuose atsiranda mygtukas "Grąžinti seną versiją".
Senoje MSCAN versijoje buvo galimybė nustatymuose įjungti/išjungti Objekto ir Serijos laukų kopijavimą
Naujoje versijoje šių nustatymų nelieka, tačiau atsiranda galimybė operacijoje užrakinti barkodo, kiekio, objekto, serijos laukų reikšmes.
Tai padaryti galima prie konkretaus lauko paspaudus mygtuką ir pasirinkus "Užrakinti". Kai užrakinimas nebereikalingas - paspaudus tą patį mygtuką galima pasirinkti "Atrakinti". Užrakintas laukas tampa neaktyvus ir skenuojant reikšmė išsaugoma.
Esant poreikiui vartotojui nustatymuose atsirado galimybė įjungti/išjungti Tamsų aplikacijos rėžimą.
Jeigu MSCAN aplikacijoje skenavimo lange norima naudoti prekės, objekto ar serijos paiešką tam reikalinga aprašyti parametrus MSCAN_BAR_PA, MSCAN_OBJ_PA, MSCAN_SER_PA.
Jeigu paiešką norima papildyti tam tikra informacija, ar serijų atveju, aprašyti sąrašą tam naudojamos formulės.
Patarimai programuojantiems: Formulės programavimą ir testavimą geriausia vykdyti naudojant SQL priemones (MSSQL SSMS arba Sybase iSQL).Formulės pradžioje aprašomi standartiniai kintamieji, kurie bus naudojami užpildant juos testinėmis reikšmėmis. Vėliau keliant programinį kodą į formulę, šią dalį galima užkomentuoti.
Servisas -> Kortelės -> Formulės
Formulė rašoma MS SQL kalba.
Rašant formulę, yra pasiekiami tam tikri kintamieji bei laikinos lentelės.
Kintamieji
Kintamasis | Aprašymas |
---|---|
@user | Vartotojas |
@module | Modulis |
@param1 | Lauko, kuriame ieškoma, pavadinimas |
@filter | Įvesta filtravimo frazė |
Rezultatų lentelė #RGI_MSCAN_SEARCH_result - į kurią talpinamas rezultatas
Stulpelis | Pavadinimas |
---|---|
value | Reikšmė - būtinai barkodas, objekto kodas ar serija - priklausomai nuo sąrašo. |
label | Pavadinimas. Gali būti sudarytas iš įvairių reikšmių pagal kurias bus norima ieškoti. |
Filtravimo lentelė #RGI_MSCAN_SEARCH_filter - kurioje patalpinta vartotojo filtravimui įvesta frazė
Stulpelis | Pavadinimas |
---|---|
value | Filtravimui įvesta frazė |
value1 | Filtravimui įvesta frazė + % |
value2 | % + Filtravimui įvesta frazė + % |
Klaidos registravimui naudojama funkcija RGI_KLAIDA.
Funkcijos parametrų eilės tvarka:
Parametras | Tipas | Paskirtis / Reikšmė |
---|---|---|
@Tag | varchar(50) | Laukas, kuris įtakojo klaidą |
@Expr2 | varchar(250) | Klaidos pranešimas (LT) |
@Expr3 | varchar(250) | Klaidos pranešimas (EN) |
@Expr1 | varchar(8000) | Papildoma išplėstinė klaidos informacija |
@Err_Code | int | Klaidos kodas (Pagal nutylėjimą 0) |
Klaidos funkcijos naudojimo pavyzdys:
exec dbo.RGI_KLAIDA '@data_nuo_iki','Įvestas laikotarpis turi būti ne ilgesnis nei 7 dienos', 'The entered period must not exceed 7 days!'
Prekės paieškos formulė
--@filter - vartotojo įvesta filtravimo sąlyga
-- kol neįvestas nei vienas simbolis informacija nerodoma
IF @filter <> ''
INSERT INTO #RGI_MSCAN_SEARCH_result ([value],[label])
SELECT N37_BAR_KODAS as [value], RTRIM(N37_KODAS_PS) + ',_ ' + RTRIM(N37_KODAS_US) + '_, ' + RTRIM(N17_PAV) as [label]
FROM N37_PMAT n37
LEFT JOIN N17_PROD on n17_kodas_ps = n37_kodas_ps
INNER JOIN #RGI_MSCAN_SEARCH_filter AS xx
ON (N37_BAR_KODAS like xx.[value1]
or N37_KODAS_PS like xx.[value2]
or N37_KODAS_US like xx.[value2]
or N17_PAV like xx.[value2]
)
WHERE N37_BAR_KODAS <> '000000000000'
GROUP BY N37_BAR_KODAS, RTRIM(N37_KODAS_PS) + ',_ ' + RTRIM(N37_KODAS_US) + '_, ' + RTRIM(N17_PAV)
Objekto paieškos formulė
declare @rdate datetime
select @rdate = convert(datetime,left(convert(varchar,getdate(),120),10),120)
--@filter - vartotojo įvesta filtravimo sąlyga
-- kol neįvestas nei vienas simbolis informacija nerodoma
IF @filter <> ''
INSERT INTO #RGI_MSCAN_SEARCH_result ([value],[label])
SELECT N06_KODAS_OS as [value], '$g$' + N06_PAV + '$g$' + ' ( _' + RTRIM(N06_APRAS) + '_ )' as [label]
FROM N06_OBJ
INNER JOIN #RGI_MSCAN_SEARCH_filter AS xx
ON (N06_KODAS_OS like xx.[value1]
or N06_PAV like xx.[value2]
)
WHERE N06_TIPAS = 2 AND (N06_POZ_DATE = 0 OR (N06_POZ_DATE = 1 AND @rDate >= N06_BEG_DATE and @rDate <= N06_END_DATE)) AND N06_TEVAS = 'KILMES_SALIS'
GROUP BY N06_KODAS_OS, '$g$' + N06_PAV + '$g$' + ' ( _' + RTRIM(N06_APRAS) + '_ )'
Serijos paieškos formulė
--@filter - vartotojo įvesta filtravimo sąlyga
-- kol neįvestas nei vienas simbolis informacija nerodoma
IF @filter <> ''
INSERT INTO #RGI_MSCAN_SEARCH_result ([value],[label])
SELECT I17_SERIJA as [value], i17_serija as [label]
FROM I17_VPRO
INNER JOIN #RGI_MSCAN_SEARCH_filter AS xx
ON I17_SERIJA like xx.[value2]
GROUP BY I17_SERIJA
Esant poreikiui dokumento ar detalioje eilutėje paryškinti ar nuspalvinti tam tikrą teksto dalį, tai galima padaryti naudojant specialius žymėjimus. Šie žymėjimai gali būti naudojami aprašant parametrus MSCAN_DSAR, MSCAN_HSAR, MSCAN_BAR_PA, MSCAN_OBJ_PA, MSCAN_SER_PA.
Žymėjimai
Tekstą rašant tarp simbolių *, jis bus paryškintas. Pavyzdžiui, tekstas.
*norimas tekstas*
Tekstą rašant tarp simbolių _ , jis bus parašytas kursyvu. Pavyzdžiui, tekstas.
_norimas tekstas_
Tekstą rašant tarp simbolių ~, jis bus perbrauktas. Pavyzdžiui, tekstas
~norimas tekstas~
Tekstą rašant tarp simbolių $r$, jis bus nuspalvintas raudonai.
$r$norimas tekstas$r$
Tekstą rašant tarp simbolių $g$, jis bus nuspalvintas žaliai.
$g$norimas tekstas$g$
Tekstą rašant tarp simbolių $b$, jis bus nuspalvintas mėlynai.
$b$norimas tekstas$b$
Pavyzdžiai
'*$g$'+trim(productName)+'$g$* , $b$'+unitCode+' $b$ obj: '+objectCode+' serija:$r$'+lot+'$r$'
'Dok: *'+documentNr+'*, '+convert(char(10),docDate,120)+', renka:'+addUser+' K:$b$'+clientName+'$b$'
declare @rdate datetime
select @rdate = convert(datetime,left(convert(varchar,getdate(),120),10),120)
--@filter - vartotojo įvesta filtravimo sąlyga
-- kol neįvestas nei vienas simbolis informacija nerodoma
IF @filter <> ''
INSERT INTO #RGI_MSCAN_SEARCH_result ([value],[label])
SELECT N06_KODAS_OS as [value], '$g$' + N06_PAV + '$g$' + ' ( _' + RTRIM(N06_APRAS) + '_ )' as [label]
FROM N06_OBJ
INNER JOIN #RGI_MSCAN_SEARCH_filter AS xx
ON (N06_KODAS_OS like xx.[value1]
or N06_PAV like xx.[value2]
)
WHERE N06_TIPAS = 2 AND (N06_POZ_DATE = 0 OR (N06_POZ_DATE = 1 AND @rDate >= N06_BEG_DATE and @rDate <= N06_END_DATE)) AND N06_TEVAS = 'KILMES_SALIS'
GROUP BY N06_KODAS_OS, '$g$' + N06_PAV + '$g$' + ' ( _' + RTRIM(N06_APRAS) + '_ )'
MSCAN aplikacijoje informacija apie prekę matoma:
Modulyje "Prekės informacija";
Paspaudus ant detalios eilutės ir pasirinkus "Informacija pagal barkodą";
Įvedus barkodą skenavimo lange, paspaudus mygtuką ir pasirinkus "Informacija pagal barkodą".
Senoje versijoje norint koreguoti šią informaciją buvo galima įkelti kliento procedūrą RGI_MSCAN_GET_PRODUCT_INFO_CUSTOM. Šis funkcionalumas vis dar veikia, tačiau naujoje versijoje atsirado paprastesnis būdas - galimybė aprašyti formulę.
Formulės kodas būtinai turi būti MSCAN_PS_INF
Formulėje yra pasiekiamos dvi lentelės:
Jeigu prekės aprašymui užtenka informaciją pateikti formatu: pavadinimas -> reikšmė, tuomet formulėje užtenka rašyti SELECT sakinius įtraukiant reikalingą informaciją. Pavyzdys pateikiamas žemiau.
Esant poreikiui papildyti ar nerodyti tam tikros informacijos galima naudoti duomenis iš lentelių - #RGI_MSCAN_GET_PRODUCT_INFO_result ir #RGI_MSCAN_GET_PRODUCT_INFO_params
Formulė rašoma MS SQL kalba.
SELECT * INTO #rezultatas FROM
( SELECT N37_BAR_KODAS as barkodas, N17_PAV as pavadinimas, N17_kodas_ks as tiekejas
FROM #RGI_MSCAN_GET_PRODUCT_INFO_result
) as x
SELECT * from #rezultatas as app for xml auto, elements
DELETE FROM #RGI_MSCAN_GET_PRODUCT_INFO_result
Jeigu norima prekės informacija pateikti patogesniu formatu, pavyzdžiui, naudojant lentelę, galima naudoti schemą. Schema formuojama laikantis tam tikrų taisyklių. Pavyzdys pateikiamas žemiau.
Jeigu norima informacija pateikti kitokiu formatu, pavyzdžiui lentele, galima naudoti schemą. Schema taip pat aprašoma formulėje.
Formulė rašoma MS SQL kalba.
SELECT * INTO #rezultatas FROM
(
select 1 as [eil], 'inline' as type, 'Kodas' as [key], N17_KODAS_PS as [value], null as [title], null as color, null as [data] FROM #RGI_MSCAN_GET_PRODUCT_INFO_result
UNION ALL
select 2 as [eil], 'inline' as type, 'Pavadinimas' as [key], N17_PAV as [value], null as [title], 'RGB(0,180,0)' as color, null as [data] FROM #RGI_MSCAN_GET_PRODUCT_INFO_result
UNION ALL
select 3 as [eil], 'link' as type, 'Prekės nuotrauka' as [key], n17.N17_MEN_PAV as [value], 'Nuotrauka>>>' as [title], null as color, null as [data] FROM #RGI_MSCAN_GET_PRODUCT_INFO_result as I, N17_PROD as N17 WHERE n17.N17_KODAS_PS = I.n17_kodas_ps and n17.N17_MEN_PAV<>''
UNION ALL
select 4 as [eil], 'block' as type, 'Prekės aprašymas' as [key], n17.N17_PASTABOS as [value], null as [title], null as color, null as [data] FROM #RGI_MSCAN_GET_PRODUCT_INFO_result as I, N17_PROD as N17 WHERE n17.N17_KODAS_PS = I.n17_kodas_ps
UNION ALL
select 5 as [eil], 'space' as type, '' as [key], '' as [value], null as [title], null as color, null as [data]
UNION ALL
select 6 as [eil], 'list' as type, 'Likutis:' as [key], '' as [value], null as [title], null as color,
CAST((SELECT 'inline' as [type], RTRIM(I17_kodas_is)+' '+RTRIM(N07_PAV) as [key], cast(I17_KIEKIS as varchar(10))+' ('+rtrim(I17_KODAS_US_A)+')' as [value], 'red' as color FROM I17_VPRO as [schema], N07_IMON as N07 WHERE I17_KODAS_PS = N17_KODAS_PS and I17_kodas_is=N07_kodas_is FOR XML AUTO) as xml) as [data] FROM #RGI_MSCAN_GET_PRODUCT_INFO_result
) as x
SELECT app.n17_kodas_ps, [schema].* from #RGI_MSCAN_GET_PRODUCT_INFO_result app, #rezultatas as [schema] ORDER BY [schema].eil for xml auto, elements
DELETE FROM #RGI_MSCAN_GET_PRODUCT_INFO_result