MSCAN v3 versija

Norint turėti galimybę dirbti su MSCAN v3 versija, Rivile GAMA programoje reikia aprašyti parametrą MSCAN_V3.

MSCAN parametrai, aprašomi Rivile GAMA sistemoje (veikia tik V3 versijoje)

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

MSCAN_BAR_PA - parametras nustatantis, ar vartotojas gali naudoti prekės paiešką

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

  • Parametras 1 reikšmė turi būti nustatyta - P.
  • Parametras 2 reikšmė yra formulės kodas iš Servisas -> Kortelės -> Formulės. Jeigu aprašyta formulė, tai bus vykdoma formulė ir sisteminis sąrašas nebus rodomas.

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_04

MSCAN aplikacijoje Prekių paiešką galima rasti skenavimo lange prie "Barkodas" lauko, paspaudus ant mygtuko nustatymu_ikona. Jeigu parametras MSCAN_BAR_PA neaprašytas - pasirinkimų lange "Paieška" nebus matoma.

mscan_05

Atidarius Paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.

mscan_06

MSCAN_OBJ_PA - parametras nustatantis, ar vartotojas gali naudoti objekto paiešką

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

  • Parametras 1 reikšmė turi būti nustatyta - P.
  • Parametras 2 reikšmė yra formulės kodas iš Servisas -> Kortelės -> Formulės. Jeigu aprašyta formulė, tai bus vykdoma formulė ir sisteminis sąrašas nebus rodomas.

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_07

MSCAN aplikacijoje Objektų paiešką galima rasti skenavimo lange prie "Objektas" lauko, paspaudus ant mygtuko nustatymu_ikona. Jeigu parametras MSCAN_OBJ_PA neaprašytas - pasirinkimų lange "Paieška" nebus matoma.

mscan_08

Atidarius Paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.

mscan_33

MSCAN_SER_PA - parametras nustatantis, ar vartotojas gali naudoti serijos paiešką

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.

  • Parametras 1 reikšmė turi būti nustatyta - P.
  • Parametras 2 reikšmė yra formulės kodas iš Servisas -> Kortelės -> Formulės. Jeigu formulė neaprašyta - sąrašas visada bus tuščias.

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_10

MSCAN aplikacijoje Serijų paiešką galima rasti skenavimo lange prie "Serija" lauko, paspaudus ant mygtuko nustatymu_ikona. Jeigu parametras MSCAN_SER_PA neaprašytas - pasirinkimų lange "Paieška" nebus matoma.

mscan_11

Atidarius Paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.

mscan_09

MSCAN_LAU_TV - parametras nustatantis skenavimo laukų eiliškumą

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.

mscan_12

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:

  • barkodas
  • objektas
  • serija
  • kiekis
  • papildomi
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.

mscan_13

mscan_14

MSCAN_V3 - Versijų keitimo mygtukas

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

MSCAN nauji funkcionalumai

Laukų užrakinimas

Senoje MSCAN versijoje buvo galimybė nustatymuose įjungti/išjungti Objekto ir Serijos laukų kopijavimą

mscan_15

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

mscan_16

Programos tema

Esant poreikiui vartotojui nustatymuose atsirado galimybė įjungti/išjungti Tamsų aplikacijos rėžimą.

mscan_17

mscan_18

Paieškos laukų formulės

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 

Teksto žymėjimai, spalvinimas

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.

mscan_23

Ž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

  • MSCAN_DSAR - dokumento detalios eilutės informacija.
'*$g$'+trim(productName)+'$g$* , $b$'+unitCode+' $b$ obj: '+objectCode+' serija:$r$'+lot+'$r$'

mscan_21

mscan_19

'Dok: *'+documentNr+'*, '+convert(char(10),docDate,120)+', renka:'+addUser+' K:$b$'+clientName+'$b$'

mscan_22

mscan_20

  • MSCAN_OBJ_PA - objekto paieškos parametras. Antroji šio parametro reikšmė - formulės kodas. Aprašant formulę galima naudoti teksto žymėjimus. Formulė rašoma SQL kalba.
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_25

mscan_24

mscan_26

Prekės informacija

MSCAN aplikacijoje informacija apie prekę matoma:

  1. Modulyje "Prekės informacija";

    mscan_27

  2. Paspaudus ant detalios eilutės ir pasirinkus "Informacija pagal barkodą";

    mscan_28

  3. Įvedus barkodą skenavimo lange, paspaudus mygtuką ir pasirinkus "Informacija pagal barkodą".

    mscan_29

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:

  1. #RGI_MSCAN_GET_PRODUCT_INFO_result - kurioje talpinama sisteminė informacija apie barkodą
  2. #RGI_MSCAN_GET_PRODUCT_INFO_params - kurioje talpinami parametrai gauti iš MSCAN aplikacijos - barkodas, operacijos numeris, modulis, eilutės numeris.

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.

Pavyzdys kai norima matyti mažiau informacijos

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 

mscan_30

mscan_31

Jeigu norima prekės informacija pateikti patogesniu formatu, pavyzdžiui, naudojant lentelę, galima naudoti schemą. Schema formuojama laikantis tam tikrų taisyklių. Pavyzdys pateikiamas žemiau.

  1. Rezultatas turi būti imamas iš lentelės pavadinimu "schema".
  2. Turi būti stulpelis pavadinimu "type", kuris nurodo informacinės eilutės tipą. Stulpelio reikšmės gali būti:
    1. inline - paprasta eilutė,
    2. link - nuoroda,
    3. block - aprašymo forma,
    4. space - tarpas,
    5. list - sąrašas.
  3. Turi būti stulpelis pavadinimu key, kuriame talpinamas eilutės pavadinimas.
  4. Turi būti stulpelis pavadinimu value, kuriame talpinama eilutės reikšmė.
  5. Gali būti stulpelis pavadinimu title, kuriame talpinamas nuorodos pavadinimas (neprivalomas).
  6. Gali būti stulpelis pavadinimu color, kuriame talpinama eilutės reikšmės spalva (neprivalomas).
  7. Gali būti stulpelis pavadinimu data, kuriame talpinama sąrašo informacija (neprivalomas).
Pavyzdys, kai aprašoma schema (likučiai pagal padalinius)

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 

mscan_32