1. 程式人生 > >visual studio 2010 自帶reporting報表本地加載的使用

visual studio 2010 自帶reporting報表本地加載的使用

區間 src arc tor ace 技術 .exe HERE help

原文:visual studio 2010 自帶reporting報表本地加載的使用

在這家公司時間不長,接觸都是之前沒玩過的東東,先是工作流引擎和各種郵件短信的審核信息,後又是部署reporting服務器。

reporting服務部署就不在這多說,在vs2010裏面是自帶了reporting報表的直接添加就可以使用。如圖

技術分享圖片

這是一個空白的模板。這時模板已有了就差數據了在新加一個數據集DataSet

技術分享圖片

數據集有了模板有了就回到reporting模板頁在這上面設計格式了,在空白處 右鍵-插入-表(也可以是其他圖表之類)選擇數據源

技術分享圖片

此時的報表模板就和綁定web控件一樣設定對於字段

技術分享圖片

到這模板設定就完成了。接著去寫對應的加載頁面了aspx的html如下

<rsweb:ReportViewer ID="rvReport" runat="server" Font-Names="Verdana" 
        Font-Size="8pt"  WaitMessageFont-Size="14pt"  InteractiveDeviceInfos="(集合)" WaitMessageFont-Names="Verdana" 
         Width="100%" Height="90%">
        <LocalReport ReportPath="
ReportFiles\RepairCountReport.rdlc"> <DataSources> <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1"/> </DataSources> </LocalReport> </rsweb:ReportViewer> <asp:ObjectDataSource ID="ObjectDataSource1
" runat="server"> </asp:ObjectDataSource>

在cs文件加載數據代碼如下

 private void InitDataGrid()
        {
            string betweenBegin = BetweenBegin.Value;
            string betweenEnd = BetweenEnd.Value;
            if (string.IsNullOrWhiteSpace(betweenBegin) || string.IsNullOrWhiteSpace(betweenEnd))
            {
                PromptHelper.ShowMessageJbox("溫馨提示", "請輸入查詢區間", this);
                return;
            }
            //默認是選中即油站名稱進行分組
            string groupbyValue = "";
            if (ckOuName.Checked)
            {
                groupbyValue = "1";
            }
            else
            {
                groupbyValue = RadioButtonList1.SelectedValue;
            }
            sqlWhere = "  and (T1.ActualFinishDate BETWEEN ‘" + betweenBegin + "‘ AND ‘" + betweenEnd + "‘)  ";
           string ouName=OUName.Value;
           if (!string.IsNullOrWhiteSpace(ouName) && ouName != "油站名稱")
           {
               sqlWhere += " and T3.OUName like ‘%" + ouName + "%‘";
           }
            //先獲取數據
            SqlHelper helper = new SqlHelper();
            SqlParameter[] par = new SqlParameter[]{
                new SqlParameter("@sqlWhere",SqlDbType.VarChar,1000),
                new SqlParameter("@groupby",SqlDbType.VarChar,2)
            };
            par[0].Value = sqlWhere;
            par[1].Value = groupbyValue;
            DataSet DataSet1 = helper.ExecuteDataSet(CommandType.StoredProcedure, "proc_RepairCountReport", par);
            this.rvReport.Visible = true;

            this.rvReport.LocalReport.DataSources.Clear();

            ObjectDataSource1.SelectParameters.Clear();
            ObjectDataSource1.SelectParameters.Add("sqlWhere", sqlWhere);
            this.rvReport.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", DataSet1.Tables[0]));
            this.rvReport.LocalReport.Refresh();

        }

  到這就算整個報表都已經做完了看看效果吧

技術分享圖片

visual studio 2010 自帶reporting報表本地加載的使用