APEX Office打印

时间:2018-05-16 06:14:05

标签: oracle printing oracle-apex

我目前正在使用Apex办公室打印,如果你能帮我两点,那就太好了。

  • 我正在创建一个包含大量字段的模板,大约50%的字段 这些字段是可选的,所以它们通常只在我的(null)中 数据库。我可以做一些事情,以便没有价值的字段不是 示

  • 我的第二个问题是使用打印功能和 复选框。如何集成项目APEX_APPLICATION.G_F01 我只打印所选复选框的内容?它不是 真的在PL / SQL部分工作。

1 个答案:

答案 0 :(得分:1)

  

我正在创建一个包含大量字段的模板,其中大约50%的字段是可选的,因此它们通常只在我的数据库中为空(null)。我可以做一些事情,以便没有显示没有价值的字段吗?

{tag}只有在空的时候才会删除。如果你想让一些块消失,你可以把它包裹在一个条件下, 例如:

{#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 Process类型插件还是Dynamic Action插件?

例如,我们在选择发票和打印时自行使用它。

我们在IR中有一个复选框:

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)

我们通过指定AOP插件调用的受影响元素来确保P39_INVOICE_ID_LIST设置为会话状态。

如果您在apex.oracle.com上设置了您想要做的事情的示例,我很高兴为您建立示例。在AOP 4.0中,我们还将包含一个带复选框的示例。

希望有所帮助, 迪米特里