none
Creación de etiquetas ó labels vacias desde Crystal Reports. RRS feed

  • Pregunta

  • Hola amigos,

    Tengo creado un reporte el cual carga desde una base de datos la información y la muestra en etiquetas. Ver imagenes.

    Desde el siguiente código cargo los datos para que los muestre.

    public void cargadatosfiltro()
            {
                txtcodigo.Text = varclaart.ToString();
                string connectionString = gestfac.Properties.Settings.Default.bdgestfacConnectionString;
                SqlConnection con = new SqlConnection(connectionString);
                string sql = "SELECT '*' + codigo + '*' AS codebar, nombre, pvp1iva FROM articulos where claart=" + txtcodigo.Text;
    
                for (int i = 1; i < int.Parse(txtcantidad.Text); i++)
                {
                    
                        sql = sql + "UNION ALL SELECT '*' + codigo + '*' AS codebar, nombre, pvp1iva FROM articulos where claart=" + txtcodigo.Text;
    
                }
                SqlDataAdapter sda = new SqlDataAdapter(sql, con);
                DataSet ds = new DataSet();
                sda.Fill(ds, "articulos");
                Reporte.SetDataSource(ds);
                crystalReportViewer1.ReportSource = Reporte;//aquí asigno el reporte al viewer de crystal report
      
            }
    
    private void button1_Click(object sender, EventArgs e)
            {
                varclaart = Convert.ToInt32(txtcodigo.Text);
                cargadatosfiltro();
            }

    El motivo de mi pregunta es el siguiente, con el codigo actual, puedo filtrar los articulos que deseo mostrar y el numero de etiquetas de cada uno de ellos, pero lo que quisiera poder mostrar una serie de etiquetas en blanco segun lo indique en el textbox que se encuentra arriba del todo, para poder así aprovechar bien los pliegos de papel de etiquetas.

    Gracias a todos. Un saludo.

    Gori Vega.

    jueves, 22 de enero de 2015 14:18

