Динамические таблицы в таблицах не сохраняют свои значения при сохранении / загрузке - PullRequest
0 голосов
/ 05 июля 2019

Использование Livecycle Designer - теперь Adobe Experience Manager v 6.4.0.xxx, я пытаюсь разрешить моим пользователям создавать таблицы внутри таблиц в форме.Мне удобно с не вложенными таблицами - они отлично работают.Проблема в том, что когда я вкладываю таблицы, они теряют информацию при сохранении.Первая строка сохраняется нормально, но последующие строки не сохраняются.

Это нетривиальные таблицы.Внешняя строка имеет, скажем, 5 текстовых полей, некоторые переключатели, подчиненные формы, которые скрывают / показывают на основе логики и т. Д. Вложенная таблица отображается только при определенной логике - она ​​также имеет несколько текстовых полей и флажков.Тем не менее, я упростил это ниже - все равно не получается.

Основываясь на Вложенные таблицы в livecycle распадаются на электронную почту , я решил выбросить таблицы и вложенные подчиненные формы, чтобы получить тот же внешний види чувствую себя как столы.Опять же, одна «таблица», построенная таким образом, работает нормально, но последующие разрывы вложения - интересным / сумасшедшим образом - вложенная в первую строку подчиненная форма получает больше строк (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);
}

Пример PDF

Мне нужна вложенная таблица с текстовыми полями в каждом, которая сохраняет / загружает.

Спасибо !!

1 Ответ

0 голосов
/ 10 июля 2019

Хорошо, лучший ответ, который я нашел, это ...

Обернуть только таблицу с внутренними таблицами словами «pre-save» и «initialize».

Presave

  • Захват количества общих строк для внешней таблицы
  • Захват количества строк для каждой внутренней таблицы
  • Захват rawValue каждого поля
  • Храните все это где-нибудь - скажем, в скрытом текстовом поле

Инициализируйте

  • Установите table.row.instanceManager.countдля внешней таблицы
  • Установить table.row.instanceManager.count для каждой строки внутренних таблиц
  • Сбросить все rawValues ​​для полей
  • выполнить любую логику для скрытия / отображения подчиненных форм или чего-либо еще

Тьфу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...