DevExpress中文教程 - 如何在macOS和Linux (CTP)上創建、修改報表(下)

DevExpress Reporting是.NET Framework下功能完善的報表平臺,它附帶了易于使用的Visual Studio報表設計器和豐富的報表控件集,包括數據透視表、圖表,因此您可以構建無與倫比、信息清晰的報表。

DevExpress Reports — 跨平臺報表組件,允許用戶在針對任何基于.NET平臺的應用程序中生成報表文檔,可部署在任何支持的操作系統上。在過去的幾個月里,官方技術團隊一直專注于增強多個環境中的報表生成進程,同時保持與主機操作系統本身的獨立性。在我們深入研究細節之前,先簡單介紹一下Visual Studio Code,以及為什么選擇它而不是其他可用的替代品。

獲取DevExpress Reporting v23.1正式版下載(Q技術交流:909157416)

在上文中(點擊這里回顧>>),我們為大家介紹了DevExpress Visual Studio Code報表設計器擴展、基于VS Code擴展的技術以及一些前期配置等。本文將繼續介紹如何創建一個新的DevExpress報表,歡迎持續關注我們哦~

創建一個新的DevExpress報表

此時我們準備向示例項目中添加一個新報表,擴展增加一個新的DX Reporting: New Report命令到Visual Studio代碼中,只需再次按F1來使用該命令并指定新的報表名稱。

DevExpress報表中文教程指南

VS Code將自動打開新創建的報表,并以空白報表呈現DevExpress報表設計器:

DevExpress報表中文教程指南

在此階段,我們可以向該報表添加數據源,并使用內置的報表向導對其進行設計。我們將選擇右側的數據源選項卡,然后點擊"Add Data Source"按鈕調用數據源向導:

DevExpress報表中文教程指南

出于本示例的目的,我們將使用之前在reporting.config.file中設置的示例 "Dummy 100 Users"JSON數據源,選擇可用的數據源,點擊“Finish”完成操作:

DevExpress報表中文教程指南

接下來,我們將導航到報表設計器主菜單,并在報表向導中選擇Design in Report Wizard...來啟動報表向導:

DevExpress報表中文教程指南

我們將按照向導提示完成報表生成過程,如果您遵循這篇文章,請確保使用“Save”快捷鍵保存報表模板文件(在macOS中是Command+ S)。當您這樣做時,可以在屏幕上看到以下內容:

DevExpress報表中文教程指南

要查看結果,只需要按下"Preview" 按鈕,您可以從內置的打印預覽窗口打印和導出報表文檔:

DevExpress報表中文教程指南

運行示例應用程序

在這個階段,我們必須修改一些項目代碼文件,以便在運行時將這個報表布局加載到XtraReport類中。首先我們必須移動 "newReport. repx" 文件到PredefinedReports目錄中,完成后我們需要進行以下更改:

HomeController.cs -> Viewer method

將在文檔查看器中打開的報表名稱更改為newReport:

public IActionResult Viewer([FromServices] IWebDocumentViewerClientSideModelGenerator clientSideModelGenerator,
[FromQuery] string reportName) {var reportToOpen = string.IsNullOrEmpty(reportName) ? "newReport" : reportName;
var model = new Models.ViewerModel {
ViewerModelToBind = clientSideModelGenerator.GetModel(reportToOpen, WebDocumentViewerController.DefaultUri)
};
return View(model);
}

ReportsFactory.cs

替換如下代碼,從PredefinedReports目錄加載報表模板:

public static class ReportsFactory
{
public static string ReportsPath { get; set; }
public static Dictionary<string, Func<XtraReport>> Reports = new Dictionary<string, Func<XtraReport>>()
{
["TestReport"] = () => new TestReport(),
["newReport"] = () => XtraReport.FromFile(Path.Combine(ReportsPath + "/PredefinedReports/newReport.repx"))
};}

Startup.cs

修改類構造函數來將IWebEnvironment.ContnetRootPath變量傳遞到ReportsFactory類:

public Startup(IConfiguration configuration, IWebHostEnvironment environment) {
Configuration = configuration;
ReportsFactory.ReportsPath = environment.ContentRootPath;
AppDomain.CurrentDomain.SetData("DataDirectory", environment.ContentRootPath);
}

ReportDbContext.cs -> InitializeDatabase method

將JSON數據源添加到應用程序注冊的數據源集合中:

...
var Dummy100UsersConnectionName = "Dummy 100 Users";
if(!JsonDataConnections.Any(x => x.Name == Dummy100UsersConnectionName)) {
var newData = new JsonDataConnectionDescription {
Name = Dummy100UsersConnectionName,
DisplayName = "Dummy 100 Users",
ConnectionString = "Uri=https://dummyjson.com/users/"
};
JsonDataConnections.Add(newData);
}
...

