Estoy tratando de que el columnwhen de un grid actue en tiempo real, para eso tomé el ejemplo 37 de HMG 3.0.39:
@ 10,10 GRID Grid_1 ;
WIDTH 770 ;
HEIGHT 440 ;
HEADERS {'Column 1','Column 2','Column 3','Column 4','Column 5','Column 6'} ;
WIDTHS {140,140,140,100,100,110};
ON CHANGE EventChange() ;
EDIT ;
VALUE { 1 , 1 } ;
COLUMNCONTROLS { aCtrl_1 , aCtrl_2 , aCtrl_3 , aCtrl_4 , aCtrl_5 , aCtrl_6 } ;
ROWSOURCE "Test" ;
COLUMNFIELDS { 'Code' , 'First' , 'Last' , 'Birth' , 'Married' , 'date()+recno()' } ;
COLUMNWHEN { { || .T. } , { || .T. } , { || .T. } , { || .T. } , { || .T. } , { || .T. } } ;
ALLOWDELETE
Lo que quiero hacer es: cuando alguien modifique el valor de la columna 5 (que es un valor de verdadero o falso) me permita modificar o no el contenido de la columna6, o sea si modifico el valor de la columna 5 a .F. no debería permitir modificar el valor de la columna 6, lo contrario si es verdadero, obviamente todo eso en tiempo real
Antonio
Algo del COLUMNWHEN
Moderator: Rathinagiri
Re: Algo del COLUMNWHEN
Ya lo solucioné usando un array. Esto es para un sistema de sueldos. Lo que hice fue lo siguiente, por si a alguien le sirve:
en la grilla tengo esto
@ 40,10 GRID Grd_Suel36 ;
WIDTH 620 ;
HEIGHT 200 ;
HEADERS { "Item","Legajo","Código","Concepto","Cantidad","Importe" } ;
WIDTHS {60,70,70,200,100,100} ;
VALUE 1 ;
COLUMNCONTROLS { {'TEXTBOX','NUMERIC','999999'},Nil,{'TEXTBOX','CHARACTER','9999'},Nil,;
{'TEXTBOX','NUMERIC','99999.99'},{'TEXTBOX','NUMERIC','99999.99'} } ;
ITEMS aRows ;
EDIT ;
COLUMNWHEN { {|| .F. },{|| .F. },{|| .T. },{|| .F. },{|| .T. },{|| Vercanti() } } ;
JUSTIFY { GRID_JTFY_LEFT,GRID_JTFY_LEFT,GRID_JTFY_LEFT,GRID_JTFY_LEFT,GRID_JTFY_RIGHT,GRID_JTFY_RIGHT }
en la función Vercanti() tengo esto:
/***/
static Function VerCanti
retu Empty( this.cell(this.cellrowindex,5 ) )
De esta manera si voy recorriendo el grid y de pronto en la columna cantidad pongo un valor distinto de 0, no me deja ingresar un valor en la columna importe, que era lo que necesitaba. Bueno saludos desde Argentina.
en la grilla tengo esto
@ 40,10 GRID Grd_Suel36 ;
WIDTH 620 ;
HEIGHT 200 ;
HEADERS { "Item","Legajo","Código","Concepto","Cantidad","Importe" } ;
WIDTHS {60,70,70,200,100,100} ;
VALUE 1 ;
COLUMNCONTROLS { {'TEXTBOX','NUMERIC','999999'},Nil,{'TEXTBOX','CHARACTER','9999'},Nil,;
{'TEXTBOX','NUMERIC','99999.99'},{'TEXTBOX','NUMERIC','99999.99'} } ;
ITEMS aRows ;
EDIT ;
COLUMNWHEN { {|| .F. },{|| .F. },{|| .T. },{|| .F. },{|| .T. },{|| Vercanti() } } ;
JUSTIFY { GRID_JTFY_LEFT,GRID_JTFY_LEFT,GRID_JTFY_LEFT,GRID_JTFY_LEFT,GRID_JTFY_RIGHT,GRID_JTFY_RIGHT }
en la función Vercanti() tengo esto:
/***/
static Function VerCanti
retu Empty( this.cell(this.cellrowindex,5 ) )
De esta manera si voy recorriendo el grid y de pronto en la columna cantidad pongo un valor distinto de 0, no me deja ingresar un valor en la columna importe, que era lo que necesitaba. Bueno saludos desde Argentina.
Antonio
Sistemas
Resipol
Sistemas
Resipol
- luisvasquezcl
- Posts: 1258
- Joined: Thu Jul 31, 2008 3:23 am
- Location: Chile
- Contact:
Re: Algo del COLUMNWHEN
Gracias Antonio, buen aporte.
saludos cordiales,
Luis Vasquez
saludos cordiales,
Luis Vasquez