БД: Поддержка вызова панелей из разделов ("встроенное "действие P8PANELS_OPEN)
This commit is contained in:
parent
dfe0bed7c4
commit
75f05bfaae
22
db/P8PNL_SELECTLIST.sql
Normal file
22
db/P8PNL_SELECTLIST.sql
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
Парус 8 - Панели мониторинга
|
||||
Список отмеченных записей
|
||||
*/
|
||||
create table P8PNL_SELECTLIST
|
||||
(
|
||||
RN number(17) not null, -- Рег. номер записи
|
||||
IDENT number(17) not null, -- Идентификатор процесса
|
||||
AUTHID varchar2(30) not null, -- Пользователь
|
||||
SESSION_ID varchar2(24) not null, -- Идентификатор сеанса
|
||||
CONNECT_EXT varchar2(255) not null, -- Внешний идентификатор сеанса
|
||||
COMPANY number(17) default null, -- Организация
|
||||
DOCUMENT number(17) not null, -- Документ
|
||||
UNITCODE varchar2(40) default null, -- Код раздела документа
|
||||
ACTIONCODE varchar2(40) default null, -- Код действия документа
|
||||
CRN number(17) default null, -- Каталог документа
|
||||
DOCUMENT1 number(17) default null, -- Документ 1
|
||||
UNITCODE1 varchar2(40) default null, -- Код раздела документа 1
|
||||
ACTIONCODE1 varchar2(40) default null, -- Код действия документа 1
|
||||
constraint C_P8PNL_SELECTLIST_PK primary key(RN),
|
||||
constraint C_P8PNL_SELECTLIST_UK unique(IDENT, DOCUMENT, UNITCODE, DOCUMENT1, UNITCODE1)
|
||||
);
|
@ -6,6 +6,18 @@ create or replace package PKG_P8PANELS as
|
||||
CIN in clob, -- Входные параметры
|
||||
COUT out clob -- Результат
|
||||
);
|
||||
|
||||
/* Инициализация буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_INIT
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
);
|
||||
|
||||
/* Очистка буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_CLEAR
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
);
|
||||
|
||||
end PKG_P8PANELS;
|
||||
/
|
||||
@ -22,6 +34,28 @@ create or replace package body PKG_P8PANELS as
|
||||
/* Базовое исполнение действия */
|
||||
PKG_P8PANELS_BASE.PROCESS(CIN => CIN, COUT => COUT);
|
||||
end PROCESS;
|
||||
|
||||
/* Инициализация буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_INIT
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
)
|
||||
is
|
||||
begin
|
||||
/* Базовое исполнение действия */
|
||||
PKG_P8PANELS_BASE.SELECTLIST_INIT(NIDENT => NIDENT);
|
||||
end SELECTLIST_INIT;
|
||||
|
||||
/* Очистка буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_CLEAR
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
)
|
||||
is
|
||||
begin
|
||||
/* Базовое исполнение действия */
|
||||
PKG_P8PANELS_BASE.SELECTLIST_CLEAR(NIDENT => NIDENT);
|
||||
end SELECTLIST_CLEAR;
|
||||
|
||||
end PKG_P8PANELS;
|
||||
/
|
||||
|
@ -21,6 +21,18 @@ create or replace package PKG_P8PANELS_BASE as
|
||||
CIN in clob, -- Входные параметры
|
||||
COUT out clob -- Результат
|
||||
);
|
||||
|
||||
/* Базовая инициализация буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_INIT
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
);
|
||||
|
||||
/* Базовая очистка буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_CLEAR
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
);
|
||||
|
||||
end PKG_P8PANELS_BASE;
|
||||
/
|
||||
@ -812,6 +824,112 @@ create or replace package body PKG_P8PANELS_BASE as
|
||||
P_EXCEPTION(0, 'Действие "%s" не поддерживается.', SRQ_ACTION);
|
||||
end case;
|
||||
end PROCESS;
|
||||
|
||||
/* Базовое добавление в буфер отмеченных записей для панели */
|
||||
procedure SELECTLIST_INSERT
|
||||
(
|
||||
NIDENT in number, -- Идентификатор процесса
|
||||
SAUTHID in varchar2, -- Пользователь
|
||||
SSESSION_ID in varchar2, -- Идентификатор сеанса
|
||||
SCONNECT_EXT in varchar2, -- Внешний идентификатор сеанса
|
||||
NCOMPANY in number := null, -- Организация
|
||||
NDOCUMENT in number, -- Документ
|
||||
SUNITCODE in varchar2 := null, -- Код раздела документа
|
||||
SACTIONCODE in varchar2 := null, -- Код действия документа
|
||||
NCRN in number := null, -- Каталог документа
|
||||
NDOCUMENT1 in number := null, -- Документ 1
|
||||
SUNITCODE1 in varchar2 := null, -- Код раздела документа 1
|
||||
SACTIONCODE1 in varchar2 := null, -- Код действия документа 1
|
||||
NRN out number -- Рег. номер добавленной записи
|
||||
)
|
||||
is
|
||||
begin
|
||||
/* Формируем рег. номер */
|
||||
NRN := GEN_ID();
|
||||
/* Добвляем запись */
|
||||
insert into P8PNL_SELECTLIST
|
||||
(RN,
|
||||
IDENT,
|
||||
authid,
|
||||
SESSION_ID,
|
||||
CONNECT_EXT,
|
||||
COMPANY,
|
||||
DOCUMENT,
|
||||
UNITCODE,
|
||||
ACTIONCODE,
|
||||
CRN,
|
||||
DOCUMENT1,
|
||||
UNITCODE1,
|
||||
ACTIONCODE1)
|
||||
values
|
||||
(NRN,
|
||||
NIDENT,
|
||||
SAUTHID,
|
||||
SSESSION_ID,
|
||||
SCONNECT_EXT,
|
||||
NCOMPANY,
|
||||
NDOCUMENT,
|
||||
SUNITCODE,
|
||||
SACTIONCODE,
|
||||
NCRN,
|
||||
NDOCUMENT1,
|
||||
SUNITCODE1,
|
||||
SACTIONCODE1);
|
||||
end SELECTLIST_INSERT;
|
||||
|
||||
/* Удаление записи буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_DELETE
|
||||
(
|
||||
NRN in number -- Рег. номер удаляемой записи
|
||||
)
|
||||
is
|
||||
begin
|
||||
delete from P8PNL_SELECTLIST T where T.RN = NRN;
|
||||
end SELECTLIST_DELETE;
|
||||
|
||||
/* Базовая инициализация буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_INIT
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
)
|
||||
is
|
||||
NRN PKG_STD.TREF; -- Рег. номер добавленной записи буфера панелей
|
||||
begin
|
||||
/* Очищаем буфер панелей */
|
||||
SELECTLIST_CLEAR(NIDENT => NIDENT);
|
||||
/* Обходим системный буфер отмеченных записей */
|
||||
for C in (select T.* from SELECTLIST T where T.IDENT = NIDENT)
|
||||
loop
|
||||
/* Копируем запись */
|
||||
SELECTLIST_INSERT(NIDENT => C.IDENT,
|
||||
SAUTHID => C.AUTHID,
|
||||
SSESSION_ID => C.SESSION_ID,
|
||||
SCONNECT_EXT => C.CONNECT_EXT,
|
||||
NCOMPANY => C.COMPANY,
|
||||
NDOCUMENT => C.DOCUMENT,
|
||||
SUNITCODE => C.UNITCODE,
|
||||
SACTIONCODE => C.ACTIONCODE,
|
||||
NCRN => C.CRN,
|
||||
NDOCUMENT1 => C.DOCUMENT1,
|
||||
SUNITCODE1 => C.UNITCODE1,
|
||||
SACTIONCODE1 => C.ACTIONCODE1,
|
||||
NRN => NRN);
|
||||
end loop;
|
||||
end SELECTLIST_INIT;
|
||||
|
||||
/* Базовая очистка буфера отмеченных записей для панели */
|
||||
procedure SELECTLIST_CLEAR
|
||||
(
|
||||
NIDENT in number -- Идентификатор буфера отмеченных записей
|
||||
)
|
||||
is
|
||||
begin
|
||||
/* Обходим буфер панелей */
|
||||
for C in (select T.RN from P8PNL_SELECTLIST T where T.IDENT = NIDENT)
|
||||
loop
|
||||
SELECTLIST_DELETE(NRN => C.RN);
|
||||
end loop;
|
||||
end SELECTLIST_CLEAR;
|
||||
|
||||
end PKG_P8PANELS_BASE;
|
||||
/
|
||||
|
Loading…
x
Reference in New Issue
Block a user