by JoseGS » Sun Sep 27, 2009 10:39 pm
En realidad no se trata de un problema. Estoy tratando de hacer una mejora al programa tal como sigue:
Tengo la siguiente funcion que presenta un dialogo en pantalla en donde el usuario puede ingresar la cantidad de monedas y billetes que tiene a la mano para que la funcion SUMAPLATA le valla mostrando la suma total de dinero que tiene. Esta funcion MONEYCALC() la llamo desde un boton que se encuentra en el dialogo. En dicho dialogo existen varios GETs en donde el usuario puede ingresar valores de dinero, pero, actualmente el usuario tiene que copiar el valor mostrado por MONEYCALC() en una hoja de papel y luego al cerrar la ventana de MONEYCALC() escribir la cantidad de dinero en la celda que el desee.
Lo que quiero saber es si existe la posibilidad que al momento de llamar a la funcion MONEYCALC(), la misma pueda saber cual GET tenia foco en ese momento para que al finalizar, copie el valor de la suma en dicho GET sin que el usuario tenga que recordar el valor e ingresarlo por si mismo.
Gracias amigo
//-------------------------------
FUNC MONEYCALC()
LOCAL oDlg,X,oSAY,oBtn,nSAY:=0,oFOTO
LOCAL oGET:=ARRAY(14)
LOCAL aGET:={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
DEFINE DIALOG oDlg RESOURCE "MONEYCALC"
//REDEFINE IMAGE oFOTO ID 165 OF oDlg FILE '\MEDICKEY\IMG\CUENTA.JPG' //ADJUST
REDEFINE SAY oSAY VAR nSAY ID 1000 OF oDlg PICTURE "99,999.99" COLOR CLR_BLUE FONT oFontMAGOO
REDEFINE GET oGET[ 1] VAR aGET[ 1] ID 131 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 2] VAR aGET[ 2] ID 132 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 3] VAR aGET[ 3] ID 133 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 4] VAR aGET[ 4] ID 134 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 5] VAR aGET[ 5] ID 135 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 6] VAR aGET[ 6] ID 136 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 7] VAR aGET[ 7] ID 137 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 8] VAR aGET[ 8] ID 138 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 9] VAR aGET[ 9] ID 139 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[10] VAR aGET[10] ID 140 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[11] VAR aGET[11] ID 141 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[12] VAR aGET[12] ID 142 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[13] VAR aGET[13] ID 143 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[14] VAR aGET[14] ID 144 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE BUTTON oBtn ID 100 OF oDlg ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTER
RETU[]
//-------------------------------
FUNC SUMAPLATA(aM)
LOCAL M:=(aM[1]*.01)+(aM[2]*.05)+(aM[3]*.1)+(aM[4]*.25)+(aM[5]*.5)
LOCAL B:=aM[6]+(aM[7]*5)+(aM[8]*10)+(aM[9]*20)+(aM[10]*50)+(aM[11]*100)
RETU M+B+aM[12]+aM[13]+aM[14]