PDA

Ver la Versión Completa : mostrar valor diferente en dbgrid


Manuel
19-01-2018, 14:21:36
Hola amigos del foro, tengo la siguiente situación que ha sido planteada por un cliente, les explico:

Tengo valores en tabla de memoria (rxmemoryData) la cual está compuesta como sigue:

id integer (1,2,3, etc)
calificacion1 float (3,5, 7,0, 4,5)
calificacion2 float (3,5, 7,0, 4,5)
calificacion3 float (3,5, 7,0, 4,5)
calificacion4 float (3,5, 7,0, 4,5)
calificacion5 float (3,5, 7,0, 4,5)

Es una tabla de calificaciones de los estudiantes, el cliente me pide si el estudiante tiene su calificación pendiente no aparezca 0 (cero), si no que la letra "P", si la calificación no será aplicada "/", si es eximido una "E", todo esto en la dbgrid, donde yo ingreso las calificaciones, ahora por el tipo de datos de las calificaciones no podría usar esos indicadores, la solución propuesta fue:

calificación pendiente = -1
Si la calificación no será aplicada = -2
eximido = -3

Nota: las calificaciones se validan de 0 a 7.

Ahora el cliente insiste en los símbolos descritos anteriormente (P, /, E), como se podría hacer, ingresando el -1, pero en la dbgrid visualice "P"?

Agradezco su ayuda, muchas gracias.

mRoman
19-01-2018, 17:19:17
Hola amigos del foro, tengo la siguiente situación que ha sido planteada por un cliente, les explico:

Tengo valores en tabla de memoria (rxmemoryData) la cual está compuesta como sigue:

id integer (1,2,3, etc)
calificacion1 float (3,5, 7,0, 4,5)
calificacion2 float (3,5, 7,0, 4,5)
calificacion3 float (3,5, 7,0, 4,5)
calificacion4 float (3,5, 7,0, 4,5)
calificacion5 float (3,5, 7,0, 4,5)

Es una tabla de calificaciones de los estudiantes, el cliente me pide si el estudiante tiene su calificación pendiente no aparezca 0 (cero), si no que la letra "P", si la calificación no será aplicada "/", si es eximido una "E", todo esto en la dbgrid, donde yo ingreso las calificaciones, ahora por el tipo de datos de las calificaciones no podría usar esos indicadores, la solución propuesta fue:

calificación pendiente = -1
Si la calificación no será aplicada = -2
eximido = -3

Nota: las calificaciones se validan de 0 a 7.

Ahora el cliente insiste en los símbolos descritos anteriormente (P, /, E), como se podría hacer, ingresando el -1, pero en la dbgrid visualice "P"?

Agradezco su ayuda, muchas gracias.

Hola MANUEL, buenos dias.

Yo lo haria usando CASE en el SELECT de la consulta, algo asi:

select p.pmt_nombre,
case l.tipo_contr
when 1 then 'Concesionario'
when 2 then 'Distribuidor'
when 3 then 'Cuenta propia'
end as contrato,
count(*) as total_puntos
from tienda l,
promotor p
where l.promotor=p.pmt_numero
and l.tipo_contr in (1,2,3)
and l.en_operacion=0
group by p.pmt_nombre,
l.tipo_contr
order by p.pmt_nombre


En tu caso podría ser asi:

select nombre_materia,
CASE calificacion_materia
when -1 then 'P'
when -2 then '/'
when -3 then 'E'
END as estatus_calificacion
from TABLA_CALIFICACIONES
where condicion_1 = condicion_2 //Dentro del where agregas las condicionantes de tu caso


Algo como lo anterior, lo puedes enlazar a tu DataSet asociado a al DbGrid y se visualizara como lo requieres.

Por cierto que componentes usas y que base de datos !!!:(:D:D:D....lo anterior es usando componentes SQL Firebird.

Saludos y espero esto te ayude.

Caminante
19-01-2018, 18:13:06
Hola
Otra opcion es usar el event ongettext del objeto de campo que quieres visualizar

procedure TForm1.MiDatasetMiCampo1GetText(Sender: TField; var aText: string;
DisplayText: Boolean);
begin
case sender.asinteger of
-1:Atext:='P';
-2:Atext:='/';
-3:Atext:='E';
end;
end;

Manuel
19-01-2018, 21:08:40
Muuuchas gracias las dos soluciones fueron de gran ayuda