欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# WinForm實現打印模板自定義、預覽、打印功能

admin
2025年3月24日 23:31 本文熱度 361

一、效果展示

二、VS2022

界面設計:

后端代碼

?
模板設計

項目文件

三、核心代碼

/// <summary>
/// 設計模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){ StiDesigner designer = new StiDesigner(report);
StiDesigner.SavingReport += StiDesigner_SavingReport;
report.RegData("TableVo"new WeightVo() { Code = "", Name = "" });
report.Compile();
report.Design();}
/// <summary>
/// 保存模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>private void StiDesigner_SavingReport(object sender, StiSavingObjectEventArgs e){
// 獲取項目輸出目錄的路徑
string outputDirectory = AppDomain.CurrentDomain.BaseDirectory;
report.Save($"{outputDirectory}\\Report.mrt");
MessageBox.Show("保存成功!");}
/// <summary>
/// 預覽模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e){ // 獲取項目輸出目錄的路徑
string outputDirectory = AppDomain.CurrentDomain.BaseDirectory;
report.Load($"{outputDirectory}\\Report.mrt");
report.RegData("TableVo"new WeightVo() { Code = "001", Name = "這是一個打印測試模板" });
report.Compile();
report.Show();}
/// <summary>
/// 打印模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e){
// 獲取項目輸出目錄的路徑
string outputDirectory = AppDomain.CurrentDomain.BaseDirectory;
report.Load($"{outputDirectory}\\Report.mrt");
report.RegData("TableVo"new WeightVo() { Code = "001", Name = "這是一個打印測試模板" });
report.Compile();
report.Print();
}

四、性能優化

?首次加載慢?

提前初始化和編譯模板,減少運行時延遲:

report = new StiReport();report.Load(strPath);  report.Dictionary.Synchronize();  // 提前加載并同步 ?:ml-citation{ref="2" data="citationList"}

?多線程打印卡頓?

避免重復加載模板,直接渲染已編譯的報表:

//report.Load(strPath);  // 注釋掉重復加載report.Render();  StiPrinterSettings settings = new StiPrinterSettings();  // 配置打印參數 ?:ml-citation{ref="2" data="citationList"}

五、文字自動縮放

通過設計器調整文本框屬性以適配內容:

選中文本框 → 設置 AutoWidth 和 AutoHeight 為 true。

在 Font 屬性中啟用 Auto 選項 ?6。

調整文本框尺寸后運行驗證效果。

五、常見問題處理

?組件查找與操作

StiComponent component = report.GetComponentByName("ComponentName");  // 按名稱查找組件 ?:ml-citation{ref="7" data="citationList"}component.Bookmark = "{Categories.CategoryName}";  // 添加書簽 ?:ml-citation{ref="7" data="citationList"}

?排序設置

DataBand1.Sort = new string?:ml-citation{ref="2" data="citationList"} { "ASC""Name" };  // 按字段升序排列 ?:ml-citation{ref="7" data="citationList"}

StiReport 核心定義與功能

?StiReport? 是 ?Stimulsoft? 公司開發的一款跨平臺報表生成工具,主要用于設計和生成動態數據驅動的專業報表。其核心特性包括:

?多平臺支持?

支持在 ?WinForms?、?ASP.NET?、?.NET Core?、?JavaScript?、?WPF? 等環境中使用,適用于桌面、Web 及移動端應用開發?。

?動態數據綁定?

可靈活綁定數據庫表、對象列表等數據源,支持運行時動態更新數據。例如,通過 RegData 方法注冊數據表并同步字典以識別新字段?。

?模板設計與導出?

通過 .mrt 模板文件定義報表布局,支持導出為 ?PDF?、?Excel?、?HTML? 等格式,并集成打印功能?。

典型使用場景

?企業級應用?

適用于財務系統、銷售統計等需要復雜報表展示的場景?。

?多平臺開發?

在混合技術棧(如 WinUI、PHP、Java)中統一報表生成邏輯,減少重復開發成本?。

?動態數據需求?

處理頻繁變化的數據源,例如實時庫存報告或訂單狀態更新?。

技術實現要點

?模板加載與優化?

首次加載模板時建議預編譯并同步數據字典,避免運行時延遲?。

?數據源管理?

動態更新數據前需清除舊數據源(Dictionary.DataSources.Clear()),防止殘留數據沖突?。

與其他報表工具的區別

StiReport 強調 ?跨平臺兼容性? 和 ?動態數據交互能力?,其設計器提供可視化操作界面,降低代碼依賴,適合快速生成復雜格式的報表?。


閱讀原文:原文鏈接


該文章在 2025/3/25 10:37:47 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved