Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Faustino Junior

O que eu posso fazer para que seja aberta apenas uma conexão no crysta

Recommended Posts

Estou te enviando esta mensagem pois vi o seu post sobre conexão ao banco e no meu caso não sei mais como resolver.

 

No page load é carregado o procedimento de ConfigureCrystalReports para que possa ser possível que eu retire a "droga" do pedido de senha quando executo o relatório.

Tudo funciona, inclusive a passagem de parametros implementada na rotina ReportParameter().

 

O meu problema é que a cada vez que eu abro o relatório ou quando eu clico no meu botão para realizar o filtro uma nova conexão no banco é criada.

 

O que eu posso fazer para que seja aberta apenas uma conexão no crystal reports?

 

// ==== Componentes ====

// ----------------------------------------------------------

Relatorio.aspx com (crystalreportviewer csRelatorio, texbox textbox1 e button button1)

Relatorio.rpt

 

// === FONTE ====

// -----------------------------------------------------------

 

protected void Page_Load(object sender, EventArgs e)
       {
           if (!IsPostBack)
           {
               ConfigureCrystalReports();
           }        
}

public  void ConfigureCrystalReports()
       {
           string reportPath = Server.MapPath("MeuRelatorio.rpt");
           rpt.Load(reportPath);
           //ConnectionInfo myConnectionInfo = new ConnectionInfo();
           myConnectionInfo.ServerName = "10.10.10.10";
           myConnectionInfo.DatabaseName = "DATABASE";
           myConnectionInfo.UserID = "NomedoUsuario";
           myConnectionInfo.Password = "Senha";
           SetDBLogonForReport(myConnectionInfo, rpt);
           csRelatorioViaturas.ReportSource = rpt; //Atribuir a fonte do relatorio
           ReportParameter(); //Passar os parametros
       }

// Setar o logon no relatório
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument ArquivoReport)
       {
           Tables tables = ArquivoReport.Database.Tables;
           foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
           {
               TableLogOnInfo tableLogonInfo = table.LogOnInfo;
               tableLogonInfo.ConnectionInfo = connectionInfo;
               table.ApplyLogOnInfo(tableLogonInfo);
           }
       }

// Atribuir parametros ao relatório
private void ReportParameter()
       {
           csRelatorio.RefreshReport();
           ParameterFields paramFields = new ParameterFields();
           ParameterField pfOcorrencia = new ParameterField();
           pfOcorrencia.ParameterFieldName = "Ocorrência"; //Nome do param no rel
           ParameterDiscreteValue dcOcorrencia = new ParameterDiscreteValue();
           dcOcorrencia.Value = int.Parse(TextBox1.Text);
           pfOcorrencia.CurrentValues.Add(dcOcorrencia);
           paramFields.Add(pfOcorrencia);
           csRelatorio.ParameterFieldInfo = paramFields;
       }

// Chamada do botão para filtrar o relatório
protected void Button1_Click(object sender, EventArgs e)
{
           csRelatorioViaturas.DataBind();
           ReportParameter();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.