Oracle apex apex选择列表,获取用户数据

Oracle apex apex选择列表,获取用户数据,oracle-apex,oracle-apex-5.1,Oracle Apex,Oracle Apex 5.1,我已经创建了一个选择列表项,需要在另一页上引用此列表。如何获取用户输入,将其放入可用于计算另一页上所选项目总值的变量中 显示在报告上的选择列表的代码,用于说明金额: select item_id, itemname, item_price, apex_item.hidden(1, item_id) || apex_item.hidden(2, item_price) || apex_item.select_list( p_idx

我已经创建了一个选择列表项,需要在另一页上引用此列表。如何获取用户输入,将其放入可用于计算另一页上所选项目总值的变量中

显示在报告上的选择列表的代码,用于说明金额:

select item_id, 
   itemname, 
  item_price, 
   apex_item.hidden(1, item_id) ||
      apex_item.hidden(2, item_price) || 
      apex_item.select_list(
          p_idx           =>   3,
          p_value         =>   nvl(null,'item'),
          p_list_values   =>   '1,2,3,4,5,6,7,8,9,10',
          p_show_null     =>   'YES',
          p_null_value    =>   0,
          p_null_text     =>   '0',
          p_item_id       =>   'f03_#ROWNUM#',
          p_item_label    =>   'f03_#ROWNUM#',
          p_show_extra    =>   'NO') "item"
          from item 
显示总和的选择将如下所示:

  select itemname,
  item_price, 
  'select list value',
  ('select list value'* item_price) as sum
  from item
如何从选择列表中获取所选金额


感谢

Oracle APEX有一个包
APEX\u应用程序
,其中包含名称从
G\u F01
G\u F50
的集合。当您使用
apex\u item
中的任何函数在报表中创建一个项时,您将一个数字传递到
p\u idx
参数中。在您的示例中,选择列表为
3
。此值对应于上述集合之一-
G_F03

提交后,用户输入的所有值都会传递给这些集合。因此,您可以在提交后流程中编写以下代码:

for i in apex_application.g_f01.first .. apex_application.g_f01.last loop
  insert into my_table (id, new_value) 
  values (apex_application.g_f01(i), apex_application.g_f03(i));
end loop;
此代码显示如何将用户输入的值插入
my\u表
。请注意,这些集合只包含用户更改的行。如果用户得到一个包含10行的报告并更改其中3行,则每个集合将有3个元素

此外,APEX还有APEX_COLLECTION API来存储临时数据

有关详细信息,请参见文档中的:

UPD.
有两种方法可以进一步处理数据-使用表或
APEX\u集合
。我从未使用过APEX_COLLECTION,因此这里有一个表示例。 如果使用表存储临时数据,则需要
ID
、用户名和数据(示例中选择列表中的数据)的列。在报告页面上,您需要在提交后执行以下操作:

delete from my_table where user_name = :APP_USER;

for i in apex_application.g_f01.first .. apex_application.g_f01.last loop
  insert into my_table (id, new_value, user_name) 
  values (apex_application.g_f01(i), apex_application.g_f03(i), :APP_USER);
end loop;
在需要使用此数据的下一页上,创建以下报告:

select t.new_value, ...
  from my_table t, ... <other tables>
 where t.user_name = :APP_USER
   and t.id = ...
   and <other conditions>
选择t.new_值。。。
从我的桌子上。。。
其中t.user\u name=:APP\u user
和t.id=。。。
及

Oracle APEX有一个包
APEX\u应用程序
,其中包含名称从
G\u F01
G\u F50
的集合。当您使用
apex\u item
中的任何函数在报表中创建一个项时,您将一个数字传递到
p\u idx
参数中。在您的示例中,选择列表为
3
。此值对应于上述集合之一-
G_F03

提交后,用户输入的所有值都会传递给这些集合。因此,您可以在提交后流程中编写以下代码:

for i in apex_application.g_f01.first .. apex_application.g_f01.last loop
  insert into my_table (id, new_value) 
  values (apex_application.g_f01(i), apex_application.g_f03(i));
end loop;
此代码显示如何将用户输入的值插入
my\u表
。请注意,这些集合只包含用户更改的行。如果用户得到一个包含10行的报告并更改其中3行,则每个集合将有3个元素

此外,APEX还有APEX_COLLECTION API来存储临时数据

有关详细信息,请参见文档中的:

UPD.
有两种方法可以进一步处理数据-使用表或
APEX\u集合
。我从未使用过APEX_COLLECTION,因此这里有一个表示例。 如果使用表存储临时数据,则需要
ID
、用户名和数据(示例中选择列表中的数据)的列。在报告页面上,您需要在提交后执行以下操作:

delete from my_table where user_name = :APP_USER;

for i in apex_application.g_f01.first .. apex_application.g_f01.last loop
  insert into my_table (id, new_value, user_name) 
  values (apex_application.g_f01(i), apex_application.g_f03(i), :APP_USER);
end loop;
在需要使用此数据的下一页上,创建以下报告:

select t.new_value, ...
  from my_table t, ... <other tables>
 where t.user_name = :APP_USER
   and t.id = ...
   and <other conditions>
选择t.new_值。。。
从我的桌子上。。。
其中t.user\u name=:APP\u user
和t.id=。。。
及

这个问题对我来说似乎不清楚。我是否正确地取消理解您的流:用户通过选择列表查看报告,选择一个值,然后重定向到另一个页面,另一个页面使用该值进行进一步计算?是的,这就是流,我正在使用向导前进到页面,我需要最终的摘要页面来显示第二个使用选择列表值的选择查询。这个问题对我来说似乎不清楚。我是否正确地取消理解您的流:用户通过选择列表查看报告,选择一个值,然后重定向到另一个页面,另一个页面使用该值进行进一步计算?是的,这就是流,我正在使用向导前进到页面,我需要最终的摘要页面来显示第二个选择查询,该查询使用选择列表值。感谢您的回答,如果我是哑巴,很抱歉,但是关于我的第二个查询和您提供给我的for循环,我如何组合这两个元素来进行查询?感谢您的用户选择多行吗?如果否,则可以仅在应用程序项中存储该值。如果是,则有一些可能性…他们将选择他们想要的数量,可以是一个项目或多个项目。我只是不确定如何以及在何处实现您给我的代码?我添加了一些额外的解释,希望它是清楚的。感谢您的回答,对不起,如果我是哑巴,但是关于我的第二个查询和您提供给我的for循环,我将如何结合这两个元素来进行查询?感谢您的用户选择多行吗?如果否,则可以仅在应用程序项中存储该值。如果是,则有一些可能性…他们将选择他们想要的数量,可以是一个项目或多个项目。我只是不确定如何以及在哪里实现你给我的代码?我添加了一些额外的解释,希望它是清楚的。