none
ReportView RRS feed

  • Pergunta

  • Pessoal me ajudem,

     

     

    private void ListaFiliais()

    {

    clpFiliais ado = new clpFiliais();

    DataTable fil = ado.ListaFiliais();

    if (fil.Rows.Count > 0)

    {

    rpvFiliais.LocalReport.ReportPath = "clInterface\\Reports\\rpFiliais.rdlc";

    rpvFiliais.LocalReport.DataSources.Clear();

    dgv.DataSource = fil;

    ReportDataSource myReport = new ReportDataSource("dsFiliais", fil);

    rpvFiliais.LocalReport.DataSources.Add(myReport);

    }

    }

     

     

    pq meu relatorio não executa?

     

     

     

    Att,

     

     

    domingo, 18 de maio de 2008 23:51

Respostas

  • Opa!

     

    Em C# fica assim:

    Code Snippet

    string strReportPath = Application.ExecutablePath;

    strReportPath = string.Concat(strReportPath.Replace("\\bin\\Debug", ""), \\CrystalReports\\rptProdutos.rpt);

     

     

    Exemplo completo com reportview em VB.NET:

    Code Snippet

     

    'referências do banco de dados

    Imports System.Data.SqlClient

    Imports System.Data

    Imports System.Text 'StringBuilder

     

    'referências do reportview

    Imports Microsoft.Reporting.WinForms

     

    'referências ConnectionStrings app.config

    Imports System.Configuration

     

    Private Sub ListaProdutos()

    Dim strConexao As String = My.Settings("AWorks").ToString

    Dim oConn As New SqlConnection

    Dim strSQL As New StringBuilder

    Dim oTable As New DataTable()

    Dim oCmd As SqlCommand = Nothing

    Dim strReportPath As String = ""

    Try

     

    '1 passo: carregar o relat¢rio

    strReportPath = String.Concat(Replace(My.Application.Info.DirectoryPath(), "\bin\Debug", ""), "\Relatorios\rdlProdutos.rdlc")

    rvPrintPreview.LocalReport.ReportPath = strReportPath

     

    '2 passo: passar os dados para o relat¢rio

    'abrindo conexÆo com o banco de dados

    oConn.ConnectionString = strConexao

    oConn.Open()

     

    'definindo o SQL do relat¢rio

    strSQL.Append(" SELECT ")

    strSQL.Append(" Production.Product.ProductID,")

    strSQL.Append(" Production.Product.Name, ")

    strSQL.Append(" Production.Product.Color, ")

    strSQL.Append(" Production.Product.ListPrice, ")

    strSQL.Append(" Production.ProductCategory.Name AS NameCategory")

    strSQL.Append(" FROM Production.Product")

    strSQL.Append(" INNER JOIN Production.ProductSubcategory")

    strSQL.Append(" ON Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID")

    strSQL.Append(" INNER JOIN Production.ProductCategory")

    strSQL.Append(" ON Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID")

    strSQL.Append(" WHERE Production.Product.Color = @Color ")

    oCmd = New SqlCommand(strSQL.ToString, oConn)

    oCmd.CommandText = strSQL.ToString

    oCmd.CommandType = CommandType.Text

     

    'definindo o parametro do SQL

    oCmd.Parameters.Add(New SqlParameter("@Color", SqlDbType.Char)).Value = "Red"

     

    'executando o SQLCommand

    Dim oDataReader As SqlDataReader = oCmd.ExecuteReader(CommandBehavior.CloseConnection)

     

    'converter o DataReader para DataTable

    oTable.Load(oDataReader)

     

    'definindo o DataSource do relat¢rio

    Dim myReportDataSource As ReportDataSource = New ReportDataSource("dsProduct", oTable)

    rvPrintPreview.LocalReport.DataSources.Add(myReportDataSource)

    Catch ex As Exception

    System.Diagnostics.Debug.WriteLine(ex.Message)

    Finally

     

    'liberando os objetos

    oConn.Dispose()

    oTable.Dispose()

    oConn = Nothing

    oTable = Nothing

    End Try

     

    End Sub

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    quarta-feira, 21 de maio de 2008 12:41

