我正在使用oracle apex创建一个银行应用程序。一旦用户使用第2页中的客户ID登录,他的帐户详细信息表应显示在下一页中。我试过了 从acc_details中选择acc_no,bal,其中cust_id =:P2_USERNAME
但我得到'没有找到数据'。
这是正确的方法吗?我也尝试过使用分支机构。那也行不通。
答案 0 :(得分:0)
在您的第一页上,在您的登录按钮的“行为”(APEX 5)/“单击按钮时的操作”(APEX 4)属性下,将“操作”设置为“重定向到此应用程序中的页面”。然后设置目标页码。在此之下,您将看到“设置项目”部分。通过将“名称”(APEX 5)/“设置这些项目”(APEX 4)设置为:P2_USERNAME然后将“值”(APEX 5)/“带有这些值”(APEX 4)设置为:P1_USERNAME来填充该部分。摆脱之前创建的“分支”或至少暂时禁用它们。
答案 1 :(得分:0)
如果您的用户登录名和用户ID相同(如电子邮件地址) 你可以用
apex_authentication.get_login_username_cookie
获取每页的用户名/用户ID
或者您可以在共享组件中创建应用程序项,并将用户ID分配给此项目
:MY_APP_ITEM := 'Hello';
登录后并从所有页面调用
答案 2 :(得分:0)
您是否尝试过使用:APP_USER?如果这不起作用,您可以尝试创建一个Application项作为cust_id的值容器。只需转到共享组件>>然后,应用项目创建一个项目。这样,您可以重用应用程序项上的值,直到会话过期或清除其值。
假设您已创建名为“G_CUST_ID”的应用程序项,您希望将cust_id的值存储到G_CUST_ID。在登录页面上创建PL / SQL进程并编写以下代码:
apex_util.set_session_state('G_CUST_ID',:P2_USERNAME);
G_CUST_ID上设置的值将在会话到期时自动重置。不要忘记在注销时手动重置值。
apex_util.set_session_state('G_CUST_ID',NULL);