MSCAN - konfigūravimas

MSCAN konfigūravimas

Nustatymai, reikalingi naujų dokumentų kūrimui MSCAN aplikacijoje

MSCAN aplikacijoje Pardavimų ir Pirkimų moduliuose galima kurti naujus pajamavimo dokumentus.

MSCAN aplikacijoje Pardavimų, Pirkimų ir Vidinio judėjimo moduliuose galima kurti naujus atrinkimo dokumentus.

Prieš pradedant MSCAN aplikacijoje kurti naujus dokumentus:

  • aprašomi leidžiami kurti dokumentų tipai - MSCAN_DOKTIP,
  • leidžiama nuskenuotą prekę įtraukti į dokumentą – MSCAN_ITRAUK,
  • leidžiama užbaigti operaciją iškoreguojant kiekius - MSCAN_PAB_OP,
  • nurodomas padalinio kodas pagal nutylėjimą (pardavimų ir pirkimų operacijoms) - MSCAN_IS,
  • sukuriamos ir nurodomos padalinių siuntėjų ir padalinių gavėjų filtravimo lentelės (vidinio judėjimo operacijoms) - MSCAN_PADFIL,
  • norint, kad pastabų laukas būtų sąrašinis, aprašomos jų galimos reikšmės - MSCAN_PASTAB.

Rivile GAMA sistemoje aprašomi atitinkamų modulių dokumentų skaitliukai.

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 T-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ė
@isList Nurodo, ar formulė kviečiama iš sąrašo ar is paieškos formos

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ė + %

Šioje lentelėje įvedus paieškos frazę iš kelių žodžių ar simbolių atskirtų kableliu, bus sugeneruojami kelios eilutės. Pavyzdžiui: "Mano prek" bus įrašai lentelėje #RGI_MSCAN_SEARCH_filter:

value value1 value2
Mano Mano% %Mano%
prek prek% %prek%

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

--@isList - parametras nurodantis, ar formulė kviečiama is sąrašinio lauko.
-- Jei reikšmė lygi 1, tada iš sąrašinio, jei 0 tada per paiešką

IF @filter <> '' or @isList = 1
    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
    LEFT 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' and ((@filter <> '' AND XX.[value1] is not null) or (@filter = ''))
    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

--@isList - parametras nurodantis, ar formulė kviečiama is sąrašinio lauko.
-- Jei reikšmė lygi 1, tada iš sąrašinio, jei 0 tada per paiešką

IF @filter <> '' and @isList <> 1
    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
    LEFT 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'
        and ((@filter <> '' AND XX.[value1] is not null) or (@filter = ''))
    GROUP BY N06_KODAS_OS, '$g$' + N06_PAV + '$g$'  + ' ( _' + RTRIM(N06_APRAS) + '_ )'

IF @isList = 1
    INSERT INTO #RGI_MSCAN_SEARCH_result ([value],[label])
    SELECT N06_KODAS_OS as [value], N06_PAV + ' ( _' + RTRIM(N06_APRAS) + '_ )' as [label]  
    FROM N06_OBJ
    LEFT 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'
        and ((@filter <> '' AND XX.[value1] is not null) or (@filter = ''))
    GROUP BY N06_KODAS_OS, N06_PAV + ' ( _' + RTRIM(N06_APRAS) + '_ )'

Serijos paieškos formulė

--@filter - vartotojo įvesta filtravimo sąlyga
-- kol neįvestas nei vienas simbolis informacija nerodoma

--@isList - paraemtras nurodantis, ar formulė kviečiama iš sąrašinio lauko.
-- Jei reikšmė lygi 1, tada iš sąrašinio, jei 0 tada per paiešką

IF @filter <> '' or @isList = 1
    INSERT INTO #RGI_MSCAN_SEARCH_result ([value],[label])
    SELECT I17_SERIJA as [value], i17_serija as [label] 
    FROM I17_VPRO
    LEFT JOIN #RGI_MSCAN_SEARCH_filter AS xx
    ON I17_SERIJA like xx.[value2]
    WHERE (@filter <> '' AND XX.[value1] is not null) or (@filter = '')
    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

Jei reikšmė yra pakankamai ilga - galima nurodyti formulės kodą. O jau pačioje formulėje nurodyti formuojamą tekstą.

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

mscan_22

mscan_20

Jei reikšmė yra pakankamai ilga - galima nurodyti formulės kodą. O jau pačioje formulėje nurodyti formuojamą tekstą.

  • 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