Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Sangría En Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=92676)

osmardj 28-12-2017 18:35:18

Sangría En Dbgrid
 
1 Archivos Adjunto(s)
Hola a todos necesito ayuda con una duda que tengo quiero dar sangría en un DBGRID estoy creando un sistema contable y para el plan de cuentas quiero que me muestre de la siguiente forma

Archivo Adjunto 3637

CODIGO CUENTA
----------- | -------------------------
1 ACTIVO
1.1 ACTIVO CORRIENTE
1.1.1 ACTIVO DISPONIBLE
1.1.1.1 CAJA
1.1.1.1.1 CAJA MONEDA NACIONAL


Como ven la columna cuenta tiene sangria, estoy usando Delphi Belin con ADO y base de datos ACCESS 2017
le agradeseria su ayuda.

duilioisola 28-12-2017 18:57:32

Una solución rápida sería implmentar el método OnGetText del campo CUENTA.
Código Delphi [-]
procedure TDMatamodule.TablaCuentasCUENTAGetText(Sender: TField; var Text: string; DisplayText: boolean);
begin
  // Tomo tantos espacios como larga sea el codigo de cuenta (Maximo 15)
  Text := copy('               ', 1, Length(TablaCuentasCODIGO.AsString)) + TablaCuentasCUENTA.AsString;
end;
Código Delphi [-]
procedure TDMatamodule.TablaCuentasCUENTAGetText(Sender: TField; var Text: string; DisplayText: boolean);
begin
  // Tomo tantos espacios como larga sea el codigo de cuenta
  Text := StringOfChar(' ', Length(TablaCuentasCODIGO.AsString)) + TablaCuentasCUENTA.AsString;
end;

osmardj 28-12-2017 19:08:27

Muchas gracias por tu respuesta

en este caso también puedo hacelo con los TADOQUERY?

duilioisola 28-12-2017 20:03:38

Si...
Es un método del campo, no del DataSet.

Hice la siguiente prueba:
  1. Crear un AdoQuery AQPrueba.
  2. Asignar todas las propiedades necesarias.
  3. Doble Click sobre AQPrueba.
  4. Hacer todos los campos persistentes.
  5. En los campos que se necesite (CUENTA) agregar el método OnGetText

osmardj 28-12-2017 20:18:49

1 Archivos Adjunto(s)
Cita:

Empezado por duilioisola (Mensaje 523782)
Si...
Es un método del campo, no del DataSet.

Hice la siguiente prueba:
  1. Crear un AdoQuery AQPrueba.
  2. Asignar todas las propiedades necesarias.
  3. Doble Click sobre AQPrueba.
  4. Hacer todos los campos persistentes.
  5. En los campos que se necesite (CUENTA) agregar el método OnGetText

Muchas gracias salio perfecto

Me gustaría saber si eso se puede hacer en un Treeview hice unas pruebas pero no pude realizarlo

Archivo Adjunto 3638

usando un ADOQUERY

duilioisola 29-12-2017 10:05:48

Se puede...
Te respondo en el otro hilo: http://www.clubdelphi.com/foros/showthread.php?t=92679


La franja horaria es GMT +2. Ahora son las 14:36: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