APEX Офисная печать - PullRequest
       11

APEX Офисная печать

0 голосов
/ 16 мая 2018

Я сейчас работаю с Apex Office Print, было бы неплохо, если бы вы могли помочь мне с двумя пунктами.

  • Я создаю шаблон с большим количеством полей и около50% этих полей являются необязательными, поэтому они часто (только нулевые) в моей базе данных.Могу ли я сделать что-нибудь, чтобы поля без значения не отображались?

  • Мой второй вопрос - работа с функцией печати и флажками.Как интегрировать элемент APEX_APPLICATION.G_F01, чтобы я печатал только содержимое выбранного флажка?На самом деле он не работает в разделе PL / SQL.

1 Ответ

0 голосов
/ 21 мая 2018

Я создаю шаблон с большим количеством полей, и около 50% этих полей являются необязательными, поэтому они часто бывают только (нулевые) в моей базе данных. Можно ли что-то сделать, чтобы поля без значения не отображались?

{тег} будет удален, когда он пуст. Если вы хотите, чтобы некоторые блоки исчезли, вы можете обернуть это в условии, например:

{#tags==null} {product_name}: {product_description} {/tags==null} {#tags!==null} {product_name}: {tags} {/tags!==null}

или если у вас есть значение:

{#checked=="Yes"}☒Yes ☐No{/checked=="Yes"}{#checked!="Yes"} ☐Yes ☒No {/checked!="Yes"}

Моим вторым вопросом будет работа с функцией печати и флажками. Как интегрировать элемент APEX_APPLICATION.G_F01, чтобы я печатал только содержимое выбранного флажка? На самом деле он не работает в разделе PL / SQL.

Используете ли вы плагин типа процесса AOP или плагин динамического действия?

Например, мы используем его для себя при выборе счетов-фактур и их печати. ​​

У нас есть флажок в ИК:

apex_item.checkbox2(
  p_idx => 1,
  p_value => id,
  p_attributes => 'class="invoice_id"',
  p_checked_values => :P39_INVOICE_ID_LIST,
  p_checked_values_delimiter => ',') as chk,   

И затем у нас есть Динамическое действие при изменении, которое устанавливает скрытый элемент (P39_INVOICE_ID_LIST) на странице:

var
  //Checkbox that was changed
  $checkBox = $(this.triggeringElement),
  //DOM object for APEX Item that holds list.
  apexItemIDList = apex.item(this.affectedElements.get(0)),
  //Convert comma list into an array or blank array
  //Note: Not sure about the "?" syntax see: http://www.talkapex.com/2009/07/javascript-if-else.html
  ids = apexItemIDList.getValue().length === 0 ? [] : apexItemIDList.getValue().split(','),
  //Index of current ID. If it's not in array, value will be -1
  idIndex = ids.indexOf($checkBox.val())
;
//If box is checked and it doesn't already exist in list
if ($checkBox.is(':checked') && idIndex < 0) {
  ids.push($checkBox.val());
}
//If box is unchecked and it exists in list
else if (!$checkBox.is(':checked') && idIndex >= 0){
  ids.splice(idIndex, 1);
}
//Convert array back to comma delimited list
apexItemIDList.setValue(ids.join(','));

В нашем запросе в AOP DA мы имеем:

where i.id in (select regexp_substr(:P39_INVOICE_ID_LIST,'[^,]+', 1, level) invoice_id
                 from dual
              connect by regexp_substr(:P39_INVOICE_ID_LIST, '[^,]+', 1, level) is not null)

и мы гарантируем, что P39_INVOICE_ID_LIST установлен в состояние сеанса, указав Затронутые элементы вызова плагина AOP.

Если вы настроите пример того, что вы хотите сделать на apex.oracle.com, я с радостью предоставлю вам пример. В AOP 4.0 мы также включим пример с флажками.

Надеюсь, это поможет, Dimitri

...