Referencia de la Clase importbalance

#include <importbalance.h>

Diagrama de herencias de importbalance

[leyenda]
Diagrama de colaboración para importbalance:
[leyenda]
Lista de todos los miembros.

Métodos públicos

 importbalance (empresa *)
 constructor de la clase que inicializa determinadas variables de clase.
bool startElement (const QString &, const QString &, const QString &, const QXmlAttributes &)
 Implementación del parser que procesa un tag de inicio.
bool endElement (const QString &, const QString &, const QString &)
 Implementación del parser que procesa un tag de cierre.
bool startElement1 (const QString &, const QString &, const QString &, const QXmlAttributes &)
 Implementación del parser que procesa un tag de inicio en la primera pasada.
bool endElement1 (const QString &, const QString &, const QString &)
 Implementación del parser que procesa un tag de cierre en la primera pasada.
bool startElement2 (const QString &, const QString &, const QString &, const QXmlAttributes &)
 Implementación del parser que procesa un tag de inicio en la segunda pasada.
bool endElement2 (const QString &, const QString &, const QString &)
 Implementación del parser que procesa un tag de cierre en la primera pasada.
bool characters (const QString &)
 Recoge valores asignados a un determinado tag y los almacena en la variable m_data.
void cambiapaso ()
 Cambia de numero de paso. Recordar que en este caso la importación se hace en dos pasos.

Atributos privados

postgresiface2conexionbase
 La base de datos que se va a utilizar. Esta variable se inicializa en el constructor de la clase y queda definida.
empresaempresaactual
 La empresa con la que se inicializa. Esta variable se introduce en el constructor de la clase y queda definida.
QString m_tag
 Esta variable global indica siempre el tag que está procesando el parser.
QString m_data
 Esta variable global indica la información que se acaba de recolectar en el parser. De modo que al llegar a un tag de cierre siempre sea m_data quien tenga el valor introducido para poder utilizarlo.
QMap< QString, QString > m_tvalores
 En este mapa se almacenan los valores que se van rescatando del XML, de tal forma que al llegar a un tag de cierre importante se recuperen de aqui los datos a ser introducidos en la base de datos.
QMap< QString, QString > m_identmasasp
 En el caso de las masas patrimoniales hay un problema para los identificadores.
int m_paso
 Este hash sirve para almacenar las claves provisionales de las masas patrimoniales.

Descripción detallada

Es una implementación de un parser XML hecho en SAX de Qt que utiliza del sistema de diversas pasadas para asegurar hacer la importación de datos. En una primera pasada introduce en el sistema las masas patrimoniales y en una segunda pasada introduce los componentes del balance Es preciso mantener en memoria algunos identificadores y esto se hace mediante el uso de un mapa


Documentación del constructor y destructor

importbalance::importbalance empresa emp  ) 
 

constructor de la clase que inicializa determinadas variables de clase.

Constructor de la clase que inicializa la empresa actual La base de datos Establece que de momento no se ha visitado ningún tag Establece que no hay ningún dato recogido del XML Inidca que el paso que vamos a procesar es el 0

Gráfico de llamadas para esta función:


Documentación de las funciones miembro

void importbalance::cambiapaso  )  [inline]
 

Cambia de numero de paso. Recordar que en este caso la importación se hace en dos pasos.

bool importbalance::characters const QString &  ch  ) 
 

Recoge valores asignados a un determinado tag y los almacena en la variable m_data.

Ha ocurrido una inserción de valor en un tag y almacenamos el valor de la tupla (tag, valor) en el mapa m_tvalores Para que pueda ser utilizado posteriormente

Parámetros:
ch El valor del tag abierto
Devuelve:
TRUE porque no nos interesa abortar la ejecución del algoritmo.

bool importbalance::endElement const QString &  a,
const QString &  b,
const QString &  c
 

Implementación del parser que procesa un tag de cierre.

Dependiendo del paso en que nos encontremos hace la llamada a una función u a otra

Gráfico de llamadas para esta función:

bool importbalance::endElement1 const QString &  ,
const QString &  ,
const QString &  qName
 

Implementación del parser que procesa un tag de cierre en la primera pasada.

