水晶报表基本使用方法

article/2025/10/16 10:55:25

开发工具与关键技术:VS/MVC
作者:何桂朋
撰写时间:2019年4月22日

Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表。水晶报表是业内最专业、功能最强的报表系统,它除了强大的报表功能外。最大的优势是实现了与绝大多数流行开发工具的集成和接口。在VS.Net平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。 除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。(这段来自搜狗百科)
首先安装水晶报表,然后在项目新建项查找“Reporting”中是否有“CrystalReport”。如果有,证明安装成功。
在这里插入图片描述
新建“CrystalReport”后,还要建一个“数据集”用来接收数据源,
打开“数据集”,然后右键点击添加“TableAdapter”,进入TableAdapter 配置向导,点击“新建连接”,连接指定数据库的表格,然后点击“下一步”,进入“将连接字符串保存到应用程序配置文件中”再然后直接点击“下一步”,此时进入“选择命令类型”。你可以三个访问方式选择一个,通过SQL语句查找出需要传出的数据。
在这里插入图片描述
当数据集完成后,点击进入“CrystalReport”,“CrystalReport”有Section1(报表头)、Section2(页眉)、Section3(详细)、Section4(报表尾)、Section5(页脚)。Section1可以插入标题、打印时间、打印时间等等。‘
右键点击数据库的数据库专家,在我的连接中找到数据源中查找要添加的表(注意:要编辑的别名,请在“选定的表”树中选择该表,然后单击选定内容或按F2键)。
当你完成连接到数据源中查找要添加的表时,就可以插入特殊字段、文本对象(文本框)、汇总、排序控件、组、节、交叉表、子报表、线、框、图表、图片、OLE对象用来表格的架构,建议Section2和Section3用同一框架,可以避免线条重复,在Section2和Section3的
分界线,尽可能画Section3顶部而不画到Section2,

在这里插入图片描述
当主报表预览呈现如下,则成功。
在这里插入图片描述

//将listResult转化为DataTable类型数据DataTable dt = LINQToDataTable(listAchiement); PrintReport.ReportDB myDB = new PrintReport.ReportDB();
//将dt的数据放入数据集的数据表中
myDB.Tables["tbAchievement"].Merge(dt);  
//实例化报表模板AchievementReport rp = new AchievementReport();
//获取报表物理文件地址   string strRptPath = System.Web.HttpContext.Current.Server.MapPath("~/")+ "Areas\\ExaminationManagement\\PrintReport\\AchievementReport.rpt"; 
//把报表文件加载到ReportDocumentrp.Load(strRptPath);
//设置报表数据源rp.SetDataSource(myDB);Stream stream=rp.ExportToStream(CrystalDecisions.Shared.ExportFormatType
.PortableDocFormat0);
//把ReportDocument转化为文件流
return File(stream, "application/pdf");

在控制器中输出即可。


http://chatgpt.dhexx.cn/article/WFgHgpWQ.shtml

相关文章

php try catch 不处理,如何解决php try catch不起作用的问题

如何解决php try catch不起作用的问题 发布时间:2020-09-22 09:59:14 来源:亿速云 阅读:103 作者:小新 这篇文章主要介绍了如何解决php try catch不起作用的问题,具有一定借鉴价值,需要的朋友可以参考下。希…

try catch执行过程分析

本篇文章带大家聊聊try catch的执行过程,有时候在开发的过程中,try代码里如果出现异常,catch后的步骤还会继续执行吗?以及finally的使用。 下面来分析一下几种使用场景: 场景一: try代码块中出现异常后&a…

面试官问我 ,try catch 应该在for循环里面还是外面?

前言 有个老哥昨天被面试官欺负了,但是是被这个问题(标题)欺负的? 其实是个比较基础的问题,只要有了解过,叙述是非常简单OK的。 只要有初学者觉得有疑惑,那么我相信不止是他一个。 所以&#…

try catch异常捕获

这次我们介绍try catch异常捕获。下面是try catch的语法。 thy catch 的作用就是异常捕获,在一些会报错的地方时的时候才会用到。 例如这个代码,当我们在控制器时输入的不是数字而是其他的文字或者其他符号呢?所以这里程序就会报错&#xff0…

try catch 的作用

