ЦИТК-979 - Поддержка возможности указания отладочного значения аргумента запроса
This commit is contained in:
parent
dae416cd83
commit
be22cde138
@ -7,7 +7,7 @@
|
|||||||
//Подключение библиотек
|
//Подключение библиотек
|
||||||
//---------------------
|
//---------------------
|
||||||
|
|
||||||
import React from "react"; //Классы React
|
import React, { useState } from "react"; //Классы React
|
||||||
import PropTypes from "prop-types"; //Контроль свойств компонента
|
import PropTypes from "prop-types"; //Контроль свойств компонента
|
||||||
import { P8PDialog } from "../../../../components/p8p_dialog"; //Типовой диалог
|
import { P8PDialog } from "../../../../components/p8p_dialog"; //Типовой диалог
|
||||||
import { TITLES } from "../../../../../app.text"; //Общие текстовые ресурсы приложения
|
import { TITLES } from "../../../../../app.text"; //Общие текстовые ресурсы приложения
|
||||||
@ -18,13 +18,27 @@ import { DATA_TYPE } from "../../common"; //Общие константы ред
|
|||||||
//-----------
|
//-----------
|
||||||
|
|
||||||
//Диалог добавления/исправления аргумента запроса
|
//Диалог добавления/исправления аргумента запроса
|
||||||
const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandatory = 0, insert = true, onOk, onCancel }) => {
|
const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandatory = 0, value = "", insert = true, onOk, onCancel }) => {
|
||||||
|
//Собственное состояние - текущее состояние аргумента
|
||||||
|
const [current, setCurrent] = useState({ value, dataType });
|
||||||
|
|
||||||
//Нажатие на кнопку "Ok"
|
//Нажатие на кнопку "Ok"
|
||||||
const handleOk = values => onOk && onOk({ ...values });
|
const handleOk = values => onOk && onOk({ ...values });
|
||||||
|
|
||||||
//Нажатие на кнопку "Отмена"
|
//Нажатие на кнопку "Отмена"
|
||||||
const handleCancel = () => onCancel && onCancel();
|
const handleCancel = () => onCancel && onCancel();
|
||||||
|
|
||||||
|
//При изменении значений в поле ввода
|
||||||
|
const handleInputChange = (name, value) => {
|
||||||
|
//Если поменяли тип данных - надо пересмотреть поля для ввода
|
||||||
|
if (name === "dataType") {
|
||||||
|
//Сохраним в состоянии новый тип данных и сбросим "отладочное значение", ведь оно зависит от типа данных (от этого состояния зависит свойство inputs, передаваемое в P8PDialog ниже)
|
||||||
|
setCurrent({ dataType: value, value: "" });
|
||||||
|
//Мы сами пересчитали форму, туда придут новые настройки элементов ввода через свойство inputs, не надо делать пересчет состояния внутри диалога
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//Генерация содержимого
|
//Генерация содержимого
|
||||||
return (
|
return (
|
||||||
<P8PDialog
|
<P8PDialog
|
||||||
@ -34,7 +48,7 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato
|
|||||||
{ name: "title", value: title, label: "Приглашение" },
|
{ name: "title", value: title, label: "Приглашение" },
|
||||||
{
|
{
|
||||||
name: "dataType",
|
name: "dataType",
|
||||||
value: dataType,
|
value: current.dataType,
|
||||||
label: "Тип данных",
|
label: "Тип данных",
|
||||||
list: [
|
list: [
|
||||||
{ name: "Строка", value: DATA_TYPE.STR },
|
{ name: "Строка", value: DATA_TYPE.STR },
|
||||||
@ -50,10 +64,17 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato
|
|||||||
{ name: "Нет", value: 0 },
|
{ name: "Нет", value: 0 },
|
||||||
{ name: "Да", value: 1 }
|
{ name: "Да", value: 1 }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "value",
|
||||||
|
value: current.value,
|
||||||
|
label: "Значение (для отладки)",
|
||||||
|
type: current.dataType === DATA_TYPE.NUMB ? "number" : current.dataType === DATA_TYPE.DATE ? "date" : "text"
|
||||||
}
|
}
|
||||||
]}
|
]}
|
||||||
onOk={handleOk}
|
onOk={handleOk}
|
||||||
onCancel={handleCancel}
|
onCancel={handleCancel}
|
||||||
|
onInputChange={handleInputChange}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@ -64,6 +85,7 @@ ArgIUDialog.propTypes = {
|
|||||||
title: PropTypes.string,
|
title: PropTypes.string,
|
||||||
dataType: PropTypes.number,
|
dataType: PropTypes.number,
|
||||||
mandatory: PropTypes.number,
|
mandatory: PropTypes.number,
|
||||||
|
value: PropTypes.string,
|
||||||
insert: PropTypes.bool,
|
insert: PropTypes.bool,
|
||||||
onOk: PropTypes.func,
|
onOk: PropTypes.func,
|
||||||
onCancel: PropTypes.func
|
onCancel: PropTypes.func
|
||||||
|
|||||||
@ -25,10 +25,10 @@ const useQueryArgs = query => {
|
|||||||
|
|
||||||
//Добавление аргумента запроса
|
//Добавление аргумента запроса
|
||||||
const addArg = useCallback(
|
const addArg = useCallback(
|
||||||
async (name, title, dataType, mandatory) => {
|
async (name, title, dataType, mandatory, value) => {
|
||||||
await executeStored({
|
await executeStored({
|
||||||
stored: "PKG_P8PANELS_QE.QUERY_OPT_ARG_ADD",
|
stored: "PKG_P8PANELS_QE.QUERY_OPT_ARG_ADD",
|
||||||
args: { NRN: query, SNAME: name, STITLE: title, NDATA_TYPE: dataType, NMANDATORY: mandatory },
|
args: { NRN: query, SNAME: name, STITLE: title, NDATA_TYPE: dataType, NMANDATORY: mandatory, SVALUE: value },
|
||||||
loader: false
|
loader: false
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -37,10 +37,10 @@ const useQueryArgs = query => {
|
|||||||
|
|
||||||
//Исправление аргумента запроса
|
//Исправление аргумента запроса
|
||||||
const editArg = useCallback(
|
const editArg = useCallback(
|
||||||
async (name, title, dataType, mandatory) => {
|
async (name, title, dataType, mandatory, value) => {
|
||||||
await executeStored({
|
await executeStored({
|
||||||
stored: "PKG_P8PANELS_QE.QUERY_OPT_ARG_EDIT",
|
stored: "PKG_P8PANELS_QE.QUERY_OPT_ARG_EDIT",
|
||||||
args: { NRN: query, SNAME: name, STITLE: title, NDATA_TYPE: dataType, NMANDATORY: mandatory },
|
args: { NRN: query, SNAME: name, STITLE: title, NDATA_TYPE: dataType, NMANDATORY: mandatory, SVALUE: value },
|
||||||
loader: false
|
loader: false
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@ -35,14 +35,14 @@ const InspectorQueryArguments = ({ query, args = [], onOptionsChanged = null })
|
|||||||
|
|
||||||
//При добавлении аргумента
|
//При добавлении аргумента
|
||||||
const handleArgAdd = async (arg, cb) => {
|
const handleArgAdd = async (arg, cb) => {
|
||||||
await addArg(arg.name, arg.title, arg.dataType, arg.mandatory);
|
await addArg(arg.name, arg.title, arg.dataType, arg.mandatory, arg.value);
|
||||||
cb && cb();
|
cb && cb();
|
||||||
notifyOptionsChanged();
|
notifyOptionsChanged();
|
||||||
};
|
};
|
||||||
|
|
||||||
//При изменении аргумента
|
//При изменении аргумента
|
||||||
const handleArgEdit = async (arg, cb) => {
|
const handleArgEdit = async (arg, cb) => {
|
||||||
await editArg(arg.name, arg.title, arg.dataType, arg.mandatory);
|
await editArg(arg.name, arg.title, arg.dataType, arg.mandatory, arg.value);
|
||||||
cb && cb();
|
cb && cb();
|
||||||
notifyOptionsChanged();
|
notifyOptionsChanged();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -135,6 +135,7 @@ const useQuery = query => {
|
|||||||
args: { NRN: query },
|
args: { NRN: query },
|
||||||
respArg: "COUT",
|
respArg: "COUT",
|
||||||
isArray: name => ["XENT", "XATTR", "XRL", "XARG"].includes(name),
|
isArray: name => ["XENT", "XATTR", "XRL", "XARG"].includes(name),
|
||||||
|
attributeValueProcessor: (name, val) => (["value"].includes(name) ? undefined : val),
|
||||||
loader: true
|
loader: true
|
||||||
});
|
});
|
||||||
setQueryDiagram(serverQueryData2QueryDiagram(data?.XENTS?.XENT || [], data?.XRLS?.XRL || []));
|
setQueryDiagram(serverQueryData2QueryDiagram(data?.XENTS?.XENT || [], data?.XRLS?.XRL || []));
|
||||||
|
|||||||
@ -118,7 +118,8 @@ create or replace package PKG_P8PANELS_QE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Изменение аргумента запроса */
|
/* Изменение аргумента запроса */
|
||||||
@ -128,7 +129,8 @@ create or replace package PKG_P8PANELS_QE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Удаление аргумента запроса */
|
/* Удаление аргумента запроса */
|
||||||
@ -503,7 +505,8 @@ create or replace package body PKG_P8PANELS_QE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
RQ P8PNL_QE_QUERY%rowtype; -- Запись запроса
|
RQ P8PNL_QE_QUERY%rowtype; -- Запись запроса
|
||||||
@ -520,7 +523,8 @@ create or replace package body PKG_P8PANELS_QE as
|
|||||||
SNAME => SNAME,
|
SNAME => SNAME,
|
||||||
STITLE => STITLE,
|
STITLE => STITLE,
|
||||||
NDATA_TYPE => NDATA_TYPE,
|
NDATA_TYPE => NDATA_TYPE,
|
||||||
NMANDATORY => NMANDATORY);
|
NMANDATORY => NMANDATORY,
|
||||||
|
SVALUE => SVALUE);
|
||||||
/* Сохраняем обновленную настройку */
|
/* Сохраняем обновленную настройку */
|
||||||
PKG_P8PANELS_QE_BASE.QUERY_OPT_SET(NRN => RQ.RN, ROPT => ROPT);
|
PKG_P8PANELS_QE_BASE.QUERY_OPT_SET(NRN => RQ.RN, ROPT => ROPT);
|
||||||
end QUERY_OPT_ARG_ADD;
|
end QUERY_OPT_ARG_ADD;
|
||||||
@ -532,7 +536,8 @@ create or replace package body PKG_P8PANELS_QE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
RQ P8PNL_QE_QUERY%rowtype; -- Запись запроса
|
RQ P8PNL_QE_QUERY%rowtype; -- Запись запроса
|
||||||
@ -559,7 +564,8 @@ create or replace package body PKG_P8PANELS_QE as
|
|||||||
SNAME => SNAME,
|
SNAME => SNAME,
|
||||||
STITLE => STITLE,
|
STITLE => STITLE,
|
||||||
NDATA_TYPE => NDATA_TYPE,
|
NDATA_TYPE => NDATA_TYPE,
|
||||||
NMANDATORY => NMANDATORY);
|
NMANDATORY => NMANDATORY,
|
||||||
|
SVALUE => SVALUE);
|
||||||
/* Сохраняем обновленную настройку */
|
/* Сохраняем обновленную настройку */
|
||||||
PKG_P8PANELS_QE_BASE.QUERY_OPT_SET(NRN => RQ.RN, ROPT => ROPT);
|
PKG_P8PANELS_QE_BASE.QUERY_OPT_SET(NRN => RQ.RN, ROPT => ROPT);
|
||||||
end QUERY_OPT_ARG_EDIT;
|
end QUERY_OPT_ARG_EDIT;
|
||||||
|
|||||||
@ -6,7 +6,8 @@ create or replace package PKG_P8PANELS_QE_BASE as
|
|||||||
SNAME PKG_STD.TSTRING, -- Имя
|
SNAME PKG_STD.TSTRING, -- Имя
|
||||||
STITLE PKG_STD.TSTRING, -- Заголовок
|
STITLE PKG_STD.TSTRING, -- Заголовок
|
||||||
NDATA_TYPE PKG_STD.TNUMBER, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE PKG_STD.TNUMBER, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY PKG_STD.TNUMBER -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY PKG_STD.TNUMBER, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE PKG_STD.TLSTRING -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Типы данных - Коллекция аргументов */
|
/* Типы данных - Коллекция аргументов */
|
||||||
@ -90,7 +91,8 @@ create or replace package PKG_P8PANELS_QE_BASE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Изменение аргумента в коллекции */
|
/* Изменение аргумента в коллекции */
|
||||||
@ -101,7 +103,8 @@ create or replace package PKG_P8PANELS_QE_BASE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Удаление аргумента из коллекции */
|
/* Удаление аргумента из коллекции */
|
||||||
@ -366,6 +369,7 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
SATTR_USE constant PKG_STD.TSTRING := 'use'; -- Применение в запросе
|
SATTR_USE constant PKG_STD.TSTRING := 'use'; -- Применение в запросе
|
||||||
SATTR_SHOW constant PKG_STD.TSTRING := 'show'; -- Отображение в запросе
|
SATTR_SHOW constant PKG_STD.TSTRING := 'show'; -- Отображение в запросе
|
||||||
SATTR_PARENT_ENTITY constant PKG_STD.TSTRING := 'parentEntity'; -- Идентификатор родительской сущности
|
SATTR_PARENT_ENTITY constant PKG_STD.TSTRING := 'parentEntity'; -- Идентификатор родительской сущности
|
||||||
|
SATTR_VALUE constant PKG_STD.TSTRING := 'value'; -- Значение
|
||||||
|
|
||||||
/* Константы - зарезервированные имена рагументов */
|
/* Константы - зарезервированные имена рагументов */
|
||||||
SARG_NAME_PAGE constant PKG_STD.TSTRING := 'NPAGE'; -- Номер страницы
|
SARG_NAME_PAGE constant PKG_STD.TSTRING := 'NPAGE'; -- Номер страницы
|
||||||
@ -432,7 +436,8 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
) return TARG -- Описание аргумента
|
) return TARG -- Описание аргумента
|
||||||
is
|
is
|
||||||
RARG TARG; -- Буфер для результата
|
RARG TARG; -- Буфер для результата
|
||||||
@ -475,6 +480,7 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
RARG.STITLE := STITLE;
|
RARG.STITLE := STITLE;
|
||||||
RARG.NDATA_TYPE := NDATA_TYPE;
|
RARG.NDATA_TYPE := NDATA_TYPE;
|
||||||
RARG.NMANDATORY := NMANDATORY;
|
RARG.NMANDATORY := NMANDATORY;
|
||||||
|
RARG.SVALUE := SVALUE;
|
||||||
/* Вернем полученное */
|
/* Вернем полученное */
|
||||||
return RARG;
|
return RARG;
|
||||||
end TARG_MAKE;
|
end TARG_MAKE;
|
||||||
@ -493,6 +499,7 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
PKG_XFAST.ATTR(SNAME => SATTR_TITLE, SVALUE => RARG.STITLE);
|
PKG_XFAST.ATTR(SNAME => SATTR_TITLE, SVALUE => RARG.STITLE);
|
||||||
PKG_XFAST.ATTR(SNAME => SATTR_DATA_TYPE, NVALUE => RARG.NDATA_TYPE);
|
PKG_XFAST.ATTR(SNAME => SATTR_DATA_TYPE, NVALUE => RARG.NDATA_TYPE);
|
||||||
PKG_XFAST.ATTR(SNAME => SATTR_MANDATORY, NVALUE => RARG.NMANDATORY);
|
PKG_XFAST.ATTR(SNAME => SATTR_MANDATORY, NVALUE => RARG.NMANDATORY);
|
||||||
|
PKG_XFAST.ATTR(SNAME => SATTR_VALUE, SVALUE => RARG.SVALUE);
|
||||||
/* Закрываем описание аргумента */
|
/* Закрываем описание аргумента */
|
||||||
PKG_XFAST.UP();
|
PKG_XFAST.UP();
|
||||||
end TARG_TO_XML;
|
end TARG_TO_XML;
|
||||||
@ -521,6 +528,7 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
RRES.STITLE := PKG_XPATH.ATTRIBUTE(RNODE => XNODE, SNAME => SATTR_TITLE);
|
RRES.STITLE := PKG_XPATH.ATTRIBUTE(RNODE => XNODE, SNAME => SATTR_TITLE);
|
||||||
RRES.NDATA_TYPE := PKG_XPATH.ATTRIBUTE_NUM(RNODE => XNODE, SNAME => SATTR_DATA_TYPE);
|
RRES.NDATA_TYPE := PKG_XPATH.ATTRIBUTE_NUM(RNODE => XNODE, SNAME => SATTR_DATA_TYPE);
|
||||||
RRES.NMANDATORY := PKG_XPATH.ATTRIBUTE_NUM(RNODE => XNODE, SNAME => SATTR_MANDATORY);
|
RRES.NMANDATORY := PKG_XPATH.ATTRIBUTE_NUM(RNODE => XNODE, SNAME => SATTR_MANDATORY);
|
||||||
|
RRES.SVALUE := PKG_XPATH.ATTRIBUTE(RNODE => XNODE, SNAME => SATTR_VALUE);
|
||||||
/* Освободим документ */
|
/* Освободим документ */
|
||||||
PKG_XPATH.FREE(RDOCUMENT => XDOC);
|
PKG_XPATH.FREE(RDOCUMENT => XDOC);
|
||||||
exception
|
exception
|
||||||
@ -570,7 +578,8 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
RARG TARG; -- Добавляемый аргумент
|
RARG TARG; -- Добавляемый аргумент
|
||||||
@ -584,7 +593,11 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
P_EXCEPTION(0, 'Аргумент с именем "%s" уже существует.', SNAME);
|
P_EXCEPTION(0, 'Аргумент с именем "%s" уже существует.', SNAME);
|
||||||
end if;
|
end if;
|
||||||
/* Формируем аргумент */
|
/* Формируем аргумент */
|
||||||
RARG := TARG_MAKE(SNAME => SNAME, STITLE => STITLE, NDATA_TYPE => NDATA_TYPE, NMANDATORY => NMANDATORY);
|
RARG := TARG_MAKE(SNAME => SNAME,
|
||||||
|
STITLE => STITLE,
|
||||||
|
NDATA_TYPE => NDATA_TYPE,
|
||||||
|
NMANDATORY => NMANDATORY,
|
||||||
|
SVALUE => SVALUE);
|
||||||
/* Добавляем его в коллекцию */
|
/* Добавляем его в коллекцию */
|
||||||
RARGS.EXTEND();
|
RARGS.EXTEND();
|
||||||
RARGS(RARGS.LAST) := RARG;
|
RARGS(RARGS.LAST) := RARG;
|
||||||
@ -598,7 +611,8 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
SNAME in varchar2, -- Имя
|
SNAME in varchar2, -- Имя
|
||||||
STITLE in varchar2, -- Заголовок
|
STITLE in varchar2, -- Заголовок
|
||||||
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
NDATA_TYPE in number, -- Тип данных (см. константы PKG_STD.DATA_TYPE_*)
|
||||||
NMANDATORY in number -- Флаг обязательности (1 - да, 0 - нет)
|
NMANDATORY in number, -- Флаг обязательности (1 - да, 0 - нет)
|
||||||
|
SVALUE in varchar2 -- Значение для отладки (строковое представление для всех типов данных)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
RARG TARG; -- Добавляемый аргумент
|
RARG TARG; -- Добавляемый аргумент
|
||||||
@ -613,7 +627,11 @@ create or replace package body PKG_P8PANELS_QE_BASE as
|
|||||||
P_EXCEPTION(0, 'Не указан индекс изменяемого аргумента.');
|
P_EXCEPTION(0, 'Не указан индекс изменяемого аргумента.');
|
||||||
end if;
|
end if;
|
||||||
/* Формируем аргумент */
|
/* Формируем аргумент */
|
||||||
RARG := TARG_MAKE(SNAME => SNAME, STITLE => STITLE, NDATA_TYPE => NDATA_TYPE, NMANDATORY => NMANDATORY);
|
RARG := TARG_MAKE(SNAME => SNAME,
|
||||||
|
STITLE => STITLE,
|
||||||
|
NDATA_TYPE => NDATA_TYPE,
|
||||||
|
NMANDATORY => NMANDATORY,
|
||||||
|
SVALUE => SVALUE);
|
||||||
/* Обновляем аргумент в коллекции */
|
/* Обновляем аргумент в коллекции */
|
||||||
begin
|
begin
|
||||||
RARGS(NINDEX) := RARG;
|
RARGS(NINDEX) := RARG;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user