如何将内容属性值附加到标题(用于另存为)

如何将内容属性值附加到标题(用于另存为)

我们正在创建发票模板。

在模板(以及文档)中文件名设置为“发票”。我们还添加了构建块内容控制属性称为“发票号码”——由用户输入。

我们如何将“发票号码”附加到标题,以便在保存时将其归档为“发票-nnn”

答案1

除非您使用 SharePoint,否则在 Word 中实际上只有一种相当简单的方法可以执行此操作,对于最终用户来说,这种方法相当简单,并且不依赖于 VBA 等编码,那就是使用传统的表单字段代码输入发票号码,并使用{ TITLE }字段代码来设置Title属性。

这就要求你也保护保护文档的全部或部分,因为这是使该类型的表单正常工作所必需的。保护文档的一部分可能会产生其他限制,例如,用户无法处理某些类型的内容。

如果您还想确保标题是磁盘上文档文件名的一部分,那么无论如何都需要编码。

如果您的文档是通过 SharePoint 提供的,则在保存文档时可以使用 SharePoint 列公式设置标题。(实际上,我认为您不能这样做,但我必须检查一下)。

无需代码即可实现此操作的唯一原因是旧版表单具有“退出时计算”选项,这意味着当用户离开设置了该选项的字段时,所有字段结果都会重新计算。不幸的是,当您使用内容控件时,没有等效项,但这就​​是现状。

此时,您可能应该对使用旧版表单字段制作表单进行一些研究,但为了作为其工作原理的示例,您可以执行以下操作:

在“开发人员”选项卡的“控件”组中,单击指向Legacy FormsActiveX Controls图标的下拉菜单。单击部分Text Form Field中的 图标Legacy Forms。不要使用ActiveX Control

这会将 FORMTEXT 字段插入到您的文档中。您可以根据需要使用 Alt-F9(通常)来显示实际的表单字段。

选择字段并使用Properties选项设置类型、最大长度等。我不会在Default Text框中放置任何东西。

将名称更改Bookmark为,例如InvoiceNum

确保Fill-in enabled复选框被选中。选中复选框。如果需要,Calculate on exit请使用Add Help Text按钮添加提示,然后单击OK

之后,您需要插入一些字段代码,将文档标题设置为“发票-”,后跟表单字段中输入的数字。您用一个字段包围它,{ SET }以防止显示结果标题。所以...

单击 for 字段后,使用 ctrl-F9(通常)输入一对特殊字段代码括号{ }

在其中SET X 输入

{ SET X   }

在“X”之后,再次使用 ctrl-F9,这样你就有了

{ SET X {  } }

在内部 { } 中TITLE "Invoice-" 输入

{ SET X { TITLE "Invoice-" } }

立即单击-并使用 ctrl-F9 插入另一对字段括号,这样你就有了

{ SET X { TITLE "Invoice-{  }" } }

在这些括号内,输入您在表单字段的属性框中输入的“书签”名称,例如

{ SET X { TITLE "Invoice-{ InvoiceNum }" } }

注意:您不能直接{ }使用键盘输入这些内容。您必须使用 ctrl-F9 或等效键创建字段括号对。

现在,在使用表单之前,您必须保护它。为此,请在Protect组中单击Restrict Editing,检查并在下拉列表中Allow only this type of editing in the document选择。Filling in forms

然后单击“是,开始强制保护”。Word 将提示输入密码。目前,我会忽略它。

现在您应该能够在表单字段中输入数字。但您必须单击“退出字段”选项卡,以便更新标题。您应该能够检查标题正在使用 进行更新File-> Info。要修改表单等,您首先必须返回Restrict Editing任务窗格并单击Stop Protection

如果您确实需要在文档中使用内容控件,则可以混合内容控件和旧的表单字段,但这可能会导致另一组问题。

要仅使用内容控制来执行此操作,您的主要选择是......

只需使用标题内容控件而不是 FORMFIELD,但使用前缀预填充它,Invoice-然后用户必须知道他们不应该更改该文本,而应该在其后添加发票号,然后“退出内容控件”。或者您可以添加任何其他映射的内容控件(例如公司传真号码控件),修改其标题,然后插入一组与上面类似的字段,但它们看起来像这样:

{ SET X { TITLE "Invoice-[AnotherCopyOfTheMappedContentControl]" } }

(即你实际上在之后插入该控件的另一个副本Invoice-

在这种情况下,用户必须知道他们必须退出内容控制,然后选择文档(例如,使用 control-A,然后按 F9 来更新所有字段代码)。

我个人不想要求我的用户记住任何这些内容,但我希望在某些环境中这是一个可行的选择。

相关内容