当前位置: 首页>>代码示例>>C++>>正文


C++ BlDbRecordSet::nextRecord方法代码示例

本文整理汇总了C++中BlDbRecordSet::nextRecord方法的典型用法代码示例。如果您正苦于以下问题:C++ BlDbRecordSet::nextRecord方法的具体用法?C++ BlDbRecordSet::nextRecord怎么用?C++ BlDbRecordSet::nextRecord使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BlDbRecordSet的用法示例。


在下文中一共展示了BlDbRecordSet::nextRecord方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: categoryArticleXML

QString ServerLight::categoryArticleXML()
{
    QString textoXML = "";
    QString query;

    BlDbRecordSet *familias;
    BlDbRecordSet *articulos;
    
    query = "SELECT idfamilia, codigocompletofamilia, nombrefamilia FROM familia ORDER BY nombrefamilia";
    familias = mainCompany()->loadQuery(query);

    while (!familias->eof()) {
	textoXML += "<CATEGORIA>\\\n";

	  textoXML += "<CODCATEGORIA>";
	  textoXML += familias->value("codigocompletofamilia");
	  textoXML += "</CODCATEGORIA>\\\n";

	  textoXML += "<NOMCATEGORIA>";
	  textoXML += familias->value("nombrefamilia");
	  textoXML += "</NOMCATEGORIA>\\\n";

	      query = "SELECT idarticulo, nomarticulo, pvpivaincarticulo FROM articulo WHERE idfamilia = " + familias->value("idfamilia") + "ORDER BY nomarticulo";
	      articulos = mainCompany()->loadQuery(query);
	      
	      if (articulos->numregistros() > 0) {
		
		while (!articulos->eof()) {
		  
		      textoXML += "<ARTICULO>\\\n";

			  textoXML += "<IDARTICULO>";
			  textoXML += articulos->value("idarticulo");
			  textoXML += "</IDARTICULO>\\\n";

			  textoXML += "<NOMARTICULO>";
			  textoXML += articulos->value("nomarticulo");
			  textoXML += "</NOMARTICULO>\\\n";

			  textoXML += "<PVPARTICULO>";
			  textoXML += articulos->value("pvpivaincarticulo");
			  textoXML += "</PVPARTICULO>\\\n";
		      
		      textoXML += "</ARTICULO>\\\n";
		      
		      articulos->nextRecord();
		  
		} // end while
		
	      } // end if

	textoXML += "</CATEGORIA>\\\n\\\n\\\n";
	
	familias->nextRecord();

    } // end while
    
    return textoXML;
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:59,代码来源:serverlight.cpp

示例2: on_mui_veralbaranes_clicked

void FacturaView::on_mui_veralbaranes_clicked()
{
    BL_FUNC_DEBUG
    AlbaranClienteView *bud = NULL;
    BlDbRecordSet *cur = NULL;
    try {
        QString SQLQuery = "SELECT * FROM albaran WHERE refalbaran = '" + dbValue ( "reffactura" ) + "'";
        cur = mainCompany() ->loadQuery ( SQLQuery );
        if ( !cur->eof() ) {
            while ( !cur->eof() ) {
	      
		/// Como estamos en un plugin buscamos nuevas formas de creacion de objetos.
		int resur = g_plugins->run ( "SNewAlbaranClienteView", mainCompany() );
		if ( !resur ) {
		    blMsgInfo ( _ ( "No se pudo crear instancia de albaran" ) );
		    return;
		} // end if
                bud = ( AlbaranClienteView * ) g_plugParams;
                mainCompany() ->m_pWorkspace->addSubWindow ( bud );
                bud->load ( cur->value( "idalbaran" ) );
                bud->show();
                cur->nextRecord();
            } // end while
        } else {
            blMsgInfo ( _ ( "No hay albaranes con esta referencia" ), this );
        } // end if
        delete cur;
    } catch ( ... ) {
        blMsgInfo ( _ ( "Error inesperado" ), this );
        if ( cur ) delete cur;
        if ( bud ) delete bud;
    } // end try
    
}
开发者ID:JustDevZero,项目名称:bulmages,代码行数:34,代码来源:facturaview.cpp

示例3: QDialog

Trabajadores::Trabajadores ( BlMainCompany *emp, QWidget *parent, bool deleteOnClose ) : QDialog ( parent ), BlMainCompanyPointer ( emp )
{
    setupUi ( this );

    connect (this, SIGNAL(rejected()), this, SLOT(closeDialog()) );
    
    mui_password->setFocus(Qt::OtherFocusReason);
    installEventFilter(this);
    
    m_validUser = false;
    m_deleteOnClose = deleteOnClose;
    
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT * FROM trabajador" );
    while ( !cur->eof() ) {
        QPushButton * toolbutton = new QPushButton ( mui_frame );
        toolbutton->setText ( cur->value( "nomtrabajador" ) + " " + cur->value( "apellidostrabajador" ) );
        toolbutton->setMaximumHeight(200);

        QVBoxLayout *m_hboxLayout1 = mui_frame->findChild<QVBoxLayout *> ( "hboxLayout1" );
        if ( !m_hboxLayout1 ) {
            m_hboxLayout1 = new QVBoxLayout ( mui_frame );
            m_hboxLayout1->setSpacing ( 0 );
            m_hboxLayout1->setMargin ( 0 );
            m_hboxLayout1->setObjectName ( QString::fromUtf8 ( "hboxLayout1" ) );
        } // end if
        m_hboxLayout1->addWidget ( toolbutton );
        connect ( toolbutton, SIGNAL ( clicked() ), this, SLOT ( trabajadorClicked() ) );
        cur->nextRecord();
    } // end while
    
    delete cur;
}
开发者ID:JustDevZero,项目名称:bulmages,代码行数:32,代码来源:trabajadores.cpp

示例4: BcForm

/**
\param emp
\param parent
**/
BalanceView::BalanceView ( BcCompany *emp, QWidget *parent, int )
    : BcForm ( emp, parent )
{
    BL_FUNC_DEBUG
    setupUi ( this );

    setAttribute(Qt::WA_DeleteOnClose);
    setTitleName ( _ ( "Balance" ) );
    /// Establezco cual es la tabla en la que basarse para el sistema de permisos.
    setDbTableName ( "asiento" );

    /// Para imprimir usaremos la plantilla balance
    setTemplateName("balance");

    mui_cuentaInicial->setMainCompany ( emp );
    /// Arreglamos la cuenta.
    mui_cuentaInicial->setLabel ( _ ( "Cuenta inicial:" ) );
    mui_cuentaInicial->setTableName ( "cuenta" );
    mui_cuentaInicial->setFieldId("idcuenta");
    mui_cuentaInicial->m_valores["descripcion"] = "";
    mui_cuentaInicial->m_valores["codigo"] = "";
    mui_cuentaInicial->hideLabel();

    mui_cuentaFinal->setMainCompany ( emp );
    /// Arreglamos la cuenta.
    mui_cuentaFinal->setLabel ( _ ( "Cuenta final:" ) );
    mui_cuentaFinal->setTableName ( "cuenta" );
    mui_cuentaFinal->setFieldId("idcuenta");
    mui_cuentaFinal->m_valores["descripcion"] = "";
    mui_cuentaFinal->m_valores["codigo"] = "";
    mui_cuentaFinal->hideLabel();

    QString query = "SELECT DISTINCT length(codigo) AS orden FROM cuenta ORDER BY orden DESC";
    BlDbRecordSet *niveles = NULL;
    /// Primero, averiguaremos la cantidad de ramas iniciales que nacen de la ra&iacute;z
    /// (tantas como n&uacute;mero de cuentas de nivel 2) y las vamos creando.
    niveles = mainCompany() ->loadQuery ( query );

    while ( !niveles->eof() ) {
        mui_nivel->insertItem ( 0, niveles->value("orden") );
        niveles->nextRecord();
    } // end while
    delete niveles;

    /// Iniciamos los componentes de la fecha para que al principio aparezcan
    /// como el a&ntilde;o inicial.
    QString cadena;
    cadena.sprintf ( "%2.2d/%2.2d/%4.4d", 1, 1, QDate::currentDate().year() );
    mui_fechaInicial->setText ( cadena );
    cadena.sprintf ( "%2.2d/%2.2d/%4.4d", 31, 12, QDate::currentDate().year() );
    mui_fechaFinal->setText ( cadena );

    mainCompany() ->insertWindow ( windowTitle(), this );
    /// Llamamos a los scripts
    blScript(this);
}
开发者ID:i02sopop,项目名称:Bulmages,代码行数:60,代码来源:balanceview.cpp

示例5: click

void TicketQToolButton::click()
{
    BL_FUNC_DEBUG
    QString txt = "";

    /// Copiamos el archivo.
    QString archivo = g_confpr->value( CONF_DIR_OPENREPORTS ) + "etiquetas.rml";
    QString archivod = g_confpr->value( CONF_DIR_USER ) + "etiquetas.rml";
    blCopyFile(archivo,archivod);

    BlFile file;
    file.setFileName ( archivod );
    file.open ( QIODevice::ReadOnly );
    QTextStream stream ( &file );
    QString buff = stream.readAll();
    file.close();
    QString fitxersortidatxt = "";


    /// Hacemos el texto de las etiquetas.
    m_companyact = m_albaranProveedorView->mainCompany();

    QString query = "SELECT * , ceil(cantlalbaranp) AS cantidad FROM lalbaranp NATURAL LEFT JOIN articulo WHERE idalbaranp = " + m_albaranProveedorView->dbValue ( "idalbaranp" );
    BlDbRecordSet *cur = m_companyact->loadQuery ( query );
    while ( !cur->eof() ) {
        int i = 0;
        while ( i < cur->value( "cantidad" ).toInt() ) {
            fitxersortidatxt += "<blockTable><tr><td>";
            fitxersortidatxt += "<para><font face=\"Helvetica\" size=\"4\">" + cur->value( "nomarticulo" ) + "</font></para>\n";
            fitxersortidatxt += "<barCode code=\"code128\" height=\"0.60cm\">" + cur->value( "codigocompletoarticulo" ) + "</barCode>\n";
            fitxersortidatxt += "<para><font face=\"Helvetica\" size=\"4\">" + cur->value( "codigocompletoarticulo" ) + " - (" + m_albaranProveedorView->dbValue ( "fechaalbaranp" ).left ( 10 ) + ")</font></para>\n";
//     if (cur->numcampo("lotelalbaranp") != -1)
//             fitxersortidatxt += "<para><font face=\"Helvetica\" size=\"4\"> Lote: " + cur->value("lotelalbaranp") + "</font></para>\n";
            fitxersortidatxt += "</td></tr></blockTable>";
            fitxersortidatxt += "<spacer length=\"0.5cm\"/>\n";
            i++;
        } // end while
        cur->nextRecord();
    } // end while
    delete cur;


    buff.replace ( "[story]", fitxersortidatxt );

    if ( file.open ( QIODevice::WriteOnly ) ) {
        QTextStream stream ( &file );
        stream << buff;
        file.close();
    } // end if
    blCreateAndLoadPDF ( "etiquetas" );



    
}
开发者ID:JustDevZero,项目名称:bulmages,代码行数:55,代码来源:ticketqtoolbutton.cpp

示例6: BfBuscarReferencia_on_mui_abrirtodo_clicked_Post

int BfBuscarReferencia_on_mui_abrirtodo_clicked_Post ( BfBuscarReferencia *ref )
{
    QString SQLQuery = "SELECT * FROM facturap WHERE reffacturap = '" + ref->mui_referencia->text() + "'";
    BlDbRecordSet *cur = ref->mainCompany() ->loadQuery ( SQLQuery );
    while ( !cur->eof() ) {
        FacturaProveedorView * bud = new FacturaProveedorView ( ( BfCompany * ) ref->mainCompany(), NULL );
        ref->mainCompany() ->m_pWorkspace->addSubWindow ( bud );
        bud->load ( cur->value( "idfacturap" ) );
        bud->show();
        cur->nextRecord();
    } // end while
    delete cur;
    return 0;
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:14,代码来源:pluginbf_proveedorfactura.cpp

示例7: on_mui_codigoarticulo_returnPressed

void Compra::on_mui_codigoarticulo_returnPressed()
{

    QString texto = "<TABLE width=\"100%\">";
    QString tventas = "0";
    QString tcompras = "0";
    QString bgcolor = "#FFFFFF";
    texto += "<TR bgcolor=\"#BBBBBB\">";
    texto += "<TD width=\"100\">Color</TD>";
    texto += "<TD width=\"100\">Talla</TD>";
    texto += "<TD width=\"100\">Comprados</TD>";
    texto += "<TD width=\"100\">Vendidos</TD>";
    texto += "<TD width=\"100\">Stock</TD>";
    texto += "</TR>";
    QString query = "SELECT * FROM articulo LEFT JOIN tc_articulo_alias AS t3 ON articulo.idarticulo = t3.idarticulo  LEFT JOIN tc_talla AS t1 ON t3.idtc_talla = t1.idtc_talla LEFT JOIN tc_color AS t2 ON t3.idtc_color = t2.idtc_color WHERE t3.aliastc_articulo_tallacolor = '" + mui_codigoarticulo->text() + "' OR articulo.codigocompletoarticulo = '" + mui_codigoarticulo->text() + "' ORDER BY nomtc_color, nomtc_talla";
    BlDbRecordSet *cur = mainCompany()->loadQuery ( query );
    while ( ! cur->eof() ) {
        QString query1 = "SELECT SUM(cantlalbaranp) AS suma FROM lalbaranp WHERE idarticulo=" + cur->value( "idarticulo" ) + "  AND idtc_talla=" + cur->value( "idtc_talla" ) + " AND idtc_color=" + cur->value( "idtc_color" );
        QString query2 = "SELECT SUM(cantlalbaran) AS suma FROM lalbaran WHERE idarticulo=" + cur->value( "idarticulo" ) + "  AND idtc_talla=" + cur->value( "idtc_talla" ) + " AND idtc_color=" + cur->value( "idtc_color" );
        BlDbRecordSet *cur1 = mainCompany()->loadQuery ( query1 );
        BlDbRecordSet *cur2 = mainCompany()->loadQuery ( query2 );
        if ( !cur2->eof() ) {
            tventas = cur2->value( "suma" );
        } // end if
        if ( !cur1->eof() ) {
            tcompras = cur1->value( "suma" );
        } // end if

        if ( !cur1->eof() ) {
            texto += "<TR bgcolor=\"" + bgcolor + "\">";
            texto += "<TD>" + cur->value( "nomtc_color" ) + "</TD>";
            texto += "<TD>" + cur->value( "nomtc_talla" ) + "</TD>";
            texto += "<TD align=\"right\">" + tcompras + "</TD>";
            texto += "<TD align=\"right\">" + tventas + "</TD>";
            texto += "<TD align=\"right\">" + QString::number ( tcompras.toFloat() - tventas.toFloat() ) + "</TD>";
            texto += "</TR>";
        } // end if
        delete cur1;
        delete cur2;
        cur->nextRecord();
        if ( bgcolor == "#FFFFFF" ) {
            bgcolor = "#CCCCFF";
        } else {
            bgcolor =  "#FFFFFF";
        } // end if
    } // end while
    delete cur;
    mui_subform->setText ( texto );
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:49,代码来源:compra.cpp

示例8: BcAsientoForm_guardaAsiento1_post

/**
\param as
\return
**/
int BcAsientoForm_guardaAsiento1_post ( BcAsientoForm *asientoForm )
{
    BL_FUNC_DEBUG
    
    
    BcCompany *companyact = asientoForm->company();
    QString cuentas = "";
    QString query = "SELECT valor FROM configuracion WHERE nombre = 'RegistroEmitida' OR nombre = 'RegistroSoportada'";
    BlDbRecordSet *curvalor = companyact->loadQuery ( query );
    while ( !curvalor->eof() ) {
        /// Preparamos una expresi&oacute;n regular para usar en la consulta.
        cuentas += curvalor->value( "valor" ) + "%|";
        curvalor->nextRecord();
    } // end while
    delete curvalor;
    /// Le quitamos el &uacute;ltimo '|' que nos sobra.
    cuentas.truncate ( cuentas.length() - 1 );

    /// Recorremos la tabla en busca de entradas de factura no introducidas y las
    /// preguntamos antes de cerrar nada.
    QString SQLQuery = "SELECT bcontrapartidaborr(idborrador) AS contra FROM borrador LEFT JOIN cuenta ON borrador.idcuenta = cuenta.idcuenta WHERE idasiento = " + asientoForm->dbValue ( "idasiento" ) + " AND codigo SIMILAR TO '" + companyact->sanearCadena ( cuentas.toAscii().constData() ) + "' GROUP BY contra";

    BlDbRecordSet *cursborr = companyact->loadQuery ( SQLQuery );
    while ( !cursborr->eof() ) {
        int idborrador = cursborr->value( "contra" ).toInt();
        RegistroIvaView *reg = new RegistroIvaView ( companyact, 0 );
        reg->inicializa1 ( idborrador );
        companyact->pWorkspace() ->addSubWindow ( reg );
        reg->show();
        cursborr->nextRecord();
    } // end while
    delete cursborr;
    
    
    return 0;
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:40,代码来源:pluginbc_registroiva.cpp

示例9: on_mui_verpedidosproveedor_clicked

void AlbaranProveedorView::on_mui_verpedidosproveedor_clicked()
{
    BL_FUNC_DEBUG
    QString query = "SELECT * FROM pedidoproveedor WHERE refpedidoproveedor = '" + dbValue ( "refalbaranp" ) + "'";
    BlDbRecordSet *cur = mainCompany() ->loadQuery ( query );
    while ( !cur->eof() ) {
	/// Como estamos en un plugin buscamos nuevas formas de creacion de objetos.
	int resur = g_plugins->run ( "SNewPedidoProveedorView", ( BfCompany * ) mainCompany() );
	if ( !resur ) {
	      blMsgInfo (_( "no se pudo crear instancia de pedido proveedor" ));
	      return;
	} // end if
	PedidoProveedorView * pedpro = ( PedidoProveedorView * ) g_plugParams;
        pedpro->load ( cur->value( "idpedidoproveedor" ) );
        mainCompany() ->m_pWorkspace->addSubWindow ( pedpro );
        pedpro->show();
        cur->nextRecord();
    } // end while
    delete cur;
    
}
开发者ID:JustDevZero,项目名称:bulmages,代码行数:21,代码来源:albaranproveedorview.cpp

示例10: QDialog

/**
\param parent
**/
BcModelo300Imprimir2PS::BcModelo300Imprimir2PS ( QWidget *parent ) : QDialog ( parent )
{
    BL_FUNC_DEBUG
    setupUi ( this );
    QString query = "SELECT descripcion, bancoent_cuenta, codigo FROM cuenta WHERE codigo LIKE '572%%' AND codigo > 572";

    BlPostgreSqlClient *metabase = new BlPostgreSqlClient();

    metabase->inicializa ( "bulmages" ); ///[TODO] CAMBIAR!!!!

    metabase->begin();
    fprintf ( stderr, "%s\n", query.toAscii().constData() );
    BlDbRecordSet *cur = metabase->loadQuery ( query, "bancos" );

    int nTuples = cur->numregistros();
    nombresccc = new QString[nTuples];

    numerccc = new QString[nTuples];

    for ( int i = 0; i < nTuples; i++ ) {
        nombresccc[i] = cur->value( "descripcion" );
        nombresccc[i] += "  ";
        nombresccc[i] += cur->value( "codigo" );

        numerccc[i] = cur->value( "bancoent_cuenta" );
//        cout << nombresccc[i].toAscii().constData() << "\t" << numerccc[i].toAscii().constData() << "\n";
        combocuentas->addItem ( nombresccc[i] );
        cur->nextRecord();
    } // end for
    delete cur;
    delete metabase;

    if ( nTuples == 0 ) { /// Si no tenemos ninguna cuenta de banco...
        sincuentasbancarias = true;
        personalButton->setChecked ( true );
        personalButtonPressed();
        cuentaButton->setDisabled ( true );
    } // end if
    
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:43,代码来源:bcmodelo300imprimir2ps.cpp

示例11: generarVencimientos

void generarVencimientos (FacturaView *art) {
			BlDbRecordSet *cur1 = art->mainCompany()->loadQuery("SELECT totalfactura FROM factura WHERE idfactura = " + art->dbValue("idfactura"));
			blMsgInfo( _("El total de la factura es :") + cur1->value("totalfactura"));
			BlFixed contado("0.00");

			BlDbRecordSet *cur = art->mainCompany()->loadQuery("SELECT * FROM vencimientocliente WHERE idcliente = " + art->dbValue("idcliente"));
			while (!cur->eof())  {
				QString query = "SELECT ffactura + " + cur->value("diasvencimientocliente") + " AS fechav, totalfactura / 100 * "+cur->value("porcentajevencimientocliente")+" AS porcent FROM factura WHERE idfactura = " + art->dbValue("idfactura");
				if (cur->isLastRecord()) {
					query = "SELECT ffactura + " + cur->value("diasvencimientocliente") + " AS fechav, totalfactura - "+ contado.toQString('.') +" AS porcent FROM factura WHERE idfactura = " + art->dbValue("idfactura");
				} //end if
				BlDbRecordSet *cur2 = art->mainCompany()->loadQuery(query);
				/// REALIZAMOS EL QUERY
				query = "INSERT INTO vencimientoc (idfactura, fechavencimientoc, cantvencimientoc, idforma_pago, refvencimientoc, idcliente) VALUES ("+art->dbValue("idfactura")+",'"+cur2->value("fechav")+"',"+cur2->value("porcent")+","+cur->value("idforma_pago")+",'"+art->dbValue("reffactura")+"',"+art->dbValue("idcliente")+")";
				contado = contado + BlFixed(cur2->value("porcent"));
				art->mainCompany()->runQuery(query);
				delete cur2;
				cur->nextRecord();
			} // end while
			delete cur;
			delete cur1;
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:22,代码来源:pluginbf_carteracobros.cpp

示例12: BfForm

/**
\param emp
**/
BalancePrintView::BalancePrintView ( BfCompany *emp, QWidget *parent, int ) : BfForm(emp, parent)
//        : QDialog ( 0 ), BlMainCompanyPointer ( emp )
{
    BL_FUNC_DEBUG
    setupUi ( this );
    mui_cuentaInicial->setMainCompany ( emp );
    mui_cuentaInicial->setLabel ( _ ( "Cuenta inicial:" ) );
    mui_cuentaInicial->setTableName ( "cuenta" );
    mui_cuentaInicial->setFieldId("idcuenta");
    mui_cuentaInicial->m_valores["descripcion"] = "";
    mui_cuentaInicial->m_valores["codigo"] = "";
    mui_cuentaInicial->hideLabel();

    mui_cuentaFinal->setMainCompany ( emp );
    mui_cuentaFinal->setLabel ( _ ( "Cuenta final:" ) );
    mui_cuentaFinal->setTableName ( "cuenta" );
    mui_cuentaFinal->setFieldId("idcuenta");
    mui_cuentaFinal->m_valores["descripcion"] = "";
    mui_cuentaFinal->m_valores["codigo"] = "";
    mui_cuentaFinal->hideLabel();

    /// Buscamos los diferentes niveles que existen seg&uacute;n existan en la tabla
    /// de cuentas.
    mainCompany() ->begin();
    QString query = "SELECT nivel(codigo) FROM cuenta GROUP BY nivel ORDER BY nivel";
    BlDbRecordSet *niveles = mainCompany() ->loadQuery ( query, "Niveles" );
    int i = 0;
    while ( !niveles->eof() ) {
        /// Inicializamos la tabla de nivel.
        mui_nivel->insertItem ( i, niveles->value( "nivel" ) );
        niveles->nextRecord();
        i++;
    } // end while
    mainCompany() ->commit();
    delete niveles;
    
}
开发者ID:JustDevZero,项目名称:bulmages,代码行数:40,代码来源:balanceprintview.cpp

示例13: SintetizarRamas

/**
\param cuentas
\param ramas
**/
void BcPlanContableArbol::SintetizarRamas ( BlDbRecordSet **cuentas, tiporama **ramas )
{
    BL_FUNC_DEBUG

    tiporama *guia, *rama;
    tipohoja *hoja;
    int nivel;
    BlDbRecordSet *ptrcuentas = *cuentas;
    nivel = atoi ( ptrcuentas->value( "nivel" ).toAscii().constData() );
    ptrcuentas->nextRecord();
    guia = NULL;
    while ( !ptrcuentas->eof() && ( atoi ( ptrcuentas->value( "nivel" ).toAscii().constData() ) > nivel ) ) {
        /// Reservamos un huequecito de memoria para almacenar los datos de la rama.
        rama = new tiporama;
        if ( !guia ) {
            *ramas = guia = rama;
        } else {
            guia->sgte = rama;
            guia = guia->sgte;
        } // end if
        hoja = new tipohoja; /// Idem para una hojita.
        hoja->idcuenta = atoi ( ptrcuentas->value( "idcuenta" ).toAscii().constData() );
        hoja->codigo = ptrcuentas->value( "codigo" );
        hoja->descripcion = ptrcuentas->value( "descripcion" );
        hoja->saldoant = hoja->debe = hoja->haber = hoja->saldo = hoja->debeej = hoja->haberej = hoja->saldoej = BlFixed ( "0.00" );
        hoja->numapuntes = 0;
        hoja->ramas = NULL;
        guia->hoja = hoja;
        guia->sgte = NULL;
        /// Pero a&uacute;n puede haber m&aacute;s ramas que crezcan, en tal caso habr&aacute;
        /// que sintetizarlas
        SintetizarRamas ( &ptrcuentas, & ( hoja->ramas ) );
    } // end while

    
}
开发者ID:trifolio6,项目名称:Bulmages,代码行数:40,代码来源:bcplancontablearbol.cpp

示例14: on_mui_aceptar_clicked

/**
\return
**/
void BcCuentasAnualesImprimirView::on_mui_aceptar_clicked()
{
    BL_FUNC_DEBUG
    QString finicial = mui_fechainicial->text();
    QString ffinal = mui_fechafinal->text();
    QString finicial1 = mui_fechainicial1->text();
    QString ffinal1 = mui_fechafinal1->text();
    if ( finicial1 == "" ) {
        finicial1 = finicial;
    } // end if
    if ( ffinal1 == "" ) {
        ffinal1 = ffinal;
    }
    if ( finicial == "" || ffinal == "" ) {
        return;
    } // end if


    /** Version sin ARBOL

        /// Ponemos todos los valores de las cuentas. Hacemos la carga.
        QDomNodeList lcuentas = m_doc.elementsByTagName("CUENTA");
        for (int i = 0; i < lcuentas.count(); i++) {
            QDomNode cuenta = lcuentas.item(i);
            QDomElement e1 = cuenta.toElement(); /// try to convert the node to an element.
            if( !e1.isNull() ) { /// the node was really an element.
                /// Este es el c&aacute;lculo de los saldos para la cuenta.
                QString query = "SELECT saldototal('" + e1.text() + "','" + finicial + "','" + ffinal + "') AS valoract, saldototal('" + e1.text() + "','" + finicial1 + "','" + ffinal1 + "') AS valorant";
                BlDbRecordSet *cur = mainCompany()->loadQuery(query);
                if (!cur->eof()) {
                    QString valoract = cur->value("valoract");
                    QString valorant = cur->value("valorant");
                    QDomNode c = e1.parentNode();
                    agregaValores(c, valoract, valorant);
                } // end if
                delete cur;
            } // end if
        } // end for

    **/

    /** Version con ARBOL: mas rollo de codigo pero muuuucho mas eficiente **/
    /// Vamos a crear un arbol en la memoria dinamica con
    /// los distintos niveles de cuentas.


    /// Primero, averiguaremos la cantidad de ramas iniciales (tantos como
    /// numero de cuentas de nivel 2) y las vamos creando.
    mainCompany() ->begin();
    QString query = "SELECT *, nivel(codigo) AS nivel FROM cuenta ORDER BY codigo";
    BlDbRecordSet *ramas;
    ramas = mainCompany() ->loadQuery ( query, "Ramas" );
    BcPlanContableArbol *arbolP1, *arbolP2; /// un arbol por cada periodo
    arbolP1 = new BcPlanContableArbol;
    arbolP2 = new BcPlanContableArbol;
    while ( !ramas->eof() ) {
        if ( atoi ( ramas->value( "nivel" ).toLatin1().constData() ) == 2 ) { /// Cuenta ra&iacute;z.
            arbolP1->nuevaRama ( ramas );
            arbolP2->nuevaRama ( ramas );
        } // end if
        ramas->nextRecord();
    } // end while
    arbolP1->inicializa ( ramas );
    arbolP2->inicializa ( ramas );
    delete ramas;
    mainCompany() ->commit();

    QRegExp rx ( "^.*perdidas y ganancias.*$" ); /// filtro para saber si es el de perdidas y ganancias
    rx.setCaseSensitivity ( Qt::CaseInsensitive );
    QString asiento;
    /// Discernimos entre Balances y Cuenta de Resultados
    if ( rx.exactMatch ( m_doc.elementsByTagName ( "TITULO" ).item ( 0 ).toElement().text() ) )
        /// Hay que excluir el asiento de Regularizacion para el calculo de beneficios o perdidas si existe ya en el periodo
        asiento = "%Asiento de Regularizaci%";
    else
        asiento = "%Asiento de Cierre%"; /// No hay que tener en cuenta el asiento de cierre para obtener los saldos

    /// OJO!! Antes de nada, hay que calcular el asiento de REGULARIZACION que nos guarda el resultado en la 129
    BcAsientoView *asientoReg;

        int resur = g_plugins->run ( "SNewBcAsientoView", (BcCompany *) mainCompany() );
        if ( ! resur) {
            blMsgInfo("No se pudo crear instancia de asientos");
            return;
        } // end if
        asientoReg = (BcAsientoView *) g_plugParams;
//    ( ( BcCompany * ) mainCompany() ) ->regularizaempresa ( finicial, ffinal );
    asientoReg ->asientoRegularizacion ( finicial, ffinal );

    /// Ahora, recopilamos todos los apuntes agrupados por cuenta para poder
    /// establecer as&iacute; los valores de cada cuenta para el periodo 1.
    mainCompany() ->begin();
    query = "SELECT cuenta.idcuenta, numapuntes, cuenta.codigo, saldoant, debe, haber, saldo, debeej, haberej, saldoej FROM (SELECT idcuenta, codigo FROM cuenta) AS cuenta NATURAL JOIN (SELECT idcuenta, count(idcuenta) AS numapuntes,sum(debe) AS debeej, sum(haber) AS haberej, (sum(debe)-sum(haber)) AS saldoej FROM apunte WHERE EXTRACT(year FROM fecha) = EXTRACT(year FROM timestamp '" + finicial + "') GROUP BY idcuenta) AS ejercicio LEFT OUTER JOIN (SELECT idcuenta,sum(debe) AS debe, sum(haber) AS haber, (sum(debe)-sum(haber)) AS saldo FROM apunte WHERE fecha >= '" + finicial + "' AND fecha <= '" + ffinal + "' AND conceptocontable NOT SIMILAR TO '" + asiento + "' GROUP BY idcuenta) AS periodo ON periodo.idcuenta=ejercicio.idcuenta LEFT OUTER JOIN (SELECT idcuenta, (sum(debe)-sum(haber)) AS saldoant FROM apunte WHERE fecha < '" + finicial + "' GROUP BY idcuenta) AS anterior ON cuenta.idcuenta=anterior.idcuenta ORDER BY codigo";
    BlDbRecordSet *hojas;
    hojas = mainCompany() ->loadQuery ( query, "Periodo1" );
    /// Para cada cuenta con sus saldos calculados hay que actualizar hojas del &aacute;rbol.
    while ( !hojas->eof() ) {
//.........这里部分代码省略.........
开发者ID:JustDevZero,项目名称:bulmages,代码行数:101,代码来源:bccuentasanualesimprimirview.cpp

示例15: on_mui_verpedidocliente_clicked

void AlbaranClienteView::on_mui_verpedidocliente_clicked()
{
    BL_FUNC_DEBUG

    PedidoClienteView *bud = NULL;
    BlDbRecordSet *cur = NULL;

    try {
        /// Comprueba si disponemos de los datos m&iacute;nimos. Si no se hace esta
        /// comprobaci&oacute;n la consulta a la base de datos ser&aacute; erronea y al hacer
        /// el siguiente cur->eof() el programa fallar&aacute;.
        /// Comprobamos que existe el pedido con esos datos, y en caso afirmativo lo mostramos.

        QString SQLQuery = "";

        if ( dbValue ( "refalbaran" ).isEmpty() || dbValue ( "idcliente" ).isEmpty() ) {
            /// El presupuesto no se ha guardado y no se dispone en la base de datos
            /// de estos datos. Se utilizan en su lugar los del formulario.
            /// Verifica que exista, por lo menos, un cliente seleccionado.
            if ( mui_idcliente->id().isEmpty() ) {
                blMsgInfo ( _ ( "Tiene que seleccionar un cliente" ), this );
                return;
            } else {
                SQLQuery = "SELECT * FROM pedidocliente WHERE refpedidocliente = '" + mui_refalbaran->text() + "' AND idcliente = " + mui_idcliente->id();
            } // end if
        } else {
            SQLQuery = "SELECT * FROM pedidocliente WHERE refpedidocliente = '" + dbValue ( "refalbaran" ) + "' AND idcliente = " + dbValue ( "idcliente" );
        } // end if

        cur = mainCompany() ->loadQuery ( SQLQuery );

        if ( !cur->eof() ) {
            while ( !cur->eof() ) {

                /// Como estamos en un plugin buscamos nuevas formas de creacion de objetos.
                int resur = g_plugins->run ( "SNewPedidoClienteView", ( BfCompany * ) mainCompany() );
                if ( !resur ) {
                    blMsgInfo (_( "no se pudo crear instancia de pedido cliente" ));
                    return;
                } // end if
                bud = ( PedidoClienteView * ) g_plugParams;
                mainCompany() ->m_pWorkspace->addSubWindow ( bud );
                bud->load ( cur->value( "idpedidocliente" ) );
                bud->show();
                cur->nextRecord();
            } // end while
        } else {
            blMsgInfo ( _ ( "No hay pedidos con la misma referencia." ), this );
	    BlDebug::blDebug ( Q_FUNC_INFO, 0, _("No hay pedidos con esta referencia.") );
        } // end if

        delete cur;

    } catch ( ... ) {
        blMsgInfo ( _ ( "Error inesperado" ), this );
        if ( cur ) delete cur;
        if ( bud ) delete bud;
    } // end try

    
}
开发者ID:i02sopop,项目名称:Bulmages,代码行数:61,代码来源:albaranclienteview.cpp


注:本文中的BlDbRecordSet::nextRecord方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。