ReportViewer的动态绑定

ReportViewer的动态绑定

 

aspx页面关键代码 代码

< body >
  
    
< form  id ="form1"  runat ="server" >
     
< asp:ScriptManager  ID ="ScriptManager1"  runat ="server" >
    
</ asp:ScriptManager >
    
     
< uc2:StatementQuery  ID ="StatementQuery1"  runat ="server"   />
     
     
< asp:Button  ID ="Button1"  runat ="server"  OnClick ="Button1_Click"  Text ="View Report"   />
            
< asp:Button
                
ID ="Button2"  runat ="server"  Text ="Button"  onclick ="Button2_Click"   />
            
< asp:TextBox  ID ="txtParameter"  runat ="server" ></ asp:TextBox >
    
< rsweb:ReportViewer  ID ="ReportViewer1"  runat ="server"  Font-Names ="Verdana"  Font-Size ="8pt"
                
>
                
< LocalReport  ReportPath ="statement/Report_Metal.rdlc"   >
                    
< DataSources >
                        
< rsweb:ReportDataSource  />
                    
</ DataSources >
                
</ LocalReport >
            
</ rsweb:ReportViewer >  
        


    
</ form >
  
    
</ body >

 

C#关键代码

ReportViewer的动态绑定 代码
  private   void  BindReportViewer()
        {






            BusinessLogic.MetalStatViewCollection MSVCOLL  =   new  BusinessLogic.MetalStatViewCollection();
            MSVCOLL  =  BusinessLogic.MetalStatViewCollection.getMetalStatViewCollection( " year=2009 and month=12 and day=3 " );
            IList < rMSV >  MSVList  =   new  List < rMSV > ();
            
foreach  (MetalStatView m  in  MSVCOLL)
            {
                MSVList.Add( new  rMSV(m.GroupField, m.clientName, m.weight, m.amount));
            }




            ReportDataSource rds  =   new  ReportDataSource( " DataSet_Metal_DataTableMetal " , MSVList);
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(rds);
            ReportViewer1.LocalReport.Refresh();
        }

 

 

需要用dataset的XSD文件作为中转。

详细过程,可以参考:http://www.codeproject.com/kb/aspnet/ReportViewer.aspx 

 

 以前按照MSDN的指导,有成功使用过动态绑定RDLC,可这次使用到业务对象,并用ObjectDataSource来作为数据源的中转,结果搞了几天,也总是有问题。

后来,重头来过,不用ObjectDataSource,按codeproject上的简单例子,实现了动态绑定,再将我们要使用的业务对象加上去,通过XSD来中转,一样完成了目标功能。

http://four-corner.appspot.com/

 

 

http://anforen.5d6d.com/ 

你可能感兴趣的:(view)