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:
Rivile GAMA sistemoje aprašomi atitinkamų modulių dokumentų skaitliukai.
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
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$'
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ą.
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) + '_ )'