2015-02-10 3 views
0

Возможно ли создать поле переключателя или поле флажка для каждой строки интерактивного отчета?Oracle Apex: радиокнопки, формы и отчеты

Если это возможно, отправьте выбранную строку, которая приведет пользователя к другому отчету, объединяющему разные таблицы?

Пожалуйста, объясните, как это возможно?

Большое спасибо

ответ

1

Вы можете создать элементы с помощью apex_item, если вы хотите создать флажок вам нужно будет использовать:

APEX_ITEM.CHECKBOX2(p_idx      IN NUMBER 
        , p_value      IN VARCHAR2 DEFAULT NULL 
        , p_attributes    IN VARCHAR2 DEFAULT NULL 
        , p_checked_values   IN VARCHAR2 DEFAULT NULL 
        , p_checked_values_delimiter IN VARCHAR2 DEFAULT ':' 
        , p_item_id     IN VARCHAR2 DEFAULT NULL 
        , p_item_label    IN VARCHAR2 DEFAULT NULL) 
RETURN VARCHAR2; 

, как вы можете увидеть несколько примеров в here, если вы хотите, ИК с помощью пользовательского флажка вы можете сделать это следующим образом:

SELECT APEX_ITEM.CHECKBOX2(1,empno) "Select" 
,  ename 
,  job 
FROM emp 
ORDER by 1 

Если я правильно понимаю, после того как пользователь выбрать любое количество ССЭЧА k, он может щелкнуть по кнопке, чтобы показать другой отчет, где вам понадобятся выбранные флажки. Одним из способов достижения этой цели является:

  1. Создать процесс, чтобы добавить выбранные флажки в коллекцию

    BEGIN 
        apex_collection.create_or_truncate_collection(p_collection_name => 'col_tmp'); 
    
        FOR I in 1..APEX_APPLICATION.G_F01.COUNT 
        LOOP 
         apex_collection.add_member(p_collection_name => 'col_tmp' 
               , p_c001   => APEX_APPLICATION.G_F01(i));     
        END LOOP; 
    END; 
    
  2. Создать ветку на страницу с другим отчетом. На этой странице вы можете использовать коллекцию в ваш выбор для того, чтобы показать нужную информацию:

    SELECT e.ename 
    ,  e.job 
    ,  d.dname 
        FROM EMP e, 
         DEPT d 
    WHERE e.deptno = d.deptno 
        AND empno IN (SELECT C001 
            FROM apex_collections 
            WHERE collection_name = 'COL_TMP') 
    

ПРИМЕЧАНИЕ: В выберите вы должны использовать имя коллекции в верхнем регистре.

+0

Благодарим за отзыв. Я совершенно новичок в Apex, и мне было интересно, если вы столкнулись с какой-либо рабочей демонстрацией, чтобы я мог видеть, как она работает вместе после выполнения вышеуказанных шагов? – tinlin28

+0

[Здесь вы идете] (https://apex.oracle.com/pls/apex/wwv_flow_custom_auth_std.login_page?p_flow_page=25904:55 :) Это на самом деле пример приложения образца, и вам просто нужно ввести имя пользователя для авторизоваться. (Эта ссылка будет доступна только в течение нескольких дней). – hmarques

+0

Большое спасибо за ссылку, но, к сожалению, она не работает. Спасибо за помощь в любом случае :) Я попробую найти демо – tinlin28

Смежные вопросы