Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2013
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
DBGrid: Mostrar un campo u otro dependiendo de una condición

Tengo una tabla con dos campos nombre: "NOMBRE" y "NOMBRE_NUEVO" y un DBGrid donde una de las columnas tiene el FieldName=NOMBRE.
Lo que pretendo es que si el campo NOMBRE está vacio me muestre el campo NOMBRE_NUEVO.
He intentado varias cosas, una de ellas esta:
Código PHP:
procedure TPadronBuscaHistoria.GridHistoriaDrawDataCell(SenderTObject;
  const 
RectTRectFieldTFieldStateTGridDrawState);
begin
  
if (GridHistoria.DataSource.DataSet.Active) and
     (
trim(QueryHistoria.FieldByName('NOMBRE').AsString) = '')  and
     (
field.Name='NOMBRE'then
        GridHistoria
.Canvas.TextOut(Rect.left+5Rect.Top +5QueryHistoria.FieldByName('NOMBRE_NUEVO').AsString);
end
pero no consigo lo que pretendo.
Puede alguien ayudarme?.
Un saludo.

Última edición por apicito fecha: 27-11-2013 a las 18:57:52.
Responder Con Cita
  #2  
Antiguo 27-11-2013
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Me autorespondo:
Código Delphi [-]
procedure TPadronBuscaHistoria.GridHistoriaDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (DataCol = 5) and
     (trim(QueryHistoria.FieldByName('NOMBRE').AsString) = '') then begin
          GridHistoria.Canvas.TextRect(Rect, Rect.Left + 8, Rect.Top+5,
            QueryHistoria.fieldbyName('NOMBRE_NUEVO').AsString);
  end;
end;
Fue hacer la pregunta e inmediatamente encontrar la solución.
Saludos.
Responder Con Cita
  #3  
Antiguo 27-11-2013
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 291
Poder: 21
elrayo76 Va por buen camino
Lo que yo te aconsejaría mas que hacerlo por código Delphi es que en la consulta hagas una condición y llenes un campo virtual con los datos de uno u otro campo de la tabla según corresponda.
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #4  
Antiguo 28-11-2013
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Gracias por la aportación.
Cita:
Empezado por elrayo76 Ver Mensaje
Lo que yo te aconsejaría mas que hacerlo por código Delphi es que en la consulta hagas una condición y llenes un campo virtual con los datos de uno u otro campo de la tabla según corresponda.
Lo he solucionado así porque después, en elmismo formulario, muestro ambos campos cuando se va recorriendo el grid. Además, en el ejemplo puse un solo campo pero son más los afectados. Es un historico de movimientos: valor anterior valor actual.
Me parece más sencillo de esta forma.
Un saludo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
mostrar un campo de un DbGrid en un Edit jjchus Varios 3 24-03-2009 06:04:59
Colocar Ancho De columna de un DBGrid dependiendo del ancho del maximo campo guardado gulder Varios 3 08-11-2008 12:27:34
Insertar o modificar dependiendo de una condición noob MySQL 7 03-11-2008 15:21:11
UPDATE de un campo dependiendo del valor de un campo de otra tabla Javi2 SQL 5 18-04-2005 16:35:05
Suma/resta de un campo dependiendo del valor de otro huanque SQL 2 11-09-2004 20:23:47


La franja horaria es GMT +2. Ahora son las 11:28:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi