APEX - щелкните по строкам формы с помощью SQL-запроса

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

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

Это или что-то подобное может быть достигнуто в APEX?

Таблица модулей:

create table module
(module_code varchar2(10) not null primary key,
module_name varchar2(35) not null,
lecturer_code varchar2(6) not null references lecturer(lecturer_code),
module_number_assessments number(1) not null,
module_moderator varchar2(25));

Таблица оценок:

create table assessment
(module_code varchar2(10) not null references module(module_code),
assessment_no number(1) not null,
assessment_name varchar2(35) not null,
assessment_weight number(3) not null,
assessment_filename varchar2(50),
assessment_status number(1) not null references assessment_status(status),
primary key(module_code, assessment_no));

Источник страницы модулей:

SELECT m.*
FROM module m
WHERE
(
   upper(lecturer_code) = upper(:APP_USER)
   AND (SELECT login_type FROM login WHERE upper(login_username) =  upper(:APP_USER)) = 'U'
)
OR
(
   (SELECT login_type FROM login WHERE upper(login_username) = upper(:APP_USER)) = 'A'
)

1 ответ

Предположим, что ваш интерактивный отчет за module находится на странице X и интерактивный отчет для assessment находится на странице Y,

  • Сначала вы должны выбрать, какой столбец в отчете модуля будет ссылаться на столбец (если щелкнуть столбец, он перенаправит вас на другую страницу). Вы можете выбрать любой столбец, в этом случае я предпочитаю module_code как ссылка на столбец, так как это внешний ключ для таблицы оценки.

  • Затем перейдите к ОТЧЕТНЫМ АТРИБУТАМ, затем щелкните по столбцу module_code

  • Затем найдите раздел " Ссылка на столбец "
  • Затем в разделе " Ссылка на столбец "
    В тексте ссылки напишите #MODULE_CODE#
    В Target выберите URL
    В URL введите этот код
 javascript: window.open('f?p=&APP_ID.:Y:&SESSION.::&DEBUG.::PY_MODULE_CODE:#MODULE_CODE#','_blank');

Обратите внимание, что Y это страница, где вы показываете отчет для оценочной таблицы, поэтому просто измените Y на выбранную вами страницу.

Если Y = 2, то

javascript: window.open('f?p=&APP_ID.:2:&SESSION.::&DEBUG.::P2_MODULE_CODE:#MODULE_CODE#','_blank');
  • Затем примените изменения.

  • Затем перейдите на страницу Y затем создайте элемент страницы, тип = скрытое поле, имя = PY_MODULE_CODE

  • Затем отредактируйте исходную таблицу оценки и напишите этот код:

SELECT module_code,
       assessment_no ,
       assessment_name ,
       assessment_weight,
       assessment_filename ,
       assessment_status

FROM assessment
WHERE module_code = :PY_MODULE_CODE;
  • Под запросом источника в элементах страницы для отправки напишите PY_MODULE_CODE
  • Затем примените изменения.
  • Тогда посмотри как пойдет =)

Примечание. Измените Y на соответствующую страницу из вашего приложения.
Egname= P2_MODULE_CODE.

просто прокомментируйте, если у вас возникнут ошибки

Другие вопросы по тегам