mojaSymfonia FORUM
https://forum.mix-soft.pl/

Wykrywanie podwójnych kodów kreskowych danego towaru
https://forum.mix-soft.pl/viewtopic.php?f=15&t=9832
Strona 1 z 1

Autor:  Zenek N [ 2021-01-21, 19:14 ]
Tytuł:  Wykrywanie podwójnych kodów kreskowych danego towaru

taki raporcik w Procedurach towaru na wykrywanie podówjnych kodów kreskowych danego towaru podczas edycji lub dodawania nowego towaru, spróbujecie poprawić jakość kodu ?

Kod:
int Sub OnAfterUpdate(long lId)
   baseTW tw
int errTW

ioRec ioLista

tw.SetKey("id")
tw.SetKeySeg("id", 0)

errTw = tw.GetRec( GE )

tw.GetRecById( lId )
string kp = tw.GetField("kodpaskowy")
string a = ""
while !errTw
   if tw.GetField("kodpaskowy") != "" then
   if tw.GetField("kodpaskowy") == kp then ioLista.SetField("id",(using "%l", tw.GetField("id")))
   a += ""+"a"
   endif
   errTw = tw.GetRec( NX )
   
wend
if kp != "" then

if a != "" then
message("Uwaga podwójne kody kreskowe")
ShowListWindow( ioLista, "TW" )
NoOutPut()
endif
endif

   OnAfterUpdate = 0
EndSub

Autor:  Zenek N [ 2021-01-25, 09:33 ]
Tytuł:  Re: Wykrywanie podwójnych kodów kreskowych danego towaru

Kod został poprawiony ponieważ źle był napisany warunek dla którego raport decydował o stwierdzeniu podwójnych kodów kreskowych, w tym momencie o stwierdzeniu podwójnych kodów decyduje suma cyfr kodu kreskowego len(s) > 13, po przekroczeniu 13 cyfr dla tego samego kodu kresowego zostaje wyświetlony komunikat(tzn. że kod jest zdublowany lub zwielokrotniony)




Kod:
int Sub OnAfterUpdate(long lId)

baseTW tw
int errTW
string kp = tw.GetField("kodpaskowy")
string s = ""
ioRec ioLista
tw.SetKey("id")
tw.SetKeySeg("id", 0)
errTw = tw.GetRec( GE )
tw.GetRecById( lId )

while !errTw
   if tw.GetField("kodpaskowy") != "" then
       if tw.GetField("kodpaskowy") == kp then ioLista.SetField("id",(using "%l", tw.GetField("id")))
       if tw.GetField("kodpaskowy") == kp then s += tw.GetField("kodpaskowy")
   endif
   errTw = tw.GetRec( NX )
wend
if kp != "" then
    if(len(s) > 13) then
       message("Uwaga podwójne kody kreskowe")
       ShowListWindow( ioLista, "TW" )
       NoOutPut()
    endif
endif

OnAfterUpdate = 0
EndSub

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/