最后,我們需要確保在每次構建應用程序時將報表模板文件復制到應用程序輸出目錄中。要實現這一點,我們需要再"*. csproj"文件中添加以下內容:

<ItemGroup>
<None Remove="PredefinedReports\*.repx" />
</ItemGroup>
<ItemGroup>
<Content Include="PredefinedReports\newReport.repx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

通過這些修改,我們可以切換到VS Code中的終端窗口并運行Docker容器:

export DX_NUGET=https://nuget.devexpress.com/Your_API_Token/api
DOCKER_BUILDKIT=1 docker build -t reporting-app --secret id=dxnuget,env=DX_NUGET .
docker run -p 8080:80 reporting-app:latest

應用程序頁面可通過以下URL訪問:http://localhost:8080/,點擊頂部的 "Document Viewer"鏈接顯示剛剛在Visual Studio Code中創建的報表打印預覽。

DevExpress報表中文教程指南

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165926.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165926.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux(1)之build構建系統基礎(一)

Linux(1)之buildroot構建系統(一) Author&#xff1a;Onceday Date&#xff1a;2023年11月12日 漫漫長路&#xff0c;才剛剛開始… 參考文檔&#xff1a; The Yocto ProjectBuildroot - Making Embedded Linux Easy 文章目錄 Linux(1)之buildroot構建系統(一)1. 概述1.1 如…

企業數字化轉型轉什么?怎么轉?這份攻略請收好

目錄 -01-數字化轉型“是什么” -02-數據驅動推動企業數字化轉型 -03-企業數字化轉型的行動路線圖 數字化轉型&#xff0c;轉什么&#xff1f;怎么轉&#xff1f;這些問題仍在困擾不少企業&#xff0c;也是每個企業轉型升級不得不思考的重要問題。對此&#xff0c;中關村數字…

Python潮流周刊#1:如何系統地自學Python?

這里記錄每周值得分享的 Python 及通用技術內容&#xff0c;部分內容為英文&#xff0c;已在小標題注明。&#xff08;本期標題取自其中一則分享&#xff0c;不代表全部內容都是該主題&#xff0c;特此聲明。&#xff09; 文章&教程 1、編程語言的錯誤處理模式 文章討論…

requests請求django接口跨域問題處理

參考&#xff1a; https://zhuanlan.zhihu.com/p/416978320 https://blog.csdn.net/SweetHeartHuaZai/article/details/130983179 使用httpx代替requests import httpxheaders {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

銷售為什么會選擇使用電銷這種方式 ?

在網絡經濟時代的大環境下&#xff0c;網絡營銷作為一種新型營銷模式和營銷理念&#xff0c;已經搶占了大部分市場。 網絡營銷&#xff0c;是指利用互聯網技術和現代信息技術&#xff0c;以及社交媒體平臺&#xff0c;進行產品宣傳、銷售、服務、品牌傳播等活動的一種營銷模式。…

MySQL-進階

存儲引擎 MySQL體系結構 連接層&#xff1a; 最上層是一些客戶端和連接服務&#xff0c;主要完成一些類似于連接處理、授權認證、及相關的安全方案。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。服務層&#xff1a; 第二層架構主要完成大多數的核心服務功能&…

財報解讀:三季度的美國零售,“沃爾瑪效應”仍在持續

經濟學中常用“沃爾瑪效應”來指代“消費者減少消費時&#xff0c;會選擇每種類別中價格最低的商品”這一現象。作為全球最大的零售商&#xff0c;沃爾瑪一定程度上成為了消費市場的風向標。 近日&#xff0c;沃爾瑪發布的2024財年第三季度財報顯示&#xff0c;其相較去年同期…

虛擬機(Linux)系統知識普及:什么是Linux發行版 以及各發行版的區別

什么是Linux發行版 以及各發行版的區別 一. 什么是linux發行版簡單來說正式定義區別資料1區別資料2區別資料3區別資料4注意事項二. Linux發行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGoLinux 發行版:RedhatDebianUbuntuGentooFreeBSD

22款奔馳S400L升級主動式氛圍燈 光影彰顯奔馳的完美

新款奔馳S級原車自帶64色氛圍燈&#xff0c;還可以升級原廠的主動式氛圍燈&#xff0c;增加車內的氛圍效果。主動式環境氛圍燈包含263個LED光源&#xff0c;每隔1.6厘米就有一個LED光源&#xff0c;照明效果較過去明亮10倍&#xff0c;視覺效果更加絢麗&#xff0c;它還可結合智…

Python中的下劃線使用教程:單下劃線、雙下劃線和頭尾雙下劃線詳解

