• <menu id="w2i4a"></menu>
  • logo 報(bào)表生成器FastReport .Net程序員手冊(cè)
    文檔首頁(yè)>>報(bào)表生成器FastReport .Net程序員手冊(cè)>>報(bào)表生成器FastReport .Net程序員手冊(cè):如何替換

    報(bào)表生成器FastReport .Net程序員手冊(cè):如何替換


    FastReport .Net是適用于Windows Forms,ASP.NET,MVC和.NET Core的全功能報(bào)表解決方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。

    在FastReport .NET 2021.1的新版本中,我們實(shí)現(xiàn)了對(duì).NET 5的支持。添加了新條形碼-Deutsce Post Leitcode。將RTF轉(zhuǎn)換為報(bào)告對(duì)象的算法已得到顯著改進(jìn)。并且還添加了用于轉(zhuǎn)換數(shù)字的新功能。歡迎下載體驗(yàn)。(點(diǎn)擊下方按鈕下載)

    立即點(diǎn)擊下載FastReport.NET v2021.1最新版

    Fastreport.NET在線購(gòu)買價(jià)更低,專享85折起!趕緊加入購(gòu)物清單吧!

    替換 "打開 "和 "保存 "對(duì)話框

    如果您決定將報(bào)表存儲(chǔ)在數(shù)據(jù)庫(kù)中,您可能需要改變?cè)O(shè)計(jì)器,使其能夠從/向數(shù)據(jù)庫(kù)打開和保存報(bào)表。也就是說(shuō),你需要用你自己的對(duì)話框來(lái)代替標(biāo)準(zhǔn)的 "打開 "和 "保存 "對(duì)話框。要做到這一點(diǎn),請(qǐng)使用EnvironmentSettings組件(見上一節(jié))。該組件有以下事件。

    CustomOpenDialog 

    發(fā)生在報(bào)表設(shè)計(jì)器即將顯示 "打開 "對(duì)話框時(shí)。在事件處理程序中,您必須顯示一個(gè)對(duì)話框窗口以允許用戶選擇一個(gè)報(bào)表文件。如果對(duì)話框成功執(zhí)行,必須返回e.Cancel = false,并將e.FileName設(shè)置為所選文件名。
    下面的例子演示了如何使用這個(gè)事件。

    private void CustomOpenDialog_Handler(
    Object sender, OpenSaveDialogEventArgs e)
    {
    using (OpenFileDialog dialog = new OpenFileDialog())
    {
    dialog.Filter = "Report files (*.frx)|*.frx"。
    // 如果對(duì)話框中的 "報(bào)告文件",則將e.Cancel設(shè)置為false
    // 已成功執(zhí)行
    e.Cancel = dialog.ShowDialog() != DialogResult.OK。
    //將e.FileName設(shè)置為選定的文件名。
    e.FileName = dialog.FileName。
    }
    }
    自定義保存對(duì)話框 

    發(fā)生在報(bào)表設(shè)計(jì)器即將顯示 "保存 "對(duì)話框時(shí)。在事件處理程序中,您必須顯示一個(gè)對(duì)話框窗口以允許用戶選擇一個(gè)報(bào)表文件。如果對(duì)話框成功執(zhí)行,必須返回e.Cancel = false,并將e.FileName設(shè)置為所選文件名。
    下面的例子演示了如何使用這個(gè)事件。

    private void CustomSaveDialog_Handler(
    Object sender, OpenSaveDialogEventArgs e)
    {
    using (SaveFileDialog dialog = new SaveFileDialog())
    {
    dialog.Filter = "Report files (*.frx)|*.frx";
    //從e.FileName中獲取默認(rèn)文件名。
    dialog.FileName = e.FileName;
    // 如果 dialog.FileName = e.FileName; 
    // 如果 dialog.FileName = e.Cancel,則設(shè)置 e.Cancel 為 false
    e.Cancel = dialog.ShowDialog() != DialogResult.OK;
    //將e.FileName設(shè)置為選定的文件名。
    e.FileName = dialog.FileName;
    }
    }
    自定義打開報(bào)告 

    發(fā)生在報(bào)表設(shè)計(jì)器即將加載報(bào)表時(shí)。在事件處理程序中,您必須從 e.FileName 屬性中指定的位置加載 e.Report 屬性中指定的報(bào)表。后一個(gè)屬性包含 CustomOpenDialog 事件處理程序返回的名稱。它可能是文件名、數(shù)據(jù)庫(kù)鍵值等。
    下面的示例演示了如何使用該事件:

    private void CustomOpenReport_Handler(
    Object sender, OpenSaveReportEventArgs e)
    {
    //從給定的e.FileName中加載報(bào)告。
    e.Report.Load(e.FileName);
    }
    自定義保存報(bào)告 

    發(fā)生在報(bào)表設(shè)計(jì)器準(zhǔn)備保存報(bào)表時(shí)。在事件處理程序中,您必須將 e.Report 屬性中指定的報(bào)告保存到 e.FileName 屬性中指定的位置。后一個(gè)屬性包含 CustomSaveDialog 事件處理程序返回的名稱。它可能是文件名、數(shù)據(jù)庫(kù)鍵值等。
    下面的示例演示了如何使用該事件。

    private void CustomSaveReport_Handler(
    Object sender, OpenSaveReportEventArgs e)
    {
    // 將報(bào)告保存到給定的e.FileName中。
    e.Report.Save(e.FileName);
    }
    替換標(biāo)準(zhǔn)進(jìn)度窗口

    在進(jìn)行以下操作時(shí),會(huì)顯示進(jìn)度窗口。

    • 運(yùn)行報(bào)告
    • 印刷
    • 輸出
    你可以通過(guò)設(shè)置環(huán)境設(shè)置組件的ReportSettings.ShowProgress屬性為false來(lái)關(guān)閉進(jìn)度。除此之外,你還可以用你自己的進(jìn)度窗口替換標(biāo)準(zhǔn)進(jìn)度窗口。要做到這一點(diǎn),請(qǐng)使用EnvironmentSettings組件的以下事件(參見 "配置FastReport.Net環(huán)境 "部分)。

    StartProgress 

    在操作前發(fā)生一次。在這種情況下,你必須創(chuàng)建自己的進(jìn)度窗口并顯示它。

    進(jìn)度 

    每次處理當(dāng)前報(bào)表頁(yè)時(shí)發(fā)生。在這種情況下,您必須在窗口中顯示進(jìn)度狀態(tài)。

    FinishProgress 

    操作后發(fā)生一次。在這個(gè)事件中,你必須銷毀進(jìn)度窗口。

    Progress事件的參數(shù)為ProgressEventArgs類型。它有以下幾個(gè)參數(shù)屬性。
    string Message | 消息文本
    int Progress | 當(dāng)前處理的報(bào)告頁(yè)的索引。
    int Total | 報(bào)告的總頁(yè)數(shù)。當(dāng)準(zhǔn)備一個(gè)報(bào)告時(shí),這個(gè)參數(shù)可能為0,因?yàn)榭傢?yè)數(shù)是未知的。
    在大多數(shù)情況下,您需要在 Progress 事件處理程序中顯示來(lái)自 e.Message 屬性的文本。如果你想顯示一個(gè)進(jìn)度條,其他參數(shù)可能會(huì)很有用。

    傳遞自己的連接字符串

    如果您使用在報(bào)表中定義的數(shù)據(jù)源,您可能需要向報(bào)表傳遞應(yīng)用程序定義的連接字符串。這可以通過(guò)三種方法來(lái)完成。

    第一種方法:你直接將連接字符串傳遞給報(bào)表中的Connection對(duì)象。
    執(zhí)行以下操作。
    report1.Load(...);
    //在加載報(bào)表之后,運(yùn)行報(bào)表之前進(jìn)行操作
    //假設(shè)我們?cè)趫?bào)告中只有一個(gè)連接
    report1.Dictionary.Connections[0].ConnectionString = my_connection_string;
    report1.Show();

    第二種方法:你用報(bào)告參數(shù)傳遞一個(gè)連接字符串。執(zhí)行以下操作。

    • 運(yùn)行報(bào)表設(shè)計(jì)器
    • 在 "數(shù)據(jù) "窗口中,創(chuàng)建一個(gè)新的報(bào)表參數(shù)(例如,名稱為 "MyParameter")。更多細(xì)節(jié)請(qǐng)參見《用戶手冊(cè)》。
    • 在 "數(shù)據(jù) "窗口中,選擇包含數(shù)據(jù)源的 "連接 "對(duì)象。
    • 切換到 "屬性 "窗口,將ConnectionStringExpression屬性設(shè)置為以下內(nèi)容。

    [M yParam eter]

    • 將連接字符串傳遞給MyParameter參數(shù)。
    report1.SetParameterValue("MyParameter", my_connection_string);

    第三種方法:使用EnvironmentSettings組件的DatabaseLogin事件(參見 "配置FastReport.Net環(huán)境 "部分)。該事件在每次FastReport打開連接時(shí)發(fā)生。下面是這個(gè)事件處理程序的一個(gè)例子。

    private void environmentSettings1_DatabaseLogin(
    Object sender, DatabaseLoginEventArgs e)
    {
    e.ConnectionString = my_connection_string;
    }
    請(qǐng)記住,DatabaseLogin事件是全局的,它適用于所有報(bào)表。

    傳遞自定義SQL

    報(bào)表可能包含使用數(shù)據(jù)向?qū)砑拥臄?shù)據(jù)源(通過(guò) "數(shù)據(jù)|添加數(shù)據(jù)源... "菜單)。有時(shí)需要從您的應(yīng)用程序向該數(shù)據(jù)源傳遞自定義SQL。要做到這一點(diǎn),請(qǐng)使用以下代碼。

    using FastReport.Data.Report1.Load(...)
    report1.Load(...);
    //在加載報(bào)表之后,運(yùn)行報(bào)表之前進(jìn)行操作
    // 通過(guò)表的別名找到表
    TableDataSource table = report1.GetDataSource("MyTable") as TableDataSource.SelectCommand = "new SQL text";
    table.SelectCommand = "new SQL text";
    report1.Show();
    對(duì)報(bào)表對(duì)象的引用

    當(dāng)您將報(bào)表作為一個(gè)類來(lái)使用時(shí)(請(qǐng)參閱 "存儲(chǔ)報(bào)表和加載報(bào)表 "部分),您可以直接引用報(bào)表對(duì)象。下面的例子演示了如何改變報(bào)表中包含的 "Text1 "對(duì)象的字體。

    SimpleListReport report = new SimpleListReport();
    report.Text1.Font = new Font("Arial", 12);

    在其他情況下,如果需要獲取一個(gè)對(duì)象的引用,必須使用Report對(duì)象的FindObject方法。
    TextObject text1 = report1.FindObject("Text1") as TextObject;
    text1.Font = new Font("Arial", 12);

    要引用報(bào)表中定義的數(shù)據(jù)源,使用Report對(duì)象的GetDataSource方法。該方法將數(shù)據(jù)源的別名作為參數(shù)。
    DataSourceBase ds = report1.GetDataSource("Products");

    還想要更多嗎?您可以點(diǎn)擊閱讀【FastReport 報(bào)表2020最新資源盤點(diǎn)】查找需要的教程資源。讓人興奮的是FastReport .NET報(bào)表正在慧都網(wǎng)火熱銷售中!低至3701元起!>>查看價(jià)格詳情

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();