arbol.h

Ir a la documentación de este archivo.
00001 //
00002 // C++ Interface: arbol
00003 //
00004 // Description: 
00005 //
00006 //
00007 // Author: Ricardo Díaz <richard@galdi.es>, (C) 2005
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 /***************************************************************************
00012  *                                                                         *
00013  *   This program is free software; you can redistribute it and/or modify  *
00014  *   it under the terms of the GNU General Public License as published by  *
00015  *   the Free Software Foundation; either version 2 of the License, or     *
00016  *   (at your option) any later version.                                   *
00017  *                                                                         *
00018  ***************************************************************************/
00019 
00020 #ifndef ARBOL_H
00021 #define ARBOL_H
00022 
00023 #include <qstring.h>
00024 #include "postgresiface2.h"
00025 
00034 class Arbol{
00035 private:
00036     typedef struct tipohoja;
00037     typedef struct tiporama {
00038         tipohoja* hoja; // puntero a la hoja donde se almacena los datos de la cuenta
00039         tiporama* sgte; // puntero a una rama que apunta a una hoja hermana (del mismo nivel)
00040     };
00041     typedef struct tipohoja {
00042         int idcuenta;   // idcuenta de la BD
00043         QString codigo; // codigo de la cuenta
00044         QString descripcion; // su descripcion contable
00045         double saldoant, debe, haber, saldo, debeej, haberej, saldoej; // los valores a calcular
00046         int numapuntes; // num. de apuntes que modifican los valores a calcular
00047         tiporama* ramas; // puntero a mas ramas con hojas
00048     };
00049     tipohoja** raiz;    // Raiz del arbol que contiene todas las cuentas de nivel 2
00050     tipohoja* hoja;     // Hoja que contiene los datos de una cuenta
00051     tiporama* rama;     // Rama que contiene una hoja y más ramas o no
00052     postgresiface2 *conexionbase;  // Para el acceso a la BD con la que estamos trabajando
00053     QString hojaactiva; // Codigo de la ultima hoja visitada (nos servira de indice)
00054     
00055 private:
00056     void SintetizarRamas(cursor2**, tiporama**);
00057     void ActualizarHoja(tiporama**, cursor2*, bool*);
00058     void Deshojar(tiporama*, unsigned int, bool, bool*);
00059     //void ImprimirRama(tiporama*);
00060     
00061 public:    
00062     Arbol();
00063     ~Arbol();
00065     void nuevarama(cursor2*);
00067     void inicializa(cursor2*);
00069     void actualizahojas(cursor2*);
00071     void inicia();
00073     bool deshoja(unsigned int, bool);
00075     QString hojaactual(QString);
00077     //void imprimir();
00078 };
00079 
00080 #endif

Generado el Sat May 21 00:04:43 2005 para BulmaGes por  doxygen 1.4.2