界面组件DevExpress Reporting v23.1亮点 - 全新升级报表查看器

news2025/1/23 10:24:18

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表

界面组件DevExpress Reporting v23.1已经发布一段时间了,新版本在报表查看器中拥有新的缩放选项、发布新的内容安全策略等,欢迎 下载最新版体验~

DevExpress Reporting v23.1正式版下载(Q技术交流:909157416)

Reporting for ASP.NET Core
内容安全策略 - 禁止内联样式和脚本

新版本改进了对ASP.NET Core应用程序中Web报表组件的内容安全策略支持:您现在可以实现一个基于nonce的CSP,这将允许从DevExpress Web Document Viewer(文档查看器)和Web Report Designer(报表设计器)的网页中删除style-src和script-src指令的不安全内联关键字。

EFDataSource - ASP.NET Core依赖注入中的DbContext

使用新的API从绑定到EFDataSource报表的ASP.NET Core服务器中解析适当的Entity Framework Core上下文。

在依赖注入容器中注册上下文,调用“Startup”类的ConfigureServices方法中的AddDbContext方法来指定所需的连接字符串。

C#

builder.Services.AddDbContext<OrdersContext>(options => options.UseSqlite("MyConnectionString"), ServiceLifetime.Transient);

实现IEFContextProviderFactory和IEFContextProvider接口。

C#

using DevExpress.Data.Entity;
using DevExpress.DataAccess.Web;
using System;
using Microsoft.Extensions.DependencyInjection;
// ...
public class CustomEFContextProviderFactory : IEFContextProviderFactory {
private readonly IServiceProvider serviceProvider;

public CustomEFContextProviderFactory(IServiceProvider serviceProvider) {
this.serviceProvider = serviceProvider;
}

public IEFContextProvider Create() {
return new CustomEFContextProvider(serviceProvider.CreateScope());
}
}

public class CustomEFContextProvider : IEFContextProvider, IDisposable {
private readonly IServiceScope scope;
public CustomEFContextProvider(IServiceScope scope) {
this.scope = scope;
}

public object GetContext(string connectionName, Type contextType) {
if(connectionName == "efCoreConnection")
return scope.ServiceProvider.GetService(contextType);
return null;
}

public void Dispose() {
scope.Dispose();
}
}

使用"Startup"类的ConfigureServices()方法来注册factory实现。

C#

services.ConfigureReportingServices(configurator => {
configurator.ConfigureWebDocumentViewer(viewerConfigurator => {
viewerConfigurator.RegisterEFContextProviderFactory<CustomEFContextProviderFactory>();
});
});
Reporting for Blazor
Blazor Report Viewer — 全新的缩放选项

新的缩放选项包括:

  • 页面宽度 - 缩放页面来适应页面宽度。
  • 整个页面 - 缩放页面来显示整个页面。

DevExpress Reporting v23.1新版图集

新版本改变了默认的缩放级别,现在是整页。

Blazor Report Viewer - 支持WebAssembly、提前 (AOT)编译和.NET MAUI Blazor

新版本中原生的Blazor Report Viewer组件支持Blazor WebAssembly (WASM)托管模型和提前(AOT)编译,您现在可以在浏览器中预览、打印和导出报表(不需要ASP. NET Core后端)。

我们还用WebAssembly Reporting Application选项扩展了项目模版。

DevExpress Reporting v23.1新版图集

您可以在.NET MAUI应用程序中利用原生Blazor Report Viewer组件的功能,方法是在BlazorWebView中托管该组件。

Reporting for .NET MAUI

您可以在iOS和Android的.NET MAUI应用程序中使用DevExpress Reporting工具(生成和导出报表)。

DevExpress Reporting v23.1新版图集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1214642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pyclipper和ClipperLib操作多边型

