报表说到底只是用来把数据反映到显示上来的过程,你首先要清楚,它只是简单地把数据显示在界面上,与他匹配的是数据源,所以他的接口是唯一的,数据集合。
设计报表应当摆脱外界的参数,从与数据源相匹配的角度处理问题,数据源有数据,报表才可能显示这些数据,数据源没有数据,报表也不会有你想要的数据的。如果数据源发生变更,报表没有得到及时更新,则报表打印将会出问题,特别是在数据集有字段删除情况时,更为明显
报表做到现在从来没有遇到过需要从WEB界面接受参数的。呵呵!

解决方案 »

  1.   

    楼上的好象说得不对吧!
    水晶表有推拉两种数据源方式,你说的是拉的方式,推的方式是可以把数据压进水晶表的.
    楼主说的可以达到,而且对于水晶表来说很简单,掌握下面几个知识点就行了//Declare variables needed to pass the parameters to the viewer control.
    ParameterFields paramFields = new ParameterFields ();
    ParameterField paramField = new ParameterField ();
    ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
      

  2.   

    定義一個公式字段:FormulaFields
    名稱為:frmPrintedBy
    myreport.DataDefinition.FormulaFields("frmPrintedBy").Text = "'canshu'"即可
      

  3.   

    报表端:
    定義一個公式字段:FormulaFields
    名稱為:no
    程序端:
    ReportDocument oRpt=new ReportDocument ();
    oRpt.Load (Server.MapPath ("/rain/report/Crhead.rpt"));
    oRpt.DataDefinition.FormulaFields["no"].Text="'AA-"+txtsmonth.Text +"-"+txtsyear.Text +"'";