生命周期(JavaScript)代码没有按顺序运行

时间:2014-08-26 18:14:43

标签: javascript livecycle livecycle-designer

下午好,

我正在使用JavaScript在Livecycle ES2中制作PDF表单。

我在"点击"中的表单上创建了一个按钮(Lockbutton1)。使用以下代码的事件,使多个子表单上的所有字段“只读”,然后使用“另存为”框提示用户。

FORM.Page1.LockButton1::click - (JavaScript, client)

// Lock all fields in subforms except for signature subforms

oTargetField = this.resolveNode("SubformTop");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEP");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLN");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLNR");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEPR");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEPRD");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEPRI");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLNRD");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLNRI");
    oTargetField.access = "readOnly";

// Hide other buttons and text

this.resolveNode("ResetButton1").presence = "invisible";
this.resolveNode("PrintButton1").presence = "invisible";
this.resolveNode("FormType").presence = "invisible";
this.resolveNode("$").presence = "invisible";
this.resolveNode("Splashtxt").presence = "invisible";

// Save the form
app.execMenuItem("SaveAs");

但是,当用户点击锁定按钮时,首先会提示用户使用“另存为”框,一旦保存表单,其余代码就会启动,使子窗体只读并隐藏按钮和文字。

我不明白为什么要开始的第一件事是"另存为"框,这应该是在代码中开始的最后一件事。

我需要按以下顺序运作该流程:

  1. 用户点击锁定按钮。
  2. 指定的子表单将更改为只读。
  3. 按钮和文字不可见。
  4. 系统会提示“另存为”框。
  5. 任何人都有任何想法发生了什么以及如何解决?

    此致

    A

1 个答案:

答案 0 :(得分:0)

您的代码逻辑正常。检查所有节点是否与LiveCycle中定义的名称相同。请参阅下面的示例和结果:

Code sample

PDF result