VSTO思考系列之动态控制文档中按钮权限

 

  • 实现目的

    能够实现,依据所选项控制word文档中,对应控件的可编辑性;例如项目信息申请,我选择储备类,基本信息中项目性质不可编辑,而选择实施类的时候重要级别不可编辑其他可以编辑,如下截图:

  • 实现方式一

word形成时候,所有控件(除下拉)不可编辑,然后依据选择下拉控制界面可编辑的按钮;下拉采用comboBox1,基本信息控件使用PlainTextContentControl

核心代码:

1  Microsoft.Office.Interop.Word.Application newapp = ThisApplication;
2             UtilTools.UnProtectDoc(ref newapp);
3             object editorID = Word.WdEditorType.wdEditorEveryone;
4   this.plainTextContentControl1.Range.Editors.Add(ref editorID);
View Code

缺点:

1.不能支持重选;原因:重选

2.当用户重选的时候,需要处理已填写的控件;

3.处于可以多选但是不可使用的尴尬境界

优点:

1.jacob支持提取;

  • 实现方式二

            word打开的时候,以windowForm方式弹出窗体,让客户选择所要选择的类型,然后再进入word中,进行其他信息填写;

            缺点:不可多选

            有点:1.实现简单   2.jacob支持提取;

  • 实现方式三

          不使用office自带的控件,采用winform控件

       优点:1.支持重选

           缺点:1.java从word中提取信息有待去验证,不过可以通过xml方式变相解决该问题

 

  • 对比表
实现方式 是否支持重选 jacob是否支持 美观 实现难易
一(不通过)
三 ok 不确定

          

 

posted @ 2014-11-20 17:14  韩慧兵  阅读(238)  评论(0编辑  收藏  举报