Заполните форму из списка выбора - PullRequest
1 голос
/ 06 января 2012

Я пробовал несколько попыток заполнения отчета при выборе значения в списке выбора.Я подошел близко, но не достаточно близко для правильного ответа.У кого-нибудь есть решение?

Вот код

В настоящее время у меня есть список выбора, в котором есть возможность выбора отслеживания сотрудников, и отслеживание сотрудников заполняется в списке выбора на основе: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 голосов
/ 09 января 2012

Если вы хотите, чтобы отчет обновлялся при изменении выбранного значения в списке выбора, вы можете сделать это двумя способами. Но оба подхода сводятся к одному и тому же принципу: выбранное вами значение должно быть передано в состояние сеанса, чтобы отчет по нему фильтровался.

Решение 1: выберите список для отправки / перенаправления страницы. Это передаст значение вашего списка выбора в сеанс и перезагрузит страницу. При перенаправлении вы пополняете историю браузера: выберите значение пару раз, и вы используете «назад» в браузере, чтобы вернуться назад к выбранным вами вариантам. Или используйте отправку, это также перезагрузит страницу, но не заполнит историю. Тем не менее, все еще будет одна дополнительная запись в истории (первоначальная и первая перезагрузка, после перезагрузок нет в истории).

Найдите параметр, отредактировав свой список выбора, перейдя в область «Настройки», и измените действие страницы при изменении значения.

select list options

Решение 2. Обновите область отчета с помощью динамического действия. Это не перезагрузит страницу, она «обновит» только ваш отчет. Это может быть наиболее удобным, это зависит от того, нравится ли вам перезагрузка страницы или нет :) Вам понадобится динамическая опция, настроенная так: dynamic action details

С этими настоящими деталями действия:

dynamic action true action details

И самое главное, чтобы убедиться, что выбранное значение отправлено в состояние сеанса: добавьте элемент в список элементов, которые будут отправлены при обновлении отчета. items to submit on report refresh

Я настроил пример здесь

...