En el primer paso al encontrar un tag de cierre o bien es el de balance o bien es el de mpatrimonial Lo que hacemos en ambos casos es hacer un update de la información puesto que toda la información que precisamos ya ha sido extraida del archivo XML. Al finalizar el método establecemos el campo m_tag a "" para que no se asignen posibles transfugas a este valor el mapa m_identmasasp guarda la correlación entre identificadores de masa para que las que son valores argumentados en el paso 1 puedan coincidir. (Es el problema de los identificadores autonuméricos).

Parámetros:
qName El nombre del tag cerrado
Devuelve:
TRUE para no detener la ejecución del parser SAX
En la inserción de masas patrimoniales hay que hacer una reconversión de la clave. Cuando todo haya terminado debemos actualizar el cambo idmpatrimonial de los compmasap para que la cosa funcione.

Gráfico de llamadas para esta función:

bool importbalance::endElement2 const QString &  ,
const QString &  ,
const QString &  qName
 

Implementación del parser que procesa un tag de cierre en la primera pasada.

En el segundo paso introducimos los compmasap y los compbalance Siempre se insertan por flanco final porque no tienen dependencias de nada y son sencillos. Se usa el mapa m_identmasasp para saber que identificadores de masa se han usado en el paso 0

Parámetros:
qName contiene el valor del tag que se acaba de cerrar
Devuelve:
TRUE para no detener nunca la ejecución del algoritmo
En el segundo paso se hacen las inserciones por el flanco de final en lugar de por el flanco de principio. Así nos aseguramos que ya existen los valores de idmpatrimonial y masaperteneciente.

Como la inserción está hecha, podemos hacer los updates sin miedo a que no exista el registro.

Gráfico de llamadas para esta función:

bool importbalance::startElement const QString &  a,
const QString &  b,
const QString &  c,
const QXmlAttributes &  d
 

Implementación del parser que procesa un tag de inicio.

Dependiendo del paso en que nos encontremos hace la llamada a una funcio u a otra

Gráfico de llamadas para esta función:

bool importbalance::startElement1 const QString &  ,
const QString &  ,
const QString &  qName,
const QXmlAttributes & 
 

Implementación del parser que procesa un tag de inicio en la primera pasada.

En el primer paso de la importación se hace la inserción de todos los tags balance y mpatrimonial También se guarda en m_tvalores los identificadores obtenidos puesto que posteriormente seran utilizados Además se asigna la variable global m_tag con el nombre del tag para poder hacer el almacenamiento de datos en el caso de que sea un tag secundario.

Parámetros:
qName el nombre del tag que se ha encontrado
Devuelve:
TRUE pàra no detener la ejecución del parser en caso de error.

Gráfico de llamadas para esta función:

bool importbalance::startElement2 const QString &  ,
const QString &  ,
const QString &  qName,
const QXmlAttributes & 
 

Implementación del parser que procesa un tag de inicio en la segunda pasada.

En el segundo paso se registran compmasap y compbalance Estos elementos no requieren que se haga primero una inserción y luego una actualización

Parámetros:
qName el nombre del tag abierto
Devuelve:
TRUE para no detener la ejecución del algoritmo


Documentación de los datos miembro

postgresiface2* importbalance::conexionbase [private]
 

La base de datos que se va a utilizar. Esta variable se inicializa en el constructor de la clase y queda definida.

empresa* importbalance::empresaactual [private]
 

La empresa con la que se inicializa. Esta variable se introduce en el constructor de la clase y queda definida.

QString importbalance::m_data [private]
 

Esta variable global indica la información que se acaba de recolectar en el parser. De modo que al llegar a un tag de cierre siempre sea m_data quien tenga el valor introducido para poder utilizarlo.

QMap<QString, QString> importbalance::m_identmasasp [private]
 

En el caso de las masas patrimoniales hay un problema para los identificadores.

int importbalance::m_paso [private]
 

Este hash sirve para almacenar las claves provisionales de las masas patrimoniales.

QString importbalance::m_tag [private]
 

Esta variable global indica siempre el tag que está procesando el parser.

QMap<QString, QString> importbalance::m_tvalores [private]
 

En este mapa se almacenan los valores que se van rescatando del XML, de tal forma que al llegar a un tag de cierre importante se recuperen de aqui los datos a ser introducidos en la base de datos.


La documentación para esta clase fué generada a partir de los siguientes archivos:
Generado el Sat May 21 00:05:03 2005 para BulmaGes por  doxygen 1.4.2