Colores en Formularios continuos

El problema es muy concreto, tengo un subformulario continuo, el cual contiene datos como nombre del cliente, capital, dirección, etc. El problema es que quiero que las filas en las que el capital se encuentre por debajo de un determinado numero aparezcan en otro color, simplemente el color del texto. He probado a hacerlo de muchas maneras y en todas ellas me cambia el color del texto, pero de todas las filas que componen el formulario (en este caso subformulario).
Sin otro particular, me despido, muchas gracias por haber leído mi problema, espero pronto noticias suyas. Un saludo. Juan moreno

3 respuestas

Respuesta
1
Existen muchas formas de hacerlo.
Te doy un ejemplo relativamente sencillo
Utilizamos un combo, Style "Lista desplegable"
En el evento InteractiveChange de ese objeto agregamos:
oGrd = THISFORM.Grid1
OGrd. SetAll("dynamicbackcolor", "", "Column")
OGrd. SetAll("dynamicforecolor", "", "Column")
DO CASE
CASE THIS.Value = 1 && en existencia
oGrd.SetAll("dynamicforecolor", ;
"IIF(cod_exist=2, RGB(255,255,255), RGB(0,0,0))", "Column")
oGrd.SetAll("dynamicbackcolor", ;
"IIF(cod_exist=2, RGB(0,64,128), RGB(255,255,255))", "Column")
CASE THIS.Value = 2 && sin existencia
oGrd.SetAll("dynamicforecolor", ;
"IIF(cod_exist=1, RGB(255,255,255), RGB(0,0,0))", "Column")
oGrd.SetAll("dynamicbackcolor", ;
"IIF(cod_exist=1, RGB(255,0,0), RGB(255,255,255))", "Column")
Endcase
OGrd. Refresh
Otro ejemplo
En el evento InteractiveChange de ese objeto agregamos:
oGrd = THISFORM.Grid1
OGrd. SetAll("dynamicbackcolor", "", "Column")
OGrd. SetAll("dynamicforecolor", "", "Column")
DO CASE
CASE THIS.Value = 1 && en existencia
oGrd.SetAll("dynamicforecolor", ;
"IIF(cod_exist=2, RGB(255,255,255), RGB(0,0,0))", "Column")
oGrd.SetAll("dynamicbackcolor", ;
"IIF(cod_exist=2, RGB(0,64,128), RGB(255,255,255))", "Column")
CASE THIS.Value = 2 && sin existencia
oGrd.SetAll("dynamicforecolor", ;
"IIF(cod_exist=1, RGB(255,255,255), RGB(0,0,0))", "Column")
oGrd.SetAll("dynamicbackcolor", ;
"IIF(cod_exist=1, RGB(255,0,0), RGB(255,255,255))", "Column")
ENDCASE
oGrd.Refresh
En el evento Init del form, tengo declarado los valores de ese combo de la siguiente manera:
#DEFINE ITEM1_LOC "Todos"
#DEFINE ITEM2_LOC "En Existencia"
#DEFINE ITEM3_LOC "Sin existencia"
THIS.AddItem(ITEM1_LOC)
THIS.AddItem(ITEM2_LOC)
THIS.AddItem(ITEM3_LOC)
THIS.ListIndex = 1
Respuesta
1
No es posible hacer esto en access. Lo máximo que he llegado a ver ha sido un truco para cambiar el fondo del subformulario, en el que cargaba sobre el fondo una imagen de un color o de otro según el registro.
Respuesta
1
Con respecto a tu pregunta, y de acuerdo a las consultas que yo he realizado, tengo entendido que access no te lo permite hacer, ya que cuando muestra los registros no evalúa las condiciones de cada uno (lo habrás notado)sino del registro activo. Yo la verdad es que no puedo entender que no lo permita pero así debe ser porque yo también probé(y sigo probando de diversas maneras) y no lo pude conseguir.
De todas maneras si te sirve y si tienes pocas condiciones, digamos no más de tres puedes llegar a mostrar los datos en 3 subformularios que evalúen las condiciones que necesitas y acomodarlos visualmente para que lo muestre más o menos como tu quieres

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas