㈠ 在MFC中如何使用水晶报表
仅供参考:
1.#import "C:Documents and SettingsAdministrator桌面crcraxdrt9.dll" no_namespace
二、定义接口指针变量
IApplicationPtrm_Application;
IReportPtrm_Report;
//水晶报表控件变量,在对话框中加入该控件
CCrystalReportViewer9m_CRViewer1;
//具体实现步骤
//实例化m_Application
m_Application.CreateInstance(__uuidof(Application));
//获取m_Report变量
//staff.rpt为通过向导建立的报表文件,数据库采用SQLServer7.0
m_Report=m_Application->OpenReport("C:\Documents
andSettings\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*frompersonwhereid<'4'order
byid");
//不显示重复字段
m_Report->(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();
这样,漂亮的水晶报表就显示出来了。程序异常处理部分省略,请自行加入。
㈡ 请问水晶报表在 vc6.0中如何使用
水晶报表是一个报表设计开发的强大工具,功能强大,设计灵活,在水晶报表光盘中只提供了一个完全动态生成报表的例子,使用繁琐。现介绍其在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->
(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();
这样,漂亮的水晶报表就显示出来了。程序异常处理部分省略,请自行加入。
㈢ 如何使用水晶报表里的命令参数
据我所知要想实现水晶报表里面的命令参数,需要用sql命令作为数据源,然后再调用rpt的代码,具体的代码的话我不是很清楚,已经很久没有使用水晶报表了。拿我现在用的finereport试了下,参数面板中拖入相应的参数控件按钮,并且进行控件设置就可以了。
㈣ 水晶报表的参数传递
你这样试一下:
ParameterField Field = new ParameterField();
ParameterFields fields = new ParameterFields();
ParameterDiscreteValue Value = new ParameterDiscreteValue();
ParameterValues paramValues = new ParameterValues();
Value.Value = string.Format("{0:yyyy-MM-dd}", dtStarTime.Value) + "至" + string.Format("{0:yyyy-MM-dd}", dtEndTime.Value);
paramValues.Add(Value);
Field.ParameterFieldName = "StarEndTime";
Field.CurrentValues = paramValues;
Fields.Add(Field);
crystalReportViewer1.ParameterFieldInfo = fields;
下面是我的源码
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterValues paramValues = new ParameterValues();
ParameterDiscreteValue discreteValue = new ParameterDiscreteValue();
discreteValue.Value = "333";
paramValues.Add(discreteValue);
paramField.ParameterFieldName = "cs";
paramField.CurrentValues = paramValues;
paramFields.Add(paramField);
paramField.AllowCustomValues = false;
crystalReportViewer1.ParameterFieldInfo = paramFields;