下午好开发者, 这是我生成水晶报告的功能,这将把Report Name和ReportQuery作为输入参数并生成一个数据集,有了这个数据集我怎样才能设计我的报告?因为这是在运行时生成的,我怎么能访问它以生成我的ReportDesign ??
public void fnLoadDataToReport(string rptName, string rptQuery)
{
try
{
DataSet myDS=new DataSet();
// crReportDocument.Load(Server.MapPath("Reports\" & RptName), OpenReportMethod.OpenReportByTempCopy);
crReportDocument.Load(Server.MapPath("Reports\\" + rptName ));
SqlConnection myConnection=new SqlConnection(ConfigurationManager.ConnectionStrings["mycon"].ConnectionString);
SqlCommand myCommand=new SqlCommand(rptQuery,myConnection);
SqlDataAdapter MyDA=new SqlDataAdapter(myCommand);
MyDA.Fill(myDS,"ReportTable");
crReportDocument.SetDataSource(myDS);
crvReportGeneration.ReportSource=crReportDocument;
crvReportGeneration.ShowFirstPage();
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
}
任何帮助都是值得的......!
答案 0 :(得分:1)
您只需要数据集的 XML架构定义即可设计报告。这可以通过以下代码实现。
private void WriteSchemaToFile(DataSet thisDataSet){
// Set the file path and name. Modify this for your purposes.
string filename="mySchema.xml";
// Write the schema to the file.
thisDataSet.WriteXmlSchema(filename);
}
现在将上面创建的文件添加到您的项目中。
现在,在设计报告时,选择数据库专家,然后在项目下选择xml文件。并添加它(就像你添加表或视图一样)。
现在你很高兴。其余步骤是相同的。
只需确保数据集中的XSD架构名称和表名称完全匹配。
答案 1 :(得分:0)
为什么使用DataSet作为报告的来源。而不是如果你使用存储过程作为源,它将解决你的问题,并且维护将更容易