Код: Выделить всё
var v_amount = [];
var grid = apex.region("118_ig").widget();
var gridView = grid.interactiveGrid("getViews", "grid");
var model = gridView.model;
var p118_id = apex.item("P118_ID").getValue();
model.forEach(function (record) {
console.log("Record structure:", record);
if (record[1] !== undefined) {
let value= String(record[1]).replace(/,/g, '.');
if (!isNaN(value)) {
v_amount.push(value);
}
}
});
apex.server.process('split_the_bill_btn_ig_proc', {
f01: p118_id,
f02: v_amount
},
{
success: function (data) {
console.log("Process succeeded:", data);
},
error: function (jqXHR, textStatus, errorThrown) {
console.error("Process failed:", textStatus, errorThrown);
}
}
);
Где строка массивов отформатирована в CSV
Код: Выделить всё
DECLARE
l_csv VARCHAR2(32767);
BEGIN
l_csv := '';
FOR i IN 1 .. apex_application.g_f02.COUNT LOOP
IF i > 1 THEN
l_csv := l_csv || ',';
END IF;
l_csv := l_csv || apex_application.g_f02(i);
END LOOP;
DBMS_OUTPUT.PUT_LINE('CSV Result: ' || l_csv);
SPLIT_BILL_PKG.split_the_amount(apex_application.g_f01(1), SPLIT_BILL_PKG.amounts_type(l_csv));
END;
Я перепробовал все, гуглил, просматривал сценарии моего коллеги, который клянется, что это так. это следует сделать. Я не могу понять, следует ли мне использовать f01 или x01. Мой коллега говорит, что есть правила, но я не могу их найти.
Вручную я могу вызвать пакет с помощью PL/SQL в командах SQL, и он работает как положено. но при таком вызове это не так.
Подробнее здесь: https://stackoverflow.com/questions/793 ... racle-apex