摘要:為節(jié)省您的時(shí)間,我將簡單談?wù)撘幌略趫?bào)表中連接數(shù)據(jù)源。所以,本文分為兩部分在報(bào)表中連接數(shù)據(jù)庫和將連接字符串傳遞到報(bào)表??梢赃x擇不同類型的連接,以連接到數(shù)據(jù)庫。
通常開發(fā)人員在學(xué)習(xí)FastReport .Net時(shí)出現(xiàn)的第一個(gè)問題就是:如何將數(shù)據(jù)連接到報(bào)表中?幸運(yùn)的是,該報(bào)告生成器有一個(gè)直觀的界面設(shè)計(jì)器。為節(jié)省您的時(shí)間,我將簡單談?wù)撘幌略趫?bào)表中連接數(shù)據(jù)源。接下來我將為您展示如何從用戶應(yīng)用程序中傳遞連接字符串。所以,本文分為兩部分:在報(bào)表中連接數(shù)據(jù)庫和將連接字符串傳遞到報(bào)表。
在報(bào)表中連接數(shù)據(jù)庫
1、有2種方式將新的數(shù)據(jù)源添加到報(bào)表中:
通過工具欄上“報(bào)表”選項(xiàng)卡圖標(biāo);
從“數(shù)據(jù)”窗口中的Actions下拉菜單中;
讓我們看一個(gè)例子。創(chuàng)建數(shù)據(jù)源。在打開的窗口中,選擇新的連接。可以選擇不同類型的連接,以連接到數(shù)據(jù)庫。這里采用MS Access connection。
進(jìn)一步選擇我們要工作的表單。你可以可以選擇使用SQL查詢的數(shù)據(jù)(沒有XML數(shù)據(jù)庫)。為此有一個(gè)查詢生成器,你需要手動(dòng)撰寫需求。
下一步,設(shè)置查詢的參數(shù);接下來重寫列的數(shù)據(jù)類型。
我選擇了2張表:員工表和訂單。它們有字段EmpNo綁定,要做到這一點(diǎn),打開“數(shù)據(jù)”的Action菜單,選擇新的關(guān)系。
父表是員工,孩子表-訂單。綁定EmpNo字段。
我們?yōu)槭裁催@樣做?現(xiàn)在我們可以為每個(gè)雇員顯示一個(gè)訂單列表。創(chuàng)建一個(gè)簡單的報(bào)表模板:
這里的帶(band)“數(shù)據(jù)”包含詳細(xì)的帶“數(shù)據(jù)”。
正如我們可以看到的:第一個(gè)顯示雇員的名字,第二個(gè)顯示的是一些訂單數(shù)據(jù)。
詳細(xì)的帶數(shù)據(jù)可以從“上下文”菜單中添加,或者通過帶配置窗口(配置帶)來添加:
如果我們雙擊第一個(gè)帶“數(shù)據(jù)”,我們將看到表名雇員被選為數(shù)據(jù)源,第二個(gè)帶“數(shù)據(jù)”為訂單。當(dāng)你將字段添加到空的帶時(shí),數(shù)據(jù)源會(huì)自動(dòng)選擇,當(dāng)然你也可以改為手動(dòng)。
如果不設(shè)置數(shù)據(jù)源,則不顯示數(shù)據(jù)。更確切地說,只是第一行的數(shù)據(jù)添加字段。保存報(bào)表。
2、從應(yīng)用程序中傳遞連接字符串到報(bào)表
創(chuàng)建窗體應(yīng)用程序。從FastReport .NET標(biāo)簽向窗體添加報(bào)表組件和按鈕:
從應(yīng)用程序中傳遞連接字符串到報(bào)表。
首先,你需要稍微修改先前創(chuàng)建報(bào)表。打開它的設(shè)計(jì)器。
創(chuàng)建報(bào)表參數(shù)。我們會(huì)給它一個(gè)連接字符串。在“數(shù)據(jù)”窗口中查找項(xiàng)目參數(shù)。右鍵點(diǎn)擊它-新參數(shù)。在“屬性”窗口中,設(shè)置參數(shù)名稱-conn。
現(xiàn)在選擇“數(shù)據(jù)”窗口中的連接,接下來在“屬性”窗口中,找到ConnectionStringExpression并添加到我們的參數(shù)。修改報(bào)表完成,保存并返回到程序。
雙擊按鈕運(yùn)行。在按鈕的事件處理程序添加的主要應(yīng)用程序代碼:
private string ReportPath = Environment.CurrentDirectory + "/ConnectionFromApp.frx"; private string DBPath = Environment.CurrentDirectory + "/demo.mdb"; private string ConnStr;
在主要操作之前,我們聲明一個(gè)變量來存儲(chǔ)報(bào)表路徑和數(shù)據(jù)庫。
private void RunBtn_Click(object sender, EventArgs e) { using (Report report = new Report()) { report.Load(ReportPath); ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBPath + ";User ID=Admin"; report.SetParameterValue("conn", ConnStr); report.Show(); } }
點(diǎn)擊按鈕創(chuàng)建一個(gè)報(bào)告實(shí)例。然后加載該報(bào)告,指定連接字符串變量的值,指定連接字符串的報(bào)表參數(shù)值,并運(yùn)行該報(bào)表。
正如從文章中所說的那樣,將報(bào)表連接到數(shù)據(jù)是非常容易的事情,你可以連接報(bào)表到任意的數(shù)據(jù)庫,如果需要,你可以傳輸連接字符串到報(bào)表。當(dāng)用戶選擇的是本地驅(qū)動(dòng)器的數(shù)據(jù)庫時(shí),這就再方便不過了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17602.html
閱讀 3325·2021-11-12 10:36
閱讀 2483·2021-11-02 14:43
閱讀 2156·2019-08-30 14:23
閱讀 3470·2019-08-30 13:08
閱讀 928·2019-08-28 18:09
閱讀 3141·2019-08-26 12:22
閱讀 3154·2019-08-23 18:24
閱讀 2024·2019-08-23 18:17