不加try catch package com.web; public class Test25 {public static void main(String[] args) {int i 1 / 0;System.out.println("i " i);System.out.println("aaaa");//直接不运行了} }加try catch package com.web;public class Test25 {public …

kotlin try catch使用方法

5 kotlin之 try catch kotlin的try catch比Java更简洁面料采用,使用更方便 val value "10a"var out: Int? null//错误处理try {out Integer.parseInt(value)} catch (e: NumberFormatException) {println("NumberFormatException")println(e.message)…

try catch的作用

try catch的作用:当程序发生错误时,能够保证程序继续执行下去。 用一个简单例子说明: 1:无try catch public static void main(String[] args) { int i; i 2/0; System.out.println(i); System.out.println(1111111111); } 运行结果&…

try catch finally

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要…

try catch 嵌套

实践测试 在单元测试中写入以下方法: testMain()主方法, out()里面嵌套了两层try catch 异常代码写在内层try中 示例一: Testpublic void testMain(){out();log.info("后续处理业务");}public void out(){//外层trytry {System.out.println("外层输…

try和catch的用法

try 和 catch 是用于处理异常的语句,它们构成了一种异常处理机制。在一个 try 语句中,程序执行一段代码,如果发生了异常,则会被捕获,并转到相应的 catch 语句中进行处理。 例如,在下面的代码中&#xff0c…

try-catch的使用以及细节

文章目录 try-catch的使用以及细节1. 基本语法2. 注意细节快捷键 try-catch的使用以及细节 🎈 Java中提供 try 和catch块来处理异常。try块用于包含可能出错的代码。catch块用于处理try块中发生的异常。可以根据需要在程序中有多个try…catch块。 1. 基本语法 try{…

【小波变换】wavedecn方法

wavedecn wavedecn(data, wavelet, modesymmetric, levelNone, axesNone)Multilevel nD Discrete Wavelet Transform.Parameters----------data : ndarraynD input data# 可通过设置axes参数,来确定小波变化的维度axes : sequence of ints, optionalAxes over which…

Wave Engine 3.1 Released

Wave Engine最近发布了3.1版。 Wave Engine是一款完全免费的3D游戏引擎,能够针对大多数平台和XR设备。该版本带来了对.NET 5和C#9的支持以及图形上的改进。 我们很高兴地宣布,与Microsoft合作,我们刚刚发布了WaveEngine 3.1&…

小波变换——提取图像(低频/宏观)到(高频/微观)信息

对我来说,小波分解属于研究大结构框架中图像预处理最基础的地方,由于创新性不足,一年多前尝试过以后就被搁置;现已研究出较新的多尺度/多分辨率特征提取算法,故将小波变换留个纪念。 import cv2 import numpy as np i…

Waves插件

Waves插件 下载安装包查看是否存在之前版本的waves 用控制面板或者其他软件 卸载 去控制面板中,正常缷掉WAVES 9安装目录,把残留的WAVES文件夹干掉!清理注册表内的内容: 32bit : HKEY_LOCAL_MACHINE\Software\Waves 64bit : HKE…

小波变换(Wavelet Transform)

最近在学习数据挖掘的数据预处理一章中碰到了小波变换,之前并没有学习过有关信号处理的东西,所以参考网上的资料,对其做一个简单的了解,后面如果用得到,再做深入的学习。 本人是相关方面的小白,如有搬运理解…

基于小波变换实现图像增强

1,基于小波变换的图像低通滤波 %小波变换进行滤波变换 clc,clear,close all; Image rgb2gray(imread(baboon.jpg)); nIg imnoise(Image,gaussian); [C,S] wavedec2(nIg,3,db4);%采用db4小波对噪声图像进行3级分解 len length(C); C1 C;C2 C;C3 C; C1(S(1,1)…

waves服务器系统包,Waves Complete 12

Waves Complete 12是一款功能十分强大好用的音频制作类软件哦,且软件中还有着丰富的插件可供用户们选择和使用哦。且全套的音频效果器,也能够满足用户后期混音的需求哦~ Waves Complete 12介绍: 1、调整插件的界面显示比例 5种大小可调&#…

ES8311 低功耗单声道音频编解码器(中文)

版本11.0 低功耗单声道音频编解码器 特征 系统 • 高性能、低功耗多位音频ADC和DAC • I2S/PCM 主串行或从串行数据端口 • 256/384Fs, USB 12/24 MHz 和其他非标准音频系统时钟 • I2C 接口 ADC • 24 位、8 至 96 kHz 采样频率 • 100 dB 信噪比,-93 dB THDN…

小波变换对图像的分解与重构(含matlab代码)

01 小波变换原理 所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波)。 相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近&#xff0…