Chinaunix首页 | 论坛 | 博客
  • 博客访问: 536714
  • 博文数量: 576
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5020
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(576)

文章存档

2011年(1)

2008年(575)

我的朋友

分类:

2008-10-14 15:11:21

水晶报表在VC++6.0中的简单使用方法

作者:xiaojin

   水晶报表是一个报表设计开发的强大工具,功能强大,设计灵活,在水晶报表光盘中只提供了一个完全动态生成报表的例子,使用繁琐。现介绍其在VC++6.0中的简单使用方法。编译环境:VC++6.0 sp5 、Windows 2000 Server sp3 (en)。 一、导入水晶报表使用的动态联接库:根据实际修改文件路径。

#import "C:\Documents and Settings\Administrator\桌面\cr\craxdrt9.dll" no_namespace
二、定义接口指针变量
//水晶报表变量
IApplicationPtr m_Application;
     IReportPtr m_Report;
//水晶报表控件变量,在对话框中加入该控件
    CCrystalReportViewer9    m_CRViewer1;
三、具体实现步骤
  //实例化m_Application
    m_Application.CreateInstance (__uuidof(Application));
//获取m_Report变量
//staff.rpt为通过向导建立的报表文件,数据库采用SQL Server 7.0
   m_Report =m_Application->OpenReport ("C:\\Documents and Settings\\Administrator\\桌面\\cr\\debug\\staff.rpt");
  //设置报表标题
   m_Report->put_ReportTitle (_bstr_t("Title"));
  //设置数据库连接变量
//数据库服务器(local),数据库名staff,用户名sa,密码sa
   m_Report->Database ->Tables ->Item [1]->SetLogOnInfo("(local)","staff","sa","sa");
//设置检索SQL命令
m_Report->put_SQLQueryString ((_bstr_t)"select * from person where id<'4' order by id");
//不显示重复字段
   m_Report->PutEnableSelectDistinctRecords (TRUE);
   //设置检索条件,采用水晶报表语法,功能同设置检索SQL命令
m_Report->PutRecordSelectionFormula ((_bstr_t)"{person.id}='1'");
//设置报表作者
   m_Report->PutReportAuthor ("xiaojin");
   //将m_Report与报表控件连接
   m_CRViewer1.SetReportSource(m_Report);
//显示报表工具条
   m_CRViewer1.SetDisplayToolbar (TRUE);
//不显示报表左边的分组树
   m_CRViewer1.SetDisplayGroupTree (FALSE);
   //不显示控件边框
   m_CRViewer1.SetDisplayBorder (FALSE);
   //刷新数据
   m_CRViewer1.Refresh ();
//显示报表内容
   m_CRViewer1.ViewReport();
这样,漂亮的水晶报表就显示出来了。程序异常处理部分省略,请自行加入。


--------------------next---------------------

能发一份代码给我么?我用的是水晶报表11。另外如果应用程序和SQL数据库不在一台机器上时:m_Report->Database ->Tables ->Item [1]->SetLogOnInfo("(local)","staff","sa","sa");这条语句还行么?如果照你这样做,是不是在每个客户端都得安装水晶报表呀?
多谢赐教!
我的邮箱:soft78@163.com ( whysoft 发表于 2006-10-19 9:36:00)
 
能给一份源代码?
lxcseac@163.com
( lxcseac 发表于 2006-9-8 17:16:00)
 
yuanl你使怎么解决的?能不能给我一份源代码?
zq30000@sina.com ( hchack 发表于 2006-1-7 18:43:00)
 
谢谢提供,我正需要呢,感谢!!! ( dywenwen 发表于 2005-8-2 9:11:00)
 
有没源程序,我想要一份,谢谢
ksgz254@21cn.com ( kaste 发表于 2004-8-24 13:58:00)
 
在水晶报表中,怎么动态指定数据源?请各位大哥指教 ( tnt2pro31 发表于 2003-11-30 20:47:00)
 
qhqh310
我和你的情况一模一样,也是用水晶报表8。0版本的,可是为什么用
m_CRViewer1.Refresh ();
程序编译就会提示内存出错啊:
“0x6000cb1c"指令引用的"0x00000000"内存。该内存不能为"read" ( tigerli 发表于 2003-9-25 13:19:00)
 
m_Report->Database ->Tables ->Item [1]->SetLogOnInfo("IcCaJTSystem");

通过odbc连接access数据库,这样改过吗? ( yuanl 发表于 2003-8-25 18:07:00)
 
调试没有问题,全部通过
但在打开对话框时,弹出:

Runtime Error!
Program:F:\jtsj\Debug\jtsj.exe
abnormal program termination

我用 access做的数据库 ( yuanl 发表于 2003-8-25 18:03:00)
 
chaoming:不行阿

调试没有问题,全部通过
但在打开对话框时,弹出:

Runtime Error!
Program:F:\jtsj\Debug\jtsj.exe
abnormal program termination
( yuanl 发表于 2003-8-25 17:48:00)
 
.......................................................

--------------------next---------------------

阅读(389) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~