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

一,导入

将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加入到工程文件夹中(可以先运行上面的代码,根据出错信息的相对地址,加入即可)下面是我添加的方法

Grid++Report在VC中的使用方法_第1张图片

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

你可能感兴趣的:(数据库,Module,report,null,报表)