以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  能不能利用代码给WORD报表加一个文档保护密码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64578)

--  作者:wusim
--  发布时间:2015/2/24 16:52:00
--  能不能利用代码给WORD报表加一个文档保护密码?
能不能利用代码给WORD报表加一个文档保护密码?防止打开WORD报表后修改文档。
--  作者:有点甜
--  发布时间:2015/2/24 16:57:00
--  

 可以,参考

 

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\\test.doc"
    Dim doc = app.Documents.Open(fileName)
    doc.Protect (Password:="123456", NoReset:=False, Type:= _
        MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
    app.Documents.save
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try


--  作者:wusim
--  发布时间:2015/2/24 22:11:00
--  
请问哪里出问题:我想生成WORD报表后加密码后再显示报表。如果第二记录再生成WORD报表时,由于已加密码不能再生成,请问怎样处理好?是先删除已加密文件,再粘贴一个没有加密密码的文件还是先解除保护后再生成好?
Dim tm As String  = ProjectPath & "E:\\360云盘\\狐表程序\\wsm\\管理项目1\\Attachments\\A.doc" \'指定模板文件
Dim fl As String = ProjectPath & "E:\\360云盘\\狐表程序\\wsm\\管理项目1\\Reports\\A.doc" \'指定目标文件
Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport
wrt.Build() \'生成报表
Dim app As New MSWord.Application
try
    Dim fileName = "E:\\360云盘\\狐表程序\\wsm\\管理项目1\\Reports\\A.doc"
    Dim doc = app.Documents.Open(fileName)
    doc.Protect (Password:="123456", NoReset:=False, Type:= _
        MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
    app.Documents.save
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
wrt.Show() \'显示报表
End try

--  作者:有点甜
--  发布时间:2015/2/24 22:22:00
--  
Dim tm As String  = ProjectPath & "Attachments\\A.doc" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\A.doc" \'指定目标文件
Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport
wrt.Build() \'生成报表
wrt.quit
Dim app As New MSWord.Application
try
    Dim fileName = fl
    Dim doc = app.Documents.Open(fileName)
    doc.Protect (Password:="123456", NoReset:=False, Type:= _
    MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
    app.Documents.save
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
finally
    \'app.Quit
End try

--  作者:wusim
--  发布时间:2015/2/24 22:50:00
--  
有一问题生成时显示收下窗口,还有加密码后文件打印后不保存直接退出,怎样改代码?

图片点击可在新窗口打开查看此主题相关图片如下:152.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2015/2/24 22:59:00
--  

 1、调出任务管理器,去掉winword进程;或者重启你的计算机

 

 2、完成1,代码本来就不会提示保存的。


--  作者:wusim
--  发布时间:2015/2/25 17:13:00
--  
问题还没有解决,还是弹出提示。还有打开已加密码的WORD报表,怎样才能原有WORD菜单,现在不见了。

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2015/2/25 17:15:11编辑过]

--  作者:wusim
--  发布时间:2015/2/25 17:13:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.rar



--  作者:有点甜
--  发布时间:2015/2/25 17:22:00
--  

 呃,测试了一下,项目正常。

 

 不正常,是因为你之前弄错了,没有关闭winword进程


--  作者:wusim
--  发布时间:2015/2/25 17:31:00
--  
WORD报表打开后不见了原有的WORD系统菜单。