【黑马程序员】水晶报表(学习笔记)_angualr 水晶报表-程序员宅基地

------- WindowsPhone 7手机开发.Net培训、期待与您交流! -------




1、下载安装水晶报表 for vs2010 :http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe


2、工具箱新建选项卡“水晶报表”,在【WPF组件】选择卡下添加水晶报表for vs2010提供的控件(程序集都以SAPBusinessObjects开头)。
3、wpf项目所用的“目标框架”必须改成“.Net Framework4”,不能是4 Client。要给app.config节点的startup增加一个属性:useLegacyV2RuntimeActivationPolicy="true", 否则运行会报异常FileNotFoundException
4、项目中,新建项“Reporting”→CrystalReport,比如命名为MyCrystalReport1.rpt,接着对报表进行设计


1)“报表头”是整个报表的头部(如果多页的话只在第一页显示),“页眉”是每页头部显示的内容,“页脚”是每页尾部显示的内容,“详细资料”是每一条数据的循环显示(类似于DataGrid、ListBox),“报表尾”用来在报表的尾部显示总和、平均值等汇总信息。
2)“工具箱”中可以拖放“文本对象”显示固定文本,“线条对象”和“框对象”画线或者画框。
3)参数字段:在“参数字段”上点右键,选择“新建”,给参数取名字和类型,然后把参数字段拖放到报表上。在代码中通过SetParameterValue设定参数的值,注意放到SetDataSource之后,否则会弹出输入参数值的对话框
4)“特殊字段”可以拖放打印日期、页码、总页数等
5)其他.Net资料和文章可以从传智播客.Net培训学院网站下载 http://net.itcast.cn


5、在项目中把Model类和取数据的方法建好,然后项目要保证编译通过
6、在“数据库字段”上点右键选择“数据库专家”,在对话框中选择“项目数据”→“.Net objects”,选中Model类(如果选不到类,说明没编译OK),然后就可以在左边的“数据库字段”中拖放字段到“详细资料”中,会在“页眉”中自动增加对应字段头,可以在“页面”的头部字段中点右键“编辑文本对象”把显示改为中文。
7、增加“总值”、“平均值”之类,在“字段资源管理器”的“运行总计字段”新建,在对话框中选择字段和汇总类型
公式字段,在“公式字段”上点右键“新建”,选择字段和编辑公式,然后就可以用了。
8、
在窗口中放置一个CrystalReportsViewer控件(不要设定Margin和width、height,会自动占全屏),例如名字为CrystalReportsViewer1
执行方法获取数据,然后把数据设置为数据源(MyCrystalReport1是rpt文件的类名)
MyCrystalReport1 rpt = new MyCrystalReport1();
rpt.SetDataSource(new PersonDAL().ListAll());
crystalReportsViewer1.ViewerCore.ReportSource = rpt; 
参数的问题: rpt.SetParameterValue设定参数的值,注意放到rpt.SetDataSource之后,否则会弹出输入参数值的对话框
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dan810103/article/details/8761961

智能推荐

Codeforces Round #530 (Div. 1) 1098A Sum in the tree_cf1098a sum in the tree-程序员宅基地

文章浏览阅读2.4k次。A. Sum in the treeMitya has a rooted tree with nn vertices indexed from 11 to nn, where the root has index 11. Each vertex vv initially had an integer number av≥0av≥0 written on it. For every vertex ..._cf1098a sum in the tree

C++——std::String-程序员宅基地

文章浏览阅读2.1k次。link写在前面这一篇博客系统学习一下C++中String类的相关函数。这个类在之前做题的时候就经常遇到,其实说白了,它也就是一个vector < char >。但是,它又有一些独特的函数,可以在做题的时候简化代码,提高效率。所以在这一篇博客,就根据CPlusPlus官网中< string >中的内容做一个整理。自己整理之外,还有一些优秀的整理资料可供参考:std::string用法总结。string类与头文件包含string即为字符串。string是C++标准库的一个重要_std::string

python中的class Solution(object):的含义与类继承与类、对象概念的详解-程序员宅基地

文章浏览阅读9.1k次,点赞26次,收藏86次。python中的class Solution(object):的含义与类继承与类、对象概念的详解_class solution

读《疯狂的程序员》后感-程序员宅基地

