標籤:style blog http color 使用 os io 檔案
在這家公司時間不長,接觸都是之前沒玩過的東東,先是工作流程引擎和各種郵件簡訊的審核資訊,後又是部署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(); }
到這就算整個報表都已經做完了看看效果吧