原創|使用教程|編輯:郝浩|2013-05-06 16:46:59.000|閱讀 326 次
概述:SharpShooter Reports是一款靈活的報表開發工具,支持WinForms、ASP.NET、HTML5多個版本,本文展示SharpShooter Reports管理報表數據的方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
SharpShooter Reports是一款靈活的報表開發工具,支持WinForms、ASP.NET、WPF、HTML5, 和Silverlight多個版本,其一大特色是擁有專門的OLAP包用于多維數據分析,專門的Chart包用于創建豐富的可視化圖表。接下來慧都以一個例子來完整展示SharpShooter Reports管理報表數據的方法。
在日常工作中,我們可能需要一個報表來說明某天的日程,如部門B從3到下午5點要做什么?部門A和C又要做什么?我們就將以這個需求為例,使用SharpShooter Reports 創建這種報表。
首先,我們先創建一個如下的較為簡單的報表:
這是一個每部門按日期分的日程表,它的具體需求如下:
首先需要在DataSet和數據庫之間創建日程計劃的關聯。這個將用來展示一個指定部門的日程計劃。
由于可能會涉及到的報表參數等補充數據,所以添加一個額外的數據集。
用一個以天為單位的table來創建一個日程表。
這個table里面的每條記錄將包含一天的開始與結束。
然后,在這些table的GenerateDays功能中設置days.To do:
void GenerateDays() { DateTime from = dateTimePickerFrom.Value.Date; DateTime to = dateTimePickerTo.Value.Date; int num = (to - from).Days; DayTable.Rows.Clear(); for (int i = 0; i < num; i++) { DataRow row = DayTable.NewRow(); row["From"] = new DateTime(from.Ticks + i * TimeSpan.TicksPerDay); row["To"] = new DateTime(from.Ticks + (i + 1) * TimeSpan.TicksPerDay); DayTable.Rows.Add(row); } }
在生產報表之前不要忘記調用GenerateDays功能:
private void buttonGenerate_Click(object sender, EventArgs e) { GenerateDays(); inlineReportSlot1.Prepare(); }
為報表數據源添加額外的dataset。
運行報表模板:
將第一個數據帶區DataBand (dataBand4)的DataSource屬性設置為天。
將第一個數據帶區DataBand (dataBand4)的DataSource屬性設置為部門。
運用Header元素讓dataBand5顯示內容與dataBand4對應。
將TextBox拖拽到設計器里,并將其鏈接到GetData(“Day.From)的值。
接下來是這個報表的第二部分,將每個部門對應到日程。
通過參數在dataBand1中過濾日程,需要在FilterExpression屬性中設置以下腳本:
(DateTime)GetData("Department.Appointments.Time")>=(DateTime)dataBand4["From"] && (DateTime)GetData("Department.Appointments.Time")<(DateTime)dataBand4["To"]
按時間排續這些日程,添加GetData(“Department.Appointments.Time”)標準到排序屬性中。
這個報表的第二部分也完成了。
接下來最后一步就是顯示日程本身了,需使用細節元素。
添加2個TextBox元素到detail1中,把兩個TextBox鏈接到時間字段和最近日程的描述字段。
運行它:
報表完成:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網