【转载】水晶报表10.5在VC++.net2008中的使用与部署 | 您所在的位置:网站首页 › pdx文件 › 【转载】水晶报表10.5在VC++.net2008中的使用与部署 |
【转载】⽔晶报表 10.5 在 VC++.net2008 中的使⽤与部署 由于在我实习的项⽬中可能⽤到⽔晶报表,⽽且如果时间允许我的毕业设计的计算书部分也想使⽤⽔晶报表,所以就上⽹找了篇关于⽔晶报 表 VC 开发的⽂章看看。
VS2008 ⾃带了⽔晶报表 10.5 的开发版本 , 该版本的⽔晶报表声明中可以由开发者⾃由发布 . VC2008 中使⽤该版本的⽔晶 . 按如下⽅式操作 :
1. ⽤ VC6.0 ⽣成⼀个对话框⼯程 . 对话框上右键 -> 插⼊ ActiveX 组件 -> 选 Crystal ActiveX Report View Control 10.5,Ctrl 键双击这个插⼊的组件 , 会出来映射变量向导 . 输⼊变量名 m_View. 其他都默认 , 提⽰你插⼊两个类时 , 就确定 . 这个步骤在 .net ⾥会出异常 , 只能通过⽼ VC 来⽣成 . ⽐较恶 ⼼ . 在 stdafx.h ⾥加⼊ #import "C:\\Program Files\\Business Objects\\Common\\2.8\\bin\\craxddrt.dll" no_namespace ⽼ VC 的⼯程就能运⾏了 .OK, 接下来把这些东东放到 VC.net ⼯程⾥ .
2. 创建 .net VC/MFC ⼯程 . 把上⼀步⾃动加⼊的两个⽔晶类加到你⼯程⾥ . 在 stdafx.h ⾥加上 : #import "C:\\Program Files\\Business Objects\\Common\\2.8\\bin\\craxddrt.dll" no_namespace #include "CrystalReportViewer10.h" 把上⼀步中映射变量的 DDX_Control(pDX, IDC_VIEW1, m_View); 考到你的相应类⾥ . 在你使⽤该⽔晶控件的 Dialog 的 .h ⽂件⾥定义 : IApplicationPtr m_Application; IReportPtr m_Report; CCrystalReportViewer10 m_View; // 这是你映射的控件变量
在该对话框的 OnInitDialog ⾥加⼊ : ShowWindow(SW_MAXIMIZE); CString strFileRpt= "C:""Fuck.rpt" ; CString strFileXml= "C:""Fuck.xml" ; m_Application.CreateInstance (__uuidof(Application)); m_Report =m_Application->OpenReport(_bstr_t(strFileRpt)); IDatabasePtr pDB=m_Report->Database; pDB->Tables->Item[ 1 ]->Location=_bstr_t(strFileXml); m_View.SetReportSource(m_Report); m_View.SetDisplayToolbar (TRUE); m_View.SetDisplayGroupTree (FALSE); m_View.SetDisplayBorder (FALSE); m_View.SetDisplayTabs(FALSE); m_View.Refresh (); // 调⽤下⾯两⾏中的⼀⾏ : m_View.ViewReport(); // 预览 . m_Report->PrintOut(); // 不预览 , 直接打印
3. 程序的打包与发布 : 做安装包时 , 把⽔晶 10.5 的安装⽬录下所有⽂件 ( 默认是 C:"Program Files"Business Objects"Common"2.8"bin) 都考到与你的可执⾏⽂件同⼀ ⽬录 . 然后把所有的 dll 都注册⼀下就 OK 了 , 也就是所有加进去的⽔晶的东东 , 只要是 dll, 就 regsvr32 他⼀下 . 现在的打包⼯具应该都⽀持安装时注 册组件功能 . 这我就不细说了 . 还有就是⽔晶这个垃圾发布时需要 .net framework 2.0 ⾄少 . 唉 , 这个⾃⼰打包吧 , 唉 , 要多恶⼼有多恶⼼ !! |
CopyRight 2018-2019 实验室设备网 版权所有 |