
PROBLEMA CON COMBOBOX Y DBF
Publicado por marcela molina (86 intervenciones) el 30/04/2008 15:50:28
hola a todos. alguien me podria ayudar ,resulta que tengo una
base de datos de personal que vuisualizo en un combobox ,yo necesito que al seleccionar
un registro de personal esta vaya a otra funcion para sacar un calculo.
el problema se me presenta ya que al selecionar al mismo empleado por segunda vez no se me va nuevamente a la funcion.tengo que selecionar a otro empleado en el combobox
y asi de esta manera funciona.pero no va dos veces a la funcion de calculo con el mismo empleado el programa lo detallo a continuacion.
puede ser un problema del on change.y sera por eso que no va por segunda vez a la funcion cuando es selecionado NUEVAMENTE EL REGISTRO.
achofer(): funcion que almacena Y DESPLEGA base de datos de personal
tufuncion:funcion que saca el calculo
REDEFINE COMBOBOX odbf:nomchofer ITEMS achofer() ID 35 OF Odlg update on change tufuncion(oDbf,oDlg,xnomchofer)
FUNCTION tufuncion( oDbf, oDlg,xnomchofer)
local xpor:=.t.
LOCAL acIndices2 := {}
LOCAL cIndice2 := ""
LOCAL acIndices3 := {}
LOCAL cIndice3 := ""
LOCAL acDevuelve2 := {}
local xxpp,xxpp2
LOCAL nRegistros := 0
LOCAL oDbf2
local Odbf3
local al:=""
xnomchofer:=odbf:nomchofer
auxnom:=xnomchofer
IF NetUse( "rollos", .T. )
OrdListAdd( "rollos", "CODIGO", "rollo","NOMBRE" )
DATABASE oDbf2
oDbf2:Load()
ELSE
MsgStop( "Fichero de rollos Bloqueado" )
RETURN NIL
ENDIF
acIndices2 := GetIndices()
cIndice2 := acIndices2[ 3 ]
dbSetOrder( aScan( acIndices2, cIndice2 ) )
dbGoTop()
oDbf2:Seek( upper(xnomchofer+'SI'))
if found()
xxpp:=str(odbf2:numeroreal)
xxpp2:=Right(xxpp,3)
oDbf:boldirini:=val(xxpp2)
oDbf:seriedir:=odbf2:serie
else
oDbf:boldirini:=0
oDbf:seriedir:=space(1)
msginfo("Chofer No tiene Asignado Rollos")
endif
close
oDlg:Update()
RETURN .T.
base de datos de personal que vuisualizo en un combobox ,yo necesito que al seleccionar
un registro de personal esta vaya a otra funcion para sacar un calculo.
el problema se me presenta ya que al selecionar al mismo empleado por segunda vez no se me va nuevamente a la funcion.tengo que selecionar a otro empleado en el combobox
y asi de esta manera funciona.pero no va dos veces a la funcion de calculo con el mismo empleado el programa lo detallo a continuacion.
puede ser un problema del on change.y sera por eso que no va por segunda vez a la funcion cuando es selecionado NUEVAMENTE EL REGISTRO.
achofer(): funcion que almacena Y DESPLEGA base de datos de personal
tufuncion:funcion que saca el calculo
REDEFINE COMBOBOX odbf:nomchofer ITEMS achofer() ID 35 OF Odlg update on change tufuncion(oDbf,oDlg,xnomchofer)
FUNCTION tufuncion( oDbf, oDlg,xnomchofer)
local xpor:=.t.
LOCAL acIndices2 := {}
LOCAL cIndice2 := ""
LOCAL acIndices3 := {}
LOCAL cIndice3 := ""
LOCAL acDevuelve2 := {}
local xxpp,xxpp2
LOCAL nRegistros := 0
LOCAL oDbf2
local Odbf3
local al:=""
xnomchofer:=odbf:nomchofer
auxnom:=xnomchofer
IF NetUse( "rollos", .T. )
OrdListAdd( "rollos", "CODIGO", "rollo","NOMBRE" )
DATABASE oDbf2
oDbf2:Load()
ELSE
MsgStop( "Fichero de rollos Bloqueado" )
RETURN NIL
ENDIF
acIndices2 := GetIndices()
cIndice2 := acIndices2[ 3 ]
dbSetOrder( aScan( acIndices2, cIndice2 ) )
dbGoTop()
oDbf2:Seek( upper(xnomchofer+'SI'))
if found()
xxpp:=str(odbf2:numeroreal)
xxpp2:=Right(xxpp,3)
oDbf:boldirini:=val(xxpp2)
oDbf:seriedir:=odbf2:serie
else
oDbf:boldirini:=0
oDbf:seriedir:=space(1)
msginfo("Chofer No tiene Asignado Rollos")
endif
close
oDlg:Update()
RETURN .T.
Valora esta pregunta


0