㈠ 在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;