TX Text Control 邮件合并(十)通过FieldAdapter操作ApplicationFields

发布时间:2012/11/16 00:11 发布者:葡萄城产品团队

返回博客中心

TX Text Control .NET for Windows Forms中提供了ApplicationField类型来操作MS Word中一些标准的域,比如:合并域(MergeField)、日期(Date)以及页号(Numpages)等。这些域需要用到的参数都被封装称一个熟悉Parameters,可以通过Parameters来获取和设置每种域的参数。
在使用与之前,我们需要了解一下标准域类型都有哪些,TX Text Control中通过FieldAdapter类型对以下标准域提供了支持:

 

  • MergeField
  • DateField
  • IfField
  • IncludeText
  • FormCheckbox
  • FormDropDown
  • FormText



通过以上这些类型可以创建和操作MS Word中的域类型,而且这些类型都将标准域的参数封装成一个个的属性,我们可以直接设置这些属性来控制域的行为。
下面我们以MS Word中MergeField为例,来了解在MS Word中如何设置域以及相关参数:

  1. {MERGEFIELD company \* Upper \b "Company:" \* MERGEFORMAT}
复制代码

下面的结果图解释了上面这行代码中每项参数设置的具体含义:


如果通过ApplicationField来访问MergeField,需要设置下面这些参数:

 
{ "company", "\* Upper", "\b \"Company\"", "\* MERGEFORMAT" }
复制代码

如果使用FieldAdapter类来操作MergeField又需要怎样实现呢?顾名思义,FieldAdapter是ApplicationField的一个适配器,我们可以创建一个MergeField类的实例,然后设置该实例的一些属性即可。

 
foreach (TXTextControl.ApplicationField field in textControl1.ApplicationFields)
{
    if(field.TypeName == "MERGEFIELD")
    {
        TXTextControl.DocumentServer.Fields.MergeField mergeField =
            new TXTextControl.DocumentServer.Fields.MergeField(field);
        mergeField.Name = "companyname";
    }
}
复制代码

在上面的代码中,我们首先判断了域的TypeName属性,如果是MergeField,就创建一个适配器类的实例,并将field作为创建实例时的参数,创建实例之后,我们就可以通过实例的名称来访问特定类型的域了。当然,你还可以将FieldAdapter类的实例插入到所有域的集合中。

 
TXTextControl.DocumentServer.Fields.MergeField mergeField =
        new TXTextControl.DocumentServer.Fields.MergeField();
    textControl1.ApplicationFields.Add(mergeField.ApplicationField);
复制代码

备注:使用FieldAdapter类,可以非常方便的处理MS Word中常用的域类型,你不必担心这些域的参数该如何设置,因为这些参数都已经被封装为一些属性,可以直接访问。


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网