Respuestas

  • Esta es la solución que encontre:

    public void cargadatosarticulos() { txtcodigode.Text = varclaartde.ToString(); txtcodigohasta.Text = varclaarthasta.ToString(); string connectionString = gestfac.Properties.Settings.Default.bdgestfacConnectionString; SqlConnection con = new SqlConnection(connectionString); if (Convert.ToInt32(txtblanco.Text) > 1) //ESTA CONDICION SE DA CUANDO SE AÑADE ESPACIOS AL IMPRIMIR. { for (int j = 1; j < int.Parse(txtblanco.Text); j++) { if (j == 1) { sqlvacios += "SELECT codigo, codigo AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where nombre=''"; } else { sqlvacios += "UNION ALL SELECT codigo, codigo AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where nombre=''"; } } for (int i = 0; i < int.Parse(txtcantidad.Text); i++) { sql += "UNION ALL SELECT codigo, '*' + codigo + '*' AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where claart>=" + Convert.ToInt32(txtcodigode.Text) + " AND claart <=" + Convert.ToInt32(txtcodigohasta.Text); } } else //ESTA CONDICION SE CUMPLE CUANDO NO HAY ESPACIOS VACIOS Y SE IMPRIME DESDE LA PRIMERA ETIQUETA { for (int i = 0; i < int.Parse(txtcantidad.Text); i++) { if (i == 0) { sql = "SELECT codigo, '*' + codigo + '*' AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where claart >=" + Convert.ToInt32(txtcodigode.Text) + " AND claart <=" + Convert.ToInt32(txtcodigohasta.Text); } else { sql += "UNION ALL SELECT codigo, '*' + codigo + '*' AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where claart>=" + Convert.ToInt32(txtcodigode.Text) + " AND claart <=" + Convert.ToInt32(txtcodigohasta.Text); } } } if (Convert.ToInt32(txtblanco.Text) > 0) { sqlfinal = sqlvacios + sql; } else { sqlfinal = sql; } SqlDataAdapter sda = new SqlDataAdapter(sqlfinal, con); sda.SelectCommand.CommandTimeout = 2000; DataSet ds = new DataSet(); sda.Fill(ds, "articulos"); Reporte = new ReportDocument(); Reporte.Load(ubicacion + @"\informes\" + clavetipo.ToString() + ".rpt"); Reporte.SetDataSource(ds); //aquí asigno el reporte al viewer de crystal report crystalReportViewer1.ReportSource = Reporte; }


    • Marcado como respuesta Gori0056 jueves, 7 de febrero de 2019 20:27
    jueves, 7 de febrero de 2019 20:27

Todas las respuestas

  • viernes, 23 de enero de 2015 8:30
  • Pues la verdad es que no me ayuda mucho, entiendo que basicamente lo que haces es dejar campos libres en la tabla donde almacenas los datos, no??, pero lo quiero poder dejar una serie de etiquetas vacias en el principio sin necesidad de grabar nada en ninguna base de datos, solo rescatando los datos de la bbdd.

    Saludos, Gregorio.


    viernes, 23 de enero de 2015 16:26
  • Nadie puede darme una pista???
    domingo, 25 de enero de 2015 21:21
  • Hola:
    No he podido encontrar la forma de decirle a crystal reports que las N primeras etiquetas se las pase.
    El ejemplo lo que hace es poner el campo con 1 punto para que no este vacio y asi simular una etiqueta vacia.
    Ya has podido observar que yo preguntaba lo mismo que tu y cuales han sido las respuestas.
    Si encuentras la forma, la publicas y saldremos beneficiados todos.

    Un saludo desde Bilbo
    Carlos

    lunes, 26 de enero de 2015 8:13
  • Esta es la solución que encontre:

    public void cargadatosarticulos() { txtcodigode.Text = varclaartde.ToString(); txtcodigohasta.Text = varclaarthasta.ToString(); string connectionString = gestfac.Properties.Settings.Default.bdgestfacConnectionString; SqlConnection con = new SqlConnection(connectionString); if (Convert.ToInt32(txtblanco.Text) > 1) //ESTA CONDICION SE DA CUANDO SE AÑADE ESPACIOS AL IMPRIMIR. { for (int j = 1; j < int.Parse(txtblanco.Text); j++) { if (j == 1) { sqlvacios += "SELECT codigo, codigo AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where nombre=''"; } else { sqlvacios += "UNION ALL SELECT codigo, codigo AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where nombre=''"; } } for (int i = 0; i < int.Parse(txtcantidad.Text); i++) { sql += "UNION ALL SELECT codigo, '*' + codigo + '*' AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where claart>=" + Convert.ToInt32(txtcodigode.Text) + " AND claart <=" + Convert.ToInt32(txtcodigohasta.Text); } } else //ESTA CONDICION SE CUMPLE CUANDO NO HAY ESPACIOS VACIOS Y SE IMPRIME DESDE LA PRIMERA ETIQUETA { for (int i = 0; i < int.Parse(txtcantidad.Text); i++) { if (i == 0) { sql = "SELECT codigo, '*' + codigo + '*' AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where claart >=" + Convert.ToInt32(txtcodigode.Text) + " AND claart <=" + Convert.ToInt32(txtcodigohasta.Text); } else { sql += "UNION ALL SELECT codigo, '*' + codigo + '*' AS codebar, nombre, pvp1iva, foto, '' AS ruta, descripcion FROM articulos where claart>=" + Convert.ToInt32(txtcodigode.Text) + " AND claart <=" + Convert.ToInt32(txtcodigohasta.Text); } } } if (Convert.ToInt32(txtblanco.Text) > 0) { sqlfinal = sqlvacios + sql; } else { sqlfinal = sql; } SqlDataAdapter sda = new SqlDataAdapter(sqlfinal, con); sda.SelectCommand.CommandTimeout = 2000; DataSet ds = new DataSet(); sda.Fill(ds, "articulos"); Reporte = new ReportDocument(); Reporte.Load(ubicacion + @"\informes\" + clavetipo.ToString() + ".rpt"); Reporte.SetDataSource(ds); //aquí asigno el reporte al viewer de crystal report crystalReportViewer1.ReportSource = Reporte; }


    • Marcado como respuesta Gori0056 jueves, 7 de febrero de 2019 20:27
    jueves, 7 de febrero de 2019 20:27