【发布时间】:2017-04-06 17:46:37
【问题描述】:
我有一个APEX 5.0 App,将用于生成员工的名片。
我创建了一个名为 (P1_EMPLOYEE) 的页面和 SELECT LIST 页面项目。它执行此数据库查询以填充选择列表。
select
EMPLOYEE.LASTNAME||', '||EMPLOYEE.FIRSTNAME as FULLNAME,
EMPLOYEE.SECTION AS SECTION
from
EMPLOYEE EMPLOYEE
ORDER BY
EMPLOYEE.LASTNAME asc;
当页面加载时,它会在选择列表中输入大约 900 名员工姓名(例如 Doe、John、Doe、Jane 等......)。
另外,我创建了一个名为 (Create) 的按钮,它的动态操作设置为执行 Javascript(例如 window.open( 'f?p=&APP_ID.:0:&SESSION.:PRINT_REPORT=CreateBizCards' );)。
上面的CreateBizCards是一个报表查询,我输入了
的SQL语法select
EMPLOYEE.FIRSTNAME as "FIRST NAME",
EMPLOYEE.LASTNAME as "LAST NAME",
EMPLOYEE.TITLE as TITLE,
EMPLOYEE.SECTION as SECTION,
EMPLOYEE.OFFICE_PHONE as "OFFICE PHONE",
EMPLOYEE.EMAIL as "E-MAIL"
from
EMPLOYEE EMPLOYEE
where
EMPLOYEE.LASTNAME = :P1_EMPLOYEE;
当触发(创建)按钮时,假设根据SELECT LIST 中选择的员工姓名创建报告。
发生了两件不想要的结果。
首先,当触发“创建”按钮时,它将生成具有相同姓氏的不同用户的报告。
其次,如果我在触发按钮时更改报告查询上的 SQL 查询,它会生成一个只有列名而没有数据的 PDF。
我应该如何为 CreateBizCards Report Query 编写一个查询,以便它从页面项目(例如 :P1_EMPLOYEE)上的 SELECT LIST 中找到所选员工,然后仅返回特定于该员工的数据?
注意:我无法共享 APEX URL,因为这是一个内部应用程序服务器。
【问题讨论】:
-
如果它不是内部应用程序服务器,您会这样做吗?首先是个坏主意。
-
是的,我当然会接受一些限制。
标签: sql plsql oracle-apex