日期:2014-05-20  浏览次数:20722 次

水晶报表问题-用C#获得报表页眉内容?(难难。。。)
水晶报表问题-用C#获得报表页眉内容

水晶报表我用得不是很多,只是会制作。和对。net熟悉,我想了解在程序中读取一个水晶报表文件,我只要页眉的内容能不



能可以控制。水晶报表的rpt文件都是加密的吧,希望高手给点提示。

------解决方案--------------------
应该可以吧,每个节都有一个SECTION模型相对应,可以循环得到每个对象及其值
------解决方案--------------------
C# code

protected void Page_Load(object sender, EventArgs e)
    {

        ReportDocument rd = new ReportDocument();
        FieldHeadingObject fho;
        rd.Load(Server.MapPath("CrystalReport.rpt"));       
        //Section2为默认页眉节名称,根据报表设计可能有所不同
        Section headerSection = rd.ReportDefinition.Sections["Section2"];
        for (int i = 0; i <= headerSection.ReportObjects.Count-1; i++)
        {   
            //控件名称
            Response.Write(headerSection.ReportObjects[i].Name +",");
            //控件类型
            Response.Write(headerSection.ReportObjects[i].Kind.ToString() +",");
            //此处只处理字段标题字段,其余类似
            if (headerSection.ReportObjects[i].Kind.ToString() == "FieldHeadingObject")
            {
                fho = (FieldHeadingObject)headerSection.ReportObjects[i];
                Response.Write("标题字段内容:" + fho.Text + "<br/>");
            }
            else
                Response.Write("非标题字段X坐标:" + headerSection.ReportObjects[i].Left + "<br/>");
        }
        

    }

------解决方案--------------------
探讨
C# code

protected void Page_Load(object sender, EventArgs e)
{

ReportDocument rd = new ReportDocument();
FieldHeadingObject fho;
rd.Load(Server.MapPath("CrystalRep……

------解决方案--------------------
都是高手啊