RE:ayuda con listbox fivewin 2.7
Amigo lo que hace esta rutina (y funciona), es mostrar un listbox y agrecgar en ese archivo los datos leidos con el codigo de barra.
pero el usuario no quiere tomarse la mplestia de dar ACEPTAR , cada vez que lea un codigo de barra, esto es debido a que aveces tiene que leer hasta 300 codigos y dice que es muy tedioso pasar el lector de codigo y encima tener que dar el ACEPTAR, para grabar el registro.
y quiere que al pasa el lector el registro vaya grabando y tener que dar el aceptar.
podrian ayudarme..
gracias
juan
FUNCTION SER1102()
******************
LOCAL oDlgSeries, oLbs
SELE &LN_Temp
s_Cod_Art:=&LA_ARCHIVO->i_Cod_Art
s_Descrip:=&LA_ARCHIVO->i_Descrip
DEFINE FONT oFontc NAME "MS SANS SERIF" SIZE 0, -12
DEFINE DIALOG oDlgSeries FROM 05, 55 TO 38, 100 TITLE OemToAnsi("REGISTRA NUMERO DE SERIES POR ARTICULO");
FONT oFontc COLORS RGB(0,0,255),RGB(238,221,187)
@010,002 Say 'CODIGO :' OF oDlgSeries Pixel COLORS RGB(0,0,255),RGB(238,221,187)
@010,030 Get s_Cod_Art OF oDlgSeries Pixel COLORS RGB(255,0,0),RGB(255,255,255) ReadOnly
@025,002 Say 'ARTICUL:' OF oDlgSeries Pixel COLORS RGB(0,0,255),RGB(238,221,187)
@025,030 Get s_Descrip OF oDlgSeries Pixel COLORS RGB(255,0,0),RGB(255,255,255) ReadOnly
SELE 82
SET FILTER TO I_COD_ART = S_COD_ART
DbGoTop()
@040,005 LISTBOX oLbs ;
FIELDS WSERIES->i_Seq,;
WSERIES->i_Cod_Art,;
WSERIES->i_Nro_Ser;
FIELDSIZES 50, 110, 180;
HEADERS "ARTICULO", "NUMERO DE SERIE";
SIZE 175, 140 OF oDlgSeries Pixel
@200, 003 BUTTON "AGREGA NRO.SERIE" OF oDlgSeries Pixel SIZE 80, 15;
ACTION(SER1102A(), oLbs:Refresh(), oDlgSeries:Refresh())
@200, 090 BUTTON "ELIMINAR NRO.SERIE" OF oDlgSeries Pixel SIZE 80, 15;
ACTION(SER1102B(), oLbs:Refresh(), oDlgSeries:Refresh())
@220, 070 BUTTON "&SALIR" OF oDlgSeries Pixel SIZE 60, 15 ;
ACTION oDlgSeries:End() CANCEL
ACTIVATE DIALOG oDlgSeries
SELE &LN_Temp
RETURN(NIL)
FUNCTION SER1102A()
*******************
Public oFone, S_NRO_SER, OS_NRO_SER
DEFINE FONT oFone NAME "MS SANS SERIF" SIZE 0,-13 BOLD
DEFINE DIALOG oDlgMov FROM 27, 00 TO 38, 050 TITLE OemToAnsi("INGRESA NUMERO DE SERIE");
FONT oFone COLORS RGB(0,255,255),RGB(200,128,100)
S_NRO_SER:=Space(30)
@10,025 Say 'SERIE: ' OF oDlgMov Pixel SIZE 30,15 Font oFone COLORS RGB(255,255,255),RGB(200,128,100)
@10,070 Get OS_NRO_SER VAR S_NRO_SER Pict '@!' OF oDlgMov Pixel COLORS RGB(000,000,255),RGB(255,255,255) Size 120,15 Font oFone
@40,040 BUTTON "&ACEPTAR" OF oDlgMov Pixel SIZE 50, 15 ;
ACTION (MOV1102A(),;
oDlgMov:End())
@40,110 BUTTON "SALIR" OF oDlgMov Pixel SIZE 50, 15 ;
ACTION oDlgMov:End() CANCEL
ACTIVATE DIALOG oDlgMov
RETURN
FUNCTION MOV1102A()
******************
SELE 82
DbGoBottom()
nSeq:=Val(i_Seq)+1
SELE 82
DbAppend()
Repl i_seq with StrZero(nSeq,3,0)
Repl i_cod_art with s_Cod_art
IF LEN(TRIM(s_Nro_Ser))>0
IF LEN(TRIM(s_Nro_ser))>15
mnumserie=SUBS(s_nro_ser,15,15)
ELSE
mnumserie=SUBS(s_nro_ser,1,15)
ENDIF
REPL i_Nro_Ser WITH mnumserie
ENDIF
DbGoBottom()
RETURN
FUNCTION SER1102B()
******************
SELE 82
DbDelete()
wLin:=0
SELE 82
DbGoTop()
Do While !Eof()
IF i_Cod_Art <> s_Cod_Art
Dbskip()
Loop
Endif
wLin++
Repl i_Seq with StrZero(wLin,3,0)
Dbskip()
Enddo
RETURN