WebOffice控件的使用(二)

作者:哇哇~~~

Java代码  

  1. SetMsgByName (String, String)    设置字段值
  2. GetMsgByName(String)        取得字段值
  3. MsgTextClear()                     清除所有字段
  4. MsgError()                   取得错误信息
  5. MsgError(String)          设置错误信息
  6. MsgErrorClear()            清除错误信息
  7. MsgVariant()                 取得信息包内容
  8. MsgVariant(byte[])        设置信息包内容
  9. MsgVersion()                取得信息包版本
  10. MsgFileLoad(String)             装入文件
  11. MsgFileSave(String)             保存文件
  12. MsgFileBody()              取得文件内容
  13. MsgFileBody(byte[])      设置文件内容
  14. MsgFileSize()                取得文件大小
  15. MsgFileSize(int)            设置文件大小
  16. MsgFileClear()              清除文件内容
  17. 接口说明:
  18. SetMsgByName (FieldName String, FieldValue String)
  19. 功能说明 设置字段值
  20. 输入参数 设置字段域的名称与所对应的值。
  21. FieldName String 字段域的名称
  22. FieldValue String 字段域的值
  23. 输出参数 Boolean=成功/失败。
  24. 特别说明 系统公共
  25. GetMsgByName(FieldName String)
  26. 功能说明 取得字段值
  27. 输入参数 FieldName String 字段域的名称。
  28. 输出参数 String =字段域的值。
  29. 特别说明 系统公共
  30. MsgTextClear()
  31. 功能说明 清除所有字段
  32. 输入参数 无。
  33. 输出参数 无。
  34. 特别说明 系统公共
  35. MsgFileLoad(FileName String)
  36. 功能说明 装入文件
  37. 输入参数 FieldName String 服务器磁盘文件名称。
  38. 输出参数 Boolean=成功/失败。
  39. 特别说明 系统公共
  40. MsgFileSave(FileName String)
  41. 功能说明 保存文件
  42. 输入参数 FieldName String 服务器磁盘文件名称。
  43. 输出参数 Boolean=成功/失败。
  44. 特别说明 系统公共
  45. MsgFileBody()
  46. 功能说明 取得文件内容
  47. 输入参数 无。
  48. 输出参数 byte[],文件内容字节数组。
  49. 特别说明 系统公共
  50. MsgFileBody(byte[])
  51. 功能说明 设置文件内容
  52. 输入参数 byte[],文件内容字节数组。
  53. 输出参数 无。
  54. 特别说明 系统公共
  55. MsgFileSize()
  56. 功能说明 取得文件大小
  57. 输入参数 无。
  58. 输出参数 long 文件大小。
  59. 特别说明 系统公共
  60. MsgFileSize(int)
  61. 功能说明 设置文件大小
  62. 输入参数 int 文件大小。
  63. 输出参数 无。
  64. 特别说明 系统公共
  65. MsgFileClear()
  66. 功能说明 清除文件内容
  67. 输入参数 无。
  68. 输出参数 无。
  69. 特别说明 系统公共
  70. MsgError()
  71. 功能说明 取得错误信息
  72. 输入参数 无。
  73. 输出参数 String 错误信息。
  74. 特别说明 系统公共
  75. MsgError(String)
  76. 功能说明 设置错误信息
  77. 输入参数 String 错误信息内容。
  78. 输出参数 无。
  79. 特别说明 系统公共
  80. MsgErrorClear()
  81. 功能说明 清除错误信息
  82. 输入参数 无。
  83. 输出参数 无。
  84. 特别说明 系统公共
  85. MsgVariant()
  86. 功能说明 取得信息包内容
  87. 输入参数 无。
  88. 输出参数 byte[] 信息包所有内容。
  89. 特别说明 系统公共
  90. MsgVariant(byte[])
  91. 功能说明 设置信息包内容
  92. 输入参数 byte[] 数据包内容。
  93. 输出参数 Boolean=成功/失败。
  94. 特别说明 系统公共
  95. MsgVersion()
  96. 功能说明 取得信息包版本
  97. 输入参数 无。
  98. 输出参数 String 版本信息。
  99. 特别说明 系统公共
  100. 如何设置全局变量
  101. 设置全局变量(假设form的名字为webform):
  102. webform.WebOffice.WebUrl="<%=mServerUrl%>";
  103. webform.WebOffice.RecordID="<%=mRecordID%>";
  104. webform.WebOffice.Template="<%=mTemplate%>";
  105. webform.WebOffice.FileName="<%=mFileName%>";
  106. webform.WebOffice.FileType="<%=mFileType%>";
  107. webform.WebOffice.EditType="<%=mEditType%>";
  108. webform.WebOffice.UserName="<%=mUserName%>";
  109. 其中, mServerUrl 是指服务器端的处理程序,演示程序为OfficeServer这个文件(必填);
  110. mRecordID 是指当前要打开的文档记录唯一编号,通过这个编号,可以定位该
  111. 文档记录(可以为空);
  112. mTemplate 是指当前文档使用的模版(可以为空);
  113. mFileName是指当前文档的中文名称(可以为空);
  114. mFileType 是指当前文档的类型(必填);
  115. mEditType 是指当前文档的打开方式(必填);
  116. mUserName是指当前用户名(必填);
  117. 通常我们通过mRecordID来定位文档,但也可以通过文件名称来定位文档,这需要看用户的需求来定。
  118. 如何调用iMsgServer2000.class组件
  119. 申明调用对象:
  120. private DBstep.iMsgServer2000 MsgObj;
  121. 生成对象实例:
  122. MsgObj=new DBstep.iMsgServer2000();
  123. 取得客户端WebEditor.ocx发送的数据包
  124. MsgObj.MsgVariant(ReadPackage(request));
  125. 返回处理后的数据包
  126. SendPackage(response);
  127. 其中ReadPackage和SendPackage函数如下:
  128. //取得客户端发来的数据包
  129. private byte[] ReadPackage(HttpServletRequest request){
  130. byte mStream[]=null;
  131. int totalRead = 0;
  132. int readBytes = 0;
  133. int totalBytes = 0;
  134. try{
  135. totalBytes = request.getContentLength();
  136. mStream = new byte[totalBytes];
  137. while(totalRead < totalBytes){
  138. request.getInputStream();
  139. readBytes = request.getInputStream().read(mStream, totalRead, totalBytes - totalRead);
  140. totalRead += readBytes;
  141. continue;
  142. }
  143. }catch (Exception e){
  144. System.out.println(e.toString());
  145. }
  146. return (mStream);
  147. }
  148. //发送处理后的数据包
  149. private void SendPackage(HttpServletResponse response){
  150. try{
  151. ServletOutputStream OutBinarry=response.getOutputStream() ;
  152. OutBinarry.write(MsgObj.MsgVariant()) ;
  153. OutBinarry.flush();
  154. OutBinarry.close();
  155. }catch(Exception e){
  156. System.out.println(e.toString());
  157. }
  158. }
  159. 服务器端可以获得的全局参数;其中OPTION是OCX函数操作参数,
  160. 不同的操作,这个值不同
  161. mOption    = MsgObj.GetMsgByName("OPTION")
  162. mRecordId = MsgObj.GetMsgByName("RECORDID")
  163. mTemplate = MsgObj.GetMsgByName("TEMPLATE")
  164. mFileName = MsgObj.GetMsgByName("FILENAME")
  165. mFileType = MsgObj.GetMsgByName("FILETYPE")
  166. mUserName = MsgObj.GetMsgByName("USERNAME")
  167. 此时,mOption 就会得到 “LOADFILE”这样的操作,既
  168. mOption = “LOADFILE”
  169. 请注意:任何操作都会得到
  170. mRecordId = MsgObj.GetMsgByName("RECORDID")
  171. mTemplate = MsgObj.GetMsgByName("TEMPLATE")
  172. mFileName = MsgObj.GetMsgByName("FILENAME")
  173. mFileType = MsgObj.GetMsgByName("FILETYPE")
  174. mUserName = MsgObj.GetMsgByName("USERNAME")
  175. 这些全局变量的值,提供给编程开发使用.
  176. LoadFile()
  177. 功能: 打开Office文档,首先打开RecordID指定的文件
  178. 调用: WebOffice.LoadFile()
  179. 说明: Office公共,服务器应用程序操作如下:
  180. LOADFILE     调入RecordID指定的文件
  181. 操作命令
  182. 服务器应用程序操作如下
  183. WebOpen()
  184. 操作顺序为:
  185. LOADFILE     调入RecordID指定的文件
  186. mOption    = MsgObj.GetMsgByName("OPTION")
  187. mOption的值为“LOADFILE”
  188. 说明:
  189. 1、此函数发送此LOADFILE操作
  190. 2、系统默认对数据库操作;
  191. 如果对数据库操作,只要把数据库中文档的内容付给MsgObj.MsgFileBody就可以了,
  192. 如果想对文件进行操作,就不能使用MsgObj.MsgFileBody,只要使用MsgObj.MsgFileLoad(“文件名”)就可以把具体的服务器上的文件调入进来。
  193. 实例:
  194. IE客户端 Javascript调用方法:
  195. function LoadDocument(){
  196. try{
  197. webform.WebOffice.LoadFile();    //打开该文档
  198. StatusMsg(webform.WebOffice.Status);
  199. }catch(e){}
  200. }
  201. JSP服务端处理方法
  202. 如果文档保存在服务器的数据库中
  203. mOption=MsgObj.GetMsgByName("OPTION") ;
  204. //调用文档
  205. if(mOption.equalsIgnoreCase("LOADFILE")){
  206. mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号
  207. //mFileName=MsgObj.GetMsgByName("FILENAME");       //取得文档名称
  208. //mFileType=MsgObj.GetMsgByName("FILETYPE");       //取得文档类型
  209. MsgObj.MsgTextClear();                          //清除所有变量
  210. 通过mRecordID找到数据库中的记录,然后将数据库中的文件流付给mFileBody
  211. //调入文档
  212. if (如果读取文件流成功){
  213. MsgObj.MsgFileBody(mFileBody);                //将文件信息打包
  214. MsgObj.SetMsgByName("STATUS","打开成功!");    //设置状态信息
  215. MsgObj.MsgError("");                          //清除错误信息
  216. }else{
  217. MsgObj.MsgError("打开失败!");                //设置错误信息
  218. }
  219. }
  220. 如果文档保存在服务器的文件中
  221. mOption=MsgObj.GetMsgByName("OPTION") ;
  222. //调用文档
  223. if(mOption.equalsIgnoreCase("LOADFILE")){
  224. mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号
  225. mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称
  226. mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型
  227. MsgObj.MsgTextClear();
  228. //调入文档
  229. if (MsgObj.MsgFileLoad(“路径”+mFileName)) {
  230. MsgObj.SetMsgByName("STATUS","打开成功!");    //设置状态信息
  231. MsgObj.MsgError("");                          //清除错误信息
  232. }else{
  233. MsgObj.MsgError("打开失败!");                //设置错误信息
  234. }
  235. }
  236. SaveFile()
  237. 功能: 保存Office文档。
  238. 调用: WebOffice.SaveFile()
  239. 说明: Office公共,服务器应用程序操作如下:
  240. SAVEFILE 保存RecordID指定的文件
  241. 操作命令
  242. 服务器应用程序操作如下
  243. WebSave()
  244. SAVEFILE保存RecordID指定的文件
  245. mOption    = MsgObj.GetMsgByName("OPTION")
  246. mOption的值为“SAVEFILE”
  247. 说明:
  248. 系统默认对数据库操作;
  249. 如果对数据库操作,只要把MsgObj.MsgFileBody的内容取出,保存到数据库中就可以了,
  250. 如果想对文件进行操作,只要使用MsgObj.MsgFileSave(“文件名”)就可以把文件写到服务器上
  251. 实例:
  252. IE客户端 Javascript调用方法:
  253. function SaveDocument(){
  254. try{
  255. webform.WebOffice.SaveFile();    //保存文档
  256. StatusMsg(webform.WebOffice.Status);
  257. }catch(e){}
  258. }
  259. JSP服务端处理方法
  260. 如果文档保存在服务器的数据库中
  261. mOption=MsgObj.GetMsgByName("OPTION") ;
  262. //请求保存文档
  263. if(mOption.equalsIgnoreCase("SAVEFILE")) {
  264. mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号
  265. mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称
  266. mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型
  267. mFileSize=MsgObj.MsgFileSize();                //取得文档大小
  268. mFileDate=DbaObj.GetDateTime();                 //取得文档时间
  269. mFileBody=MsgObj.MsgFileBody();                //取得文档内容
  270. mUserName= MsgObj.GetMsgByName("USERNAME");     //取得保存用户名称
  271. mDescript="通用版本";                           //版本说明
  272. MsgObj.MsgTextClear();
  273. if (将mFileBody里的文件流信息及其他信息保存到数据库中) //保存文档内容
  274. {
  275. MsgObj.SetMsgByName("STATUS", "保存成功!");   //设置状态信息
  276. MsgObj.MsgError("");                          //清除错误信息
  277. }else{
  278. MsgObj.MsgError("保存失败!");                 //设置错误信息
  279. }
  280. MsgObj.MsgFileClear();
  281. }
  282. 如果文档保存在服务器的文件中
  283. mOption=MsgObj.GetMsgByName("OPTION") ;
  284. if(mOption.equalsIgnoreCase("SAVEFILE"))           //请求保存文档
  285. {
  286. mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号
  287. mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称
  288. mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型
  289. mFileSize=MsgObj.MsgFileSize();                //取得文档大小
  290. mFileDate=DbaObj.GetDateTime();                 //取得文档时间
  291. mUserName=MsgObj.GetMsgByName("USERNAME");     //取得保存用户名称
  292. mDescript="通用版本";                           //版本说明
  293. MsgObj.MsgTextClear();
  294. 将其他信息保存到数据库中
  295. if (MsgObj.MsgFileSave(“路径”+mFileName))       //保存文档
  296. {
  297. MsgObj.SetMsgByName("STATUS", "保存成功!");   //设置状态信息
  298. MsgObj.MsgError("");                          //清除错误信息
  299. }else{
  300. MsgObj.MsgError("保存失败!");                 //设置错误信息
  301. }
  302. MsgObj.MsgFileClear();
  303. }
