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