翻譯|行業資訊|編輯:龔雪|2024-05-13 14:16:13.877|閱讀 99 次
概述:本文將為大家介紹如何使用DevExpress報表組件v24.1預覽版中的一些新功能,歡迎下載相關組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DevExpress Reporting是.NET Framework下功能完善的報表平臺,它附帶了易于使用的Visual Studio報表設計器和豐富的報表控件集,包括數據透視表、圖表,因此您可以構建無與倫比、信息清晰的報表。
下一個主要更新(v24.1)將于6月初發布,這篇文章詳細介紹了預計在6月份發布的DevExpress Reports的一些新功能,并描述了早期預覽版(EAP)中包含的內容。
DevExpress技術交流群10:532598169 歡迎一起進群討論
請注意,下面描述的更改已經在當前主要版本DevExpress v23.2.5的最新更新中可用。
在v24.1中,新的Angular報表查看器將讓用戶能夠自定義工具欄,下面的代碼片段演示了如何使用CustomizeMenuActions事件處理程序隱藏工具欄項:
CustomizeMenuActions(event) { var actionSearch = event.args.GetById(ActionId.Search); if (actionSearch) actionSearch.visible = false; var highlightEditingFieldsAction = e.GetById(DevExpress.Reporting.Viewer.ActionId.HighlightEditingFields); if (highlightEditingFieldsAction) highlightEditingFieldsAction.visible = false; }
下面的代碼片段使用相同的事件處理程序向工具欄添加一個自定義導出選項:
function CustomizeMenuActions(event) { const actionExportTo = event.args.GetById(ActionId.ExportTo); const newFormat = { format: 'NewFormat', text: 'New Format' }; if (actionExportTo) { actionExportTo.events.on('propertyChanged', (args) => { const formats = actionExportTo.items[0].items; if (args.propertyName === 'items' && formats.indexOf(newFormat) === -1) formats.push(newFormat); }); } }
第二個與Angular相關的增強引入了OnPush變更檢測策略支持,Angular的OnPush變更檢測策略通過減少不必要的渲染周期來提高整體性能,并且只在輸入引用發生變化時觸發變更檢測。在v24.1中,你可以通過在@Component裝飾器中添加changeDetection屬性,將默認檢測策略改為ChangeDetectionStrategy.OnPush,如下所示:
import { Component, ViewEncapsulation } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterOutlet } from '@angular/router'; import { DxReportViewerModule } from 'devexpress-reporting-angular'; @Component({ selector: 'app-root', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [ CommonModule, RouterOutlet, DxReportViewerModule) ], templateUrl: './app.component.html', styleUrls: [...] }) export class AppComponent { title = 'DXReportViewerSample'; reportUrl: string = 'TestReport'; hostUrl: string = '//localhost:5001/'; invokeAction: string = '/DXXRDV'; }
官方技術團隊已經為那些希望在微軟Azure和AWS上部署由DevExpress Reports驅動的web應用程序的用戶創建并發布了一組幫助主題,包含:
Microsoft Azure
Amazon Web Services (AWS)
v24.1將包括一個新的獨立報表參數面板組件,該組件的目的是根據后端提供的報表實例自動為報表參數編輯器生成布局(包括分組)。
對于那些必須以編程方式創建報表,然后將其導出或通過郵件發送,而不向最終用戶顯示其打印預覽的人員,此組件將特別有用。使用此組件將有助于減少內存占用,因為它消除了在后臺生成報表圖像并將其發送到客戶端應用程序的需要。
我們的實現是基于DevExpress報表查看器組件的參數面板,它提供了對幾乎相同的組件公共屬性和事件集的訪問(與報表參數相關)。下面是Angular平臺上的一個組件定義示例:
<dx-report-parameters-panel class="parametersPanel" [reportUrl]="yourReportName" height="560px" width="400px"> <dxrpp-request-options [invokeAction]="invokeAction" host="http://yourhostname:port/"></dxrpp-request-options> <dxrpp-callbacks (BeforeRender)="onBeforeRender($event)"></dxrpp-callbacks> </dx-report-parameters-panel>
該面板允許您創建自定義提交按鈕并處理相關的單擊事件,您可以序列化輸入參數值,將它們發送到后端應用程序,然后在打印或導出操作之前將它們應用到XtraReport類的實例中:
下面的代碼片段演示了如何將參數值應用到后端:
public async Task <IActionResult> ExportWithParameters( [FromServices] IReportParametersSerializer reportParametersSerializer, [FromForm] string serializedParameters, [FromForm] string reportUrl) { var report = await reportParametersSerializer.ApplyParametersStateAsync(reportUrl, serializedParameters); report.ExportToPdf("yourFilePath"); return Ok(new { Message = "A report has been successfully exported" }); }
v24.1重構了跨平臺繪圖引擎、添加了字體緩存、優化了動態內存分配。內部測試表明,在生成1500頁的報告時,有了顯著的改進:
總體CPU使用率也降低了大約8-10%。
注意:在生成大型報告文檔時,性能優勢將最為明顯。
更多DevExpress線上公開課、中文教程資訊請上中文網獲取
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網