我有一个需求,希望在交互式网格(IG)工具栏区域出现一个自定义按钮,点击这个按钮后,它应该根据用户在报表中使用选择列表所做的各种状态变化发送电子邮件。
根据各种资源,我已经能够自定义我的IG工具栏,以包括我的新按钮,但我不确定如何实现处理部分,即获得IDs & 状态变化的行,然后将这些行的IDs传递给与按下新按钮相关联的操作。
你可以使用JavaScript初始化代码来扩展IG功能.如果用户可以选择哪些行要改变,你可以在JavaScript初始化代码属性中包含这段代码。
var i, records, model, record,
view = apex.region("ig_emp").widget().interactiveGrid("getCurrentView");
var selectedIds = [];
if (view.supports.edit)
{
model = view.model;
records = view.getSelectedRecords();
if (records.length > 0)
{
for (i = 0; i < records.length; i++)
{
record = records[i];
selectedIds.push(records[i][0]);
}
然后你就可以为这些选定的行执行一个PLSQL代码,例如:
apex.server.process ("PRD_FAV_EMP",
{x01: JSON.stringify(selectedIds)},
{dataType: 'text',
success: function( pData )
{
//Refresh IG - Favorite Employee (Optional)
apex.region("ig_fav").refresh();
}
}
);
在你的例子中,将发送一个邮件。
要阅读完整的例子,在IG中创建按钮,以及按钮如何链接操作,请前往 将交互扩展到交互式网格--第二部分.
要运行一个示例应用程序。https:/apex.oracle.complsapexf?p=extending_ig。