Crystal报告及子报告“您请求的报告需要更多信息”

时间:2016-01-28 17:04:36

标签: c# asp.net sql-server crystal-reports

我正在使用C#在Visual Studio 2010中构建Crystal Report。我的报告必须包含子报告。当我单独运行我的报告时,它工作得很好,但是当我添加子报告时,我立即得到对话框窗口,说“您请求的报告需要更多信息”我只能输入名称和密码,数据库名称字段是只读的。当我输入信息时,它会加载几秒钟然后再次出现enter image description here

我的原始报告和子报告使用的是不同的存储过程,这些存储过程放在一个DataSet enter image description here中,每个报告都连接到自己的存储过程。当我只运行主报表时它运行正常,但是当添加子报表时,diaglog会重新出现。

我正在将页面连接到这样的报告,我现在硬编码所有字段,子报告通过facility_id链接到主报告

 SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["chartsdbnewConnectionString"].ConnectionString);
    ReportDocument rdoc = new ReportDocument();
    cn.Open();
    SqlCommand cmd = new SqlCommand("RIV_RPT_CENSUS_ASOFDATE_copy_jenny", cn);
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@facility_search_ind", 0);
    cmd.Parameters.AddWithValue("@facility_id_from", 50);
    cmd.Parameters.AddWithValue("@facility_id_to", 50);
    cmd.Parameters.AddWithValue("@facility_name_from", ' ');
    cmd.Parameters.AddWithValue("@facility_name_to", "zz");
    cmd.Parameters.AddWithValue("@Resident_search_ind", 1);
    cmd.Parameters.AddWithValue("@Resident_id_from", 0);
    cmd.Parameters.AddWithValue("@Resident_id_to", 0);
    cmd.Parameters.AddWithValue("@Resident_name_from", "A");
    cmd.Parameters.AddWithValue("@Resident_name_to", "ZZZZ");
    cmd.Parameters.AddWithValue("@AsOfDate", "2016-01-27");
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable ds = new DataTable();
    da.Fill(ds);
    rdoc.Load(Server.MapPath("CrystalReport.rpt"));
    rdoc.SetDataSource(ds);
    Session["ReportDocument"] = rdoc;
    crs1.ReportSource = (ReportDocument)Session["ReportDocument"];



    crs1.DataBind();
    cn.Close();

我花了很多时间在谷歌搜索这个问题,但没有一个解决方案在线工作。我觉得我没有以正确的方式连接我的子报告。我对Crystal Report技术还很陌生。请帮助,这是我第三天的奴役。

1 个答案:

答案 0 :(得分:1)

您还需要在子代码中为代码提供数据源。类似的东西:

rdoc.OpenSubreport("my_awesome_subreport.rpt").SetDataSource(ds);