使用soaoffice中间件+asp实例编写小型的企业管理程序(二)

      想想都写了一篇还没有碰到soaoffice中间件的一根毛,自己都不好意思了,就继续写batchprint.asp这个文件的代码,这个里面是一定要用到这个中间件的。
      先说这个文件的整体思路,就是根据传递过来的batchid,调取workprocess表中的信息,填写到print.xls这个excel表中,同时将这个文件保存到batchfiles这个子文件夹下面,知道了思路也就好办了,继续coding。

***************************************

batchprint.asp
<!--#include file=opendb.asp-->
<%
'首先创建一个服务器对象
set myexcel=server.createobject("aoaofficex.excelresponse")
set myesheet=myexcel.opensheet("sheet1")'这里的sheet1和你print.xls中的sheet名需要对应

'下面这些代码都是从数据库中调取数据的(工序信息)
sql="select b.*,a.batch,a.billdate from workprocess b,batch a where a.id="&batchid&" and a.productid=b.productid"
rs1.open sql,mycn,1
if not rs1.eof then
'假设我们的excel表中:A1里面放的是产品编码 ,B1里面放的是批次数量,C1里面放的是批次号 ,D1里面放的是批次日期
'从A2------>A10放的是加工工序,   A11里面是料废数 A13里面填写的是工废数量,其他地方都是一些excel的公式
'我们先就开始实现excel中数据的填写
mysheet.FormMode = true'提交模式
mysheet.opencell("A1").value=rs1("productid")
mysheet.opencell("B1").value=rs1("qty")
mysheet.opencell("C1").value=rs1("batch")
mysheet.opencell("d1").value=rs1("billdate")
'下面开始填写工序
i=9
do until rs1.eof
i=i+1
mysheet.opencell("A"&i).value=rs1("workprocess")
rs1.movenext
loop
end if
rs1.close
'接下来就需要将我们创建的这个服务器对象内容附加到excel表中
Set myctrl = Server.CreateObject("SOAOfficeX.SOAOfficeCtrl")
myctrl.server="127.0.0.1"'这个是你的soaoffice的服务器地址
myctrl.serverport="4357
'这里你还可以对你的activex对象设置一些属性,比如是否显示菜单,显示工具条,设置保存调用的程序文件
myctrl.Menubar = false
myctrl.Toolbars = false
myctrl.SaveDocURL = "batchsave.asp?batchid="&request("batchid")&""
' 打开文档
myctrl.Assign myexcel
'这个时候我们需要打开我们的print.xls模版文件
myctrl.WebOpen "print.xls", 0, userName, "Excel.Sheet"
'释放对象
set myctrl=nothing
set myexcel=nothing
set mysheet=nothing
%>
<!--最下面的是最精简代码,但是许多时候我们用它并不能解决问题,因为我们需要引导用户按自己设定的思路来,所以就需要自定义一些界面元素,在这个系统中我们只允许有一个保存按钮,其他的全部关闭掉-->
<SCRIPT language="JavaScript" event="OnInit()" for="SOAOfficeCtrl">
  SOAOfficeCtrl.AppendToolButton(1, "保存", 1);
</SCRIPT>
<!--既然我们定义了操作按钮,那钩子我们也是要定义一下的-->
 <SCRIPT language="JavaScript" event="OnCustomToolBarClick(index, caption)" for="SOAOfficeCtrl">
  // 添加您的自定义工具栏按钮事件响应
  if(index == 1)
                {
  SOAOfficeCtrl.WebSave();
  alert("保存成功!/n批次保存成功。");
  }
                
 </SCRIPT>
<!--下面这个就是soaoffice中间件最精简的代码了-->
<table width=100% height=100%>
<td>
 <OBJECT id="SOAOfficeCtrl" codeBase="SOAOffice.ocx#version=7,4,1,0" height="100%" width="100%" classid="clsid:FABFB7B0-B15E-413C-94BC-96D21EC78712" data="" VIEWASTEXT>
  <div align=center STYLE="color:red;">本机尚未安装SOAOFFICE客户端控件,请安装浏览器上方黄色提示条或弹出提示框中的SOAOFFICE客户端控件。</div>
 </OBJECT>
</table>
**********************************
      很好理解上面的这段程序,但是这并没有结束,只是完成了从数据库调取数据填写到excel表的过程。我们还需要batchsave.asp这个文件来保存我们的excel到我们指定的那个batchfile子文件夹中。
     继续开始batchsave.asp文件的编写.

