none
DatagridView a CrystalReport RRS feed

  • Pregunta

  • Buen dia, les suplico me ayuden pues me urge resolver esta situacion.

    Tengo un DataGridView llamado "gridDatosFactura(sin conexion a BD)" el cual lleno de forma manual y enviandole datos de otro DGV(este segundo grid esta conectado a base de datos y me muestra repuestos disponibles para facturar o sea los busco en este y los paso a girdDatosFactura) Mi problema es que quiero pasar el contenido de gridDatosFactura a un reporte de crystalReport pero cuando lo pulso en el boton imprimir para abrir el form que contiene en informe, antes de generar el informe me pide Inicio de sesion a la BD y contrasena, cabe mencionar que tengo Sql Server y lo uso con autenticacion de windows.

    El codigo que utilizo para crear un dataset con el gridDatos Factura es el siguiente:

     Dim dt As New DataTable
            dt = Me.gridDatosFactura.DataSource

            Dim cr As New crpFacturacion
            cr.SetDataSource(dt)

            Dim r As New frmFacturacion
            r.crvFacturacion.ReportSource = cr

    No se si me falta algo en elcodigo o debo hacer otra cosa, por favor ayudenme a resolver este problema.

    NOTA: Lo he intentado creando un dataset con una tabla de mi base de datos y de igual manera me pide la autenticacion.

    jueves, 14 de julio de 2016 0:57

Respuestas

  • Hola

    Puedes usar algo como

    private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument rptDocument)
            {
                Tables myTables = rptDocument.Database.Tables;
                foreach (CrystalDecisions.CrystalReports.Engine.Table myTable in myTables)
                {
                    TableLogOnInfo myTableLogonInfo = myTable.LogOnInfo;
                    myTableLogonInfo.ConnectionInfo = connectionInfo;
                    myTable.ApplyLogOnInfo(myTableLogonInfo);
                }
            }

    Donde imprimes

    ConnectionInfo cn = new ConnectionInfo();
                cn.ServerName = ".";
                cn.DatabaseName = "PrismaNvo";
                cn.UserID = "";
                cn.Password = "";
                cn.Type = ConnectionInfoType.SQL;
                SetDBLogonForReport(cn, rptListaPersonal);
                frm.CrystalReportViewer.Refresh();

    Si no tienes usuario ni contraseña no le pongas nada pero indica el nombre del servidor y el nombre de la base de datos.

    Espero te haya sido de utilidad, suerte!!!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    viernes, 15 de julio de 2016 15:07

Todas las respuestas

  • Hola, prueba con esto:

    crv.DataSourceConnections.Item(0).SetLogon("user", "pass")
    
     

    cambia user por tu usuario y pass por tu contraseña,

    Suerte


    Javier

    jueves, 14 de julio de 2016 1:01
  • Hola Javier Gracias por responder, pero te dire que la base de datos y el Sql Server no tienen ni usuario ni contrasena para acceder a ellos.
    jueves, 14 de julio de 2016 2:26
  • Hola

    Puedes usar algo como

    private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument rptDocument)
            {
                Tables myTables = rptDocument.Database.Tables;
                foreach (CrystalDecisions.CrystalReports.Engine.Table myTable in myTables)
                {
                    TableLogOnInfo myTableLogonInfo = myTable.LogOnInfo;
                    myTableLogonInfo.ConnectionInfo = connectionInfo;
                    myTable.ApplyLogOnInfo(myTableLogonInfo);
                }
            }

    Donde imprimes

    ConnectionInfo cn = new ConnectionInfo();
                cn.ServerName = ".";
                cn.DatabaseName = "PrismaNvo";
                cn.UserID = "";
                cn.Password = "";
                cn.Type = ConnectionInfoType.SQL;
                SetDBLogonForReport(cn, rptListaPersonal);
                frm.CrystalReportViewer.Refresh();

    Si no tienes usuario ni contraseña no le pongas nada pero indica el nombre del servidor y el nombre de la base de datos.

    Espero te haya sido de utilidad, suerte!!!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    viernes, 15 de julio de 2016 15:07