![]() |
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 Código:
codCuenta Monto osea asi Código:
código nombre cuenta monto totales 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 |
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. |
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 22:03:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi