水晶报表不为人知的秘密!!

zzh2106 2007-09-14 08:46:11
inline rpt::IReportPtr rpt::IApplication::OpenReport ( _bstr_t pFileName, const _variant_t & OpenMethod ) {
struct IReport * _result = 0;
HRESULT _hr;// = S_OK;
_hr = S_OK;
raw_OpenReport(pFileName, OpenMethod, &_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return IReportPtr(_result, false);
}
上面这段是水晶报表craxdit9.tli中的打开报表代码。
在程序执行完第4行(HRESULT _hr),未进入第5行时。要经过大概有4-10秒不等的时间(多次运行,一般在4-10秒)才会运行到第5行。

接着我把这段代码改了,如下:
inline rpt::IReportPtr rpt::IApplication::OpenReport ( _bstr_t pFileName, const _variant_t & OpenMethod ) {
struct IReport * _result = 0;
// HRESULT _hr;// = S_OK;
//_hr = S_OK;
raw_OpenReport(pFileName, OpenMethod, &_result);
// if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return IReportPtr(_result, false);
}
程序在第4行到第5行之间,还是会消耗4-10秒的时间。
后来我发现,在第四行执行完了以后,在程序中会突然弹一个框(应该水晶报表的框),然后就消失了!当然,在程序没有全部退出的时候,再次打开报表不会出现这样的问题。。
那么第4行到第5行之间,到底是怎么吃掉这几秒时间的呢??
有高人来回答吗???????????????????
...全文
141 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