Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Spanish
  4. Manejo de parametros con QTRpt
Forum Updated to NodeBB v4.3 + New Features

Manejo de parametros con QTRpt

Scheduled Pinned Locked Moved Solved Spanish
2 Posts 1 Posters 536 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ColomanC Offline
    ColomanC Offline
    Coloman
    wrote on last edited by
    #1

    Necesito saber de que manera especifico por codigo en el boton de impresion usando QtRpt, que estoy cambiando el Data-Group-Header para definir el nuevo grupo de datos del Master-Band, el codigo estandar que tengo es :

    QtRPT *reporte= new QtRPT(this);
    reporte->loadReport(":/impresiones/cajadiaria_consultas.xml");
    reporte->recordCount.append(ui->t_caja->rowCount());
    connect(reporte,&QtRPT::setValue,[&](const int recNo,const QString paramName,QVariant &paramValue,const int reportPage)
    {
        (void) reportPage;
    
        // datos del encabezado  de la Caja
        if(paramName=="persona") //nombre del usuario que esta trabajando
        {paramValue=Nombre_de_persona;}
        if(paramName=="sucursal")
        {paramValue=ui->c_sucursales->currentText();}
    
        ///  Datos de la caja
        //Factura;Sucursal;Tipo;Afiliado;Documento;Monto;Fecha;Habilitada;
        // modificar para una matriz multidimensional que debe contener todas las cajas
    
    
        if(paramName=="numero_orden")
        {paramValue=ui->t_caja->item(recNo,0)->text();}
        if(paramName=="documento")
        {paramValue=ui->t_caja->item(recNo,4)->text();}
        if(paramName=="nombre")
        {paramValue=ui->t_caja->item(recNo,3)->text();}
        if(paramName=="fecha_orden")
        {paramValue=ui->t_caja->item(recNo,6)->text();}
        if(paramName=="codigo_tipo")
        {paramValue=ui->t_caja->item(recNo,2)->text();}
        if(paramName=="importe")
        {paramValue=ui->t_caja->item(recNo,5)->text();}
        if(paramName=="anulado")
        {paramValue=ui->t_caja->item(recNo,7)->text();}
        if(paramName=="ccpago")
        {paramValue=ui->t_caja->item(recNo,14)->text();}
    
        //datos de los resultados
        // orden de consulta
        if(paramName=="total_oc")
        {paramValue=ui->l_total_consultas->text();}
        if(paramName=="total_oc_cc")
        {paramValue=ui->l_total_cc_oc->text();}
        if(paramName=="total_oc_a")
        {paramValue=ui->l_total_anuladas_oc->text();}
        // orden odontologica
        if(paramName=="total_od")
        {paramValue=ui->l_total_odontologica->text();}
        if(paramName=="total_od_cc")
        {paramValue=ui->l_total_cc_oo->text();}
        if(paramName=="total_od_a")
        {paramValue=ui->l_total_anuladas_oo->text();}
        // orden de practica
        if(paramName=="total_op")
        {paramValue=ui->l_total_op->text();}
        if(paramName=="total_op_cc")
        {paramValue=ui->l_total_cc_op->text();}
        if(paramName=="total_op_a")
        {paramValue=ui->l_total_anuladas_op->text();}
    
        //monto total de la operacion
        if(paramName=="monto_total")
        {paramValue=ui->l_total_general->text();}
    
        //periodos de informe
        if(paramName=="fecha_desde")
        {paramValue=fecha_seleccionada;}
        if(paramName=="fecha_hasta")
        {paramValue=fecha_fin;}
    
    });
    reporte->printExec();
    

    Esto, hace lo que necesito, pero solo funciona para un grupo de datos.
    En estar caso yo tengo 4 grupos que quiero añadir al mismo formulario de impresion.
    Pero en otro caso esos grupos pueden ser variables, como ejemplo dejo lo siguiente

    Grupo Argentina

    item, detalle,precio

    Grupo Bolivia

    item, detalle,precio

    Grupo Chile

    item, detalle,precio
    ......

    Y asi. alguien tiene un ejemplo algo claro de esto?. Se que es posible pues existe una muestra en el sitio de QtRpt, pero no esta codificada.

    1 Reply Last reply
    0
    • ColomanC Offline
      ColomanC Offline
      Coloman
      wrote on last edited by
      #2

      La respuesta es Esta:

          QString valores[4];
          valores[0]="primero";
           valores[1]="segundo";
            valores[2]="tercero";
             valores[3]="cuarto";
      
          QtRPT *reporte= new QtRPT(this);
          reporte->loadReport(":/impresiones/prueba.xml");
          reporte->recordCount.append(4);
          connect(reporte,&QtRPT::setValue,[&](const int recNo,const QString paramName,QVariant &paramValue,const int reportPage)
          {
              (void) reportPage;
      
             
              if(paramName=="grupo")
              {
                  if(recNo>=2)
                  {paramValue="Grupo 2";}
                  else
                  {paramValue="Grupo 1";}
      
              }
              if(paramName=="dato1")
              {paramValue=valores[recNo];}
      
          });
          reporte->printExec();
      
      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved