社区
.NET技术其他语言
帖子详情
C#怎么生成水晶报表
hui2581678
2010-06-19 05:13:54
在一个窗体上放一个浏览的按钮,点击它会产生一个水晶报表,它的代码是什么啊
...全文
1822
29
打赏
收藏
C#怎么生成水晶报表
在一个窗体上放一个浏览的按钮,点击它会产生一个水晶报表,它的代码是什么啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gzw13999
2012-03-15
打赏
举报
回复
Pen p = new Pen(....)
呵呵,不嫌麻烦就可以用以上方法。
嫌麻烦就用控件。
山东蓝鸟贵薪
2011-12-12
打赏
举报
回复
没有分的话,可以加我QQ,注意来意、
我传给你
山东蓝鸟贵薪
2011-12-12
打赏
举报
回复
呵呵,我将水晶报表教程分享与你
Csharp水晶报表教程带语音讲解
http://download.csdn.net/detail/sgzhou12345/3723821
seewp
2011-09-02
打赏
举报
回复
10楼说的好
第一步做配置文件的时候,注意把你要显示的地段,都拖动到rkp文件上。
连接DATASET(或者直接用DATATABLE)的时候注意,检索出来的数据项目,和托到文件上的一致。
xyl_ztj
2011-08-31
打赏
举报
回复
/* 如果收到的是无事响应的数据 */if ((1 == ulLen) && (NODE_NOMSG_RESP == pucSrcData[0]))
{*puwLen = 1;*pucCmd2 = 0;pucDesData[0] = NODE_NOMSG_RESP;
/* 无事响应不回 ack */ return CCU_OK;}
else{
/* 这里面的ulLen长度是所有的长度 加上地址和长度 以及最后一个校验和
/地址1字节/长度2字节/命令字2字节/握手字2字节/响应1字节/信息域/校验和/
*/
bFlg = (EMUA_PROTOL_TYPE == enType)&&(CCU_485_EMU_TYPE_CF != pucSrcData[CMD1POS]);
if ( bFlg ){if ( (ulLen) < (ulHeadLen - 3) ){return CCU_485_ERR_CMD_LEN;}
*puwLen = (UINT16)((ulLen - (ulHeadLen - 3)) - 1); /*上报数据的长度,EMUA还要+3因为填充了握手字和应答结果,最后要减去校验和字节*/
*pucCmd1 = 0xcf; /*填充EMU单板类型*/
*pucCmd2 = pucSrcData[CMD1POS];ulHeadLen = CCU_485CMD_SEND_HEADLENGTH;}
else{if ( (ulLen) < (ulHeadLen + 1) ){return CCU_485_ERR_CMD_LEN;}
*puwLen = (UINT16)(ulLen - (ulHeadLen + 1));
*pucCmd1 = pucSrcData[CMD1POS];*pucCmd2 = pucSrcData[CMD2POS];}
/* 检查长度 */
if (ulLen > MAX_485_DATA_LEN){ucAck = CCU_NACK;
RS485Transmit(&ucAck, 1, ulResourceId, 0);return CCU_485_ERR_CMD_LEN;}
/* 检查校验和看是否相等 */
if (CCU_OK != CheckSum(&pucSrcData[1], (UINT16)(ulLen - 1))){
ucAck = CCU_NACK;RS485Transmit(&ucAck, 1, ulResourceId, 0);
return CCU_ERR_MPI_CHECKSUM_ERR;}
/* 将数据域拷贝出来 包括握手字和响应字节和原先保持一致 */
if (*puwLen > MAX_485_DATA_LEN){ return CCU_485_ERR_LENGTH_OVERLOAD;}
if ( bFlg ){pucDesData[0] = 0xff;pucDesData[1] = 0xff; /*填充握手字*/
CHECK_MESSAGE_LEN_THAN_RTN(2, *puwLen, CCU_485_ERR_LENGTH_OVERLOAD);
CCU_MemCpy(&pucDesData[2], &pucSrcData[ulHeadLen], *puwLen-2); /*从信息域开始拷贝数据(包括Handle),不含校验和*/}
else{CCU_MemCpy(pucDesData, &pucSrcData[5], *puwLen);}
/* 向部件回送ACK */ ucAck = CCU_ACK; RS485Transmit(&ucAck, 1, ulResourceId, 0);return CCU_OK;
xyl_ztj
2011-08-31
打赏
举报
回复
1
CHECK_MESSAGE_LEN_THAN_RTN(uwLength, MAX_485_DATA_LEN, CCU_485_ERR_INVALID_PARAMETER);
/* 发送寻址字节 */
while(ucSendTime < MAX_SEND_TIME){
ulRet = CommSendAddress(ulResourceId, TRANSMIT_PROC, &ulLen, acuData, ucSendTime, CCU_100MS_TICK);
if ( CCU_OK != ulRet){DBG_COMM_PRINT(LP_INFO,"");ucSendTime++;continue;}
/* 如果发送成功也收到了相应 则退出循环 */ break;}
/* 如果已经发了3次 则说明发送失败 直接返回 */
if (MAX_SEND_TIME <= ucSendTime){
DBG_COMM_PRINT(LP_ERR,"Send Addr error\r\n");return ulRet;}
/* 最大长度256字节 */
ulLen = MAX_485_DATA_LEN;
if ( (EMUA_PROTOL_TYPE == enType)&&((CCU_485_EMU_TYPE_CF == ucCmd1)||(0xe1 == ucCmd1)) )
{/* 需要加上4个字节 包括/长度2个字节/命令字1字节(ucCmd2)/ 最后面有校验和1字节 */
ulRet = MakeEMUASendData(ucCmd1, ucCmd2, pucData, acuData, uwLength, &ulLen);CHECK_RET_OK_RN(ulRet, ulRet);}
else{
/* 需要加上5个字节 包括/长度2个字节/命令字2字节/ 最后面有校验和 */
ulRet = MakeSendData(ucCmd1, ucCmd2, pucData, acuData, uwLength, &ulLen);CHECK_RET_OK_RN(ulRet, ulRet);}
/* 清零 下面再使用 */
ucSendTime = 0;
/* 发送转发数据 也重发3次,转发数据和地址统一计数 */
while(ucSendTime < MAX_SEND_TIME){
ulRet = CommSendData(ulResourceId, acuData, ulLen);
if (CCU_OK != ulRet){ /* 发送失败 重新发送地址 然后再转发数据 */
ucSendTime++;if(ucSendTime >= MAX_SEND_TIME){break;}
while ( ucSendTime < MAX_SEND_TIME ){
ucSendTime++;
ulRet = CommSendAddress(ulResourceId, TRANSMIT_PROC, &ulLen_Addr, acuData_addr, ucSendTime, CCU_100MS_TICK);
if (CCU_OK == ulRet){ break;}
}
}else{ break;} }
CHECK_PARA_RTN_VALUE(ucSendTime, MAX_SEND_TIME, ulRet); return CCU_OK;
dulei123321
2011-08-31
打赏
举报
回复
[Quote=引用 10 楼 hglylc 的回复:]
1、新建一个Crystal报表配置报表输出格式
2、页面中添加CrystalReportViewer控件
3、在页面中按钮单击事件中添加代码
//1,实例化ReportDocument对象
ReportDocument rd = new ReportDocument();
//2,加载报表
rd.Lo……
[/Quote]+1
山东蓝鸟贵薪
2011-08-26
打赏
举报
回复
帮顶顶帖子..........
你好吗
2011-08-25
打赏
举报
回复
学习,但是我的VS2008 加载水晶报表时,老是出现乱码,重置工具箱也没用。请高手指点
zheng5233
2011-08-16
打赏
举报
回复
1.打开“工具箱”,并将一个 CrystalReportViewer 拖到窗体上,我们命名为rptVew。
2.通过拖放操作将 Windows 窗体查看器调整到希望的大小并将其移动到所需位置。 当运行应用程序时,报表将显示在查看器中。
创建新报表
1.指向“添加”,单击“添加新项”。
2.在“添加新项”对话框中,从“模板”区域选择 Crystal Report,将报表命名为rptClient,单击“打开”。
3.在 Crystal Report 库中,选择下列选项之一:使用报表专家 — 指导您完成报表的创建过程,并将您的选择添加到 Crystal Report Designer。作为空白报表 — 打开 Crystal Report Designer。来自于现有的报表 — 创建新报表,它与指定的另一报表设计相同。
注意
Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。
4.单击“确定”按钮。如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成“报表专家”选项卡界面上的操作,然后单击“完成”来访问 Crystal Report Designer 和您的报表
第一步 创建数据库连接
设计数据集类
从“服务器资源管理器”或“数据集工具箱”中拖放数据表
第二步 创建报表
添加水晶报表
选择数据源
绘制报表
第三步 程序中使用数据集填充报表
程序中数据集填充的表名要和第一步设计准备的数据集中的表名一致
binine
2011-08-15
打赏
举报
回复
[Quote=引用 8 楼 zhonggy 的回复:]
首先安装水晶报表组件,然后再生成水晶报表文件.rpt,注意最好先设定数据源,绑定到水晶报表上。在窗口或者页面上添加水晶报表浏览控件,脚本中再进行数据源的设置以及水晶报表显示属性、方法的设定就行了。
[/Quote]
好。
W520min1988
2011-08-12
打赏
举报
回复
网上资料多多
山东蓝鸟贵薪
2011-08-06
打赏
举报
回复
占个位置学习中..........
jglie
2011-08-03
打赏
举报
回复
[Quote=引用 10 楼 hglylc 的回复:]
1、新建一个Crystal报表配置报表输出格式
2、页面中添加CrystalReportViewer控件
3、在页面中按钮单击事件中添加代码
//1,实例化ReportDocument对象
ReportDocument rd = new ReportDocument();
//2,加载报表
rd.Load(Server.MapPath("~/") + "报表名……
[/Quote]
说的太详细了,之前在VB下用。在这也学习了 呵呵
xshexian_0917
2011-07-12
打赏
举报
回复
[Quote=引用 10 楼 hglylc 的回复:]
1、新建一个Crystal报表配置报表输出格式
2、页面中添加CrystalReportViewer控件
3、在页面中按钮单击事件中添加代码
//1,实例化ReportDocument对象
ReportDocument rd = new ReportDocument();
//2,加载报表
rd.Load(Server.MapPath("~/") + "报表名……
[/Quote]
这位说的很好
kobe_24
2011-06-10
打赏
举报
回复
先建个数据集,然后制作一个报表将数据集绑定到报表就行了
chenlw
2010-08-17
打赏
举报
回复
1、新建一个Crystal报表配置报表输出格式
2、页面中添加CrystalReportViewer控件
3、在页面中按钮单击事件中添加代码
//1,实例化ReportDocument对象
ReportDocument rd = new ReportDocument();
//2,加载报表
rd.Load(Server.MapPath("~/") + "报表名……
hglylc
2010-08-16
打赏
举报
回复
1、新建一个Crystal报表配置报表输出格式
2、页面中添加CrystalReportViewer控件
3、在页面中按钮单击事件中添加代码
//1,实例化ReportDocument对象
ReportDocument rd = new ReportDocument();
//2,加载报表
rd.Load(Server.MapPath("~/") + "报表名.rpt");
//3,指定数据源
rd.SetDataSource(报表数据源DataSet);
//4,显示(指定查看器的文档)
this.CrystalReportViewer1.ReportSource = rd;
板凳玉
2010-08-15
打赏
举报
回复
首先安装水晶报表组件,然后再生成水晶报表文件.rpt,注意最好先设定数据源,绑定到水晶报表上。在窗口或者页面上添加水晶报表浏览控件,脚本中再进行数据源的设置以及水晶报表显示属性、方法的设定就行了。
mayonglong
2010-08-11
打赏
举报
回复
[Quote=引用 3 楼 jswan027 的回复:]
VS里面的有水晶报表的控件啊,直接拖到窗体里面,在自己做一个水晶报表文件,在窗体中水晶报表控件上右击添加水晶报表文件就可以了
[/Quote]
http://blog.csdn.net/haibodotnet/category/13322.aspx
加载更多回复(6)
水晶报表
问题汇总(
水晶报表
的使用与查询条件
生成
报表、注册码、打印问题、模式使用示例、
C#
.Net的WinForm中的使用、程序发布与部署)
本文详细介绍
水晶报表
在
C#
.Net WinForm及Asp.Net中的使用方法,包括注册码配置、动态
生成
报表、数据集绑定、主从报表设计及程序发布部署等关键环节。
C#
学习01:VS2008中使用
水晶报表
时后台封装信息
生成
二维码
这篇博客介绍了如何在
C#
的VS2008环境中利用DotNetBarcode库
生成
二维码。主要内容包括设置DataSet字段类型,通过GetImageByte方法将数据信息转换为图片字节码,保存并读取二维码图片。提供的代码示例展示了
生成
和保存二维码图片的过程。
c#
中读
水晶报表
转为pdf的方法
本教程详细介绍了如何使用
C#
创建
水晶报表
并设置数据库连接,将
生成
的报表导出为PDF文件,包括参数传递、数据库配置及PDF文件路径设置。
C#
处理PLC数据
生成
各种报表
在工业自动化和数据监控领域,
C#
可处理PLC数据并
生成
报表。本文介绍了几种在
C#
中
生成
报表的方法,包括使用Excel报表、
水晶报表
、第三方报表库、WPF报表控件以及ASP.NET MVC和ExcelPackage,分析了各自优缺点和使用场景,开发者可按需选择。
.NET技术其他语言
1,979
社区成员
12,447
社区内容
发帖
与我相关
我的任务
.NET技术其他语言
.NET技术 其他语言讨论
复制链接
扫一扫
分享
社区描述
.NET技术 其他语言讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章