Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   sugerencia con jerarquias y base de datos!!!!!!!!!!! (https://www.clubdelphi.com/foros/showthread.php?t=47166)

david_uh 20-08-2007 21:30:22

sugerencia con jerarquias y base de datos!!!!!!!!!!!
 
Buen dia caballeros

Estoy realizanod un programa que maneja cuentas y subcuentas tal que asi:

Código:

código        nombre cuenta

1          combi1
  1.1        refrigerio
    1.1.1    raul
    1.1.2    jose
  1.1.3    marcos
  1.2        frenos
  1.3        llantas
5        azul
  5.1        verde
55        auto
  55.1        rodaje
  55.3        pintura
    55.3.1    roja

y bueno en otra tabla almaceno los movimientos de cada cuenta
Código:

codCuenta    Monto
1.1.3        10.00
1.1.1        12.00
1.1.1        13.00
1.2        5.00
1.3        6.00
1.2        7.00
1.1.2        8.00
...        ...

lo que deseo es totalizar todas las subcuetas y mostrar el resultado en su cuenta madre
osea asi

Código:

código        nombre cuenta        monto    totales

1          combi1                    59.00
  1.1        refrigerio            43.00
    1.1.1    raul            25.00
    1.1.2    jose            8.00
    1.1.3    marcos            10.00
  1.2        frenos                10.00
  1.3        llantas                6.00

en fin que vaya sumando asi todas las subcuentas y totalizando mostrando el total
en su cuenta madre inmediata y asi recursvamente hacia arriba, he pensado en utilizar TTreeview como
interfaz para elmantenimiento de las cuentas, y otros form
para ingresar los movimientos donde se elija la cuenta y se ingrese el monto, validando por supuesto
que la cuenta la que se abonoara un monto no tenga hijas, es decir solo se abonan a las hijas

Mi primer problema es
cargar desde y hacia el TTreeview los datos de la tabla cuentas osea mi primera tabla
agradecere mucho cualquier sugerencia al repectoç

otro problema es como hago para mmostrar el reporte final asumiendo qe puedo tener varios niveles de subccuentas
y para totalizar en escalera hacia ariiba, podria hacer esto con una consulta SQL o tendre que hacerlo a mano

agradecere cualqueir sugerencia o ayuda ya que enun primer momento supuse que esto seria sencillo sin embargo
se me esta complicando, y no lo termino y ya me he pasado de la fecha de entrega de este modulo

gracias

Héctor Randolph 21-08-2007 21:57:14

Hola david_uh!

Puedo recomendarte que utilices e componente DBTreeView. Haciendo una búsqueda en google puedes encontrar un sitio para descargarlo
por ejemplo de acá

http://www.sharewareplaza.com/Dynami...oad_39325.html

Este componente es una extensión para VirtualTree que ya maneja por si mismo la comunicación con TCustomADODataSet, TCustomClientDataSet y TTable .

También existe otro componente similar en las bibliotecas JEDI, pero la diferencia es que este último funciona con cualquier DataSet

Saludos.

fjcg02 21-08-2007 23:18:05

Sugerencia:
Añade a la tabla de cuentas dos campos:
- Saldo: saldo de la cuenta
- Grupo: tipo de cuenta, grupo 1, 2 ... Solo se podrá editar o añadir movimientos a las cuentas del ultimo grupo.
Tendrás que hacer una actualización de los saldos de la cuenta involucrada y la de sus respectivas 'padres' cada vez que hagas un movimiento.
Dependiendo de la BBDD, podría ser vía triggers o procedimiento.

Via trigger: cuando des de alta-baja-modifiques un movimiento, actualizaras con el saldo todas las cuentas que comiencen por el codigo de cuenta y que sean de nivel superior -> una query.

Con una bbdd que no permita triggers, cada vez que hagas una actualización deberás hacerla a mano, pero es lo mismo, en definitiva, una query de actualización .

De esta forma, seguro que es más fácil hacer una visualización de los saldos.
Ejemplo:
a. quiero ver los saldos en un grid. Saco todas las cuentas ordenadas por nº de cuenta. Seguro que dependiendo del tipo de cuenta ( grupo 1, 2 3 ..) puedes poner un colorín o un sangrado en el grid.
b. Quiero ver los saldos en un informe. Igual que a.
c. Quiero ver los saldos en un treeview. Con varias querys ( una por nivel ) sacas toda la información. Una query para nivel 1, otra para nivel dos , otra para nivel x, que dependa de la cuenta 'padre'.

Puedes pensar que los saldos podrían ser calculados en lugar de almacenados, pero generalmente el rendimiento suele verse afectado.
Además no estaría de más que pusieras una utilidad que recalculara los saldos de las cuentas por si hubiera un problema general, para tirar de él en caso necesario.

Piensa además que igual no te viene mal saber cómo incluir los saldos iniciales de las cuentas ( tipico asiento de apertura de todas las contabilidades tras los cierres de los periodos contables).


Espero que te sirva de ayuda.

Saludos y suerte.


La franja horaria es GMT +2. Ahora son las 10:58:38.

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