by cuatecatl82 » Tue Aug 07, 2007 4:50 pm
Saludos Maestro Antinio Linares..
Le comento que ya realize su sugerencia y sigo con el mismo problema, le dejo aki el código fuente con el que capturo los datos presentados en las imagenes..
//----------------------------------------------------------
FUNCTION NProd(cAlias, lAlta, oLbx)
LOCAL oDlgP, oCbx, oBmp, oBtng1, oBtng2, cCod, oSay, oBtn1, oBtn2, oCursor, lReg:=.F.
LOCAL oGet1,oGet2,oGet4,oGet5,oGet6,oGet7,oGet8,oGet9,oGet10,oGet11,oGet12,oGet13
LOCAL aUnidad := { "PIEZA", "JUEGO", "LITRO", "METRO", "KILO", "GRAMOS" }
LOCAL cTitulo := IF( lAlta == .T., "Alta a un Nuevo Producto", "Modificar datos del Producto" )
LOCAL lSalida := .F.
LOCAL lSalva := .F.
LOCAL nVieCost := 0
LOCAL nRegis := 0
LOCAL aDat[15]
LOCAL aFami
LOCAL aProv
DBUSEAREA(.T.,oApp:cDriver,".\PROVEDOR.DBF","BPROV",.T.,.F.)
DBSETINDEX(".\PROVEDOR.CDX")
BPROV->(ORDSETFOCUS(2))
BPROV:= ALIAS()
BPROV->(DBGOTOP())
nRegis:= (BPROV)->(LASTREC())
aProv:= ARRAY(nRegis)
FOR N:= 1 TO nRegis
aProv[N]:= BPROV->(FIELDGET(3))
BPROV->(DBSKIP())
NEXT
DBSELECTAREA("BPROV")
DBCLOSEAREA("BPROV")
nRegis := 0
DBUSEAREA(.T.,oApp:cDriver,".\FAMILIAS.DBF","BFAM",.T.,.F.)
DBSETINDEX(".\FAMILIAS.CDX")
BFAM->(ORDSETFOCUS(2))
BFAM:= ALIAS()
BFAM->(DBGOTOP())
nRegis:= (BFAM)->(LASTREC())
aFami:= ARRAY(nRegis)
FOR N:= 1 TO nRegis
aFami[N]:= BFAM->(FIELDGET(2))
BFAM->(DBSKIP())
NEXT
DBSELECTAREA("BFAM")
DBCLOSEAREA("BFAM")
IF lAlta .OR. (!lAlta .AND. !(cAlias)->(EOF()))
nRecNo:= (cAlias)->(RECNO())
nInd:= (cAlias)->(INDEXORD())
IF lAlta
SONIDOS("NUEVO")
(cAlias)->(DBSETORDER(1))
(cAlias)->(DBGOBOTTOM())
(cAlias)->(DBGOTO(nRecNo))
aDat[ 1]:= SPACE(15)
aDat[ 2]:= SPACE(50)
aDat[ 3]:= SPACE(05)
aDat[ 4]:= SPACE(23)
aDat[ 5]:= SPACE(60)
dAltaPro:= DATE()
aDat[ 6]:= 0
aDat[ 7]:= 0
aDat[ 8]:= 0
aDat[ 9]:= 0
aDat[10]:= 0
aDat[11]:= 0
aDat[12]:= 0
aDat[13]:= 0
aDat[14]:= 0
ELSE
SONIDOS("MODIFICAR")
aDat[ 1]:= (cAlias)->Codigo
aDat[ 2]:= (cAlias)->Descripcio
aDat[ 3]:= (cAlias)->Unidad
aDat[ 4]:= (cAlias)->Familia
aDat[ 5]:= (cAlias)->Provedor
dAltaPro:= DATE()
aDat[ 6]:= (cAlias)->Costo
aDat[ 7]:= (cAlias)->Normal
aDat[ 8]:= (cAlias)->Enganche
aDat[ 9]:= (cAlias)->Pagos
aDat[10]:= (cAlias)->Importe
aDat[11]:= (cAlias)->Credito
aDat[12]:= (cAlias)->Contado
aDat[13]:= (cAlias)->Especial
aDat[14]:= (cAlias)->Oferta
nVieCost:= (cAlias)->Costo
ENDIF
DEFINE CURSOR oCursor RESOURCE "MANO"
DEFINE DIALOG oDlgP RESOURCE "Producto" TITLE cTitulo FONT oApp:cFuente
REDEFINE IMAGE oBmp ID 900 FILENAME ".\DATOS\IMAINVEN.JPG" OF oDlgP
REDEFINE GET oGet1 VAR aDat[ 1] ID 1001 OF oDlgP UPDATE PICTURE "@!" VALID ( SYSREFRESH(), cCod:= aDat[ 1], CheckaCodi(oGet1,@cCod,cAlias,oDlgP,lSalida))
REDEFINE GET oGet2 VAR aDat[ 2] ID 1002 OF oDlgP UPDATE PICTURE "@!" VALID CampoVacio(aDat[ 2])
REDEFINE COMBOBOX oCbx VAR aDat[ 3] ID 1012 OF oDlgP ITEMS aUnidad VALID CampoVacio(aDat[ 3])
REDEFINE COMBOBOX oBtng1 VAR aDat[ 4] ID 1016 OF oDlgP ITEMS aFami VALID CampoVacio(aDat[ 4])
REDEFINE COMBOBOX oBtng2 VAR aDat[ 5] ID 403 OF oDlgP ITEMS aProv VALID CampoVacio(aDat[ 5])
REDEFINE GET oGet4 VAR aDat[ 6] ID 101 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE
REDEFINE GET oGet5 VAR aDat[ 7] ID 102 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE
REDEFINE GET oGet7 VAR aDat[ 8] ID 104 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE
REDEFINE GET oGet8 VAR aDat[ 9] ID 105 OF oDlgP PICTURE "999" UPDATE
REDEFINE GET oGet9 VAR aDat[10] ID 106 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE VALID (aDat[11]:= (aDat[9] * aDat[10]) + aDat[8], oGet10:Refresh(),.T.)
REDEFINE GET oGet10 VAR aDat[11] ID 107 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE READONLY COLOR Rgb(000,000,000), Rgb(255,233,214)
REDEFINE GET oGet11 VAR aDat[12] ID 108 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE
REDEFINE GET oGet12 VAR aDat[13] ID 109 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE
REDEFINE GET oGet13 VAR aDat[14] ID 110 OF oDlgP PICTURE "$9,999,999,999.99" UPDATE
REDEFINE BUTTON oBtn1 ID 400 OF oDlgP ACTION (lSalva := .T., lReg:=.T., lSalida:=.T., oDlgP:END())
REDEFINE BUTTON oBtn2 ID 401 OF oDlgP ACTION (lSalva := .F., lReg:=.F., lSalida:=.T., oDlgP:END()) CANCEL
REDEFINE SAY oSay ID 10 OF oDlgP
REDEFINE SAY oSay ID 11 OF oDlgP
REDEFINE SAY oSay ID 12 OF oDlgP
REDEFINE SAY oSay ID 13 OF oDlgP
REDEFINE SAY oSay ID 14 OF oDlgP
REDEFINE SAY oSay ID 15 OF oDlgP
REDEFINE SAY oSay ID 16 OF oDlgP
REDEFINE SAY oSay ID 17 OF oDlgP
REDEFINE SAY oSay ID 18 OF oDlgP
IF lAlta == .F.
oGet1:Disable()
ENDIF
oDlgP:lHelpIcon:= .F.
oBtn1:oCursor:= oCursor
oBtn2:oCursor:= oCursor
oBtn1:cToolTip := "Salir y Salvar Datos"
oBtn2:cToolTip := "Salir sin Salvar Datos"
ACTIVATE DIALOG oDlgP CENTER ON INIT(oDlgP:SetIcon(oApp:cIcono)) VALID (lSalida)
IF lSalva
IF lReg
IF lAlta
(cAlias)->(DBGOBOTTOM())
(cAlias)->(DBAPPEND())
(cAlias)->(RLOCK())
(cAlias)->Ultima:= DATE()
ENDIF
(cAlias)->(RLOCK())
(cAlias)->Ultima:= DATE()
(cAlias)->Codigo:= aDat[ 1]
(cAlias)->Descripcio:= aDat[ 2]
(cAlias)->Unidad:= aDat[ 3]
(cAlias)->Familia:= aDat[ 4]
(cAlias)->Provedor:= aDat[ 5]
(cAlias)->Costo:= aDat[ 6]
(cAlias)->Normal:= aDat[ 7]
(cAlias)->Enganche:= aDat[ 8]
(cAlias)->Pagos:= aDat[ 9]
(cAlias)->Importe:= aDat[10]
(cAlias)->Credito:= aDat[11]
(cAlias)->Contado:= aDat[12]
(cAlias)->Especial:= aDat[13]
(cAlias)->Oferta:= aDat[14]
(cAlias)->Modific:= ALLTRIM(UPPER(oApp:cUsuario[nItem]))
(cAlias)->Hora := TransAMPM()
(cAlias)->(DBCOMMIT())
(cAlias)->(DBUNLOCK())
ELSE
(cAlias)->(DBGOTO(oApp:nRec))
ENDIF
(cAlias)->(ORDSETFOCUS(nInd))
oLbx:Refresh()
oLbx:SetFocus()
ELSE
SYSREFRESH()
ENDIF
ENDIF
RETURN( NIL )
Como podfra ver, es un sencillo dialogo para captura de productos, de hecho así es como tengo definidos todos los demás dialogos y solo en este he detectado este problema..
Saludos..