DevExpress Reporting是.NET Framework下功能完善的報表平臺,它附帶了易于使用的Visual Studio報表設計器和豐富的報表控件集,包括數據透視表、圖表,因此您可以構建無與倫比、信息清晰的報表。
DevExpress Reporting控件日前正式發布了v25.1,新版本持續增強AI驅動的擴展功能等,歡迎下載最新版產品體驗!
點擊獲取DevExpress Blazor v25.1正式版下載
AI驅動的擴展
本節中描述的特性/功能適用于以下情況:
- WinForms最終用戶報表設計器
- WinForms文檔查看器
- Blazor原生報表查看器
- ASP. NET Core/Blazor/Angular/React最終用戶報表設計器
- ASP. NET Core/Blazor/Angular/React文檔查看器
要將這些功能添加到DevExpress驅動的應用程序中,無論選擇哪種AI服務,用戶必須在運行時注冊聊天客戶端。
對于WinForms應用程序,從工具箱中添加DevExpress Behavior Manager組件到帶有DevExpress最終用戶報表設計器的表單中,并附加適當的操作。
對于ASP. NET Core和Blazor應用程序,在應用啟動時使用以下擴展方法(基于所使用的組件):
- 對于基于JavaScript的報表設計器和文檔查看器,調用?AddWebReportingAIIntegration?方法。
- 對于原生Report Viewer for Blazor,調用AddBlazorReportingAIIntegration方法。
注意:DevExpress不提供REST API或任何內置的LLMs/SLMs,相反遵循BYOL(“自帶license”)原則。您需要有一個激活的AI服務訂閱(例如,Azure、Open AI、Anthropic Claude、Google Gemini、Mistral AI等),并獲得REST API端點、密鑰和模型部署名稱。這些變量必須在運行時指定,以便在應用程序中合并/使用DevExpress AI驅動的擴展。
報表設計器 - 使用Report Wizard創建AI驅動的報表(CTP)
DevExpress?Report Wizard現在包含了一個基于AI的報表生成選項,它使用自然語言處理來基于文本描述構建報表。
要在DevExpress驅動的WinForms應用程序中激活這個特性,請使用ReportPromptToReportBehavior:
對于使用DevExpress Web報表設計器的應用,在應用啟動時調用AddPromptToReportConverter方法:
C#
builder.Services.AddDevExpressAI(config => {
config.AddWebReportingAIIntegration(aiConfig => {
aiConfig.AddPromptToReportConverter();
});
});
激活后,Report Wizard(報表向導)界面顯示一個新的AI提示報表選項:
AI驅動的報表生成工作與兩個數據源選項:
- No Data Source(無數據源)?- 僅基于用戶的自然語言描述創建完整的報表結構。
- Add Data Source(添加數據源)?- 允許用戶在第一步中創建報表數據源,在Report Wizard界面中顯示數據源結構,并在LLM提示符中自動包含此元數據。這允許用戶在創建數據綁定報表元素時引用可用的數據源字段。
DevExpress?Report Wizard界面包括一個帶有占位符字段的提示輸入區,用于引導用戶查看詳細提示。輸出質量取決于自然語言描述的特異性,用戶應該包含有關布局參數、計算、分組需求和可視化類型的詳細信息。與其他LLM實現一樣,該系統也有局限性,可能需要修改以滿足精確的要求。我們還包括內置提示建議來演示有效的模式/功能,以便您可以配置自己的預定義提示:
配置預定義提示符
您可以通過API自定義預定義的提示列表,并將輸出與特定的域需求/內部報告標準保持一致:
WinForms
在設計時使用ReportPromptToReportBehavior.PredefinedPrompts 屬性,或者在運行時添加到集合中,如下所示:
C#
using DevExpress.AIIntegration.WinForms.ReportingbehaviorManager1.Attach<ReportPromptToReportBehavior>(reportDesigner1, behavior => {
behavior.Properties.PredefinedPrompts = new[] {
new AIReportPrompt() {Text = "Prompt1", Title = "ReportName1"},
new AIReportPrompt() {Text = "Prompt2", Title = "ReportName2"}
};
});
ASP.NET Core/Blazor
C#
using DevExpress.AspNetCore.Reporting;
using DevExpress.AIIntegration.Reporting.Common.Models;//...
builder.Services.AddDevExpressAI(config => {
config.AddWebReportingAIIntegration(aiConfig => {
aiConfig.AddPromptToReportConverter(x => {
x.ConfigurePredefinedPrompts(prompts => {
prompts.Add(new AIReportPrompt() {
Text = "Your Prompt Goes Here..",
Title = "The Report Name Goes Here"
});
});
});
});
});
// ...
修改報表生成流程
使用以下屬性/方法來管理AI驅動的報表生成(請注意,當這些屬性保持激活狀態時可能會出現時間延遲):
WinForms
- RetryAttemptCount?—?定義嘗試修復出現在LLM響應中的報表布局錯誤的次數。
- FixLayoutErrors?—?確定是否自動解決報表控件重疊問題。
ASP.NET Core/Blazor
- SetRetryAttemptCount?—?定義嘗試修復出現在LLM響應中的報表布局錯誤的次數。
- FixLayoutErrors?—?確定是否自動解決報表控件重疊問題。
更多DevExpress線上公開課、中文教程資訊請上中文網獲取