一,导入
将Grid++Report安装文件夹中,Sample文件夹下的Utility文件夹全部考中工程文件夹中,然后在stdafx.h头文件中,加入:#include<afxtempl.h>//CARRAY类头文件 5-24日加
#include <atlbase.h> //GridReport 组件头文件
extern CComModule _Module;
#include ".\Utility\GridppReportEventImpl.h" //相对地址,如果出现编译错误,极可能是由于这个文件包含地址没写对
还要将D:\Grid++Report 5.0\Samples\VC中的grdes.tlb和grpro.tlb加入到工程文件夹中(可以先运行上面的代码,根据出错信息的相对地址,加入即可)下面是我添加的方法
在CWinApp 派生的类中的 InitInstance 与 ExitInstance 方法中实现以上对应的代码。代码类似如下:
CComModule _Module; //必须加,否则会出现编译出错:无法解析的外部符号"classATL::CComModule _Module" (?_Module@@3VCComModule@ATL@@A) BOOLCDlgApp::InitInstance() { //启动时增加程序对 COM 的支持 HRESULT hRes = ::CoInitialize(NULL); ATLASSERT(SUCCEEDED(hRes)); _Module.Init(0, AfxGetInstanceHandle()); ... } int CDlgApp::ExitInstance() { //退出时对 COM 的支持的释放操作 _Module.Term(); ::CoUninitialize(); return CWinApp::ExitInstance(); }
二,插入控件
在DLG上,右击,选择“插入ACTIVE X控件”,选择Grid++ReportDisplayViewer 5.0
ID号为:IDC_GRDISPLAYVIEWER1
三、在对话框头文件***Dlg.h的对话框类C***Dlg中加入:
IGridppReportPtr m_pGridppReport; IGRDisplayViewerPtr m_pDisplayViewer;
四. 在OnInitDialog()函数中加入:
//创建报表主对象 m_pGridppReport.CreateInstance( __uuidof(GridppReport) ); ATLASSERT(m_pGridppReport !=NULL); //取得查询显示器控件的接口指针 CWnd *pDispalyViewerWnd =GetDlgItem(IDC_GRDISPLAYVIEWER1); LPUNKNOWN spUnk =pDispalyViewerWnd->GetControlUnknown(); spUnk->QueryInterface(__uuidof(IGRDisplayViewer), (void**)(&m_pDisplayViewer)); ATLASSERT(m_pDisplayViewer !=NULL); //从文件中载入报表模板数据到报表主对象 TCHAR temp[256]; GetCurrentDirectory(256,temp); CString FileName =L""; FileName.Format(L"%s%s",temp,_T("\\try1.grf")); m_pGridppReport->LoadFromFile((LPCTSTR)FileName ); CString connectStr; connectStr.Format(L"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=%s\\db2.mdb",temp); m_pGridppReport->DetailGrid->Recordset->ConnectionString=(_bstr_t)connectStr; m_pGridppReport->DetailGrid->Recordset->QuerySQL=L"select * from Main"; //查询显示器控件关联报表主对象 m_pDisplayViewer->Report =m_pGridppReport; //启动查询显示器的运行 m_pDisplayViewer->Start();
//////////////////以上是动态生成列////////////////////////////////严重建议看:::Grid++Report5帮助//////////////
1,动态设置数据库连接字符串和SQL语句,《开发指—>报表动态数据->提供明细数据》一节
2,设置参数值《开发指南->报表动态数据->用代码提供参数化数据》
函数使用说明:
1,设置单元格边框属性
m_pGridppReport->ControlByName(L"MemoBox130")->BorderStyles=grbsDrawLeft;
测试正确,显示边框属性,MemoBox130为设计栏下的名称栏
这个设置边框属性的,不支持或运算,我看了下源代码,在枚举的时候,只枚举了上,下,左,右的,对于上,下这种合并方式的没有枚举,所以就没有办法同时加上下两个划线了,各位如果知道怎么加的,记得留言哦
我会把Grid++Report5.0安装包,放到我资源里面去,不要分,想要的可以去下载