#include <importainteligente.h>
Inheritance diagram for importainteligente:

Public Member Functions | |
| importainteligente (Empresa *) | |
| Constructor de la clase que inicializa las variables empresaactual y conexionbase. | |
| bool | startElement (const QString &, const QString &, const QString &, const QXmlAttributes &) |
| Elemento del analizador (parser) de SAX que se dispara al encontrar un tag de inicio. | |
| bool | endElement (const QString &, const QString &, const QString &) |
| Elemento del analizador (parser) de SAX que se dispara al encontrar un tag de fin. | |
| bool | characters (const QString &) |
| Elemento del analizador (parser) de SAX que se dispara al encontrar contenidos. | |
Private Attributes | |
| QString | tag |
| Indica el tag que el parser está procesando en este preciso momento. | |
| QString | data |
| Indica los datos adicionales que estám contenidos en el tag. | |
| QMap< QString, QString > | tvalores |
Esta clase es un analizador (parser) XML cuya función es importar a la base de datos abierta una plantilla de asiento inteligente. Para ello utiliza las clases SAX de Qt.
Definition at line 37 of file importainteligente.h.
| importainteligente::importainteligente | ( | Empresa * | emp | ) |
Constructor de la clase que inicializa las variables empresaactual y conexionbase.
| emp | Empresa que construye el objeto y que sirve para inicialización de la base de datos. Contiene la implementación de la clase importainteligente que sirve para importar ficheros de XML a la base de datos de BulmaCont. |
Definition at line 33 of file importainteligente.cpp.
References _depura(), data, and tag.
00033 : QXmlDefaultHandler(), PEmpresaBase(emp) { 00034 _depura("importainteligente::importainteligente", 0); 00035 tag = ""; 00036 data = ""; 00037 _depura("END importainteligente::importainteligente", 0); 00038 }
| bool importainteligente::startElement | ( | const QString & | , | |
| const QString & | , | |||
| const QString & | qName, | |||
| const QXmlAttributes & | ||||
| ) |
Elemento del analizador (parser) de SAX que se dispara al encontrar un tag de inicio.
La acutación normal es hacer una inserción del elemento e introducir en el Mapa tvalores el identificador encontrado para que al encontrar el tag de fin se haga un update del registro con los valores hayados en el XML. Se asigna a la variable global tag el nombre del tag para indicar que estamos dentro de dicho tag.
| qName | Nombre del tag encontrado. |
Definition at line 51 of file importainteligente.cpp.
References _depura(), postgresiface2::begin(), postgresiface2::cargacursor(), postgresiface2::commit(), postgresiface2::ejecuta(), PEmpresaBase::empresaBase(), cursor2::eof(), tag, TRUE, and cursor2::valor().
00051 { 00052 _depura("importainteligente::startElement", 0); 00053 tag = qName; 00054 QString SQLQuery; 00055 if (tag == "ainteligente") { 00056 SQLQuery.sprintf("INSERT INTO ainteligente (descripcion) VALUES ('Elemento importado')\n"); 00057 empresaBase()->begin(); 00058 empresaBase()->ejecuta(SQLQuery); 00059 SQLQuery = "SELECT max(idainteligente) AS idainteligente FROM ainteligente"; 00060 cursor2 *cur = empresaBase()->cargacursor(SQLQuery, "unquerymas"); 00061 empresaBase()->commit(); 00062 if (!cur->eof()) { 00063 tvalores["idainteligente"] = cur->valor("idainteligente"); 00064 } // end if 00065 delete cur; 00066 } // end if 00067 if (tag == "binteligente") { 00068 SQLQuery.sprintf("INSERT INTO binteligente (idainteligente) VALUES (%s)\n", empresaBase()->sanearCadena(tvalores["idainteligente"]).toAscii().constData()); 00069 empresaBase()->begin(); 00070 empresaBase()->ejecuta(SQLQuery); 00071 SQLQuery = "SELECT max(idbinteligente) AS idbinteligente FROM binteligente"; 00072 cursor2 *cur = empresaBase()->cargacursor(SQLQuery, "unquerymas"); 00073 empresaBase()->commit(); 00074 if (!cur->eof()) { 00075 tvalores["idbinteligente"] = cur->valor("idbinteligente"); 00076 } // end if 00077 delete cur; 00078 } // end if 00079 _depura("END importainteligente::startElement", 0); 00080 return TRUE; 00081 }
| bool importainteligente::endElement | ( | const QString & | , | |
| const QString & | , | |||
| const QString & | qName | |||
| ) |
Elemento del analizador (parser) de SAX que se dispara al encontrar un tag de fin.
La función identificará mediante el parámetro qName que tag ha finalizado y hará los UPDATES necesarios en la base de datos con los valores almacenados en el mapa tvalores. La variable global tag es puesta a "" para que no se hagan consideraciones en los demás elementos de que se está en el tag que acaba de cerrarse.
| qName | Nombre del tag del que se ha encontrado el final. |
Definition at line 97 of file importainteligente.cpp.
References _depura(), postgresiface2::begin(), postgresiface2::commit(), data, postgresiface2::ejecuta(), PEmpresaBase::empresaBase(), tag, and TRUE.
00097 { 00098 _depura("importainteligente::endElement", 0); 00099 QString SQLQuery; 00100 if (qName == "ainteligente") { 00101 SQLQuery.sprintf("UPDATE ainteligente SET descripcion = '%s' WHERE idainteligente = %s\n", tvalores["descripcion"].toAscii().constData(), tvalores["idainteligente"].toAscii().constData()); 00102 empresaBase()->begin(); 00103 empresaBase()->ejecuta(SQLQuery); 00104 empresaBase()->commit(); 00105 SQLQuery.sprintf("UPDATE ainteligente SET comentariosasiento = '%s' WHERE idainteligente = %s\n", tvalores["comentariosasiento"].toAscii().constData(), tvalores["idainteligente"].toAscii().constData()); 00106 empresaBase()->begin(); 00107 empresaBase()->ejecuta(SQLQuery); 00108 empresaBase()->commit(); 00109 } // end if 00110 if (qName == "binteligente") { 00111 SQLQuery.sprintf("UPDATE binteligente SET fecha = '%s' WHERE idbinteligente = %s\n", tvalores["fecha"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00112 empresaBase()->begin(); 00113 empresaBase()->ejecuta(SQLQuery); 00114 empresaBase()->commit(); 00115 SQLQuery.sprintf("UPDATE binteligente SET conceptocontable = '%s' WHERE idbinteligente=%s\n", tvalores["conceptocontable"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00116 empresaBase()->begin(); 00117 empresaBase()->ejecuta(SQLQuery); 00118 empresaBase()->commit(); 00119 SQLQuery.sprintf("UPDATE binteligente SET codcuenta = '%s' WHERE idbinteligente = %s\n", tvalores["codcuenta"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00120 empresaBase()->begin(); 00121 empresaBase()->ejecuta(SQLQuery); 00122 empresaBase()->commit(); 00123 SQLQuery.sprintf("UPDATE binteligente SET descripcion = '%s' WHERE idbinteligente = %s\n", tvalores["descripcionb"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00124 empresaBase()->begin(); 00125 empresaBase()->ejecuta(SQLQuery); 00126 empresaBase()->commit(); 00127 SQLQuery.sprintf("UPDATE binteligente SET debe = '%s' WHERE idbinteligente = %s\n", tvalores["debe"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00128 empresaBase()->begin(); 00129 empresaBase()->ejecuta(SQLQuery); 00130 empresaBase()->commit(); 00131 SQLQuery.sprintf("UPDATE binteligente SET haber = '%s' WHERE idbinteligente = %s\n", tvalores["haber"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00132 empresaBase()->begin(); 00133 empresaBase()->ejecuta(SQLQuery); 00134 empresaBase()->commit(); 00135 SQLQuery.sprintf("UPDATE binteligente SET contrapartida = '%s' WHERE idbinteligente = %s\n", tvalores["contrapartida"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00136 empresaBase()->begin(); 00137 empresaBase()->ejecuta(SQLQuery); 00138 empresaBase()->commit(); 00139 SQLQuery.sprintf("UPDATE binteligente SET comentario = '%s' WHERE idbinteligente = %s\n", tvalores["comentario"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00140 empresaBase()->begin(); 00141 empresaBase()->ejecuta(SQLQuery); 00142 empresaBase()->commit(); 00143 SQLQuery.sprintf("UPDATE binteligente SET canal = '%s' WHERE idbinteligente = %s\n", tvalores["canal"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00144 empresaBase()->begin(); 00145 empresaBase()->ejecuta(SQLQuery); 00146 empresaBase()->commit(); 00147 SQLQuery.sprintf("UPDATE binteligente SET idc_coste = '%s' WHERE idbinteligente = %s\n", tvalores["idc_coste"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00148 empresaBase()->begin(); 00149 empresaBase()->ejecuta(SQLQuery); 00150 empresaBase()->commit(); 00151 SQLQuery.sprintf("UPDATE binteligente SET marcaconciliacion = '%s' WHERE idbinteligente = %s\n", tvalores["marcaconciliacion"].toAscii().constData(), tvalores["idbinteligente"].toAscii().constData()); 00152 empresaBase()->begin(); 00153 empresaBase()->ejecuta(SQLQuery); 00154 empresaBase()->commit(); 00155 } // end if 00156 tag = ""; 00157 data = ""; 00158 _depura("END importainteligente::endElement", 0); 00159 return TRUE; 00160 }
| bool importainteligente::characters | ( | const QString & | ch | ) |
Elemento del analizador (parser) de SAX que se dispara al encontrar contenidos.
| ch |
Definition at line 170 of file importainteligente.cpp.
References _depura(), data, tag, and TRUE.
00170 { 00171 _depura("importainteligente::characters", 0); 00172 if (tag != "") { 00173 data = ch; 00174 tvalores[tag] = data; 00175 } // end if 00176 _depura("END importainteligente::characters", 0); 00177 return TRUE; 00178 }
QString importainteligente::tag [private] |
Indica el tag que el parser está procesando en este preciso momento.
Definition at line 40 of file importainteligente.h.
Referenced by characters(), endElement(), importainteligente(), and startElement().
QString importainteligente::data [private] |
Indica los datos adicionales que estám contenidos en el tag.
Definition at line 42 of file importainteligente.h.
Referenced by characters(), endElement(), and importainteligente().
QMap<QString, QString> importainteligente::tvalores [private] |
Este mapa de valores sirve para almacenar de forma sencilla los valores que se han ido recogiendo y para poder ser recogidos en el momento de escritura en la base de datos.
Definition at line 46 of file importainteligente.h.
1.5.1