Как ajax обновить область в ORACLE Apex - на основе выбора в списке значков [Плагин] - PullRequest
2 голосов
/ 20 сентября 2019

У меня есть плагин со списком значков, возвращающий несколько элементов:

Ниже приведен SQL для плагина со списком значков:

WITH

STUDY_MV AS 
(

    SELECT /* MATERIALIZE */
    * FROM VW_GRET_CTA_STUDIES  
    WHERE GRET_ID = :P14_GRET_ID
    AND STUDY_CODE = :P14_STUDY_CODE   
    AND VARIATION_REQUEST_ID IS NULL
    AND APPLICATION_TYPE = 'Clinical Trial Application'
)
select
    '1) Despatched CTA' as label,
    (SELECT COUNT(DISTINCT REGISTRATION_UID) FROM STUDY_MV 
         WHERE 
        STUDY_STATUS = 'Despatched'
    ) as value,  
    'Despatched' AS STUDY_STATUS,

    APEX_PAGE.GET_URL (
            p_page   => 15,
            p_items  => 'P15_GRET_ID,P15_PREVIOUS_PAGE,P15_STUDY_CODE,P15_STUDY_STATUS',
            p_values => :P14_GRET_ID || ',14,' || :P14_STUDY_CODE || ',Despatched')  as url
from dual
UNION
select
    '2) Submitted CTA' as label,
    (SELECT COUNT(DISTINCT REGISTRATION_UID) FROM STUDY_MV 

         WHERE 
        STUDY_STATUS = 'Submitted'
    ) as value,  
    'Submitted' AS STUDY_STATUS,

    APEX_PAGE.GET_URL (
            p_page   => 15,
            p_items  => 'P15_GRET_ID,P15_PREVIOUS_PAGE,P15_STUDY_CODE,P15_STUDY_STATUS',
            p_values => :P14_GRET_ID || ',14,' || :P14_STUDY_CODE || ',Submitted')  as url
from dual

Это работает...

Первоначально я использовал URL для перехода на другую страницу (стр. 15) и передавал ей параметры ... но теперь мне нужно обновить (ajax / dynamic action) другогорегион на той же странице на основе выбора в списке значков.т. е. если они нажимают на кнопку «Отправлено», то интерактивная сетка на той же странице обновляется через ajax, отображая только записи «Отправлено».

Интерактивная сетка имеет следующий SQL:

SELECT
    DISTINCT
    reg_flag_passive,
    study_status,
    registration_uid,
    application_stage,
    application_type,
    lu_withdrawn_dt,
    country_display_label,
    authorization_status,
    registration_name_details,
    registration_number,
    reg_remarks,
    region,
    preferred_trade_name,
    lu_despatched_dt, 
    LU_SUBMITTED_DT,
    lu_resubmitted_dt,
    lu_approved_dt,
    lu_non_submission_approval_dt,
    lu_approved_inc_non_sub_year,
    lu_approved_inc_non_sub_dt,
    lu_cancelled_dt,
    lu_report_due_dt,
    lu_rejected_dt,
    lu_planned_submission_dt, 
    LU_EXPECTED_APPROVAL_DT,
    cta_ind_no,
    study_code,
    gret_id
FROM
    vw_gret_cta_studies WHERE STUDY_CODE = :P14_STUDY_CODE AND GRET_ID = :P14_GRET_ID
    AND VARIATION_REQUEST_ID IS NULL
    AND APPLICATION_TYPE = 'Clinical Trial Application'
    AND 
    1 = (CASE WHEN :P14_STUDY_STATUS IS NULL THEN 1 ELSE CASE WHEN STUDY_STATUS = :P14_STUDY_STATUS THEN 1 ELSE 0 END END)

Что мне нужно сделать, так это НАЧАТЬ элемент страницы: P14_STUDY_STATUS в сеанс с выбранным значением STUDY_STATUS в плагине списка значков, а затем выполнить обновление области интерактивной сетки, которая выберет: P14_STUDY_STATUS значение в запросе.

Я предполагаю, что для того, чтобы записать вещи в сессию через javascript, а затем обновить область (например, вызвать динамическое действие, чтобы сделать это) - тогда мне, возможно, нужно изменитьURL, который я генерирую в списке значков SQL, чтобы сделать вызов javascript?Но совсем не повезло.

...