Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2006
nachito_tuc nachito_tuc is offline
Miembro
 
Registrado: jul 2006
Ubicación: Tucuman
Posts: 17
Poder: 0
nachito_tuc Va por buen camino
Resumen memo en dbgrid

Hola. Soy novato en delphi y ya me surgio el problema de poner campos memo en un dbgrid. Ya lei los hilos al respecto, pero las soluciones me convencen solo parcialmente.
Lo que se me ocurrió es poner un dbmemo pero quiero que en el dbgrid me muestre un "resumen" del memo, o sea por ejemplo los primeros 20 caracteres, en vez de (memo).

Ya tengo copiado en una variable con:
Código:
resmemo:=copy(dm2.query1.fieldbyname('mensaje').AsString,0,20);
El problemita es que no se como ponerlo en el dbgrid.

Segun lo que vi solo acepta campos en las columnas. La otra seria calcular el campo mediante SQL... Alguna idea?

Saludos

Nacho
Responder Con Cita
  #2  
Antiguo 26-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En el editor de campos de la componente Table que uses (menú contextual) agrega un campo calculado (Field Type: Calculated) de tipo String y longitud la máxima que desees mostrar en el grid, digamos, 75 caracteres.

En el evento OnCalcField del Table pones:

Código Delphi [-]
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
var
  S: String;

begin
  S := DataSet.FieldByName('notes').AsString;
  if Length(S) > 75 then
    S := Copy(S, 1, 70) + '[...]';

  DataSet.FieldByName('resumen').AsString := S;
end;

Los [...] son para indicar que el texto está incompleto.

// Saludos
Responder Con Cita
  #3  
Antiguo 26-09-2006
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
También se puede hacer con el evento OnGetText del campo que tienes como Memo.

Código Delphi [-]
procedure TForm1.IBDataSet1NOMBRE_CAMPO_MEMOGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  Text := Copy(IBDataSet1NOMBRE_CAMPO_MEMO, 1, 10) + '[...]';
  DisplayText := True; // Esto es importante para que salga
end;

De esta manera no es necesario crear un campo calculado.
Responder Con Cita
  #4  
Antiguo 27-09-2006
nachito_tuc nachito_tuc is offline
Miembro
 
Registrado: jul 2006
Ubicación: Tucuman
Posts: 17
Poder: 0
nachito_tuc Va por buen camino
Gracias por las ideas. Ahora no se si alguno de los 2 tuvo en cuenta que no uso una tabla sino un query. Se puede igual?

Saludos
Responder Con Cita
  #5  
Antiguo 27-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Me parece que cualquiera de las dos soluciones puede usarse igualmente con un Query, pero basta que pruebes para que te enteres.

// Saludos
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
(MEMO) En DBGrid FunBit OOP 4 17-01-2009 21:37:02
Resumen de la Conferencia ECO II con John Kaster. Epachsoft Noticias 5 30-06-2005 11:14:07
Dbgrid & Memo jymy788 Varios 5 10-02-2005 18:39:38
memo en dbgrid JoseQ Conexión con bases de datos 5 22-07-2004 10:58:10
Consulta resumen con subconsulta(ayuda) cmena SQL 5 01-07-2004 00:18:21


La franja horaria es GMT +2. Ahora son las 17:48:42.


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