GET y READ Vs TEXTBOX
Posted: Thu Jun 14, 2018 9:40 pm
Hola, tengo una aplicación CLIPPER que utilizo para dar de alta las cuentas de Mayor de Plan Contable y tiene el siguiente código.
Osease, si el usuario introduce la cuenta 430000001, el programa le pedira la cuenta 4, la 43, la 430 y la 4300.
Puen no consigo hacerlo en HMG, supongo que lo facil es hacer una nueva declaración de una Windows para cada uno de ellos, pero no es eso lo que quiero. Me gustaría mostrarlo en la misma pantalla.
Alguna idea de como salir del entuerto...
Gracias de antemano
Code: Select all
@ 1,1 GET xCuenta PICTURE "#########"
READ
IF !EMPTY(xCuenta)
FOR nFor=1 TO MIN(4,LEN(ALLTRIM(xCuenta)))
aField[1]=SUBSTR(xCuenta,1,nFor)+SPACE(10-nFor)
@ nFor+5,1 SAY aField[1]
@ nFor+5,12 GET aField[2] PICTURE "@S25"
READ
// --> y ahora actualizo registro
// ....
NEXT
ENDIF
Puen no consigo hacerlo en HMG, supongo que lo facil es hacer una nueva declaración de una Windows para cada uno de ellos, pero no es eso lo que quiero. Me gustaría mostrarlo en la misma pantalla.
Code: Select all
DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 800 ;
HEIGHT 360 ;
TITLE 'Mantenimiento de Cuentas';
MODAL ;
BACKCOLOR COLOR_P
@ 96 , 405 TEXTBOX GET_1 WIDTH 85 VALUE aField[1] MAXLENGTH 10;
ON ENTER (Graba_macu(this.value))
@ 136 , 490 TEXTBOX GET_3 WIDTH 270 VALUE aField[2] MAXLENGTH 30
@ 166 , 490 TEXTBOX GET_4 WIDTH 270 VALUE aField[2] MAXLENGTH 30
@ 196 , 490 TEXTBOX GET_5 WIDTH 270 VALUE aField[2] MAXLENGTH 30
@ 226 , 490 TEXTBOX GET_6 WIDTH 270 VALUE aField[2] MAXLENGTH 30
Desact_Gets() //-> ACTIVAMOS SOLO EL PRIMER TEXTBOX
CENTER WINDOW Win_1
ACTIVATE WINDOW Win_1
RETURN
//--------------------
STATIC FUNCTION Desact_Gets
LOCAL n, cn
For n=1 to 6
cn="GET_"+str(n,1)
Win_1.&cn..Enabled := .F.
NEXT
Win_1.GET_1.Enabled := .T.
Win_1.GET_1.SetFocus
RETURN Nil
// -------------------------------------------------------------
// --> ACTULIZA EL REGISTRO - GRABA
// -------------------------------------------------------------
STATIC FUNCTION Graba_macu(xcuenta)
Local nNuevoRecNo, cn, n
Local cCuenta
IF !empty(xCuenta)
Win_1.GET_1.Enabled := .F.
Win_1.GET_2.Enabled := .F.
//--> Graba niveles de 1 al 4
// ESTO SERIA EL GET DE CLIPPER DENTRO DE UN BUCLE FOR/NEXT
// Pero no se para
FOR nFor=1 TO MIN(4,LEN(ALLTRIM(xCuenta)))
cng="GET_"+str(nFor+2,1)
//--> SI NO EXISTE TENGO QUE PEDIR Y GRABAR.
Win_1.&cng..Show
Win_1.&cng..Enabled := .T.
Win_1.&cng..SetFocus
Win_1.&cng..Enabled := .F.
NEXt
ENDIF
RETURN Nil
Gracias de antemano