Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Convertir un campo Memo dentro de un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=27931)

Velia 04-12-2005 07:52:03

Convertir un campo Memo dentro de un DBGrid
 
Hola
Tengo un DBGrid conectado a un ClientDataSet que me recupera los campos y la información en tiempo de ejecución. Es decir que despues que El ClientDataSet recupera todos los datos, yo hago el enlace al DBGrid.
Con lo que los campos Memo no me los muestra.

Y por lo que no puedo utilizar el procedimiento OnGetText del ClientDataSet para mostrar el contenido del campo memo porque no tengo TField predefinidos. Sino que son variables dependiendo de la consulta.

Intenté haciendo
DBGrilla.Columns[1].Field.OnGetText pero no lo sé utilizar

La otra que no se si anda y que ademas no lo se utilizar es el enlace de objetos.
Recibo sugerencias y
Les agradezco su ayuda
Saludos a todos

Velia 04-12-2005 10:50:41

Por las dudas de que no se haya entendido
 
Solo quiero mostrar Campos Memos en un columna.

Velia 04-12-2005 12:00:17

Mostrar campo memo con una dbgrid y un clientdataset
 
HOla de nuevo
Me he olvidado de decir que he leido un montón de problemas parecidos al mio. (Para reemplazar una etiqueda (memo) de un dbGrid en Access )

Pero quiero aclarar que ya he probado con casi todo lo que vi pero no me funciona porque mi aplicación esta echa con DataSnap. donde en la capa de abajo tengo un ADODataSet y un DataSetProvider. En la capa del cliente tengo solo un ClienDataSet que manda la consulta con la propiedad CommandText. es decir

ClientDataSet.CommandText:= 'SELEC * From Tabla';

Y ademas formo los campos del DBGrid solo en tiempo de ejecución con lo que estas columnas van a depender del tipo de consulta SQL que haga.

Ahora bien: COmo todo se hace en tiempo de ejecución no puedo utilizar este código:

En el evento OnGetText del field del ClienDataSet

text:=trim (Sender.AsString);

Porque no tengo TFields ni siquiera puedo crear un campo calculado para hacer:

var
s: string;
begin
try
s := DataSet.FieldValues['TuCampoMemo'];
DataSet.FieldValues['TuCampoCalculado'] := Copy(s,1,255);
except
end;
end;

////////////
Ni tampoco me sale esto:

var
Grid : TStringGrid;
Texto : String;
Rectangulo : TRect;
begin
Rectangulo:=Rect;
Grid := TStringGrid(Sender);
if Data_Module1.cdsConsulta_Principal.FieldByName('extracto_principal').IsBlob then
begin
Grid.Canvas.FillRect(Rect);
Texto := Data_Module1.cdsConsulta_Principal.FieldByName('extracto_principal').AsString;
DrawText( Grid.Canvas.Handle,
PChar(Texto),
StrLen(PChar(Texto)),
Rectangulo,
DT_WORDBREAK);
end;


AUNQUE ESTE CASI ME SALIó solo que me muestra todas las columnas con los valores del memo hasta campos que no son memos. Como puedo hacer para especificar una columna en particular??

Bueno me maté escribiendo Espero que alguien me ayude.:(
Si no me entienden sigo aclarando:D:D

Saludos

Héctor Randolph 04-12-2005 18:00:33

Sugerencia
 
Hola Velia

Con respecto a tu duda, me gustaría sugerir que utilices este componente, veo que has intentado muchas cosas y no estaría de más probarlo.

Desde el día de ayer tenía pensado responder pero no estoy seguro de que sea la solución definitiva a tu problema.

La cuestión es que se trata de un DBGrid extendido, entre otras cosas muestra autómaticamente el contenido de los campos blob y memo.

Por otra parte, saliendo un poco del tema, te recomiendo que cuando publiques código utilices las etiquetas que proporciona el foro para mejorar la legibilidad, por ejemplo las etiquetas [ delphi] [/delphi], [ code] [/code], [ sql][/sql], etc.

Aquí puedes encontrar más información al respecto:

Uso de las nuevas etiquetas vB

Un saludo

Velia 04-12-2005 20:47:42

Gracias por la ayuda. pero te hago una preguntita
 
Acabo de bajar el componente que me dijiste.
La duda que tengo es que lo instalé pero parece que lo hice mal porque no aparece.
NO dice nada, no tiene un readme de cómo instalarlo.

Se supone que en la carpeta smcmpnt\Resources\Spa copio el SMCnst.pas en la libreria y de allí lo instalo al paquete

Pero no veo el componente

Te agradezco la ayuda
Saluditos
Velia

Héctor Randolph 04-12-2005 22:08:54

En la carpeta Smcmpnt\Sources, busca los archivos (*.dpk) Delphi Packages.

Por ejemplo si tienes instalado el Delphi 7 el archivo que te sirve sería smcmpntD7.dpk.

Abre el archivo con Delphi y seleccionas las opciones de compilar e instalar.

Finalmente asegurate de incluir la carpeta 'Smcmpnt\Sources' en la lista de rutas de delphi Tools->Environment Options->Library Path con debería ser suficiente.

Por otra parte, la carpeta 'smcmpnt\Resources\Spa' contiene los recursos en español para que el componente traduzca las cadenas a nuestro idioma (es opcional instalarlos).

Un saludo.

Neftali [Germán.Estévez] 05-12-2005 11:23:38

Como alternativa y si quieres utilizar el DBGrid estandard de delphi puedes utilizar éste componente de mi página: TCustomizeGrid.
Te permite dibujar campos de tipo memo como texto y Booleanos como checkbox con sólo "soltarlo" en un form y configurarle un par de propiedades, sin líneas de código y sin cambiar el componente.

Velia 05-12-2005 14:54:31

Muchas gracias la ayuda
 
Ya solucioné mi problema :D:D por eso quiero agradecerte Héctor la verdad el componente me sirvió un montón. ya lo intalé y lo estoy usando.

Y también:D Muchas Gracias Neftali porque voy a incluir tu componente al componente que me recomendó Héctor para que sea mas completo

Saludos
Velia

Velia 05-12-2005 15:05:40

No pude instalar tu componente
 
Hola Neftali de nuevo.
Me adelanté a responderte. Bajé tu componente tiene características muy útiles pero el problema es que tengo delphi2005 enterprise e intenté de compilar el componente que me dijiste pero tengo un error. Si me decís que hay una versión para 2005 la bajo de nuevo.


Saludos

Neftali [Germán.Estévez] 05-12-2005 16:11:51

La verdad es que no lo he probado. Déjame que lo mire y te digo algo.
Gracias por el comentario.

Neftali [Germán.Estévez] 05-12-2005 16:57:59

Cita:

Empezado por Velia
...tengo delphi2005 enterprise e intenté de compilar el componente que me dijiste pero tengo un error. Si me decís que hay una versión para 2005 la bajo de nuevo.

¿Qué error te ha dado?
Lo acabo de compilar e D2005 (Architect) y no me ha dado ningun error y me lo ha instalado correctamente.

Velia 05-12-2005 18:36:51

Tienes razón
 
Disculpa las molestias pasa que en mi trabajo lo instalé y me dio un error la verdad no hice mucho incapié porque estaba programando otras cosas.
Acabo de instalarlo en mi casa y está de 10
Muchas Gracias por todo y disculpa las molestias y el tiempo que te hice perder :o

Saludos

:D Me han sacado de cada apuro!!!!! Porque estoy haciendo mi tesis y ando contra reloj, este foro y la gente que lo compone son de maravilla


La franja horaria es GMT +2. Ahora son las 22:57:05.

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