设置完成后,按Alt+F9可以显示或隐藏域定义代码,本例的域代码显示为: 。一个Word模板中可以定义多个域,多个域之间用变量名来区别。本例中的域定义在Word模板的主体部分(即除了页眉和页脚)。其读写示例分别如下:
For i := 1 to WordDoc.Fields.Count do
begin
If WordDoc.Fields.Item(i).type_ = wdFieldDocVariable then
WordDoc.Fields.Item(i).Result.Text := ’Word文档中域的使用’; //给域付值
end;
For i := 1 to WordDoc.Fields.Count do
begin
If WordDoc.Fields.Item(i).type_ = wdFieldDocVariable then
Memo1.Lines.Add(WordDoc.Fields.Item(i).Result.Text) : //读取所有DocVariable类型的域值
end;
Word文档中域的具体类型共有87种,详细定义可在Delphi中的Word_Tlb.Pas中查阅。在使用域变量时,必须对域类型进行判断。以上所举的例子中都是通过域的遍历来实现指定位置文字的输出和读取,当然也可以通过域变量的名字进行域的识别。具体方法是利用域的Code属性,提取域定义字符串,然后在域定义字符串中查找域变量。需要注意的是:给域赋值时,域中原有的文字不会被新值替换,只是在域中原有的文字后继续添加。
以上4种方法,除特殊字符标记法只能用做Word文档生成之外,其余三种方法既能用作Word文档生成,也能用作利用模板制作的Word文档内容的读取。但是对于利用Word文档作为系统手动录入界面来讲,书签法很容易被用户误删除,域定义法更是很难被用户肉眼识别,且即使识别出来,手动录入也很麻烦。在实际应用中,表格法制作的模板文件一般来讲格式相对稳定,用户除非有意,否则很难误删除。因此表格法制作的模板同其他三种方法相比,更能胜任制作录入界面的工作。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/