Back to Gidas

MSCAN - konfigūravimas

internetiniai-underscore-moduliai-mscan-mscan-underscore-diegimas-mscan-underscore-konfiguravimas.md

latest12.2 KB
Original Source

PDF

Pradžia Internetiniai moduliai Rivile MSCAN (atrinkimas ir pajamavimas) MSCAN - Diegimas MSCAN - konfigūravimas

MSCAN - konfigūravimas

MSCAN konfigūravimas

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

  • 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 arba padalinių, su kuriais vartotojas gali dirbti aplikacijoje, sąrašas MSCAN_APPIS,
  • 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

KintamasisAprašymas
@userVartotojas
@moduleModulis
@param1Lauko, kuriame ieškoma, pavadinimas
@filterĮvesta filtravimo frazė
@isListNurodo, ar formulė kviečiama iš sąrašo ar is paieškos formos

Rezultatų lentelė #RGI_MSCAN_SEARCH_result - į kurią talpinamas rezultatas

StulpelisPavadinimas
valueReikšmė - būtinai barkodas, objekto kodas ar serija - priklausomai nuo sąrašo.
labelPavadinimas. 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ė

StulpelisPavadinimas
valueFiltravimui įvesta frazė
value1Filtravimui į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 :

valuevalue1value2
ManoMano%%Mano%
prekprek%%prek%

Klaidos registravimui naudojama funkcija RGI_KLAIDA.

Funkcijos parametrų eilės tvarka:

ParametrasTipasPaskirtis / Reikšmė
@Tagvarchar(50)Laukas, kuris įtakojo klaidą
@Expr2varchar(250)Klaidos pranešimas (LT)
@Expr3varchar(250)Klaidos pranešimas (EN)
@Expr1varchar(8000)Papildoma išplėstinė klaidos informacija
@Err_CodeintKlaidos kodas (Pagal nutylėjimą 0)

Klaidos funkcijos naudojimo pavyzdys:

sql
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ė

sql
--@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 N40_ABAR on n37_kodas_ps = n40_kodas_ps and n37_kodas_us = n40_kodas_us
    WHERE N37_BAR_KODAS <> '000000000000'
    AND NOT EXISTS (SELECT 1 FROM #RGI_MSCAN_SEARCH_filter as f WHERE N37_BAR_KODAS+N37_KODAS_PS+N37_KODAS_US+N17_PAV+ISNULL(N40_BAR_KODAS,'') NOT LIKE f.[value2])
    GROUP BY N37_BAR_KODAS, RTRIM(N37_KODAS_PS) + ', ' + RTRIM(N37_KODAS_US) + ', ' + RTRIM(N17_PAV)

Objekto paieškos formulė

sql
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
    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 NOT EXISTS (SELECT 1 FROM #RGI_MSCAN_SEARCH_filter as f WHERE N06_KODAS_OS+N06_PAV NOT LIKE f.[value2])
    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
    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 NOT EXISTS (SELECT 1 FROM #RGI_MSCAN_SEARCH_filter as f WHERE N06_KODAS_OS+N06_PAV NOT LIKE f.[value2])
    GROUP BY N06_KODAS_OS, N06_PAV + ' ( _' + RTRIM(N06_APRAS) + '_ )'

Serijos paieškos formulė

sql
--@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
    WHERE NOT EXISTS (SELECT 1 FROM #RGI_MSCAN_SEARCH_filter as f WHERE I17_SERIJA NOT LIKE f.[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.

Žymėjimai

  • Tekstą rašant tarp simbolių *, jis bus paryškintas. Pavyzdžiui, tekstas.

  • Tekstą rašant tarp simbolių _ , jis bus parašytas kursyvu. Pavyzdžiui, tekstas.

  • Tekstą rašant tarp simbolių ~, jis bus perbrauktas. Pavyzdžiui, tekstas

  • Tekstą rašant tarp simbolių $r$, jis bus nuspalvintas raudonai.

  • Tekstą rašant tarp simbolių $g$, jis bus nuspalvintas žaliai.

  • Tekstą rašant tarp simbolių $b$, jis bus nuspalvintas mėlynai.

Pavyzdžiai

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

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$'

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.
sql
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) + '_ )'