none
Problemas com Crystal Report - Dúvida de Iniciante RRS feed

  • Pergunta

  • Bom dia, estou desenvolvendo meu primeiro relatório com crystal report. Quando vou gerar o relatório me retorna a seguinte menssagem, pedindo senha de acesso ao banco:


    The report you requested requires further information.


      DataSet1
    Server name: 
    Database name: 
    User name: 
    Password: 
    Use Integrated Security 
     

    Estou usando um dataset tipado para construir o modelo do relatorio, e na minha página aspx estou usando o seguindo código:

    public partial class CristalReport : System.Web.UI.Page
        {
            CamadaLogicaNegocios bll = new CamadaLogicaNegocios();

            private void setDBLOGONforREPORT(ConnectionInfo myconnectioninfo)
            {
                TableLogOnInfos mytableloginfos = new TableLogOnInfos();
                mytableloginfos = CrystalReportViewer1.LogOnInfo;
                foreach (TableLogOnInfo myTableLogOnInfo in mytableloginfos)
                {
                    myTableLogOnInfo.ConnectionInfo = myconnectioninfo;
                }

            }

            protected void Page_Load(object sender, EventArgs e)
            {
                ConnectionInfo myConnectionInfo = new ConnectionInfo();

                myConnectionInfo.ServerName = "servidor";
                myConnectionInfo.DatabaseName = "meu_banco";
                myConnectionInfo.UserID = "usuario";
                myConnectionInfo.Password = "senha";
                setDBLOGONforREPORT(myConnectionInfo);
               
                DataSet ds = bll.ListaFuncionarios();
                CrystalReport1 rp = new CrystalReport1();           
              
                rp.SetDataSource(ds);
                CrystalReportViewer1.ReportSource = rp;

               
            }


    Qualquer ajuda é bem vinda, obrigado!
    sexta-feira, 31 de outubro de 2008 11:37

Respostas

Todas as Respostas

  • Olá Tebaldi,

     

    Veio ao lugar certo!

     

    Criei um tópico fixo no fórum MSDN com algumas dicas  sobre a construção de relatórios com Crystal Reports e ReportView (incluindo 2 vídeos com vários exemplos de como construir relatórios com os componentes, licença, distribuição, service packs, etc.):

     

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3761576&SiteID=21

     

     

    [ ] 's

     

    Laércio.

     

    sexta-feira, 31 de outubro de 2008 12:05
    Moderador
  • Laercio,

     

    Parabêns pelos webcasts, vi o primeiro, gerei o relatório e estou com o mesmo problema do camarada acima, está aparecendo o pedido de usuário e senha, quando clico em imprimir.

     

    Tem como me informar o que devo fazer, para corrigir esse problema?

     

    Segue parte do código adaptado para montar o relatório.

     

    protected void Button1_Click(object sender, EventArgs e)

    {

    ReportDocument report = new ReportDocument();

    string strConexao = Dados.StringDeConexao;

    SqlConnection oConn = new SqlConnection();

    StringBuilder strSQL = new StringBuilder();

    DataSet oDataset = new DataSet();

    try

    {

    //2 passo: passar os dados para o relatório (datatable)

    //abrindo conexão com o banco de dados

    oConn.ConnectionString = strConexao;

    oConn.Open();

    //Carregando o relatório

    string strPathreport = Server.MapPath("~\\rptDespesas.rpt");

    report.Load(strPathreport);

    report.SetDataSource(grvDespesas.DataSource);

    ////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; ");

    //strSQL.Append(" SELECT ");

    //strSQL.Append(" ProductID, ");

    //strSQL.Append(" StartDate, ");

    //strSQL.Append(" EndDate, ");

    //strSQL.Append(" ListPrice");

    //strSQL.Append(" FROM Production.ProductListPriceHistory");

    //SqlDataAdapter oDA = new SqlDataAdapter(strSQL.ToString, oConn);

    //oDA.Fill(oDataset);

    //definindo o DataSource do relatório

    //crReportSubDocument = crReportDocument.OpenSubreport("rptPrecoProdutoHistorico.rpt");

    //crReportDocument.Database.Tables(0).SetDataSource(grv);

    ////dados do sub-relatório

    //crReportSubDocument.Database.Tables(0).SetDataSource(oDataset.Tables(1));

    //visualizando o relatório

    CrystalReportViewer1.DisplayGroupTree = false;

    CrystalReportViewer1.HasCrystalLogo = false;

    CrystalReportViewer1.ReportSource = report;

    CrystalReportViewer1.DataBind();

    }

    catch (Exception ex)

    {

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

    }

    finally

    {

    //fechando a conexão com o banco de dados

    oConn.Close();

    //liberando os objetos

    oConn.Dispose();

    oDataset.Dispose();

    oConn = null;

    oDataset = null;

    }

    }

     

    Agradeço desde já o apoio.

    terça-feira, 2 de dezembro de 2008 17:08
  • Pessoal,

     

    Segue a solução do problema, pode ser útil para alguém no futuro.

     

    No meu caso, estáva sendo enviado duas tabelas para o relatório, e quando isso acontecia, o sistema pedia usuário e senha, porque ele na realidade não tinha todas as informações corretas.

     

    Resolvi o problema, informando qual tabela deveria ir para o relatório.

     

    report.SetDataSource(oDataset.Tables[0]);

     

    No exemplo acima, de acordo com o video do Laercio, deveria escrever somente (oDataset), só que no meu exemplo, existiam duas tabelas no meu dataset.

     

    Nesse caso, basta informar a tabela como foi feito no final.

     

    Funcionou redondo.

    quarta-feira, 10 de dezembro de 2008 12:01