概要 Python是一種簡單、易學、功能強大的編程語言&#xff0c;被廣泛應用于各種領域。在Python中&#xff0c;下劃線的使用有其特殊的含義和用途。本文將詳細介紹Python中的單下劃線、雙下劃線和頭尾雙下劃線的使用教程&#xff0c;幫助讀者更好地理解和應用這些特性。 一、單…

干貨!ERP軟件如何幫助企業實現信息化管理?

ERP即企業資源規劃&#xff08;Enterprise Resource Planning&#xff09;系統&#xff0c;其核心是物料的追蹤流轉。而在物料追蹤流轉的基礎上&#xff0c;又衍生出一系列各類資源計劃的管理和追蹤。因此ERP發展成為一款集成各類資源計劃&#xff0c;也就是集成企業核心業務流…

化學氣相沉積(CVD)中的TEOS

在半導體制程中&#xff0c;薄膜的沉積是核心的步驟之一&#xff0c;有接觸過CVD的小伙伴應該或多或少聽過TEOS這種物質&#xff0c;TEOS作為一種重要的沉積源&#xff0c;尤其在低溫氧化硅的生成過程中&#xff0c;發揮了無可替代的角色。今天我們就來聊聊這種物質。 什么是TE…

ES開啟安全認證

elasticsearch開啟安全認證步驟 1.創建證書 進入到es主目錄下執行 ./bin/elasticsearch-certutil ca Elasticsearch開啟安全認證詳細步驟 第一個證書名稱默認&#xff0c;直接回車 第二個輸入密碼&#xff0c;直接回車 完成后會生成一個文件&#xff1a;elastic-stack-ca.p12…

創新研報|順應全球數字化,能源企業以“雙碳”為目標的轉型迫在眉睫

能源行業現狀及痛點分析 挑戰一&#xff1a;數字感知能力較弱 挑戰二&#xff1a;與業務的融合度低 挑戰三&#xff1a;決策響應速度滯后 挑戰四&#xff1a;價值創造有待提升 挑戰五&#xff1a;安全風險如影隨形 能源數字化轉型定義及架構 能源行業數字化轉型體系大體…

windows電腦定時開關機設置

設置流程 右擊【此電腦】>【管理】 【任務計劃程序】>【創建基本任務】 gina 命令 查看 已經添加的定時任務從哪看&#xff1f;這里&#xff1a; 往下滑啦&#xff0c;看你剛才添加的任務&#xff1a;

2015年8月19日 Go生態洞察:Go 1.5版本發布

&#x1f337;&#x1f341; 博主貓頭虎&#xff08;&#x1f405;&#x1f43e;&#xff09;帶您 Go to New World?&#x1f341; &#x1f984; 博客首頁——&#x1f405;&#x1f43e;貓頭虎的博客&#x1f390; &#x1f433; 《面試題大全專欄》 &#x1f995; 文章圖文…

C++學習之路(二)C++如何實現一個超簡單的學生信息管理系統?C++示例和小項目實例

這個示例實現了一個簡單的學生信息管理系統。它包括了學生類的定義&#xff0c;可以添加學生信息、顯示所有學生信息&#xff0c;將學生信息保存到文件并從文件加載信息。通過這個示例&#xff0c;你可以了解到如何使用類、函數和文件操作來構建一個基本的信息管理系統。 一個簡…

【數據結構/C++】棧和隊列_鏈隊列

#include <iostream> using namespace std; // 鏈隊列 typedef int ElemType; typedef struct LinkNode {ElemType data;struct LinkNode *next; } LinkNode; typedef struct {LinkNode *front, *rear; } LinkQueue; // 初始化 void InitQueue(LinkQueue &Q) {Q.fron…

【Unity實戰】零代碼實現物理2d繩子和繩橋效果——Hinge Joint 2D的使用

文章目錄 最終效果前言一、繩子1. 方法一簡單的實現問題&#xff0c;當我們想移動它時&#xff0c;所有節點就都斷開了 2. 方法二精靈骨骼編輯使用精靈骨骼簡單制作繩子效果限制每個節點旋轉角度更大的質量添加穩定性 二、繩橋補充參考完結 最終效果 前言 本文使用Hinge Joint…

使用ListenableFuture進行異步任務執行并進行線程切換

文章目錄 一、前言二、關鍵代碼三、參考鏈接 一、前言 在程序中會經常需要做一些異步任務&#xff0c;但是由于部分操作其實很簡單&#xff0c;僅僅是短暫的進行異步操作&#xff0c;然后在結果成功或失敗的時候切換回主線程進行下一步處理&#xff0c;這期間不能阻塞主線程。…