OfficeServer.aspx.cs
上传用户:hbbfjy2008
上传日期:2015-02-05
资源大小:5616k
文件大小:49k
源码类别:

中间件编程

开发平台:

C#

  1. using System;
  2. using System.IO;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Data.SqlClient;
  7. using System.Data.SqlTypes;
  8. using System.Drawing;
  9. using System.Web;
  10. using System.Web.SessionState;
  11. using System.Web.UI;
  12. using System.Web.UI.WebControls;
  13. using System.Web.UI.HtmlControls;
  14. namespace  iWebOffice.ocx.c.net
  15. {
  16. /// <summary>
  17. /// OfficeServer 的摘要说明。
  18. /// </summary>
  19. public class OfficeServer : System.Web.UI.Page
  20. {
  21. private int mFileSize;
  22. private byte[] mFileBody;
  23. private string mFileName;
  24. private string mFileType;
  25. private string mFileDate;
  26. private string mFileID;
  27. private string mRecordID;
  28. private string mTemplate;
  29. private string mDateTime;
  30. private string mOption;
  31. private string mMarkName;
  32. private string mPassword;
  33. private string mMarkList;
  34. private string mBookmark;
  35. private string mDescript;
  36. private string mHostName;
  37. private string mMarkGuid;
  38. private string mDirectory;
  39. private string mHtmlName;
  40. private string mFilePath;
  41. private string mUserName;
  42. private string mCommand;
  43. private string mContent;
  44. private string mLabelName;
  45. private string mImageName;
  46. private string mTableContent;
  47. private int mColumns;
  48. private int mCells;
  49. private string mLocalFile;
  50. private string mRemoteFile;
  51. private string mFieldName;
  52.         private string mFieldValue;
  53. private string mError;
  54. //打印控制
  55. private string mOfficePrints;
  56. private int mCopies;
  57. //自定义信息传递
  58. private string mInfo;
  59. private DBstep.iMsgServer2000 MsgObj;
  60. private iDBManage2000 DBAobj;
  61. private void Page_Load(object sender, System.EventArgs e)
  62. {
  63. // 在此处放置用户代码以初始化页面
  64.    DBAobj=(iDBManage2000)Session["DBDemo"];
  65. MsgObj = new DBstep.iMsgServer2000();
  66. mFilePath=Server.MapPath(".");
  67. mTableContent="";
  68. mColumns=3;
  69. mCells=8;
  70. MsgObj.MsgVariant(Request.BinaryRead(Request.ContentLength));
  71. if( MsgObj.GetMsgByName("DBSTEP").Equals("DBSTEP"))                                //如果是合法的信息包
  72. {
  73. mOption=MsgObj.GetMsgByName("OPTION");                                         //取得操作信息
  74. mUserName=MsgObj.GetMsgByName("USERNAME");    //取得操作用户名称
  75. if(mOption.Equals("LOADFILE"))                            //下面的代码为打开服务器数据库里的文件
  76. {
  77. mRecordID=MsgObj.GetMsgByName("RECORDID");                           //取得文档编号
  78. mFileName=MsgObj.GetMsgByName("FILENAME");                               //取得文档名称
  79. mFileType=MsgObj.GetMsgByName("FILETYPE");                               //取得文档类型
  80. MsgObj.MsgTextClear();                                                    //清除文本信息
  81. //if (MsgObj.MsgFileLoad(mFilePath+"\"+mFileName))   //从文件夹调入文档
  82. if (LoadFile())                           //从数据库调入文档
  83. {
  84. MsgObj.MsgFileBody(mFileBody);                           //将文件信息打包
  85. MsgObj.SetMsgByName("STATUS","打开成功!.");                       //设置状态信息
  86. MsgObj.MsgError("");                                           //清除错误信息
  87. }
  88. else
  89. {
  90. MsgObj.MsgError("打开失败!");                                   //设置错误信息
  91. }
  92. }
  93. else if(mOption.Equals("SAVEFILE"))                           //下面的代码为保存文件在服务器的数据库里
  94. {
  95. mRecordID=MsgObj.GetMsgByName("RECORDID");                           //取得文档编号
  96. mFileName=MsgObj.GetMsgByName("FILENAME");                           //取得文档名称
  97. mFileType=MsgObj.GetMsgByName("FILETYPE");                           //取得文档类型
  98. mContent=MsgObj.GetMsgByName("CONTENT");
  99. mFileSize=MsgObj.MsgFileSize();                           //取得文档大小
  100. mFileDate=DBAobj.GetDateTime();                                           //取得文档时间
  101. mFileBody=MsgObj.MsgFileBody();                           //取得文档内容
  102. mFilePath="";                                                             //如果保存为文件,则填写文件路径
  103. mUserName=MsgObj.GetMsgByName("USERNAME");                                //取得保存用户名称
  104. //MyDefine1=MsgObj.GetMsgByName("MyDefine1")   //取得客户端传递变量值 MyDefine1="自定义变量值1"
  105. mDescript="通用版本";                                                     //版本说明
  106. MsgObj.MsgTextClear();                                                    //清除文本信息
  107. //if (MsgObj.MsgFileSave(mFilePath+"\"+mFileName))   //保存文档内容到文件夹中
  108. if (SaveFile())                            //保存文档内容到数据库中
  109. {
  110. MsgObj.SetMsgByName("STATUS", "保存成功!");                           //设置状态信息
  111. MsgObj.MsgError("");                           //清除错误信息
  112. }
  113. else
  114. {
  115. MsgObj.MsgError("保存失败!");                                   //设置错误信息
  116. }
  117. MsgObj.MsgFileClear();
  118. }
  119. else if(mOption.Equals("LOADTEMPLATE"))                           //下面的代码为打开服务器数据库里的模板文件
  120. {
  121. mTemplate=MsgObj.GetMsgByName("TEMPLATE");                           //取得模板文档类型
  122. //本段处理是否调用文档时打开模版,
  123. //还是套用模版时打开模版。
  124. mCommand=MsgObj.GetMsgByName("COMMAND");                                  //取得客户端定义的变量COMMAND值
  125. if (mCommand.Equals("INSERTFILE"))
  126. {
  127. MsgObj.MsgTextClear();                                                //清除文本信息
  128. if (MsgObj.MsgFileLoad(mFilePath+"\Document\"+mTemplate))           //调入模板文档
  129. {
  130. MsgObj.SetMsgByName("STATUS","打开模板成功!");              //设置状态信息
  131. MsgObj.MsgError("");                                      //清除错误信息
  132. }
  133. else
  134. {
  135. MsgObj.MsgError("打开模板失败!");                          //设置错误信息
  136. }
  137. }
  138. else
  139. {
  140. MsgObj.MsgTextClear();
  141. if (LoadTemplate())                     //调入模板文档
  142. {
  143. MsgObj.MsgFileBody(mFileBody);                     //将文件信息打包
  144. MsgObj.SetMsgByName("STATUS","打开模板成功!");             //设置状态信息
  145. MsgObj.MsgError("");                                     //清除错误信息
  146. }
  147. else
  148. {
  149. MsgObj.MsgError("打开模板失败!");                         //设置错误信息
  150. }
  151. }
  152. }
  153. else if(mOption.Equals("SAVETEMPLATE"))                         //下面的代码为保存模板文件在服务器的数据库里
  154. {
  155. mTemplate=MsgObj.GetMsgByName("TEMPLATE");                         //取得文档编号
  156. mFileName=MsgObj.GetMsgByName("FILENAME");                         //取得文档名称
  157. mFileType=MsgObj.GetMsgByName("FILETYPE");                         //取得文档类型
  158. mFileSize=MsgObj.MsgFileSize();                         //取得文档大小
  159. mFileDate=DBAobj.GetDateTime();                                         //取得文档时间
  160. mFileBody=MsgObj.MsgFileBody();                         //取得文档内容
  161. mFilePath="";                                                           //如果保存为文件,则填写文件路径
  162. mUserName=MsgObj.GetMsgByName("USERNAME");                              //取得保存用户名称
  163. mDescript="通用模板";                                                   //版本说明
  164. // mMyDefine1=MsgObj.GetMsgByName("MyDefine1") '取得客户端定义的变量值MyDefine1="自定义变量值1"
  165. MsgObj.MsgTextClear();                                                  //清除文本信息
  166. if (SaveTemplate())                          //保存文档内容
  167. {
  168. MsgObj.SetMsgByName("STATUS", "保存模板成功!");                 //设置状态信息
  169. MsgObj.MsgError("");                         //清除错误信息
  170. }
  171. else
  172. {
  173. MsgObj.MsgError("保存模板失败!");                 //设置错误信息
  174. }
  175. MsgObj.MsgFileClear();                                                  //清除文档内容
  176. }
  177. else if(mOption.Equals("LISTVERSION"))                                      //下面的代码为打开版本列表
  178. {
  179. mRecordID=MsgObj.GetMsgByName("RECORDID");                         //取得文档编号
  180. mUserName=MsgObj.GetMsgByName("USERNAME");                              //取得保存用户名称
  181. MsgObj.MsgTextClear();                                                  //清除文本信息
  182. if (ListVersion())                                         //生成版本列表
  183. {
  184. MsgObj.SetMsgByName("FILEID",mFileID);                         //将文档号列表打包
  185. MsgObj.SetMsgByName("DATETIME",mDateTime);                         //将日期时间列表打包
  186. MsgObj.SetMsgByName("USERNAME",mUserName);                         //将用户名列表打包
  187. MsgObj.SetMsgByName("DESCRIPT",mDescript);                         //将说明信息列表打包
  188. MsgObj.SetMsgByName("STATUS","版本列表成功!");                     //设置状态信息
  189. MsgObj.MsgError("");                                 //清除错误信息
  190. }
  191. else
  192. {
  193. MsgObj.MsgError("版本列表失败!");                          //设置错误信息
  194. }
  195. }
  196. else if(mOption.Equals("LOADVERSION"))                                       //下面的代码为打开版本文档
  197. {
  198. mRecordID=MsgObj.GetMsgByName("RECORDID");                          //取得文档编号
  199. mFileID=MsgObj.GetMsgByName("FILEID");                              //取得版本文档号
  200. MsgObj.MsgTextClear();                                                   //清除文本信息
  201. if (LoadVersion(mFileID))                                       //调入该版本文档
  202. {
  203. MsgObj.MsgFileBody(mFileBody);                                  //将文档信息打包
  204. MsgObj.SetMsgByName("STATUS","打开版本成功!");                       //设置状态信息
  205. MsgObj.MsgError("");                                      //清除错误信息
  206. }
  207. else
  208. {
  209. MsgObj.MsgError("打开版本失败!");                         //设置错误信息
  210. }
  211. }
  212. else if(mOption.Equals("SAVEVERSION"))                                     //下面的代码为保存版本文档
  213. {
  214. mRecordID=MsgObj.GetMsgByName("RECORDID");                        //取得文档编号
  215. mFileName=MsgObj.GetMsgByName("FILENAME");                        //取得文档名称
  216. mFileType=MsgObj.GetMsgByName("FILETYPE");                        //取得文档类型
  217. mFileSize=MsgObj.MsgFileSize();                                //取得文档大小
  218. mFileDate=DBAobj.GetDateTime();                                        //取得文档时间
  219. mFileBody=MsgObj.MsgFileBody();                                //取得文档内容
  220. mFilePath="";                                                          //如果保存为文件,则填写文件路径
  221. mUserName=MsgObj.GetMsgByName("USERNAME");                             //取得保存用户名称
  222. mDescript=MsgObj.GetMsgByName("DESCRIPT");                        //取得说明信息
  223. MsgObj.MsgTextClear();
  224. if (SaveVersion())                                         //保存版本文档
  225. {
  226. MsgObj.SetMsgByName("STATUS", "保存版本成功!");                    //设置状态信息
  227. MsgObj.MsgError("");                                //清除错误信息
  228. }
  229. else
  230. {
  231. MsgObj.MsgError("保存版本失败!");                            //设置错误信息
  232. }
  233. MsgObj.MsgFileClear();                                    //清除文档内容
  234. }
  235. else if(mOption.Equals("LOADBOOKMARKS"))                                   //下面的代码为取得文档标签
  236. {
  237. mRecordID=MsgObj.GetMsgByName("RECORDID");                       //取得文档编号
  238. mTemplate=MsgObj.GetMsgByName("TEMPLATE");                       //取得模板编号
  239. mFileName=MsgObj.GetMsgByName("FILENAME");                       //取得文档名称
  240. mFileType=MsgObj.GetMsgByName("FILETYPE");                       //取得文档类型
  241. MsgObj.MsgTextClear();
  242. if (LoadBookMarks())
  243. {
  244. MsgObj.MsgError("");                              //清除错误信息
  245. }
  246. else
  247. {
  248. MsgObj.MsgError("打开标签信息失败!");                     //设置错误信息
  249. }
  250. }
  251. else if (mOption.Equals("SAVEBOOKMARKS"))                              //下面的代码为取得标签文档内容
  252. {
  253. mTemplate=MsgObj.GetMsgByName("TEMPLATE");                    //取得模板编号
  254. if (SaveBookMarks())
  255. {
  256. MsgObj.MsgError("");                                //清除错误信息
  257. }
  258. else
  259. {
  260. MsgObj.MsgError("保存标签信息失败!");                        //设置错误信息
  261. }
  262. MsgObj.MsgTextClear();
  263. }
  264. else if(mOption.Equals("LISTBOOKMARKS"))                              //下面的代码为显示标签列表
  265. {
  266. MsgObj.MsgTextClear();                                            //清除文本信息
  267. if (ListBookmarks())
  268. {
  269. MsgObj.SetMsgByName("BOOKMARK",mBookmark);                   //将用户名列表打包
  270. MsgObj.SetMsgByName("DESCRIPT",mDescript);                   //将说明信息列表打包
  271. MsgObj.MsgError("");                               //清除错误信息
  272. }
  273. else
  274. {
  275. MsgObj.MsgError("调入标签失败!");                   //设置错误信息
  276. }
  277. }
  278. else if(mOption.Equals("LOADMARKLIST"))                               //下面的代码为创建印章列表
  279. {
  280. MsgObj.MsgTextClear();                                            //清除文本信息
  281. if (LoadMarkList())
  282. {
  283. MsgObj.SetMsgByName("MARKLIST",mMarkList);                    //显示签章列表
  284. MsgObj.MsgError("");                           //清除错误信息
  285. }
  286. else
  287. {
  288. MsgObj.MsgError("创建印章列表失败!");               //设置错误信息
  289. }
  290. }
  291. else if(mOption.Equals("LOADMARKIMAGE"))                              //下面的代码为打开印章文件
  292. {
  293. mMarkName=MsgObj.GetMsgByName("IMAGENAME");                      //取得签名名称
  294. mUserName=MsgObj.GetMsgByName("USERNAME");                  //取得用户名称
  295. mPassword=MsgObj.GetMsgByName("PASSWORD");                  //取得用户密码
  296. mFileType=".jpg";                                                //默认为.jpg类型
  297. MsgObj.MsgTextClear();
  298. if (LoadMarkImage(mMarkName,mPassword))                       //调入签名信息
  299. {
  300. MsgObj.SetMsgByName("IMAGETYPE",mFileType);                  //设置签名类型
  301. MsgObj.MsgFileBody(mFileBody);                      //将文件信息打包
  302. MsgObj.SetMsgByName("STATUS","打开成功!");                //设置状态信息
  303. MsgObj.MsgError("");                          //清除错误信息
  304. }
  305. else
  306. {
  307. MsgObj.MsgError("签名或密码错误!");                      //设置错误信息
  308. }
  309. }
  310. else if(mOption.Equals("SAVESIGNATURE"))                             //下面的代码为保存签章基本信息
  311. {
  312. mRecordID=MsgObj.GetMsgByName("RECORDID");                 //取得文档编号
  313. mFileName=MsgObj.GetMsgByName("FILENAME");                 //取得标签文档内容
  314. mMarkName=MsgObj.GetMsgByName("MARKNAME");                 //取得签名名称
  315. mUserName=MsgObj.GetMsgByName("USERNAME");                 //取得用户名称
  316. mDateTime=MsgObj.GetMsgByName("DATETIME");                 //取得签名时间
  317. mHostName=Request.ServerVariables["REMOTE_ADDR"].ToString();    //取得用户IP
  318. mMarkGuid=MsgObj.GetMsgByName("MARKGUID");                      //取得唯一编号
  319. MsgObj.MsgTextClear();                                          //清除文本信息
  320. if (SaveSignature())                               //调入文档
  321. {
  322. MsgObj.SetMsgByName("STATUS","保存成功!");               //设置状态信息
  323. MsgObj.MsgError("");                         //清除错误信息
  324. }
  325. else
  326. {
  327. MsgObj.MsgError("保存印章失败!");                     //设置错误信息
  328. }
  329. }
  330. else if(mOption.Equals("LOADSIGNATURE"))                           //下面的代码为调出签章基本信息
  331. {
  332. mRecordID=MsgObj.GetMsgByName("RECORDID");                //取得文档编号
  333. MsgObj.MsgTextClear();                                         //清除文本信息
  334. if (LoadSignature() )                                  //调入文档
  335. {
  336. MsgObj.SetMsgByName("MARKNAME",mMarkName);                 //将签名名称列表打包
  337. MsgObj.SetMsgByName("USERNAME",mUserName);                 //将用户名列表打包
  338. MsgObj.SetMsgByName("DATETIME",mDateTime);                 //将时间列表打包
  339. MsgObj.SetMsgByName("HOSTNAME",mHostName);                 //将说明信息列表打包
  340. MsgObj.SetMsgByName("MARKGUID",mMarkGuid);
  341. MsgObj.SetMsgByName("STATUS","调入成功!");              //设置状态信息
  342. MsgObj.MsgError("");                        //清除错误信息
  343. }
  344. else
  345. {
  346. MsgObj.MsgError("调入印章失败!");                    //设置错误信息
  347. }
  348. }
  349. else if (mOption.Equals("SAVEASHTML"))                             //下面的代码为存为HTML页面
  350. {
  351. mHtmlName=MsgObj.GetMsgByName("HTMLNAME");                //取得标签文档内容
  352. mDirectory=MsgObj.GetMsgByName("DIRECTORY");                //取得标签文档内容
  353. MsgObj.MsgTextClear();
  354. if (mDirectory.Equals(""))
  355. {
  356. mFilePath=mFilePath + "\HTML";
  357. }
  358. else
  359. {
  360. mFilePath=mFilePath + "\HTML\" + mDirectory;
  361. }
  362. MsgObj.MakeDirectory(mFilePath);    //创建路径
  363. if (MsgObj.MsgFileSave(mFilePath + "\" + mHtmlName))
  364. {
  365. MsgObj.MsgError("");                                       //清除错误信息
  366. MsgObj.SetMsgByName("STATUS","保存成功");                  //设置状态信息
  367. }
  368. else
  369. {
  370. MsgObj.MsgError("保存失败");                               //设置错误信息
  371. }
  372. MsgObj.MsgFileClear();
  373. }
  374. else if(mOption.Equals("SAVEIMAGE"))                              //下面的代码为存为HTML图片页面
  375. {
  376. mFileName=MsgObj.GetMsgByName("HTMLNAME");                   //取得文件名称
  377. mDirectory=MsgObj.GetMsgByName("DIRECTORY");                  //取得目录名称
  378. MsgObj.MsgTextClear();                           //清除文本信息
  379. if (mDirectory.Equals("")) 
  380. mFilePath=mFilePath +"\HTMLIMAGE";
  381. }
  382. else
  383. {
  384. mFilePath=mFilePath + "\HTMLIMAGE\" + mDirectory;
  385. }
  386. MsgObj.MakeDirectory(mFilePath);                              //创建路径
  387. if (MsgObj.MsgFileSave(mFilePath+"\"+mFileName))             //保存HTML图片文件
  388. {
  389. MsgObj.MsgError("");                       //清除错误信息
  390. MsgObj.SetMsgByName("STATUS","保存HTML图片成功!");       //设置状态信息
  391. }
  392. else
  393. {
  394. MsgObj.MsgError("保存HTML图片失败!");           //设置错误信息
  395. }
  396. MsgObj.MsgFileClear();                           //清除文档内容
  397. }
  398. else if(mOption.Equals("SAVEASPAGE"))                              //'下面的代码为存为HTML图片页面
  399. {
  400. mHtmlName=MsgObj.GetMsgByName("HTMLNAME");                   //取得文件名称
  401. mDirectory=MsgObj.GetMsgByName("DIRECTORY");                  //取得目录名称
  402. MsgObj.MsgTextClear();                           //清除文本信息
  403. if (mDirectory.Equals("")) 
  404. mFilePath=mFilePath +"\HTML";
  405. }
  406. else
  407. {
  408. mFilePath=mFilePath + "\HTML\" + mDirectory;
  409. }
  410. MsgObj.MakeDirectory(mFilePath);                              //创建路径
  411. if (MsgObj.MsgFileSave(mFilePath+"\"+mHtmlName))             //保存HTML图片文件
  412. {
  413. MsgObj.MsgError("");                       //清除错误信息
  414. MsgObj.SetMsgByName("STATUS","保存批注HTML图片成功!");       //设置状态信息
  415. }
  416. else
  417. {
  418. MsgObj.MsgError("保存批注HTML图片失败!");           //设置错误信息
  419. }
  420. MsgObj.MsgFileClear();                           //清除文档内容
  421. }
  422. else if(mOption.Equals("INSERTFILE"))       //下面的代码为插入文件
  423. {
  424. mRecordID=MsgObj.GetMsgByName("RECORDID");       //取得文档编号
  425. mFileName=MsgObj.GetMsgByName("FILENAME");           //取得文档名称
  426. mFileType=MsgObj.GetMsgByName("FILETYPE");           //取得文档类型
  427. MsgObj.MsgTextClear();                                        //清除文本信息
  428. if (LoadFile())       //调入文档
  429. {
  430. MsgObj.MsgFileBody(mFileBody);       //将文件信息打包
  431. MsgObj.SetMsgByName("POSITION","Content");       //设置插入的位置[书签] 
  432. MsgObj.SetMsgByName("STATUS","插入文件成功!.");   //设置状态信息
  433. MsgObj.MsgError("");       //清除错误信息
  434. }
  435. else
  436. {
  437. MsgObj.MsgError("插入文件失败!");  //设置错误信息
  438. }
  439. }
  440. else if(mOption.Equals("UPDATEFILE"))  //下面的代码为更新保存文件
  441. {
  442. mRecordID=MsgObj.GetMsgByName("RECORDID");      //取得文档编号
  443. mFileName=MsgObj.GetMsgByName("FILENAME");      //取得文档名称
  444. mFileType=MsgObj.GetMsgByName("FILETYPE");      //取得文档类型
  445. mFileSize=MsgObj.MsgFileSize();      //取得文档大小
  446. mFileDate=DBAobj.GetDateTime();      //取得文档时间
  447. mFileBody=MsgObj.MsgFileBody();      //取得文档内容
  448. mFilePath="";      //如果保存为文件,则填写文件路径
  449. mUserName=MsgObj.GetMsgByName("USERNAME");      //取得保存用户名称
  450. mDescript="定稿版本";      //定稿版本说明
  451. MsgObj.MsgTextClear();
  452. if (SaveVersion())       //保存版本文档 也可以根据实际需要,保存到其他数据库中
  453. {
  454. MsgObj.SetMsgByName("STATUS", "保存版本成功!");      //设置状态信息
  455. MsgObj.MsgError("");      //清除错误信息
  456. }
  457. else
  458. {
  459. MsgObj.MsgError("保存版本失败!");      //设置错误信息
  460. }
  461. MsgObj.MsgFileClear();                                       //清除文档内容
  462. }
  463. else if(mOption.Equals("INSERTIMAGE"))                           //下面的代码为插入服务器图片
  464. {
  465. mRecordID=MsgObj.GetMsgByName("RECORDID");              //取得文档编号
  466. mLabelName=MsgObj.GetMsgByName("LABELNAME");                 //标签名
  467. mImageName=MsgObj.GetMsgByName("IMAGENAME");                 //图片名
  468. mFilePath=mFilePath+"\Document\"+mImageName;               //图片在服务器的完整路径
  469. mFileType=mImageName.Substring(mImageName.Length-4,4).ToLower();  //取得文件的类型
  470. MsgObj.MsgTextClear();
  471. if (MsgObj.MsgFileLoad(mFilePath))                  //调入图片
  472. {
  473. MsgObj.SetMsgByName("IMAGETYPE",mFileType);          //指定图片的类型 
  474. MsgObj.SetMsgByName("POSITION",mLabelName);          //设置插入的位置[书签对象名] 
  475. MsgObj.SetMsgByName("STATUS","插入图片成功!");           //设置状态信息
  476. MsgObj.MsgError("");                              //清除错误信息
  477. }
  478. else
  479. {
  480. MsgObj.MsgError("插入图片失败!");              //设置错误信息
  481. }
  482. }
  483. else if(mOption.Equals("PUTFILE"))                               //下面的代码为请求上传文件操作
  484. {
  485. mRecordID=MsgObj.GetMsgByName("RECORDID");                   //取得文档编号
  486. mFileBody=MsgObj.MsgFileBody();                               //取得文档内容
  487. mLocalFile=MsgObj.GetMsgByName("LOCALFILE");                 //取得 本地文件名称
  488. mRemoteFile=MsgObj.GetMsgByName("REMOTEFILE");               //取得远程文件名称
  489. mFilePath=mFilePath+"\Document\"+mRemoteFile;              //上传文件在服务器的完整路径
  490. MsgObj.MsgTextClear();                                       //清除文本信息
  491. if(MsgObj.MsgFileSave(mFilePath))                            //保存文档内容
  492. {
  493. MsgObj.SetMsgByName("STATUS","保存上传文件成功!");       //设置状态信息
  494. MsgObj.MsgError("");                                     //清除错误信息
  495. }
  496. else
  497. {
  498. MsgObj.MsgError("保存上传文件失败!");                    //设置错误信息
  499. }
  500. MsgObj.MsgFileClear();                                       //清除文档内容
  501. }
  502. else if(mOption.Equals("GETFILE"))                     //下面的代码为请求下载文件操作
  503. {
  504. mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号
  505. mLocalFile=MsgObj.GetMsgByName("LOCALFILE");     //取得本地文件名称
  506. mRemoteFile=MsgObj.GetMsgByName("REMOTEFILE");     //取得远程文件名称
  507. MsgObj.MsgTextClear();     //清除文本信息
  508. mFilePath=mFilePath+"\Document\"+mRemoteFile;
  509. if (MsgObj.MsgFileLoad(mFilePath))     //调入文档内容
  510. {
  511. MsgObj.SetMsgByName("STATUS","保存下载文件成功!");       //设置状态信息
  512. MsgObj.MsgError("");                     //清除错误信息
  513. }
  514. else
  515. {
  516. MsgObj.MsgError("下载文件失败!");     //设置错误信息
  517. }
  518. }
  519. else if(mOption.Equals("DATETIME"))                     //'下面的代码为请求取得服务器时间
  520. {
  521. MsgObj.MsgTextClear();     //清除文本信息
  522. MsgObj.SetMsgByName("DATETIME","2006-01-01 10:24:24!");       //标准日期格式字串,如 2005-8-16 10:20:35
  523. MsgObj.MsgError("");                     //清除错误信息
  524. }
  525. else if(mOption.Equals("SENDMESSAGE"))                          //下面的代码为Web页面请求信息[扩展接口]
  526. {
  527. mRecordID=MsgObj.GetMsgByName("RECORDID"); //取得文档编号
  528. mFileName=MsgObj.GetMsgByName("FILENAME"); //取得文档名称
  529. mFileType=MsgObj.GetMsgByName("FILETYPE"); //取得文档类型
  530. mCommand=MsgObj.GetMsgByName("COMMAND"); //取得操作类型 InportText or ExportText
  531. mContent=MsgObj.GetMsgByName("CONTENT"); //取得文本信息 Content
  532. mOfficePrints=MsgObj.GetMsgByName("OFFICEPRINTS"); //取得Office文档的打印次数
  533. mInfo = MsgObj.GetMsgByName("TESTINFO"); //取得客户端传来的自定义信息
  534. //==============================================================================================
  535. mFieldName=MsgObj.GetMsgByName("FIELDNAME");  //取得域的代码字符串
  536. //==============================================================================================
  537. MsgObj.MsgTextClear();
  538. if (mCommand.Equals("WEBFIELD"))
  539. {
  540. /*mFieldName就等于CCWordApp.cs文件内ReplaceTag函数中的sheep
  541.  * mFieldValue:域的值。等于CCWordApp.cs文件内ReplaceTag函数中val
  542.  * 
  543.  * */
  544.     MsgObj.SetMsgByName("FIELDNAME",mFieldValue);
  545. }
  546. else if (mCommand.Equals("INPORTTEXT"))
  547. {
  548. if (LoadContent())
  549. {
  550. MsgObj.SetMsgByName("CONTENT",mContent); 
  551. MsgObj.SetMsgByName("STATUS", "导入成功!");          //设置状态信息
  552. MsgObj.MsgError("");          //清除错误信息
  553. }
  554. else
  555. {
  556. MsgObj.MsgError("导入失败!");           //设置错误信息
  557. }  
  558. }
  559. else if (mCommand.Equals("EXPORTTEXT"))
  560. {
  561. if (SaveContent())
  562. {
  563. MsgObj.SetMsgByName("STATUS", "导出成功!");            //设置状态信息
  564. MsgObj.MsgError("");            //清除错误信息
  565. }
  566. else
  567. {
  568. MsgObj.MsgError("导出失败!");            //设置错误信息
  569. }  
  570. }
  571. else if (mCommand.Equals("WORDTABLE"))
  572. {
  573. if (GetWordTable())
  574. {
  575. MsgObj.SetMsgByName("COLUMNS",mColumns.ToString());    //列
  576. MsgObj.SetMsgByName("CELLS",mCells.ToString());       //
  577. MsgObj.SetMsgByName("WORDCONTENT",mTableContent);       //表格内容
  578. MsgObj.SetMsgByName("STATUS", "增加和填充成功成功!"); //设置状态信息
  579. MsgObj.MsgError(""); //清除错误信息
  580. }
  581. else
  582. {
  583. MsgObj.MsgError("增加表格行失败!"); //设置错误信息
  584. }
  585. }
  586. else if (mCommand.Equals("COPIES"))
  587. {
  588. mCopies=Convert.ToInt16(mOfficePrints);
  589. if(mCopies<=2)
  590. {
  591. if(UpdataCopies(2-mCopies))
  592. {
  593. MsgObj.SetMsgByName("STATUS","1");
  594. MsgObj.MsgError("");
  595. }
  596. }
  597. else
  598. {
  599. MsgObj.SetMsgByName("STATUS","0");
  600. MsgObj.MsgError("");
  601. }
  602. }
  603. else if (mCommand.Equals("SELFINFO"))
  604. {
  605. mInfo = "服务器端收到客户端传来的信息:“" + mInfo + "” | " ;
  606. mInfo = mInfo + "服务器端发回当前服务器时间:" + DBAobj.GetDateTime(); //组合返回给客户端的信息
  607. MsgObj.SetMsgByName("RETURNINFO",mInfo); //将返回的信息设置到信息包中
  608. }
  609. else
  610. {
  611. MsgObj.MsgError("客户端Web发送数据包命令没有合适的处理函数!["+mCommand+"]");
  612. MsgObj.MsgTextClear();
  613. MsgObj.MsgFileClear();
  614. }
  615. else if(mOption.Equals("SAVEPAGE"))                                 //下面的代码为保存为全文批注格式文件
  616. {
  617. mRecordID=MsgObj.GetMsgByName("RECORDID");                      //取得文档编号
  618. mFilePath=mFilePath +"\Document\"+mRecordID +".pgf";          //全文批注文件的完整路径
  619. MsgObj.MsgTextClear();                                          //清除文体信息
  620. if(MsgObj.MsgFileSave(mFilePath))                               //保存全文批注文件
  621. {
  622. MsgObj.SetMsgByName("STATUS","保存全文批注成功!");                  //设置状态信息
  623. MsgObj.MsgError("");                                        //清除错误信息
  624. }
  625. else
  626. {
  627. MsgObj.MsgError("保存全文批注失败!");                       //设置错误信息
  628. }
  629. MsgObj.MsgFileClear();                                           //清除文本信息
  630. }
  631. else if(mOption.Equals("LOADPAGE"))                                  //下面的代码为调入全文批注格式文件
  632. {
  633. mRecordID=MsgObj.GetMsgByName("RECORDID");                       //取得文档编号
  634. mFilePath=mFilePath + "\Document\"+mRecordID +".pgf";          //全文批注文件的完整路径
  635. MsgObj.MsgTextClear();                                           //清除文本信息
  636. if(MsgObj.MsgFileLoad(mFilePath))                                //调入全文批注文件
  637. {
  638. MsgObj.SetMsgByName("STATUS","打开全文批注成功!");                   //设置状态信息
  639. MsgObj.MsgError("");                                         //清除错误信息
  640. }
  641. else
  642. {
  643. MsgObj.MsgError("打开全文批注失败!");                         //设置状态信息
  644. }
  645. }
  646. else 
  647. {
  648. MsgObj.MsgError("Error:packet message");
  649. MsgObj.MsgTextClear();
  650. MsgObj.MsgFileClear();
  651. }
  652. }
  653. else
  654. {
  655. MsgObj.MsgError("Error:packet message");
  656. MsgObj.MsgTextClear();
  657. MsgObj.MsgFileClear();
  658. }
  659.  
  660. Response.BinaryWrite(MsgObj.MsgVariant());
  661. }
  662. //
  663. // 文档、模板管理代码    开始  *******************************
  664. //
  665.         //调出模板文档,将模板文档内容保存在mFileBody里,以便进行打包
  666. private bool LoadTemplate()
  667. {
  668. bool mResult=false;
  669. string strSelectCmd="SELECT FileBody FROM Template_File WHERE RecordID='" + mTemplate  + "'";
  670. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  671. SqlDataReader mReader = mCommand.ExecuteReader();
  672. if (mReader.Read())
  673. {
  674. mFileBody=mReader.GetSqlBinary(0).Value; 
  675. mResult=true;
  676. }
  677. else
  678. {
  679. mResult=false;
  680. }
  681. mReader.Close();
  682. return (mResult);
  683. }
  684. //保存模板文档,如果模板文档存在,则覆盖,不存在,则添加
  685. private bool SaveTemplate()
  686. {
  687. bool mResult=false;
  688. SqlCommand nCommand;
  689. string strUpdateCmd;
  690. string strInsertCmd;
  691. string strSelectCmd= "SELECT * FROM Template_File WHERE RecordID='" + mTemplate + "'";
  692. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  693. SqlDataReader mReader = mCommand.ExecuteReader();
  694. if (mReader.Read())
  695. {
  696. strUpdateCmd="update Template_File set RecordID=@RecordID,FileName=@FileName,FileType=@FileType,FileSize=@FileSize,FileDate=@FileDate,FileBody=@FileBody,FilePath=@FilePath,UserName=@UserName,Descript=@Descript WHERE RecordID='" + mTemplate + "'";
  697. nCommand = new SqlCommand(strUpdateCmd, DBAobj.Connection);
  698. }
  699. else
  700. {
  701. strInsertCmd="insert into Template_File (RecordID,FileName,FileType,FileSize,FileDate,FileBody,FilePath,UserName,Descript) values (@RecordID,@FileName,@FileType,@FileSize,@FileDate,@FileBody,@FilePath,@UserName,@Descript)";
  702. nCommand = new SqlCommand(strInsertCmd, DBAobj.Connection);
  703. }
  704. mReader.Close();
  705. try
  706. {
  707. nCommand.Parameters.Add(new SqlParameter("@RecordID", SqlDbType.VarChar,16)); 
  708. nCommand.Parameters["@RecordID"].Value = mTemplate;
  709. nCommand.Parameters.Add(new SqlParameter("@FileName",SqlDbType.VarChar,64)); 
  710. nCommand.Parameters["@FileName"].Value = mFileName;
  711. nCommand.Parameters.Add(new SqlParameter("@FileType",SqlDbType.VarChar,4)); 
  712. nCommand.Parameters["@FileType"].Value = mFileType;
  713. nCommand.Parameters.Add(new SqlParameter("@FileSize",SqlDbType.Int)); 
  714. nCommand.Parameters["@FileSize"].Value = mFileSize;
  715. nCommand.Parameters.Add(new SqlParameter("@FileDate",SqlDbType.DateTime)); 
  716. nCommand.Parameters["@FileDate"].Value = mFileDate;
  717. nCommand.Parameters.Add(new SqlParameter("@FileBody",SqlDbType.Image)); 
  718. nCommand.Parameters["@FileBody"].Value = mFileBody;
  719. nCommand.Parameters.Add(new SqlParameter("@FilePath",SqlDbType.VarChar,64)); 
  720. nCommand.Parameters["@FilePath"].Value = mFilePath;
  721. nCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,32)); 
  722. nCommand.Parameters["@UserName"].Value = mUserName;
  723. nCommand.Parameters.Add(new SqlParameter("@Descript",SqlDbType.VarChar,64)); 
  724. nCommand.Parameters["@Descript"].Value = mDescript;
  725. nCommand.ExecuteNonQuery();
  726. mResult=true;
  727. }
  728. catch(SqlException e)
  729. {
  730. mError=e.ToString();
  731. mResult=false;
  732. }
  733. return (mResult);
  734. }
  735. //调出文档,将文档内容保存在mFileBody里,以便进行打包
  736. private bool LoadFile()
  737. {
  738. bool mResult=false;
  739. string strSelectCmd="SELECT FileBody FROM Document_File WHERE RecordID='" + mRecordID + "'";
  740. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  741. SqlDataReader mReader = mCommand.ExecuteReader();
  742. if (mReader.Read())
  743. {
  744. mFileBody=mReader.GetSqlBinary(0).Value; 
  745. mResult=true;
  746. }
  747. else
  748. {
  749. mResult=false;
  750. }
  751. mReader.Close();
  752. return (mResult);
  753. }
  754. //保存文档,如果文档存在,则覆盖,不存在,则添加
  755. private bool SaveFile()
  756. {
  757. bool mResult=false;
  758. SqlCommand nCommand;
  759. string strUpdateCmd;
  760. string strInsertCmd;
  761. string strSelectCmd= "SELECT * FROM Document_File WHERE RecordID='" + mRecordID + "'";
  762. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  763. SqlDataReader mReader = mCommand.ExecuteReader();
  764. if (mReader.Read())
  765. {
  766. strUpdateCmd="update Document_File set RecordID=@RecordID,FileName=@FileName,FileType=@FileType,FileSize=@FileSize,FileDate=@FileDate,FileBody=@FileBody,FilePath=@FilePath,UserName=@UserName,Descript=@Descript WHERE RecordID='" + mRecordID + "'";
  767. nCommand = new SqlCommand(strUpdateCmd, DBAobj.Connection);
  768. }
  769. else
  770. {
  771. strInsertCmd="insert into Document_File (RecordID,FileName,FileType,FileSize,FileDate,FileBody,FilePath,UserName,Descript) values (@RecordID,@FileName,@FileType,@FileSize,@FileDate,@FileBody,@FilePath,@UserName,@Descript)";
  772. nCommand = new SqlCommand(strInsertCmd, DBAobj.Connection);
  773. }
  774. mReader.Close();
  775. try
  776. {
  777. nCommand.Parameters.Add(new SqlParameter("@RecordID", SqlDbType.VarChar,16)); 
  778. nCommand.Parameters["@RecordID"].Value = mRecordID;
  779. nCommand.Parameters.Add(new SqlParameter("@FileName",SqlDbType.VarChar,64)); 
  780. nCommand.Parameters["@FileName"].Value = mFileName;
  781. nCommand.Parameters.Add(new SqlParameter("@FileType",SqlDbType.VarChar,4)); 
  782. nCommand.Parameters["@FileType"].Value = mFileType;
  783. nCommand.Parameters.Add(new SqlParameter("@FileSize",SqlDbType.Int)); 
  784. nCommand.Parameters["@FileSize"].Value = mFileSize;
  785. nCommand.Parameters.Add(new SqlParameter("@FileDate",SqlDbType.DateTime)); 
  786. nCommand.Parameters["@FileDate"].Value = mFileDate;
  787. nCommand.Parameters.Add(new SqlParameter("@FileBody",SqlDbType.Image)); 
  788. nCommand.Parameters["@FileBody"].Value = mFileBody;
  789. nCommand.Parameters.Add(new SqlParameter("@FilePath",SqlDbType.VarChar,64)); 
  790. nCommand.Parameters["@FilePath"].Value = mFilePath;
  791. nCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,32)); 
  792. nCommand.Parameters["@UserName"].Value = mUserName;
  793. nCommand.Parameters.Add(new SqlParameter("@Descript",SqlDbType.VarChar,64)); 
  794. nCommand.Parameters["@Descript"].Value = mDescript;
  795. nCommand.ExecuteNonQuery();
  796. mResult=true;
  797. }
  798. catch(SqlException e)
  799. {
  800. mError=e.ToString();
  801. mResult=false;
  802. }
  803. return (mResult);
  804. }
  805. //
  806. // 文档、模板管理代码    结束  *******************************
  807. //
  808. //
  809. // 版本管理代码    开始  *******************************
  810. //
  811. //列出所有版本信息
  812. private bool ListVersion()
  813. {
  814. bool mResult=false;
  815. mFileID="rn";
  816. mDateTime="保存时间rn";
  817. mUserName="用户名rn";
  818. mDescript="版本说明rn";
  819. try
  820. {
  821. string strSelectCmd= "SELECT FileID,FileDate,UserName,Descript FROM Version_File WHERE RecordID='" + mRecordID + "'";
  822. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  823. SqlDataReader mReader = mCommand.ExecuteReader();
  824. while(mReader.Read())
  825. {
  826. mFileID+=mReader["FileID"].ToString() +"rn";                  //文件号列表
  827. mDateTime+=mReader["FileDate"].ToString() +"rn";                           //日期列表
  828. mUserName+=mReader["UserName"].ToString() +"rn";                           //用户名列表
  829. mDescript+=mReader["Descript"].ToString() +"rn";                           //如果说明信息里有回车,则将回车变成>符号
  830. }
  831. mReader.Close();
  832. mResult=true;
  833. }
  834. catch(SqlException e)
  835. {
  836. mError=e.ToString();
  837. mResult=false;
  838. }
  839. return (mResult);
  840. }
  841. //调入选中版本,通过文件号调用mFileID,并把文件放入mFileBody里,以便进行打包
  842. private bool LoadVersion(string mFileID)
  843. {
  844. bool mResult=false;
  845. try
  846. {
  847. string strSelectCmd="SELECT FileBody FROM Version_File WHERE RecordID='" + mRecordID + "' and  FileID=" + mFileID;
  848. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  849. SqlDataReader mReader = mCommand.ExecuteReader();
  850. if (mReader.Read())
  851. {
  852. mFileBody=mReader.GetSqlBinary(0).Value; 
  853. mResult=true;
  854. }
  855. else
  856. {
  857. mResult=false;
  858. }
  859. mReader.Close();
  860. }
  861. catch(SqlException e)
  862. {
  863. mError=e.ToString();
  864. mResult=false;
  865. }
  866. return (mResult);
  867. }
  868. //保存版本,将该版本文件存盘,并将说明信息也保存起来
  869. private bool SaveVersion()
  870. {
  871. bool mResult=false;
  872. SqlCommand nCommand;
  873. string strInsertCmd;
  874. strInsertCmd="insert into Version_File (RecordID,FileName,FileType,FileSize,FileDate,FileBody,FilePath,UserName,Descript) values (@RecordID,@FileName,@FileType,@FileSize,@FileDate,@FileBody,@FilePath,@UserName,@Descript)";
  875. nCommand = new SqlCommand(strInsertCmd, DBAobj.Connection);
  876. try
  877. {
  878. nCommand.Parameters.Add(new SqlParameter("@RecordID", SqlDbType.VarChar,16)); 
  879. nCommand.Parameters["@RecordID"].Value = mRecordID;
  880. nCommand.Parameters.Add(new SqlParameter("@FileName",SqlDbType.VarChar,64)); 
  881. nCommand.Parameters["@FileName"].Value = mFileName;
  882. nCommand.Parameters.Add(new SqlParameter("@FileType",SqlDbType.VarChar,4)); 
  883. nCommand.Parameters["@FileType"].Value = mFileType;
  884. nCommand.Parameters.Add(new SqlParameter("@FileSize",SqlDbType.Int)); 
  885. nCommand.Parameters["@FileSize"].Value = mFileSize;
  886. nCommand.Parameters.Add(new SqlParameter("@FileDate",SqlDbType.DateTime)); 
  887. nCommand.Parameters["@FileDate"].Value = mFileDate;
  888. nCommand.Parameters.Add(new SqlParameter("@FileBody",SqlDbType.Image)); 
  889. nCommand.Parameters["@FileBody"].Value = mFileBody;
  890. nCommand.Parameters.Add(new SqlParameter("@FilePath",SqlDbType.VarChar,64)); 
  891. nCommand.Parameters["@FilePath"].Value = mFilePath;
  892. nCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,32)); 
  893. nCommand.Parameters["@UserName"].Value = mUserName;
  894. nCommand.Parameters.Add(new SqlParameter("@Descript",SqlDbType.VarChar,64)); 
  895. nCommand.Parameters["@Descript"].Value = mDescript;
  896. nCommand.ExecuteNonQuery();
  897. mResult=true;
  898. }
  899. catch(SqlException e)
  900. {
  901. mError=e.ToString();
  902. mResult=false;
  903. }
  904. return (mResult);
  905. }
  906. //
  907. // 版本管理代码    结束  *******************************
  908. //
  909. //
  910. // 标签管理代码   开始  *******************************
  911. //
  912. //创建标签列表
  913. private bool ListBookmarks()
  914. {
  915. bool mResult=false;
  916. mBookmark="";
  917. mDescript="";
  918. try
  919. {
  920. string strSelectCmd= "SELECT * FROM Bookmarks ";
  921. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  922. SqlDataReader mReader = mCommand.ExecuteReader();
  923. while(mReader.Read())
  924. {
  925. mBookmark+=mReader["BookMarkName"]+"rn";                              //用户名列表
  926. mDescript+=mReader["BookMarkDesc"]+"rn";                             //如果说明信息里有回车,则将回车变成>符号
  927. }
  928. mReader.Close();
  929. mResult=true;
  930. }
  931. catch(SqlException e)
  932. {
  933. mError=e.ToString();
  934. mResult=false;
  935. }
  936. return (mResult);
  937. }
  938. //装入书签
  939. private bool LoadBookMarks()
  940. {
  941. bool mResult=false;
  942. try
  943. {
  944. string strSelectCmd = "select b.BookMarkName,b.BookMarkText from Template_BookMarks a,BookMarks b where a.BookMarkname=b.BookMarkName and a.RecordID='"+ mTemplate +"'";
  945. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  946. SqlDataReader mReader = mCommand.ExecuteReader();
  947. while(mReader.Read())
  948. {
  949. //说明:我们测试程序把SQL语句直接写到替换标签内容
  950. //实际使用中,这个标签内容是通过Sql语句得到的。
  951. //生成SQL查询语句  result.getString("BookMarkText") & "条件"
  952. //当前纪录号位 mRecordID
  953. //BookMarkValue=生成SQL运行结果
  954. string mBookMarkName=mReader["BookMarkName"].ToString() ;
  955. string mBookMarkValue=mReader["BookMarkText"].ToString() ;
  956. MsgObj.SetMsgByName(mBookMarkName,mBookMarkValue);
  957. }
  958. mReader.Close();
  959. mResult=true;
  960. }
  961. catch(SqlException e)
  962. {
  963. mError=e.ToString();
  964. mResult=false;
  965. }
  966. return (mResult);
  967. }
  968. //保存模板对应的标签,第7个标签开始,0-6是iWebOffice全局变量(DBSTEP OPTION RECORDID TEMPLATE FILENAME FILETYPE USERNAME)
  969. private bool SaveBookMarks()
  970. {
  971. bool mResult=false;
  972. string mBookMarkName;
  973. int mIndex;
  974. try
  975. {
  976. string strDeleteCmd = "DELETE FROM Template_BookMarks Where RecordID='"+ mTemplate+"'";
  977. SqlCommand nCommand = new SqlCommand(strDeleteCmd,DBAobj.Connection);
  978. nCommand.ExecuteNonQuery();
  979. for (mIndex=7;mIndex<=MsgObj.GetFieldCount()-1;mIndex++)
  980. {
  981. mBookMarkName=MsgObj.GetFieldName(mIndex);
  982. string strInsertCmd = "insert into Template_BookMarks (RecordId,BookMarkName) values ('"+ mTemplate +"','"+ mBookMarkName +"')";
  983. SqlCommand mCommand = new SqlCommand(strInsertCmd,DBAobj.Connection);
  984. mCommand.ExecuteNonQuery(); 
  985. }
  986. mResult=true;
  987. }
  988. catch(SqlException e)
  989. {
  990. mError=e.ToString();
  991. mResult=false;
  992. }
  993. return (mResult);
  994. }
  995. //
  996. // 标签管理代码    结束  *******************************
  997. //
  998. //
  999. // 签章管理代码    开始  *******************************
  1000. //
  1001. //创建签章名称列表
  1002. private bool LoadMarkList()
  1003. {
  1004. bool mResult=false;
  1005. try
  1006. {
  1007. mMarkList="";
  1008. string strSelectCmd = "SELECT MarkName FROM Signature";
  1009. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  1010. SqlDataReader mReader = mCommand.ExecuteReader();
  1011. while(mReader.Read())
  1012. {
  1013. mMarkList+=mReader["MarkName"].ToString() +"rn";
  1014. }
  1015. mReader.Close();
  1016. mResult=true;
  1017. }
  1018. catch(SqlException e)
  1019. {
  1020. mError=e.ToString();
  1021. mResult=false;
  1022. }
  1023. return (mResult);
  1024. }
  1025. //调出签章图案
  1026. private bool LoadMarkImage(string vMarkName,string vPassWord)
  1027. {
  1028. bool mResult=false;
  1029. try
  1030. {
  1031. string strSelectCmd="SELECT MarkBody,MarkType FROM Signature WHERE MarkName='" + vMarkName + "' and PassWord='" + vPassWord + "'";
  1032. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  1033. SqlDataReader mReader = mCommand.ExecuteReader();
  1034. if (mReader.Read())
  1035. {
  1036. mFileBody=mReader.GetSqlBinary(0).Value; 
  1037. mFileType=mReader.GetString(1).ToString();  
  1038. mResult=true;
  1039. }
  1040. else
  1041. {
  1042. mResult=false;
  1043. }
  1044. mReader.Close();
  1045. }
  1046. catch(SqlException e)
  1047. {
  1048. mError=e.ToString();
  1049. mResult=false;
  1050. }
  1051. return (mResult);
  1052. }
  1053. //保存印章,将该印章存盘,并将说明信息也保存起来
  1054. private bool SaveSignature()
  1055. {
  1056. bool mResult=false;
  1057. SqlCommand nCommand;
  1058. string strInsertCmd;
  1059. strInsertCmd="insert into Document_Signature ([RecordID],[MarkName],[UserName],[DateTime],[HostName],[MarkGuid]) values (@RecordID,@MarkName,@UserName,@DateTime,@HostName,@MarkGuid) ";
  1060. nCommand = new SqlCommand(strInsertCmd, DBAobj.Connection);
  1061. try
  1062. {
  1063. nCommand.Parameters.Add(new SqlParameter("@RecordID", SqlDbType.VarChar,16)); 
  1064. nCommand.Parameters["@RecordID"].Value = mRecordID;
  1065. nCommand.Parameters.Add(new SqlParameter("@MarkName",SqlDbType.VarChar,64)); 
  1066. nCommand.Parameters["@MarkName"].Value = mMarkName;
  1067. nCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,32)); 
  1068. nCommand.Parameters["@UserName"].Value = mUserName;
  1069. nCommand.Parameters.Add(new SqlParameter("@DateTime",SqlDbType.DateTime)); 
  1070. nCommand.Parameters["@DateTime"].Value = mDateTime;
  1071. nCommand.Parameters.Add(new SqlParameter("@HostName",SqlDbType.VarChar,64)); 
  1072. nCommand.Parameters["@HostName"].Value = mHostName;
  1073. nCommand.Parameters.Add(new SqlParameter("@MarkGuid",SqlDbType.VarChar,64)); 
  1074. nCommand.Parameters["@MarkGuid"].Value = mMarkGuid;
  1075. nCommand.ExecuteNonQuery();
  1076. mResult=true;
  1077. }
  1078. catch(SqlException e)
  1079. {
  1080. mError=e.ToString();
  1081. mResult=false;
  1082. }
  1083. return (mResult);
  1084. }
  1085. //列出所有版本信息
  1086. private bool LoadSignature()
  1087. {
  1088. bool mResult=false;
  1089. try
  1090. {
  1091. mMarkName="印章名称rn";
  1092. mUserName="签名人rn";
  1093. mDateTime="签章时间rn";
  1094. mHostName="客户端IPrn";
  1095. mMarkGuid="序列号rn";
  1096. string strSelectCmd="SELECT [MarkName],[UserName],[DateTime],[HostName],[MarkGuid] FROM Document_Signature WHERE RecordID='" + mRecordID + "'";
  1097. SqlCommand mCommand = new SqlCommand(strSelectCmd,DBAobj.Connection);
  1098. SqlDataReader mReader = mCommand.ExecuteReader();
  1099. while(mReader.Read())
  1100. {
  1101. mMarkName+=mReader["MarkName"].ToString()+"rn";                        //文件号列表
  1102. mUserName+=mReader["UserName"].ToString()+"rn";                           //日期列表
  1103. mDateTime+=mReader.GetDateTime(2).ToString("yyyy-MM-dd HH:mm:ss")+"rn";                           //用户名列表
  1104. mHostName+=mReader["HostName"].ToString()+"rn";                           //如果说明信息里有回车,则将回车变成>符号
  1105. mMarkGuid+=mReader["MarkGuid"].ToString()+"rn";
  1106. }
  1107. mReader.Close();
  1108. mResult=true;
  1109. }
  1110. catch(SqlException e)
  1111. {
  1112. mError=e.ToString();
  1113. mResult=false;
  1114. }
  1115. return (mResult);
  1116. }
  1117. //
  1118. // 签章管理代码    结束  *******************************
  1119. //
  1120. //
  1121. // 扩展功能代码    开始  *******************************
  1122. //
  1123. //调出所对应的文本 
  1124. private bool LoadContent()
  1125. {
  1126. bool mResult=false;
  1127. //打开数据库
  1128. //根据 mRecordID 或 mFileName 等信息
  1129. //提取文本信息付给mContent即可。
  1130. //本演示假设取得的文本信息如下:
  1131. mContent="";
  1132. mContent+="本文的纪录号:"+mRecordID+"n";
  1133. mContent+="本文的文件名:"+mFileName+"n";
  1134. mContent+="    这个部分请自己加入,和你们的数据库结合起来就可以了n";
  1135. mResult=true;
  1136. return (mResult);
  1137. }
  1138. //保存所对应的文本 
  1139. private bool SaveContent()
  1140. {
  1141. bool mResult=false;
  1142. //打开数据库
  1143. //根据 mRecordID 或 mFileName 等信息
  1144. //插入文本信息 mContent里的文本到数据库中即可。
  1145. mResult=true;
  1146. return (mResult);
  1147. }
  1148. //增加行并填充表格内容
  1149. private bool GetWordTable()
  1150. {
  1151. int i,n;
  1152. string strI,strN;
  1153. bool mResult;
  1154. //该部分内容可以从数据库中读取
  1155. try
  1156. {
  1157. for (i=1;i<=mColumns;i++)
  1158. {
  1159. strI = i.ToString();
  1160. for (n=1;n<=mCells;n++)
  1161. {
  1162. strN = n.ToString();
  1163. MsgObj.SetMsgByName(strI + strN, "内容" +DBAobj.GetDateTime());
  1164. }
  1165. }
  1166. mResult=true;
  1167. }
  1168. catch(Exception e)
  1169. {
  1170. mError=e.ToString();
  1171. mResult=false;
  1172. }
  1173. return (mResult);
  1174. }
  1175. private bool UpdataCopies(int mLeftCopies)
  1176. {
  1177. bool mResult;
  1178. mResult=true;
  1179. //该函数可以把打印减少的次数记录到数据库
  1180.    
  1181. //根据自己的系统进行扩展该功能
  1182. return (mResult);
  1183. }
  1184. //
  1185. // 扩展功能代码   结束  *******************************
  1186. //
  1187. #region Web Form Designer generated code
  1188. override protected void OnInit(EventArgs e)
  1189. {
  1190. //
  1191. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  1192. //
  1193. InitializeComponent();
  1194. base.OnInit(e);
  1195. }
  1196. /// <summary>
  1197. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  1198. /// 此方法的内容。
  1199. /// </summary>
  1200. private void InitializeComponent()
  1201. {    
  1202. this.Load += new System.EventHandler(this.Page_Load);
  1203. }
  1204. #endregion
  1205. }
  1206. }