***********************************
<!--#include file=opendb.asp-->
<%
'创建保存对象
set mysave=server.createobject(soaofficex.savedocObj")
sql="select filenamestr from batch where id="&request("batchid")&""
rs1.open sql,mycn,1
if not rs1.eof then
filenamestr=rs1("filenamestr")
else
response.end
end if
rs1.close
'将我们刚才产生的那个文件按我们设定的文件名保存到子目录下
mysave.SaveToFile   Server.MapPath("batchfile/") & "/" & filenamestr
set mysave=nothing
%>

*******************************

      到了这里我们对使用soaoffice中间件填充数据和保存文件应该很清楚了.当然上面的过程还是比较粗糙的,还要考虑一些保存不成功及编辑的细节,在这里我们忽略继续往下.
      接着完成如何从excel表中提取数据保存到sql server中.
      首先我们需要先完成batchreport.asp这个文件,主要是给我们检索用的.

***********************************
<!--#include file=opendb.asp-->
<%
sql="select *,case when steteflag=1 then '已完工' else '未完工' end as stateflagstr from batch"
rs1.open sql,mycn,1
if not rs1.eof then
response.write"<table><tr><td>日期<td>产品<td>批次<td>数量<td>状态<td>操作</td>"
do until rs1.eof
response.write"<tr><td>"&rs1("billdate")&"<td>"&Rs1("productid")&"<td>"&rs1("batch")&"<td>"&rs1("qty")&"<td>"&rs1("stateflgstr")
if rs1("stateflag")=0 then
'如果未完工的我们还要填写质量信息
response.write"<td><a href=editbatch.asp?batchid="&rs1("id")&">edit</a>"
else
'如果已经完工的我们只能察看文件了
response.write"<td><a href=viewbatch.asp?batchid="&rs1("id")&">view</a>"
end if
rs1.movenext
loop
end if
rs1.close
%>

*****************************
      在上面这个文件中我们又调用的两个文件:editbath.asp和viewbatch.asp,其中editbatch.asp主要目的就是打开批次卡,然后将我们的质量信息填写进取,最后保存文件的同时将质量信息提取保存到数据库中.viewbatch.asp就采用只读打开的方式对应的批次卡.
      viewbath.asp文件比较简单,我们先来完成这个文件.其实他和我们前面的batchprint.asp文件几乎完全一样.
*********************************
viewbatch.asp
<!--#include file=opendb.asp-->
<%
'找到我们要打开的文件名
sql="select filenamestr from batch where id="&request("batchid")&""
rs1.open sql,mycn,1
if not rs1.eof then
filenamestr=rs1("filenamestr")
else
response.end
end if
rs1.close
'接下来就需要将我们创建的
Set myctrl = Server.CreateObject("SOAOfficeX.SOAOfficeCtrl")
myctrl.server="127.0.0.1"'这个是你的soaoffice的服务器地址
myctrl.serverport="4357

'只读方式打开文档
myctrl.WebOpen "batchfiles/"&filenamestr, 1, userName, "Excel.Sheet"
'释放对象
set myctrl=nothing

%>
<!--下面这个就是soaoffice中间件最精简的代码了-->
<table width=100% height=100%>
<td>
 <OBJECT id="SOAOfficeCtrl" codeBase="SOAOffice.ocx#version=7,4,1,0" height="100%" width="100%" classid="clsid:FABFB7B0-B15E-413C-94BC-96D21EC78712" data="" VIEWASTEXT>
  <div align=center STYLE="color:red;">本机尚未安装SOAOFFICE客户端控件,请安装浏览器上方黄色提示条或弹出提示框中的SOAOFFICE客户端控件。</div>
 </OBJECT>
</table>
**********************************
       最后我们来写填写质量信息的文件editbatch.asp,前面我们说了我们的A11里面是料废数 A13里面填写的是工废数量,一旦保存成功,我们就同时需要将数据库对应batch的stateflag设置成1.在这个文件中主要需要了解一个needsubmit属性设置。
待续.....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
SOAOFFICE - 微软 OFFICE 中间件 SOAOffice 中间件是北京科翰软件为微软OFFICE量身打造的Web中间件,是Web调用Office、存取Office数据的必备中间件SOAOffice中间件由服务器端数据组件和客户端显示控件构成。 SOAOffice 完全抛弃了传统利用Office服务器端自动化技术存取文档数据的种种弊端和缺陷,采用独创的专利技术构建了一个功能强大、简单易用的微软Office中间件平台,平台提供标准的.net和java组件接口,不但能够在线(浏览器页面)打开、编辑、保存Office文档,而且开发人员还能够以简洁的代码快速的将数据库数据动态填充到Office文档指定位置,并且也能够从Office文档中提取指定位置的数据保存到数据库。 SOAOffice提供这些强大功能的同时,服务器端并不需要安装运行Office软件。通过SOAOffice,在Web世界里,难以驯服的Word/Excel就变成了普通的、熟悉的、服务器端可调用的.Net组件、Java组件、ASP组件、PHP组件,开发人员再也不用研究复杂的Word/Excel COM自动化细节、学习复杂的VBA语法调用,也不用去应对Word/Excel死进程、系统稳定运行的问题。开发人员能够节省宝贵的精力和时间,把它投放到更重要的业务逻辑和系统架构上,而控制Office的具体技术细节交给SOAOffice去做。 SOAOffice除了提供Word/Excel动态数据填充,Word/Excel数据导入导出,Word/Excel/PowerPoint等Office文档的在线打开、编辑、保存,权限控制,只读控制等功能外,还给在线办公内置了强大的支持功能:强制痕迹保留,手写批注,圈阅签字,手写签名,电子印章、数字签名、模板套红、一键套红等。 科翰软件是国内唯一的微软Office中间件开发商,拥有卓越的自主研发实力和独创的专利技术,其产品SOAOffice不仅畅销国内,而且还远销欧美国际市场,其中世界500强美国Dover集团、可口可乐 Coca-Cola、中石油、中石化等都是SOAOffice产品的忠实客户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值