目录 1. 等距离缩放多边形 1.1 python 1.2 c 1. 等距离缩放多边形 1.1 python 环境配置pip install opencv-python opencv-contrib-python pip install pyclipper pip install numpy import cv2 import numpy as np import pyclipperdef equidistant_zoom_contour(contour…

k8s pod常用运维命令

1. 概述 kubectl 命令是操作 Kubernetes 集群的最直接和最高效的途径&#xff0c;熟练掌握命令的使用能起到事半功倍的效果&#xff0c;整理命令有助于加深记忆&#xff0c;该文仅记录关于pod常用的操作运维命令。 2. 查看namespaces 查看k8s集群中目前存在的namespaces kub…

使用VC++设计程序使用邻域平均平滑算法、中值滤波算法、K近邻均值滤波器(KNNF)进行滤波

VC实现若干种图像滤波技术 文章目录 VC实现若干种图像滤波技术实验内容邻域平均平滑算法1. 原理2. 实验代码3. 实验现象 中值滤波算法1. 原理2. 实验代码3.实验现象 K近邻均值滤波算法&#xff08;KNNF&#xff09;1. 原理2. 实验代码实验现象 实验内容 实验要求&#xff1a; …

深入了解域名与SSL证书的关系

在如今数字化的世界里&#xff0c;网络安全成为我们关注的重要议题之一。为了确保数据在网络上传输的安全性&#xff0c;我们通常会采取各种安全措施&#xff0c;其中最常用的就是SSL证书。然而&#xff0c;很多人并不了解SSL证书是如何与域名相互关联的。 首先&#xff0c;我…

TensorFlow案例学习:图片风格迁移

准备 官方教程&#xff1a; 任意风格的快速风格转换 模型下载地址&#xff1a; https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2 学习 加载要处理的内容图片和风格图片 # 用于将图像裁剪为方形def crop_center(image):# 图片原始形状shape image…

基于风驱动算法优化概率神经网络PNN的分类预测 - 附代码

基于风驱动算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于风驱动算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于风驱动优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络…

Java排序算法之归并排序

图解 归并排序是一种效率比较高的分治排序算法&#xff0c;主要分为两个步骤&#xff0c;分别为“分”和“并”。 分&#xff1a;将序列不断二分&#xff0c;直到每个子序列只有一个元素为止。 并&#xff1a;将相邻两个子序列进行合并&#xff0c;合并时比较两个子序列的元素…

Vue3:给表格的单元格增加超链接功能(点击单元格可以跳转到新的页面)

一、目的 在Vue3项目中&#xff0c;给表格某个字段下的全部单元格添加超链接功能&#xff0c;点击对应的单元格可以进入对应的页面 二、定义单元格内容 使用ElementPlus的el-table组件来实现表格 1、代码 <template> <el-table :data"dataAll"> &…

LabVIEW进行MQTT通信及数据解析

需求&#xff1a;一般通过串口的方式进行数据的解析&#xff0c;但有时候硬件的限制&#xff0c;没法预留串口&#xff0c;那么如何通过网络的方式特别是MQTT数据的通信及解析 解决方式&#xff1a; 1.MQTT通信控件&#xff1a; 参考开源的mqtt-LabVIEW https://github.com…

TCP连接保活机制

在TCP连接中有一个保活机制&#xff0c;叫做Keep-Alive&#xff0c;用语言描述就是如下&#xff1a; 在保活时间内&#xff0c;如果没有任何连接相关的活动&#xff0c;TCP 保活机制会开始作用&#xff0c;每隔一个时间间隔&#xff08;保活时间间隔&#xff09;&#xff0c;发…

YOLOV8部署Android Studio安卓平台NCNN

下载Android Studio&#xff0c;配置安卓开发环境&#xff0c;这个过程比较漫长。 安装cmake&#xff0c;注意安装的是cmake3.10版本。 根据手机安卓版本选择相应的安卓版本&#xff0c;我的是红米K30Pro&#xff0c;安卓12。 使用腾讯开源的ncnn&#xff0c;这是一个为手机端极…

vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll

1.效果图 2.npm下载依赖及main.js文件配置 npm install vue3-seamless-scroll --saveimport vue3SeamlessScroll from vue3-seamless-scroll;app.use(vue3SeamlessScroll) 3.html代码 <!-- scrollFlag为true时再渲染,vue3只要涉及到传值子页面需要加flag判断&#xff0c;否…

阿里云今年服务器是真便宜,看看哪些云服务器值得买!

2023年双十一&#xff0c;阿里云推出了一项令人惊喜的独家优惠活动&#xff01;在这次活动中&#xff0c;阿里云开放了老用户购买权限&#xff0c;以超低的价格购买云服务器ECS经济型e实例。这款服务器配置了2核2G内存、3M固定带宽和40G ESSD entry系统盘。而且&#xff0c;更棒…

PDF文件中更改 PDF 文本颜色的最有效解决方案

PDF 是最常用的文档类型之一&#xff0c;也是商业中使用的首选文档。在工作中&#xff0c;我们经常需要修改PDF的文本内容&#xff0c;转换格式&#xff08;如PDF转Word&#xff0c;PDF转Excel等&#xff09;&#xff0c;合并PDF&#xff0c;以达到更好的工作效果。 然而&…

Docker 容器中的网络优化与 DNS 缓存清理

在使用Docker 18.03.1-ce版本在Ubuntu 18.04 LTS上运行多个Docker容器时&#xff0c;我发现当使用requests库发送请求到某个主机名时&#xff0c;响应速度非常慢。在本例中&#xff0c;每个容器都有自己的CherryPy服务器&#xff0c;并通过requests.get(http://main:8083)或req…

.NetCore手写一个 API 限流组件

首先如果APP 拥有游客模式&#xff0c;用户模式以及其他特殊权限。那就意味着需要 IP 限流、用户限流以及特殊权限的情况。 那我们直接实操一下&#xff0c;以 IP 限流作为参考案例&#xff0c;当然要以组件的形式编写&#xff0c;支持扩展。 首先我们创建一个抽象类接口&…

门禁管理超级麻烦,你方式用对了吗?

随着社会的不断进步和科技的飞速发展&#xff0c;安全管理成为我们日常生活和工作中至关重要的一环。在这个背景下&#xff0c;门禁监控系统逐渐崭露头角&#xff0c;成为保障各类场所安全的关键工具。 客户案例 企业办公楼 在现代企业中&#xff0c;保护办公场所的安全至关重…

线程锁的应用与示例代码

为了解决这个问题&#xff0c;可以使用线程锁来确保在提取zip文件中的每个文件时&#xff0c;同一时间只有一个线程可以访问文件。这样可以避免多个线程同时访问和写入文件&#xff0c;从而解决race condition的问题。以下是修改后的示例代码&#xff1a; python import reque…

<C++> 反向迭代器

我们知道正向迭代器的设计&#xff1a;begin迭代器指向第一个数据&#xff0c;end迭代器指向最后一个数据的下一个位置 。移向下一个数据&#xff0c;解引用得到数据的值&#xff0c;并根据容器储存方式的不同&#xff0c;容器有不同类型的迭代器。 注意&#xff1a;rbegin迭代…

Python Flask: 构建轻量级、灵活的Web应用

Flask是一个流行的Python Web框架&#xff0c;以其轻量级、灵活和易学的特性受到开发者的喜爱。本文将深入探讨Flask框架的各个方面&#xff0c;通过详实的示例代码&#xff0c;帮助大家更全面地了解和掌握这一强大的工具。 1. 安装与基本用法 首先&#xff0c;需要安装Flask。…