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.
просто прокомментируйте, если у вас возникнут ошибки