Grid++Report在VC中的使用方法

来源:互联网 发布:淘宝店铺成功案例 编辑:程序博客网 时间:2024/06/18 02:20

一,导入

将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安装包,放到我资源里面去,不要分,想要的可以去下载