时间: 2024-10-07 15:25:12

WebOffice控件的使用(二)的相关文章

Android自定义用户控件简单范例(二)

对于完全由后台定制的控件,并不是很方便其他人的使用,因为我们常常需要看到控件放到xml界面上的效果,并根据效果进行布局的调整,这就需要一个更加标准的控件制作流程: 我们的自定义控件和其他的控件一样,应该写成一个类,而这个类的属性是是有自己来决定的. 我们要在res/values目录下建立一个attrs.xml的文件,并在此文件中增加对控件的属性的定义. 使用AttributeSet来完成控件类的构造函数,并在构造函数中将自定义控件类中变量与attrs.xml中的属性连接起来. 在自定义控件类中使

DevExpress v15.1:DevExtreme控件升级(二)

HTML 5/JS控件增强 1.1 无障碍 DevExtreme HTML5/JS控件现在包含WAI-ARIA标记并支持屏幕阅读器. 1.2 字体图标 我们已经改进了图标库并支持将图标作为一种字体,这使您能够瞬间定制图标.此外,您现在可以轻松地使用第三方字体icons - Bootstrap glyph icons.Font Awesome和Ionic icons. 1.3 HTML5数据网格 (1)Excel导出 现在您可以将在HTML5/JS数据网格控件中显示的数据导出到一个Excel文件中

