PDA

Ver la Versión Completa : Sangría En Dbgrid


osmardj
28-12-2017, 17:35:18
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

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, 17:57:32
Una solución rápida sería implmentar el método OnGetText del campo CUENTA.

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;


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, 18:08:27
Muchas gracias por tu respuesta

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

duilioisola
28-12-2017, 19:03:38
Si...
Es un método del campo, no del DataSet.

Hice la siguiente prueba:

Crear un AdoQuery AQPrueba.
Asignar todas las propiedades necesarias.
Doble Click sobre AQPrueba.
Hacer todos los campos persistentes.
En los campos que se necesite (CUENTA) agregar el método OnGetText

osmardj
28-12-2017, 19:18:49
Si...
Es un método del campo, no del DataSet.

Hice la siguiente prueba:

Crear un AdoQuery AQPrueba.
Asignar todas las propiedades necesarias.
Doble Click sobre AQPrueba.
Hacer todos los campos persistentes.
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

3638

usando un ADOQUERY

duilioisola
29-12-2017, 09:05:48
Se puede...
Te respondo en el otro hilo: http://www.clubdelphi.com/foros/showthread.php?t=92679