Кнопка для обновления значения столбца до sysdate для выбранных записей - PullRequest
0 голосов
/ 25 мая 2020

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

Запуск APEX 5.1, IG имеет целую связка столбцов, и я хочу изменить только один из них, но для целой группы строк, поэтому мне нужна кнопка. Первичный ключ в этой таблице состоит из 5 полей.

На самом деле я мало что знаю Javascript, поэтому я не знаю, что пошло не так и как лучше всего это исправить.

Я установил действие Dynami c при нажатии кнопки, которое выполняет Javascript, и у меня выбранный элемент является регионом с именем config.

var g = apex.region('config').widget().interactiveGrid('getViews','grid');  
var r = g.getSelectedRecords();  
for(i = 0; i < r.length; i++) {   
g.model.setValue(r[i], 'EFCTV_END_DT', 'sysdate');
}

, где EFCTV_END_DT - это имя столбца, а sysdate - значение этот столбец необходимо обновить до.

После запуска этого кода я получаю следующую ошибку:

Ajax вызов вернул ошибку сервера ORA-20987: APEX - ERR-1002 Не удалось найти идентификатор элемента для элемента «C100812889833598308» в приложение «220». - Непредвиденная ошибка, невозможно найти имя элемента на уровне приложения или страницы. для.

Может ли кто-нибудь помочь мне в реализации этого?

1 Ответ

0 голосов
/ 27 мая 2020

Нашел решение этой проблемы:

APEX не определял, что означает sysdate.

Код Javascript изменен на:

var g = apex.region('config').widget().interactiveGrid('getViews','grid');  
var r = g.getSelectedRecords();  
var monthNames =["JAN","FEB","MAR","APR",
                      "MAY","JUN","JUL","AUG",
                      "SEP", "OCT","NOV","DEC"];
var today = new Date();
var dd = today.getDate();
var mm = monthNames[today.getMonth()];
var yyyy = today.getFullYear();
today = dd+'-'+mm+'-'+yyyy;
for(i = 0; i < r.length; i++) { 
    g.model.setValue(r[i],'EFCTV_END_DT',today);
}

И теперь он работает так, как задумано.

...