对于报表文件的批量打印,系统采用Web Browser组件的打印接口,并采用FILE STREAM重定向输出的技术将文件直接输出到打印机上,从而批量打印出报表文件,打印效果如同统版软件打印出的报表格式一样清晰,也可以提取指定的数据在打印机上输出。实现的核心代码如下:
for(int ibb=0;ibb<int_selbbcount;ibb++)
{
CString stringbbpath=stringbbzml;
stringbbpath+=stringbbrq;
stringbbpath+="\\";
stringbbpath+=string_bbmc[ibb];
FILE* fp;
if((fp=fopen(stringbbpath,"r"))!=NULL)
{
CString ti="正在预览/打印";
ti+=stringbbpath;
m_ti.SetWindowText(ti);
m_explore.Navigate(stringbbpath,NULL,NULL,NULL,NULL);
Sleep(1000); m_explore.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
fclose(fp);
}
}
6. 报表文件备份刻录
由于报表服务器的空间有限,随着时间的推移,大量的历史数据需要保存,因此最好的方式是将存档的电子报表文件刻录到光盘上并分类保存到媒体库中,方便历史查询,也可有效地节约服务器空间。系统专门设计的报表备份刻录模块,根据操作人员选择的条件,系统将自动检索报表文件并写入外置的刻录机光盘中,此模块主要采用Win32的shell's ICDBurn接口函数开发。shell's ICDBurn接口函数是Windows 4.0版本以后的重要刻录机控制函数,目前市场上的刻录软件大多通过包装此函数完成刻录工作。本模块的刻录功能本质上与各刻录软件的功能是一致的.
|