C#怎么生成水晶报表

hui2581678 2010-06-19 05:13:54
在一个窗体上放一个浏览的按钮,点击它会产生一个水晶报表,它的代码是什么啊
...全文
1737 29 打赏 收藏 转发到动态 举报
写回复
用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)

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