从选择列表中填充表单

时间:2012-01-06 15:24:41

标签: plsql oracle-apex

我尝试过多次尝试填充报表,从而在选择列表中选择一个值。我已经接近但不够接近正确的答案。有没有人有解决方案?

这是代码

目前,我有一个选择列表,可以选择员工跟踪,并根据以下内容在选择列表中填充员工跟踪:app_user。

值列表

值列表定义:

SELECT track_name AS display_value,
       track_id   AS return_value
FROM   ref_track
ORDER  BY 1 

选择列表的来源值:

SELECT "REF_TRACK"."TRACK_NAME" AS display_value,
       "REF_TRACK"."TRACK_ID"   AS return_value
FROM   "REF_STAFF",
       "REF_PLAN",
       "WORK_ITEM",
       "REF_RELEASE",
       "REF_TRACK"
WHERE  "REF_RELEASE"."RELEASE_ID" = "REF_PLAN"."RELEASE_ID"
       AND "REF_TRACK"."TRACK_ID" = "REF_PLAN"."TRACK_ID"
       AND "WORK_ITEM"."WR_ID" = "REF_PLAN"."WORK_ITEM_ID"
       AND Nvl("REF_STAFF"."REF_STAFF_TRACK_ID", "REF_PLAN"."TRACK_ID") =
           "REF_PLAN"."TRACK_ID"
       AND (( "REF_STAFF"."STAFF_USER_ID" = :APP_user )) 

我现在在其下面有一个报告,当页面加载时,该报告也会根据:App_user生成数据。

报告源代码:

SELECT "REF_PLAN"."PLAN_ID"             "PLAN_ID",
       "REF_PLAN"."WORK_ITEM_ID"        "WORK_ITEM_ID",
       "REF_PLAN"."TRACK_ID"            "TRACK_ID",
       "REF_PLAN"."PLANNED_TOT_HRS"     "PLANNED_TOT_HRS",
       "REF_PLAN"."PLAN_START_DATE"     "PLAN_START_DATE",
       "REF_PLAN"."PLAN_END_DATE"       "PLAN_END_DATE",
       "REF_PLAN"."COMMENTS"            "COMMENTS",
       "REF_PLAN"."RELEASE_ID"          "RELEASE_ID",
       "WORK_ITEM"."WR_ID"              "WR_ID",
       "WORK_ITEM"."WR_NUM"             "WR_NUM",
       "REF_RELEASE"."RELEASE_ID"       "RELEASE_ID2",
       "REF_RELEASE"."RELEASE_NUM"      "RELEASE_NUM",
       "REF_TRACK"."TRACK_ID"           "TRACK_ID2",
       "REF_TRACK"."TRACK_NAME"         "TRACK_NAME",
       "REF_STAFF"."REF_STAFF_TRACK_ID" "REF_STAFF_TRACK_ID",
       "REF_STAFF"."STAFF_USER_ID"      "STAFF_USER_ID"
FROM   "REF_STAFF",
       "REF_PLAN",
       "WORK_ITEM",
       "REF_RELEASE",
       "REF_TRACK"
WHERE  "REF_RELEASE"."RELEASE_ID" = "REF_PLAN"."RELEASE_ID"
       AND "REF_TRACK"."TRACK_ID" = "REF_PLAN"."TRACK_ID"
       AND "WORK_ITEM"."WR_ID" = "REF_PLAN"."WORK_ITEM_ID"
       AND Nvl("REF_STAFF"."REF_STAFF_TRACK_ID", "REF_PLAN"."TRACK_ID") =
           "REF_PLAN"."TRACK_ID"
       AND (( "REF_STAFF"."STAFF_USER_ID" = :APP_USER ))
       AND "REF_PLAN"."TRACK_ID" = :P47_TRACK_LIST 

我尝试添加此行以从选择列表中选择。

有没有办法操纵此代码,以便能够从我的列表中选择一个曲目,并根据我的报告中的曲目选择填充数据。我还想告诉您,我的选择列表值基于提交页面。如果你能帮助我,请告诉我。当我看了一整天并且无法想出代码时,它令人沮丧。此外,如果有任何其他方式可以探索或其他选项,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果希望在更改选择列表的选定值时更新报告,可以通过两种方式执行此操作。但两者都归结为相同的原则:您选择的值必须提交到会话状态,以便报告对其进行过滤。

解决方案1:让选择列表提交/重定向页面。这会将您的选择列表的值提交给会话,然后重新加载页面。通过重定向,您将填写浏览器历史记录:选择一个值几次,然后在浏览器上使用“返回”来浏览您所做的选择。或者使用提交,这也会重新加载页面,但不会填写历史记录。但是仍然会有一个额外的历史记录条目(初始和第一次重新加载,重新加载后不在历史记录中)。

通过编辑选择列表,转到“设置”区域以及更改值时更改页面操作来查找选项。

select list options

解决方案2:通过动态操作刷新报告区域。这不会重新加载页面,它会“刷新”您的报告。这可能是用户最友好的,这取决于你是否喜欢重新加载页面:) 你需要一个动态选项,配置如下: dynamic action details

有了这些真实的行动细节:

dynamic action true action details

最重要的是,要确保将所选值提交到会话状态:将项目添加到刷新报表时要提交的项目列表中。 items to submit on report refresh

我设置了一个示例here