0

我正在尝试在 Adob​​e Live Cycle 中使用大量简单的显示/隐藏脚本来将几种表单合并为一个。我将把文本输入字段叠加在一起,并让它们都以不可见的方式开始(使用 Live Cycle 的不可见设置)。这些对象的显示/隐藏将通过使用下拉列表进行控制。

基本任务是:

-Click an item from  a dropdown list.
-Initiate a show of relative invisible elements on the page based on the 
 raw value of the item selected.
-If user changes dropdown value, hide previously displayed data and show new
 corresponding data.

这一切都可以从下拉列表本身内部完成吗?我从以前的开发人员那里继承了这个项目,所以我正在拼凑他的一些代码,并试图掌握实际需要做的事情,以便我能够完成任务。以下是显示隐藏结构的示例:

xfa.resolveNode("form1.#subform.indPaymentOptions").selectedIndex = 0;
xfa.resolveNode("form1.#subform.VendPaymentOptions").selectedIndex = 0;
xfa.resolveNode("form1.#subform.Display_Field_Pay_Types").rawValue = 
    "Please select an option from the 'Select type' drop-down menu above.";
taxReportable.rawValue = "";
AccountCodesDynamic.rawValue = "";

if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 2) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "visible";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "hidden";
}

else if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 3) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "hidden";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "visible";
}
else if (xfa.resolveNode("form1.#subform.payeeType").rawValue == 1) {
    xfa.resolveNode("form1.#subform.indPaymentOptions").presence = "hidden";
    xfa.resolveNode("form1.#subform.VendPaymentOptions").presence = "hidden";

}

上面的所有代码看起来都很简单,但在文档的初始化部分也有一些代码:

    if (xfa.resolveNode("#subform.RadioButtonList[2].ind").rawValue == 1)
    indPaymentOptions.presence = "visible";

else if (xfa.resolveNode("#subform.RadioButtonList[2].vend").rawValue == 2)
    vendPaymentOptions.presence = "visible";

我很想知道这种事情是否有必要。如果是,有人可以在文档的初始化部分解释在多大程度上需要这样的代码?

如果没有必要,我粘贴在这篇文章顶部的显示/隐藏代码是否足以满足我想要完成的任务?

我尝试过浏览 Adob​​e 的 livecycle 文档,但很难找到必要内容的广泛概述,因此我很难使用它。任何帮助是极大的赞赏。如果有我缺少的资源,我很想自学如何做到这一点。另外,这是我在这里的第一篇文章。我已尽力遵守常见问题解答中的提交指南,但如果我违反了任何提交指南,请提前道歉。谢谢。

4

1 回答 1

0

下拉菜单的代码看起来很简单,应该没问题(尽管您可能会在使用 LiveCyle 一段时间后发现,即使是一些带有逻辑代码的简单任务也不起作用)。

初始化事件中的代码实际上是用于单选按钮组而不是下拉菜单,因此可见表单的功能实际上可能不仅仅由下拉菜单驱动。

您在 LC 中最终得到的结果是在初始化事件中重复更改或验证事件的代码,以便在表单打开时正确显示/处理。这当然可以通过使用来自对象的其他事件事件的代码调用事件来解决。例如。在下拉初始化事件中,您将保存下拉代码,在下拉的更改事件中,您将使用 this.execEvent("initialize") 在触发更改事件时调用代码。

在不查看表格的情况下了解您的特定情况下发生的事情有点困难,但如果有任何不清楚的地方请告诉我,或者我可以提供任何其他帮助。

于 2013-03-12T13:19:57.087 回答