Todas as Respostas

  • MOF,

     

    Só com esse pedaço de código fica ruim analisar (acho que está faltando a parte de visualização do relatório pelo componente reportview), Neste caso, vou postar um exemplo completo em C# de como carregar um relatório com reportview

    Code Snippet

     

    //referências do banco de dados
    using System.Data.SqlClient;
    using System.Data;

    //referências do crystal reports
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Shared;

    //referência ConnectionStrings web.config
    using System.Web.Configuration.WebConfigurationManager;

    private void ListaProdutos()
    {
       
        ReportDocument crReportDocument = new ReportDocument();
        string strConexao = ConnectionStrings("AWorks").ConnectionString();
        SqlConnection oConn = new SqlConnection();
        StringBuilder strSQL = new StringBuilder();
        DataTable oTable = new DataTable();
       
        try {
           
            //1 passo: carregar o relatório
            string strPathreport = Server.MapPath("~\\Relatorios\\CrystalReports\\rptProdutos.rpt");
            crReportDocument.Load(strPathreport);
           
            //configurando para impressão em Landscape
            //crReportDocument.PrintOptions.PaperOrientation = PaperOrientation.Landscape
           
            //2 passo: passar os dados para o relatório (datatable)
            //abrindo conexão com o banco de dados
            oConn.ConnectionString = strConexao;
            oConn.Open();
           
            //carregando os dados
            strSQL.Append(" SELECT ");
            strSQL.Append(" Production.Product.ProductID, ");
            strSQL.Append(" Production.Product.Name, ");
            strSQL.Append(" Production.Product.Color, ");
            strSQL.Append(" Production.Product.ListPrice, ");
            strSQL.Append(" Production.ProductSubcategory.Name AS NameSubcategory ");
            strSQL.Append(" FROM ");
            strSQL.Append(" Production.Product INNER JOIN Production.ProductSubcategory ");
            strSQL.Append(" ON Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID ");
           
            SqlDataAdapter oDA = new SqlDataAdapter(strSQL.ToString, oConn);
            oDA.Fill(oTable);
           
            //definindo o DataSource do relatório
            crReportDocument.SetDataSource(oTable);
           
            //visualizando o relatório
            crPrintPreview.DisplayGroupTree = false;
            crPrintPreview.HasCrystalLogo = false;
            crPrintPreview.ReportSource = crReportDocument;
        }
       
        catch (Exception ex) {
            System.Diagnostics.Debug.WriteLine(ex.Message);
        }
       
        finally {
           
            //liberando os objetos
            oConn.Dispose();
            oTable.Dispose();
           
            oConn = null;
            oTable = null;
           
        }
       
    }

     

     


    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.
    terça-feira, 20 de maio de 2008 23:20
  • Massa, deu uma luz.

     

     

    Na verdade eu tinha esquecido de colocar o listafiliais() no load do relatorio.hehehe

     

    neste exemplo que voce esta me mandando é pra crystal e web não?

     

    como faco este mesmo exemplo para reportview e windows form.

     

    como faco este comando para windows form:

    string strPathreport = Server.MapPath("~\\Relatorios\\CrystalReports\\rptProdutos.rpt");

     

     

     

    Parabens, mais uma vez você me da uma ajuda e tanto.

     

     

    Obrigado.

    quarta-feira, 21 de maio de 2008 10:11
  • Opa!

     

    Em C# fica assim:

    Code Snippet

    string strReportPath = Application.ExecutablePath;

    strReportPath = string.Concat(strReportPath.Replace("\\bin\\Debug", ""), \\CrystalReports\\rptProdutos.rpt);

     

     

    Exemplo completo com reportview em VB.NET:

    Code Snippet

     

    'referências do banco de dados

    Imports System.Data.SqlClient

    Imports System.Data

    Imports System.Text 'StringBuilder

     

    'referências do reportview

    Imports Microsoft.Reporting.WinForms

     

    'referências ConnectionStrings app.config

    Imports System.Configuration

     

    Private Sub ListaProdutos()

    Dim strConexao As String = My.Settings("AWorks").ToString

    Dim oConn As New SqlConnection

    Dim strSQL As New StringBuilder

    Dim oTable As New DataTable()

    Dim oCmd As SqlCommand = Nothing

    Dim strReportPath As String = ""

    Try

     

    '1 passo: carregar o relat¢rio

    strReportPath = String.Concat(Replace(My.Application.Info.DirectoryPath(), "\bin\Debug", ""), "\Relatorios\rdlProdutos.rdlc")

    rvPrintPreview.LocalReport.ReportPath = strReportPath

     

    '2 passo: passar os dados para o relat¢rio

    'abrindo conexÆo com o banco de dados

    oConn.ConnectionString = strConexao

    oConn.Open()

     

    'definindo o SQL do relat¢rio

    strSQL.Append(" SELECT ")

    strSQL.Append(" Production.Product.ProductID,")

    strSQL.Append(" Production.Product.Name, ")

    strSQL.Append(" Production.Product.Color, ")

    strSQL.Append(" Production.Product.ListPrice, ")

    strSQL.Append(" Production.ProductCategory.Name AS NameCategory")

    strSQL.Append(" FROM Production.Product")

    strSQL.Append(" INNER JOIN Production.ProductSubcategory")

    strSQL.Append(" ON Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID")

    strSQL.Append(" INNER JOIN Production.ProductCategory")

    strSQL.Append(" ON Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID")

    strSQL.Append(" WHERE Production.Product.Color = @Color ")

    oCmd = New SqlCommand(strSQL.ToString, oConn)

    oCmd.CommandText = strSQL.ToString

    oCmd.CommandType = CommandType.Text

     

    'definindo o parametro do SQL

    oCmd.Parameters.Add(New SqlParameter("@Color", SqlDbType.Char)).Value = "Red"

     

    'executando o SQLCommand

    Dim oDataReader As SqlDataReader = oCmd.ExecuteReader(CommandBehavior.CloseConnection)

     

    'converter o DataReader para DataTable

    oTable.Load(oDataReader)

     

    'definindo o DataSource do relat¢rio

    Dim myReportDataSource As ReportDataSource = New ReportDataSource("dsProduct", oTable)

    rvPrintPreview.LocalReport.DataSources.Add(myReportDataSource)

    Catch ex As Exception

    System.Diagnostics.Debug.WriteLine(ex.Message)

    Finally

     

    'liberando os objetos

    oConn.Dispose()

    oTable.Dispose()

    oConn = Nothing

    oTable = Nothing

    End Try

     

    End Sub

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    quarta-feira, 21 de maio de 2008 12:41