使用DataDynamics.ActiveReports 创建子报表
生活随笔
收集整理的這篇文章主要介紹了
使用DataDynamics.ActiveReports 创建子报表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用DataDynamics.ActiveReports開發報表是一種不錯的選擇。今天由于項目需要在一個已有的報表上添加另外一個報表的內容,于是就想到了使用它的子報表功能。這樣就可以實現項目需求。
首先查看了DataDynamics.ActiveReports自帶的SubReport的示例項目。它是將子報表放在原報表的明細中,其實我試過也可以把子報表放在報表頭或報表尾。關鍵是在定義子報表是要將子報表的報表頭和報表尾刪除掉換成分組。我想這是因為在同一個報表中只能定義一個報表頭和報表尾的緣故,如果子報表也這樣定義也許會有沖突。
下面就把制作子報表的簡要步驟列舉如下:
首先制作一個報表,并使其能夠正常預覽。然后在設計視圖的工具箱中拖放一個Subreport的控件到報表上,可以放在報表的任何部分。然后重命名這個子報表。
接下來,在這個報表的相關部分的Format事件中添加初始化子報表的代碼。例如:這時子報表放在報表頭那么就應該在報表頭的Format事件中添加代碼,如下所示。
using?DataDynamics.ActiveReports;
using?DataDynamics.ActiveReports.Document;
using?DataDynamics.ActiveReports.DataSources;
//?父報表
public?class?MyActiveReport?:?ActiveReport
{
????//創建一個需要在子報表中顯示的已有報表類的實例
????rptSubReport?_SubReport?=?null;
????//?其他代碼省略
????private?void?PageHeader_Format(object?sender,?System.EventArgs?eArgs)
????{
????????if?(_SubReport?==?null)
????????{
????????????SqlDBDataSource?subDs?=?new?SqlDBDataSource();??//?聲明ActiveReports數據源
????????????subDs.ConnectionString?=?cnnString;?????????????????????????? ?//?給這個數據源指定連接字符串
????????????subDs.SQL?=?"select?*?from?table1?";???????????????????????????? //?指定查詢語句
????????????_SubReport?=?new?rptSubReport();??????????????????????????????? // 實例化預定義報表實例
????????????this.SubReport.Report?=?_SubReport;????????????????????????? ?//?給子報表指定預定義報表實例
????????????this.SubReport.Report.DataSource?=?subDs;????????????? ?//?給子報表指定ActiveReports數據源
????????}
????}
}
首先查看了DataDynamics.ActiveReports自帶的SubReport的示例項目。它是將子報表放在原報表的明細中,其實我試過也可以把子報表放在報表頭或報表尾。關鍵是在定義子報表是要將子報表的報表頭和報表尾刪除掉換成分組。我想這是因為在同一個報表中只能定義一個報表頭和報表尾的緣故,如果子報表也這樣定義也許會有沖突。
下面就把制作子報表的簡要步驟列舉如下:
首先制作一個報表,并使其能夠正常預覽。然后在設計視圖的工具箱中拖放一個Subreport的控件到報表上,可以放在報表的任何部分。然后重命名這個子報表。
接下來,在這個報表的相關部分的Format事件中添加初始化子報表的代碼。例如:這時子報表放在報表頭那么就應該在報表頭的Format事件中添加代碼,如下所示。
using?DataDynamics.ActiveReports;
using?DataDynamics.ActiveReports.Document;
using?DataDynamics.ActiveReports.DataSources;
//?父報表
public?class?MyActiveReport?:?ActiveReport
{
????//創建一個需要在子報表中顯示的已有報表類的實例
????rptSubReport?_SubReport?=?null;
????//?其他代碼省略
????private?void?PageHeader_Format(object?sender,?System.EventArgs?eArgs)
????{
????????if?(_SubReport?==?null)
????????{
????????????SqlDBDataSource?subDs?=?new?SqlDBDataSource();??//?聲明ActiveReports數據源
????????????subDs.ConnectionString?=?cnnString;?????????????????????????? ?//?給這個數據源指定連接字符串
????????????subDs.SQL?=?"select?*?from?table1?";???????????????????????????? //?指定查詢語句
????????????_SubReport?=?new?rptSubReport();??????????????????????????????? // 實例化預定義報表實例
????????????this.SubReport.Report?=?_SubReport;????????????????????????? ?//?給子報表指定預定義報表實例
????????????this.SubReport.Report.DataSource?=?subDs;????????????? ?//?給子報表指定ActiveReports數據源
????????}
????}
}
最好在父報表中加上“using DataDynamics.ActiveReports.DataSources;” 這樣就可以直接使用DataDynamics.ActiveReports.DataSources的數據源類。ActiveReports的數據源支持SQL 和OLEDB可以根據需要選擇。
洪虎
2006-10-28
轉載于:https://www.cnblogs.com/eric1394/archive/2006/10/28/542786.html
總結
以上是生活随笔為你收集整理的使用DataDynamics.ActiveReports 创建子报表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OIer__ZLY__OI计划
- 下一篇: 天津天狮学院电子与计算机学院,天津天狮学