Inquiridor
Crystal Reports VS 2010, Problema ao relacionar query com relatório

Pergunta
-
Olá amigos.Estou criando um relatório no VS2010, onde de acordo com uma id de projeto terei de puxar a informação de diversas tabelas relacionadas. já estou conseguindo exibir o relatório pegando um valor de uma Session com a id para o relatório neste código:
private void BindReport() { ReportDocument report = new ReportDocument(); report.Load(Server.MapPath("~/CadastroRef/Relatorios/Relatorio.rpt")); SetTableLocation(report.Database.Tables); int id_proj = Convert.ToInt32(Session["id_proj"]); CrystalDecisions.Shared.ParameterField prmId_Proj; prmId_Proj = report.ParameterFields["paramId_Proj"]; prmId_Proj.CurrentValues.AddValue(id_proj); CrystalReportViewer1.ReportSource = report; }
mas tenho duas dúvidas:1- Tenho uma query pronta que retorna exatamente o que preciso no banco. Agora preciso relacioná-la ao relatório, e n sei como fazer isto!2- Para um projeto tenho ocorrências de uma mesma tabela relacionada, preciso que cada apareça em uma nova pagina, existe alguma forma para fazer isto desta forma?Obrigado!
Todas as Respostas
-
Alguém pode me ajudar???
Estou tentando isto:
private void BindReport() { bool bSuccess = false; ReportDocument report = new ReportDocument(); report.Load(Server.MapPath("~/CadastroRef/Relatorios/Relatorio.rpt")); SetTableLocation(report.Database.Tables); CrystalReportViewer1.ReportSource = report; // CrystalReportViewer1.ReportSource = Persistência.DAO.retornaDataSet(strPreencheRelatorio(), "DBCLIENTES"); //} //catch (Exception ex) //{ // Response.Write(ex.Message); //} DataTable dtGeral = new DataTable(); dtGeral.Columns.Add("NM_RAZAO", Type.GetType("System.String")); dtGeral.Columns.Add("NM_PROJ", Type.GetType("System.String")); dtGeral.Columns.Add("NM_VULS", Type.GetType("System.String")); dtGeral.Columns.Add("CRIT_CLI", Type.GetType("System.String")); dtGeral.Columns.Add("ID_CWE", Type.GetType("System.String")); dtGeral.Columns.Add("ID_CVE", Type.GetType("System.String")); dtGeral.Columns.Add("ID_CCE", Type.GetType("System.String")); dtGeral.Columns.Add("CVSS_TEMPSCORE", Type.GetType("System.String")); dtGeral.Columns.Add("CVSS_ENVRSCORE", Type.GetType("System.String")); dtGeral.Columns.Add("CVSS_BSSCORE", Type.GetType("System.String")); dtGeral.Columns.Add("SIT_ENCTR", Type.GetType("System.String")); dtGeral.Columns.Add("IMPCT_CLI", Type.GetType("System.String")); dtGeral.Columns.Add("RECMD_CLI", Type.GetType("System.String")); dtGeral.Columns.Add("DSCR_IMG", Type.GetType("System.String")); dtGeral.Columns.Add("IMG", Type.GetType("System.Byte")); dtGeral.Columns.Add("NM_SIS ", Type.GetType("System.String")); dtGeral.Columns.Add("IP_SIS ", Type.GetType("System.String")); dtGeral.Columns.Add("URLS_SIS", Type.GetType("System.String")); dtGeral.Columns.Add("PORTAS ", Type.GetType("System.String")); DataRow drGeral; SqlConnection objConn = new SqlConnection(Persistência.DAO.criaConexao("DBVULNERABILIDADES")); SqlCommand objComm = new SqlCommand(QueryPreencheRelatorio(), objConn); objConn.Open(); SqlDataReader objDataReader = objComm.ExecuteReader(); try { if (objDataReader.HasRows) { drGeral = dtGeral.NewRow(); drGeral["NM_RAZAO"] = objDataReader["NM_RAZAO"] + ""; drGeral["NM_PROJ"] = objDataReader["NM_PROJ"] + ""; drGeral["NM_VULS"] = objDataReader["NM_VULS"] + ""; drGeral["CRIT_CLI"] = objDataReader["CRIT_CLI"] + ""; drGeral["ID_CWE"] = objDataReader["ID_CWE"] + ""; drGeral["ID_CVE"] = objDataReader["ID_CVE"] + ""; drGeral["ID_CCE"] = objDataReader["ID_CCE"] + ""; drGeral["CVSS_TEMPSCORE"] = objDataReader["CVSS_TEMPSCORE"] + ""; drGeral["CVSS_ENVRSCORE"] = objDataReader["CVSS_ENVRSCORE"] + ""; drGeral["CVSS_BSSCORE"] = objDataReader["CVSS_BSSCORE"] + ""; drGeral["SIT_ENCTR"] = objDataReader["SIT_ENCTR"] + ""; drGeral["IMPCT_CLI"] = objDataReader["IMPCT_CLI"] + ""; drGeral["RECMD_CLI"] = objDataReader["RECMD_CLI"] + ""; drGeral["DSCR_IMG"] = objDataReader["DSCR_IMG"] + ""; drGeral["IMG"] = objDataReader["IMG"] + ""; drGeral["NM_SIS "] = objDataReader["NM_SIS"] + ""; drGeral["IP_SIS "] = objDataReader["IP_SIS"] + ""; drGeral["URLS_SIS"] = objDataReader["URLS_SIS"] + ""; drGeral["PORTAS "] = objDataReader["PORTAS"] + ""; CrystalDecisions.Shared.ParameterField prmNm_Proj; prmNm_Proj = report.ParameterFields["prmNm_Proj"]; prmNm_Proj.CurrentValues.AddValue(drGeral["NM_PROJ"].ToString()); } } catch (Exception ex) { Response.Write(ex.Message); } objConn.Close(); }
Como podem ver crio um data table e tento preenche-lo com valores resultantes de uma query que está funcionando perfeitamente, mas no debug na linhadrGeral["NM_RAZAO"] = objDataReader["NM_RAZAO"] + "";
ele já da erro.
Sabem o que pode ser?
- Editado Ricardo Nader segunda-feira, 7 de novembro de 2011 12:23
-
-