表中的动态表不会在保存/加载过程中保留其值

时间:2019-07-05 20:28:15

标签: javascript livecycle

使用Livecycle Designer-现在是Adobe Experience Manager v 6.4.0.xxx,我正试图允许我的用户在表单的表内创建表。我对非嵌套桌子很满意-它们工作正常。问题是,当我嵌套表时,它们会因保存而丢失信息。第一行保存良好,但随后的行未保存。

这些是不平凡的表。最外面的一行有5个文本字段,一些单选按钮,基于逻辑隐藏/显示的子窗体等。嵌套表仅在特定逻辑下显示-它也具有多个文本字段和复选框。但是,我在下面对此进行了简化-仍然失败。

基于Nested tables in livecycle fall apart on email,我决定抛弃表格并嵌套子表单,以获得与表格相同的外观。同样,以这种方式构建的一个“表”可以正常工作,但是随后的嵌套中断-以有趣/疯狂的方式-嵌套在第一行中的子表单获得更多行(instanceManager.count),随后的行丢失了其文本字段信息-但单选按钮保持他们的信息。

我做了什么

  • 我已经在表格上使用子表单进行了重建。没有爱,尽管很奇怪。
  • 我已将“表单属性” /“运行时” /“保存脚本更改”切换为保存时的表单-我希望是自动的,但已切换为“手动”和“后退”。 (根据https://forums.adobe.com/thread/1281883
  • 我已尽力监控它-在preSave和postSave信息存在的情况下-在初始化时它就消失了。

预保存 Pre Save

后保存。保留第二行(与表不同),但是丢失了字段中的信息。第一行以某种方式获得了另一个嵌套行。 Post Save

我通过按钮“点击”来称呼它

function fAddSfRow(oSfTable) {
  oSfRow = oSfTable.sfRow;
  oSfRow.instanceManager.addInstance(1);
}

然后,要删除行-在另一个按钮中单击“单击”

var oSfRow = $.parent;
if (oSfRow.instanceManager.count > oSfRow.instanceManager.occur.min ) {
  oSfRow.instanceManager.removeInstance(oSfRow.index);
}

Example PDF

我想要的是一个嵌套表,每个表中都有文本字段,可以保存/加载。

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我找到的最佳答案是...

仅将带有内部表的表包装为'pre-save'和'initialize'。

保存

  • 捕获外部表的总行数
  • 捕获每个内部表的行数
  • 捕获每个字段的rawValue
  • 将所有这些内容存储在某个地方-在隐藏的文本字段中说

初始化

  • 为外部表设置table.row.instanceManager.count
  • 为内部表的每一行设置table.row.instanceManager.count
  • 重置字段的所有原始值
  • 执行任何隐藏/显示子表单的逻辑

U。