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.Reporting
behaviorManager1.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 — 确定是否自动解决报表控件重叠问题。