none
Crear aplicacion que genere un reporte RRS feed

  • Pregunta

  • Hola amigos, lo que quiero hacer es muy simple: quiero crear una pequeña aplicacion que coloque unos datos como Id, nombre, direccion y esos mostrarlos en una hoja tipo reporte, no me interesa guardar los datos, simplemente mostrarlos en un reporte que tenga una imagen de una factura.

    Esto lo se hacer usando la herramienta reportviewer, pero ocurre que necesito una conexion a base de datos para manejar el dataset del reporte y como dije anteriormente no me interesa guardar la data, me quiero evitar crear la base de datos, ya que la idea de la aplicacion es que por su sencillez se pudiera ejecutar en cualquier lado pero si uso la base de datos se va a complicar porque la base de datos va a tener que estar en una ruta en especifico para que la aplicacion funcione.

    Estoy casi convencido que debe haber una manera de poder manejar datasets que no tengan que pertenecer a una base de datos para poder usarse en el reportviewer pero desconozco el caso.

    Espero me puedan sugerir alguna solucion interesante.

    Saludos

    sábado, 18 de agosto de 2012 14:58

Respuestas

  • buenos dias

    yo cree un proyecto que te puede ayudar

     private void button3_Click_1(object sender, EventArgs e)
            {

    //el nombre del dataset

                PurificadoraDataSet datos = generarfactura();
    //el nombre del formulario donde se encentra documen view
                verfactura luis = new verfactura(datos);
                luis.Show();
    //declaramos una funcion

      private PurificadoraDataSet generarfactura()

            {
                PurificadoraDataSet facturacion = new PurificadoraDataSet();
    /// ventas es el nombre de la tabla que esta dentro del dataset y los otros datos los registros dentro deya

                PurificadoraDataSet.VentasRow rowventas = facturacion.Ventas.NewVentasRow();
                rowventas.cliente = txtcliente.Text;
                rowventas.cantidad =Convert.ToInt16( txtcantidad.Text);
                rowventas.precio =Convert.ToInt16( txtprecio.Text);
                rowventas.total = Convert.ToInt16(txttotal.Text);
                rowventas.ncf = txtncf.Text;
                rowventas.fecha = txtfecha.Text;
                rowventas.idfactura = Convert.ToInt16( txtidfactura);
                //rowventas.codigo_barra =Convert (pictureBox1.Image);

                facturacion.Ventas.AddVentasRow(rowventas);
            }

    estos son los codigos que estan dentro del formulario donde esta el report view

    using System.Windows.Forms;

    namespace Purificadora
    {
        public partial class verfactura : Form
        {
            PurificadoraDataSet _datosreporte;
            public verfactura()
            {
                InitializeComponent();
            }
            public verfactura(PurificadoraDataSet datos)
                : this()
            {
                _datosreporte = datos;

            }

            private void verfactura_Load(object sender, EventArgs e)
            {
                factura _factura = new factura();
                _factura.SetDataSource(_datosreporte);
                crystalReportViewer1.ReportSource = _factura;
            }
        }

    }

    sábado, 18 de agosto de 2012 15:49
  • hola

    puede crear un dataset tipado y cargarlo desde codigo

    [Crystal Reports] - Exportar DataGridView a Crystal

    si bien alli se sua crystal con reporting service es identico, lo que deberias analizar es la forma ne que se vuelcan los datos del grid al dataset tipado

    de esa forma podrias sin una db crear datos para el reporte desde cualquier origen de dato que tengas

    solo crear el xsd y define desde la toolbox el datatable con los campos asi defines la estructura

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 18 de agosto de 2012 16:41

Todas las respuestas

  • buenos dias

    yo cree un proyecto que te puede ayudar

     private void button3_Click_1(object sender, EventArgs e)
            {

    //el nombre del dataset

                PurificadoraDataSet datos = generarfactura();
    //el nombre del formulario donde se encentra documen view
                verfactura luis = new verfactura(datos);
                luis.Show();
    //declaramos una funcion

      private PurificadoraDataSet generarfactura()

            {
                PurificadoraDataSet facturacion = new PurificadoraDataSet();
    /// ventas es el nombre de la tabla que esta dentro del dataset y los otros datos los registros dentro deya

                PurificadoraDataSet.VentasRow rowventas = facturacion.Ventas.NewVentasRow();
                rowventas.cliente = txtcliente.Text;
                rowventas.cantidad =Convert.ToInt16( txtcantidad.Text);
                rowventas.precio =Convert.ToInt16( txtprecio.Text);
                rowventas.total = Convert.ToInt16(txttotal.Text);
                rowventas.ncf = txtncf.Text;
                rowventas.fecha = txtfecha.Text;
                rowventas.idfactura = Convert.ToInt16( txtidfactura);
                //rowventas.codigo_barra =Convert (pictureBox1.Image);

                facturacion.Ventas.AddVentasRow(rowventas);
            }

    estos son los codigos que estan dentro del formulario donde esta el report view

    using System.Windows.Forms;

    namespace Purificadora
    {
        public partial class verfactura : Form
        {
            PurificadoraDataSet _datosreporte;
            public verfactura()
            {
                InitializeComponent();
            }
            public verfactura(PurificadoraDataSet datos)
                : this()
            {
                _datosreporte = datos;

            }

            private void verfactura_Load(object sender, EventArgs e)
            {
                factura _factura = new factura();
                _factura.SetDataSource(_datosreporte);
                crystalReportViewer1.ReportSource = _factura;
            }
        }

    }

    sábado, 18 de agosto de 2012 15:49
  • Saludos

    estos es lo mismo lo unico para que no tede un error de poner al final un return al final y si quieres ver imagenes

    debes de convertirlas.

    public void button3_Click_1(object sender, EventArgs e)
            {

                    PurificadoraDataSet datos = generarfactura();

                   verfactura luis = new verfactura(datos);
                      luis.Show();
                  }


            public PurificadoraDataSet generarfactura()
            {
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                PurificadoraDataSet facturacion = new PurificadoraDataSet();

                PurificadoraDataSet.VentasRow rowventas = facturacion.Ventas.NewVentasRow();
                rowventas.cliente = Convert.ToString(txtcliente.Text);
                rowventas.cantidad = Convert.ToInt32(txtcantidad.Text);
                rowventas.precio = Convert.ToInt32(txtprecio.Text);
                rowventas.total = Convert.ToInt32(txttotal.Text);
                rowventas.ncf = Convert.ToString(txtncf.Text);
                rowventas.fecha = Convert.ToString(txtfecha.Text);
                rowventas.idfactura = Convert.ToInt32(txtidfactura.Text);
                rowventas.codigo_barra = ms.ToArray();

                facturacion.Ventas.AddVentasRow(rowventas);
           
                {
                            }
                return facturacion;
            }

                
    sábado, 18 de agosto de 2012 16:00
  • hola

    puede crear un dataset tipado y cargarlo desde codigo

    [Crystal Reports] - Exportar DataGridView a Crystal

    si bien alli se sua crystal con reporting service es identico, lo que deberias analizar es la forma ne que se vuelcan los datos del grid al dataset tipado

    de esa forma podrias sin una db crear datos para el reporte desde cualquier origen de dato que tengas

    solo crear el xsd y define desde la toolbox el datatable con los campos asi defines la estructura

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 18 de agosto de 2012 16:41