Buenas tardes a todos.
Tengo un formulario, que pasará a ser una clase, con un GRID, 2 spinners (día y año) y un combo para el mes. En el GRID se muestra un calendario anual o "PLANNING" utilizando un cursor de 12 registros (uno por mes) y 37 columnas (una por cada día del mes). Como cada día puede tener un backcolor diferente según se trate de un festivo, día de no atención, etc utilizo la propiedad DynamicBackColor para ello de esta manera:
LOCAL NADA8,NADA9
FOR Y = 1 TO 37
NADA8 = 'MESES.C' + ALLTRIM(TRANSFORM(Y,"##"))
NADA9 = 'COLUMN' + ALLTRIM(TRANSFORM((Y+1),"##"))
IF THIS.GRID1.&NADA9..Header1.Caption == 'Do'
THIS.GRid1.&NADA9..DynamicBackColor = "RGB(255,128,128)"
ELSE
THIS.GRid1.&NADA9..DynamicBackColor = "IIF (&NADA8= 0,RGB(255,255,255),IIF (&NADA8 = 1,RGB(255,128,128),RGB(0,255,255)))"
ENDIF
NEXT
Este código lo había colocado en un método propio denominado "REFRESCO" que llamo en el INIT del formulario y en el método INTERACTIVECHANGE de los spinners de día y año y en el INTERACTIVECHANGE del combo del mes. Al hacerlo así observé que el formulario demoraba mucho en cargar. Trasladé el código al INIT del formulario y la carga es rápida como siempre y deduje que la demora se debía a que el mismo código se estaba ejecutando varias veces al cagar el formulario. Entonces se me plantean dos o tres preguntas:
1.- ¿Los métodos INTERACTIVECHANGE de los spinners y del combo se ejecutan al INIT del formulario y por tanto eso hacía que el código se repitiera hasta cuatro veces al cargar el formulario justificando la demora?
2.- ¿La propiedad DynamicBackColor de cada columna queda fijada independientemente del contenido del cursor? Dicho de otra manera: observo que al cambiar el cursor cambian los colores aunque ya no se vuelve a ejecutar el código. Es decir funciona bien, pero no entiendo por qué ya que no ejecuto el código y sin embargo el backcolor funciona de acuerdo al contenido del cursor.
3.- ¿Es correcta la forma en que estoy tratando el problema o debería utilizar otro enfoque?.
Gracias anticipadas por sus ayudas.
Saludos cordiales
Manuel Tovar
Barranquilla - COLOMBIA