Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ajustar texto en una celda de un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=76227)

rubio 17-10-2011 21:09:14

Ajustar texto en una celda de un DBGrid
 
Hola a todos, estoy diseñando una actualización de datos por un DBGrid, pero quisiera que en una columna los datos me salieran por niveles, o sea, de esta forma:

Código:

Código      Descripción
10000000  Nivel 1
10000100    Nivel 2
10000101      Nivel 3
10000102      Nive l3
10000200    Nivel 2
20000000  Nivel 1

Lo que quisiera lograr es en la columna Descripción ese nivel de distribución.

Si no se entiende lo que quiero hacer por decirmelo.

Gracias de antemano a todo el que se interese.

Saludos.

oscarac 17-10-2011 21:52:21

mmm la verdad no entendi...
puedes dar un mejor ejemplo porfa

oscarac 17-10-2011 21:53:51

sera que dependiendo del valor del campo codigo... el campo descripcion tenga un indentado mayor?

rubio 17-10-2011 22:23:52

Hola oscarac, eso es exactamente lo que deseo, el indentado del campo descripción depende del valor del campo código.

oscarac 17-10-2011 22:47:53

Puedes usar el Evento OnGetText
y funciona mas o menos asi

Código Delphi [-]
 
procedure TfrmCatalogoPlanContable.qryPlanContableDescripcionGetText(
  Sender: TField; var Text: String; DisplayText: Boolean);
begin
if qryPlanContableNV.AsString = '2' Then Text := '2   ' + qryPlanContableDescripcion.AsString;
if qryPlanContableNV.AsString = '3' Then Text := '3   ' + qryPlanContableDescripcion.AsString;
if qryPlanContableNV.AsString = '6' Then Text := '6   ' + qryPlanContableDescripcion.AsString;
end;

donde lo encuentras?
pues en la lista de campos persistentes del query o de la tabla.. ahi esta el evento mencionado
se entiende?

Casimiro Notevi 17-10-2011 22:51:56

El "modo simple" es añadirle la cantidad de espacios que se estime según la profundidad del nivel, a la descripción. (Como te ha explicado oscarac)
El "otro modo" es buscar un componente que lo haga, por ejemplo un VirtualTreeView, es libre.

Aquí tienes un ejemplo, es muy configurable, muy potente, aunque no es muy fácil de usarlo al principio.


oscarac 17-10-2011 23:04:29

Casimiro.... como me opacas no?
:D:D:D

Casimiro Notevi 17-10-2011 23:12:28

Cita:

Empezado por oscarac (Mensaje 415916)
Casimiro.... como me opacas no?:D

No era mi intención :o

:)
De todas formas, aviso, ese componente es complicado de manejar al principio, yo tuve la ayuda del compañero que me lo aconsejó.

oscarac 17-10-2011 23:17:24

Cita:

Empezado por Casimiro Notevi (Mensaje 415920)
No era mi intención :o

:)
De todas formas, aviso, ese componente es complicado de manejar al principio, yo tuve la ayuda del compañero que me lo aconsejó.

jajaja nada doc... es broma..

rubio 18-10-2011 14:31:49

Gracias a ambos, probaré y después les digo cómo me fue, yo me estoy iniciando en este mundo del Delphi, me gusta.

Gracias.

ecfisa 18-10-2011 14:37:16

Hola.

Estaba pensando que quizá el amigo rubio, deseaba la identación en relación a las tres últimas cifras del campo CODIGO, de ser así podría hacer algo como:
Código Delphi [-]
{ DESCRIPCIÓN OnGetText }
procedure TForm1.DESCRIPCIONGetText(Sender: TField; var Text: String; DisplayText: Boolean);
var
  Ident: Integer;
  Codigo: string;
begin
  Codigo:= Query.FieldByName('CODIGO').AsString;
  Ident:= (StrToInt(Codigo) - StrToInt(Codigo[1] + StringOfChar('0',Length(Codigo)-1))) div 100;
  Text:= StringOfChar(' ', Ident) +  Query.FieldByName('DESCRIPCION').AsString;
end;

Saludos.

rubio 19-10-2011 19:20:43

Muchas gracias a los tres por su colaboración, lo implemente con las recomendaciones de oscarac y eficsa.:)

Casimiro estuve investigando sobre VirtualTreeView, pero como tu mismo dice,

ese componente es complicado de manejar al principio, yo tuve la ayuda del compañero que me lo aconsejó

Lo puse en negrita y subrayado ya que no se como poner una cita, lo descargué e instalé, pero en realidad no le encuentro ni pies ni cabeza, si sabes donde se pueda conseguir documentación, si tienes algún ejemplo que me pudiera encaminar para usarlo o si te decidieras a ayudarme para implementarlo la primera vez te lo agradecería.
Saludos

Casimiro Notevi 19-10-2011 19:55:31

Cita:

Empezado por rubio (Mensaje 416206)
si sabes donde se pueda conseguir documentación, si tienes algún ejemplo que me pudiera encaminar para usarlo o si te decidieras a ayudarme para implementarlo la primera vez te lo agradecería. Saludos

Trae dos tutoriales pdf, uno que se llama "completo" y otro "simple", lee los dos, pero fíjate básicamente en el simple porque ahí tienes todo lo necesario y fundamental.
Te puedo enviar una sencilla demo, que es lo que tengo.

rubio 19-10-2011 20:13:32

Cita:

Empezado por Casimiro Notevi (Mensaje 416216)
Trae dos tutoriales pdf, uno que se llama "completo" y otro "simple"....
Te puedo enviar una sencilla demo, que es lo que tengo.

Ya vi como responder con cita. :D:D:D

Los tutoriales no los vi, sabes donde los puedo encontrar?, con respecto a la demo, te lo agradecería, mi correo es rubioiglesia63 @ yahoo . es

Gracias

Casimiro Notevi 19-10-2011 20:34:03

No pongas un email aquí porque hay cientos de robots recorriendo todas las webs constantemente para capturarlos y enviarles spam. Te lo he modificado para que les cueste más trabajo, así no creo que lo consigan.
Si 'pincho' en tu nombre puedo enviarte mensajes privados y correo, por lo que no hace falta que le des a nadie un email por aquí, en todo caso lo haces por mensaje privado.

Cita:

Empezado por rubio
Los tutoriales no los vi, sabes donde los puedo encontrar?

Pues en la web de ellos, en el menú de la izquierda, "All downloads", te sale una lista grande de cosas, está por el principio, aunque yo lo descargué absolutamente todo y estuve "empapándome" a fondo durante varios días y haciendo pruebas con lo que iba aprendiendo, hasta que me vi capaz de "andar solo sin ayuda" :D
Te envio la demo a ese email.

rubio 19-10-2011 21:50:19

Gracias por todo casimiro, ya estoy descargando lo que me mandaste y los pdf de la web. te mantendré informado de los avances.

Saludos


La franja horaria es GMT +2. Ahora son las 18:49:50.

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