在cocos2d-js实现自动绑定cocostudioUI控件与事件(二)

前两天有个刚学习使用cocos2d-js的同事问我,怎么实现一个功能:点击一个按钮UI显示计数加1,按住不放UI计数就不停的加. 这个功能不就是个长按事件吗?我给他描述了下实现长按事件的思路: 1. 在控件touchBegan时,使用 一次性定时器scheduleOnce传入touchLong函数,设定1秒后执行. 2.  touchLong触发时,开启schedule传入addOnce函数(ui显示计数加1),设定每0.1秒执行一次. 3.  在touchEnded时执行unschedule函

自定义控件---系统控件组合式(案例二)

-----------------------------------------------案例效果------------------------------------- activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout

Android Material Design新UI控件使用大全 二

序言 上一篇中我们介绍了几个简单的新UI控件,相信很多小伙伴对Materil Design的视觉效果有了一定的了解,今天我们就继续介绍其他几个控件的玩儿法,让我们一探Materil Design的究竟,我们先来看一下我们今天要介绍的CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout及TabLayout, ok,我们接下来就逐一对这些控件进行解析,揭开他们神秘的面纱,来为我们服务,Let's Go. TabLayout 我们先来看官方的介绍

DevExpress v15.1:WPF控件升级(二)

<下载最新版DevExpress WPF Controls v15.1.5> WPF Pivot Grid Control Excel? Inspired条件格式 在新的版本中,我们引入了一个新的易于使用的方法在设计阶段和运行时管理格式规则.新的Excel? inspired条件格式允许您的最终用户在Pivot Grid中排序和分组数据,并且能可视化具有数据条.图标的数据单元格和预定义或自定义外观方案.在运行时利用Conditional Formatting Rules Manager创建.排

