北京卓正志远软件有限公司
诚信指数 0
一站通留言 客户留言 联系我们 联系我们 收藏此网站 发送消息
首页
企业介绍
资质荣誉
供应信息
商业信息
企业新闻
招聘信息
企业名片
客户留言
产品资料
search 搜索网站中其它产品:
您现在的位置:北京卓正志远软件有限公司 > 企业新闻
 
企业新闻
FileMaker批量生成Word文档,带进度条[asp.net]
发布日期:2013-05-09

在某些涉及到报表的项目开发中,可能经常会遇到需要批量的生成某些文档的操作,这些文档若是要点击一下,生成一个的

话,就太浪费时间了。但若用PageOffice开发平台中的FileMakerCtrl控件来实现的话就简单容易的多了。
     下面我就以批量生成10个Word文档为例来分享一下FileMakerCtrl控件的使用方法。
     步:请先安装PageOffice的服务器端的安装程序,之后在你的网站或项目的根目录下添加pageoffice文件夹(在

#网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的

pageoffice文件夹拷贝到根目录下就可以了)。
     第二步:在网站或项目中添加文件夹存放word模板文件,我习惯命名为“doc”,将要打开的文件拷贝到该文件夹下,我

批量生成文档所用的模板文件为“template.doc”,该文件中有一个书签,名称为“PO_company”。
     第三步:在网站或项目中创建动态页面FileMaker.aspx。在工具箱中拖动一个FileMakerCtrl控件到页面上

(FileMakerCtrl控件位于工具箱最下方)。
     FileMaker.aspx.cs后台页面中,添加代码如下:
     //设置服务器页面
     FileMakerCtrl1.ServerPage = "pageoffice/server.aspx";
     string id = Request.QueryString["id"];
     if (id != null && id.Length > 0)
     {
     PageOffice.WordWriter.WordDocument doc = new PageOffice.WordWriter.WordDocument();
     //给数据区域赋值,即把数据填充到模板中相应的位置
     doc.OpenDataRegion("PO_company").Value = "北京卓正志远软件有限公司  " + id;
     //设置保存页面
     FileMakerCtrl1.SaveFilePage = "Savemaker.aspx?id=" + id;
     FileMakerCtrl1.SetWriter(doc); //设置数据对象
     //设置生成完成后执行的JS函数
     FileMakerCtrl1.JsFunction_OnProgressComplete = "OnProgressComplete()";
     //生成文档
     FileMakerCtrl1.FillDocument(Server.MapPath("doc/template.doc"),            

PageOffice.DocumentOpenType.Word);}
    在前台添加JS函数OnProgressComplete()如下:
    function OnProgressComplete() {
    window.parent.myFunc(); //调用父页面(Default.aspx)的js函数}
    第四步:在网站或项目中创建动态页面SaveMaker.aspx,保存生成的Word文档到服务器磁盘上,部分代码如下:
    //定义FileSaver对象
    PageOffice.FileSaver fs = new PageOffice.FileSaver();
    string fileName = "maker" + id + fs.FileExtName;
    //将Word文档保存到本地磁盘上
    fs.SaveToFile(Server.MapPath("doc/") + fileName);
    fs.Close();
    第五步:在网站或项目中创建动态页面Default.aspx。先在页面中嵌套一个。再在页面中添加一个非服务器端按钮,给其添加一个onclick事件,执行JS函

数“ConvertFiles()”。最后在页面中添加一个层,用来作为进度条显示文档的生成进度。部分的Html代码如下:
    
    
    正在生成请稍候...
    
    


    

    
    
    
    
    
    

    显示进度条的JS函数myFunc()和开始执行生成文档的JS函数ConvertFiles()如下:
    count = 0; //定义生成文件的个数
    //显示进度条
    window.myFunc = function() {
    count++;
    if (count < 10) {
    document.frames["iframe1"].window.location.href = "FileMaker.aspx?id=" + count;
    //设置进度条
    document.getElementByIdx_x_x("ProgressBarSide").style.visibility = "visible";
     document.getElementByIdx_x_x("ProgressBar").style.width = count + "0%";
 
} else {
     //隐藏进度条div
     document.getElementByIdx_x_x("ProgressBarSide").style.visibility = "hidden";
     count = 0;
     //重置进度条
     document.getElementByIdx_x_x("ProgressBar").style.width = "0%";
     document.getElementByIdx_x_x("aDiv").style.display = "";
     alert(&apos;批量生成完毕!&apos;);}};
 
//开始生成文档
     function ConvertFiles() {
     //次让子页面自刷新
     document.frames["iframe1"].window.location.href = "FileMaker.aspx?id=" + count;}
     综上所述,FileMakerCtrl控件使得10个Word文档很简单的就生成完成了,上述示例的完整代码可在卓正网站

#)的下载中心免费下载查看。

 

 

免责声明:本商铺所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,一比多公司对此不承担任何保证责任。

友情提醒:为保障您的利益,降低您的风险,建议优先选择商机宝付费会员的产品和服务。


北京卓正志远软件有限公司   地址:北京市朝阳区望京   邮政编码:100102
联系人:田小姐   电话:15810217283   手机:15810217283   
技术支持:一比多  |  免责声明 | 隐私声明
增值电信业务经营许可证:沪B2-20070060     网站Icp备案号:沪ICP备05000175号
<%---站点编号 ----%> <%---页面编号 ----%> <%---页面参数1 ----%> <%---页面参数2----%> <%---页面参数3 ----%>