文章浏览阅读1k次。读《疯狂的程序员》后感 花了几天功夫,把《疯狂的程序员》这本书看完了,这本书,是我无意间在校图书馆看到的,出版日期是2008年的,到现在为止已经过去好几年了,作者绝影。是在csdn上连载的博客,不过不知道作者在csdn上的名字是什么,自己搜索找,竟然没找到,很遗憾。书中讲述的是作者从大学时期到工作,再到创业7年时间的精力,说实话,作者的语文功底非常不错,能够生动的刻画

可后悔贪心 -- 解题报告_e. buy low sell high-程序员宅基地

文章浏览阅读244次。感觉普通贪心是每一个维度都是平等的,没有优先级。而可后悔贪心是存在某个维度是不可变的,不能直接用排序或者堆进行维护,常常需要经过某种处理,通过挖掘出题目中关于不可变维度的特殊性质,使其可以用排序或者堆等数据结构进行贪心。可后悔贪心常用堆(priority_queue)进行维护。_e. buy low sell high

AMCL源码解析-程序员宅基地

文章浏览阅读6.5k次,点赞14次,收藏93次。AMCL是ros导航中的一个定位功能包。其实现了机器人在2D平面中基于概率方法的定位系统。该方法使用粒子滤波器来针对已知地图跟踪机器人的位姿。MCL与AMCL的区别它们最重要的区别应该是重采用过程。AMCL在采样过程中仍然会随机的增加小数量的粒子。这一步骤正式为了解决MCL不能处理的重定位问题。当粒子逐渐聚集,其它地方的粒子将慢慢消失。对于MCL来说,如果此时将机器人搬动到另一个地方。此时原来..._amcl源码

随便推点

ACM模式输入输出攻略 | C++篇-程序员宅基地

文章浏览阅读1.4w次,点赞97次,收藏328次。本文内容干货非常非常多,从笔试面试环境的要点,到C++输入输出的具体函数,再到几乎覆盖全部情况的ACM模式写法,最后也给出了链表和二叉树的定义和输入输出。_acm模式

uni-app实现Android分享到微信朋友圈和微信好友_uniapp实现app微信分享好友和朋友圈需要到微信开放平台申请吗-程序员宅基地

文章浏览阅读2.6k次。最近使用uniapp开发app,使用开发环境中使用微信分享功能时可以正常分享到微信好友或者朋友圈,但是发布后提示,经过百度后发现需要在微信开放平台申请。附上步骤在项目中打开manifest.json,点击App模块权限配置,给Share(分享)打勾,给这个App加一个分享权限。点击App SDK配置,进去找到分享,填写appid那么问题来了,appid从哪弄呢?前往微信开放平台https://open.weixin.qq.com/注册,登录创建移动应用按要_uniapp实现app微信分享好友和朋友圈需要到微信开放平台申请吗

使用docker安装部署oracle12.2_docker 官方oracle 12.2安装包-程序员宅基地

文章浏览阅读9.6k次,点赞2次,收藏6次。1. 步骤在Mac上安装docker使用oracle的dockerfile,构建image在docker中运行oracle实例启动,停止oracle docker容器连接数据库 2. 在Mac上安装docker到docker store下载docker-for-mac。我们需要适当调整一下cpu内存分配,如4核CPU,16G内存。 点击reveal in f..._docker 官方oracle 12.2安装包

Javascript 笔记三-程序员宅基地

文章浏览阅读50次。1. 检测变量是否是非数字的方法是? isNaN(变量) 结果:非数字为true。数字为false if嵌套2. switch语法格式? 注意点 switch(表达式){ case 常量表达式: 语句体; break; case 常量表达式: 语句体; break; 。。。 default: ...

Ionic4—UI组件之表单&双向数据绑定_ionic 动态绑定数据-程序员宅基地

文章浏览阅读974次。目录一、概述二、代码示例三、效果图一、概述二、代码示例Angular中ngModel指令实现双向数据绑定,ngFor实现遍历。组件的属性使用动态数据作为参数时,属性名用中括号包裹。单行文本框<ion-list> <ion-item> <ion-label>用户名:</ion-label>..._ionic 动态绑定数据

PyQt5之QDrag拖放按钮小部件学习_pyqt qdrag-程序员宅基地

文章浏览阅读1.1k次。在下面的示例中,我们将演示如何拖放按钮小部件。from PyQt5.Qt import QPushButton, QWidget, QApplicationfrom PyQt5.QtCore import Qt, QMimeDatafrom PyQt5.QtGui import QDragimport sys#按钮类class Button(QPushButton): d..._pyqt qdrag

推荐文章

热门文章

相关标签