在MAC应用里显示多个图片(IKImageBrowserView控件使用)(二)

接着说上一片文章: 还需要在库里面增加: QuartzCore.framework Quartz.framework 这样才能编译通过. 以上是文件结构: 以上是界面结构 一个视图,图片类的,然后还要2个委托时间,分别和类绑定, 然后选中图片视图控件里面的视图,一般这类控件有2层,要选择里面那类. 然后分别绑定这两个委托.一个是数据源,一个是委托 然后还要将这个控件定义,在这两个类里面. 然后具体操作就是在数据源里面进行. 以下是运行效果. 可以全选,还可以改名称,这个需要你自己再修改一下代码.

Flutter样式和布局控件简析(二)

开始 继续接着分析Flutter相关的样式和布局控件,但是这次内容难度感觉比较高,怕有分析不到位的地方,所以这次仅仅当做一个参考,大家最好可以自己阅读一下代码,应该会有更深的体会. Sliver布局 Flutter存在着两大布局体系(就目前分析),一个是Box布局,还有另外一个就是Sliver布局:但是Sliver布局明显比Box会更加复杂,这真是一个坎,那么为啥说Sliver更加复杂尼,请看一下对比:首先是Box布局,主要看输入的BoxConstraints(约束)和输出Size(尺寸) cl

WebOffice控件的使用(一)

作者:娃娃 Java代码   最近拿到一个老项目,用到了weboffice ,无奈网上找找收藏学习 首先需要导入jar包iweboffice.jar 后台操作代码如下: Java代码   package weboffice; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.Ht