diff --git a/db/PKG_P8PANELS_RRPCONFED.pck b/db/PKG_P8PANELS_RRPCONFED.pck index 650e783..9d45636 100644 --- a/db/PKG_P8PANELS_RRPCONFED.pck +++ b/db/PKG_P8PANELS_RRPCONFED.pck @@ -39,6 +39,18 @@ create or replace package PKG_P8PANELS_RRPCONFED as SRRPCONFSCTNMRK out varchar2 -- Код показателя раздела ); + /* Формирование кода и наименования показателя раздела регламентированного отчёта */ + procedure RRPCONFSCTNMRK_GET_CODE_NAME + ( + SSCTNCODE in varchar2, -- Мнемокод раздела + SROWCODE in varchar2, -- Мнемокод строки + NROWVER in number, -- Ид. редакции строки + SCOLUMNCODE in varchar2, -- Мнемокод графы + NCOLUMNVER in number, -- Ид. редакции графы + SCODE out varchar2, -- Мнемокод показателя раздела + SNAME out varchar2 -- Наименование показателя раздела + ); + /* Добавление показателя раздела регламентированного отчёта */ procedure RRPCONFSCTNMRK_INSERT ( @@ -65,18 +77,6 @@ create or replace package PKG_P8PANELS_RRPCONFED as NRN in number -- Ид. показателя раздела ); - /* Формирование кода и наименования показателя раздела регламентированного отчёта */ - procedure RRPCONFSCTNMRK_GET_CODE_NAME - ( - SSCTNCODE in varchar2, -- Мнемокод раздела - SROWCODE in varchar2, -- Мнемокод строки - NROWVER in number, -- Ид. редакции строки - SCOLUMNCODE in varchar2, -- Мнемокод графы - NCOLUMNVER in number, -- Ид. редакции графы - SCODE out varchar2, -- Мнемокод показателя раздела - SNAME out varchar2 -- Наименование показателя раздела - ); - end PKG_P8PANELS_RRPCONFED; / create or replace package body PKG_P8PANELS_RRPCONFED as @@ -255,6 +255,7 @@ create or replace package body PKG_P8PANELS_RRPCONFED as is NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации begin + /* Добавим раздел */ P_RRPCONFSCTN_INSERT(NCOMPANY => NCOMPANY, NPRN => NPRN, SCODE => SCODE, @@ -281,14 +282,26 @@ create or replace package body PKG_P8PANELS_RRPCONFED as is NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации RES RRPCONFSCTN%rowtype; -- Запись раздела настройки формы регламентированного отчета + RRRPCONFSCTN RRPCONFSCTN%rowtype; + RRRPPRMGRP RRPPRMGRP%rowtype; begin + /* Считаем исправляемую запись */ RES := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN); - P_RRPCONFSCTN_UPDATE(NRN => NRN, + /* Считаем запись родительского этапа */ + if (RES.RRPCONFSCTN is not null) then + RRRPCONFSCTN := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RES.RRPCONFSCTN); + end if; + /* Считаем запись группы параметров */ + if (RES.RRPPRMGRP is not null) then + RRRPPRMGRP := GET_RRPPRMGRP_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RES.RRPPRMGRP); + end if; + /* Исправим раздел */ + P_RRPCONFSCTN_UPDATE(NRN => RES.RN, NCOMPANY => NCOMPANY, SCODE => SCODE, SNAME => SNAME, - SRRPCONFSCTN => RES.RRPCONFSCTN, - SRRPPRMGRP => RES.RRPPRMGRP, + SRRPCONFSCTN => RRRPCONFSCTN.CODE, + SRRPPRMGRP => RRRPPRMGRP.CODE, SNOTE => RES.NOTE, NHTML_HIDE => RES.HTML_HIDE, NHTML_HIDE_NAME_COL => RES.HTML_HIDE_NAME_COL, @@ -306,6 +319,7 @@ create or replace package body PKG_P8PANELS_RRPCONFED as is NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации begin + /* Удалим раздел */ P_RRPCONFSCTN_DELETE(NRN => NRN, NCOMPANY => NCOMPANY); end RRPCONFSCTN_DELETE; @@ -319,7 +333,7 @@ create or replace package body PKG_P8PANELS_RRPCONFED as ) is NVERSION PKG_STD.TREF := GET_SESSION_VERSION(SUNITCODE => 'RRPConfig'); -- Версия раздела - begin + begin select R.CODE, RS.CODE, RSM.CODE @@ -346,6 +360,50 @@ create or replace package body PKG_P8PANELS_RRPCONFED as 'По выбранному показателю раздела найдено несколько записей.'); end RRPCONFSCTNMRK_GET_CODES; + /* Формирование кода и наименования показателя раздела регламентированного отчёта */ + procedure RRPCONFSCTNMRK_GET_CODE_NAME + ( + SSCTNCODE in varchar2, -- Мнемокод раздела + SROWCODE in varchar2, -- Мнемокод строки + NROWVER in number, -- Ид. редакции строки + SCOLUMNCODE in varchar2, -- Мнемокод графы + NCOLUMNVER in number, -- Ид. редакции графы + SCODE out varchar2, -- Мнемокод показателя раздела + SNAME out varchar2 -- Наименование показателя раздела + ) + is + NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации + NROWRN PKG_STD.TREF; -- Ид. строки + NCOLUMNRN PKG_STD.TREF; -- Ид. графы + begin + /* Сформируем код показателя */ + P_RRPCONFSCTNMRK_MAKE_CODE(SRRPCONFSCTN => SSCTNCODE, + SRRPROW => SROWCODE, + SRRPCOLUMN => SCOLUMNCODE, + SCODE => SCODE); + /* Найдем рег. номер строки показателя */ + FIND_RRPROW_CODE(NFLAG_SMART => 0, + NFLAG_OPTION => 0, + NCOMPANY => NCOMPANY, + NRRPVERSION => NROWVER, + SCODE => SROWCODE, + NRN => NROWRN); + /* Найдем рег. номер графы показателя */ + FIND_RRPCOLUMN_CODE(NFLAG_SMART => 0, + NFLAG_OPTION => 0, + NCOMPANY => NCOMPANY, + NRRPVERSION => NCOLUMNVER, + SCODE => SCOLUMNCODE, + NRN => NCOLUMNRN); + /* Сформируем наименование показателя */ + P_RRPCONFSCTNMRK_MAKE_NAME(NCOMPANY => NCOMPANY, + NRRPROW => NROWRN, + NRRPCOLUMN => NCOLUMNRN, + NCHANGE_NAME => 1, + NCHANGE_NAME_PARENT => 0, + SNAME => SNAME); + end RRPCONFSCTNMRK_GET_CODE_NAME; + /* Добавление показателя раздела регламентированного отчёта */ procedure RRPCONFSCTNMRK_INSERT ( @@ -360,12 +418,11 @@ create or replace package body PKG_P8PANELS_RRPCONFED as ) is NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - NCOUNT PKG_STD.TNUMBER; -- Счётчик показателей раздела begin - NCOUNT := F_RRPCONFSCTNMRK_NEXT_NUMB(NCOMPANY => NCOMPANY, NPRN => NPRN); + /* Добавим показатель */ P_RRPCONFSCTNMRK_INSERT(NCOMPANY => NCOMPANY, NPRN => NPRN, - NNUMB => NCOUNT, + NNUMB => F_RRPCONFSCTNMRK_NEXT_NUMB(NCOMPANY => NCOMPANY, NPRN => NPRN), SCODE => SCODE, SNAME => SNAME, SRRPROW => SROWCODE, @@ -396,6 +453,7 @@ create or replace package body PKG_P8PANELS_RRPCONFED as RESSCTNMRK RRPCONFSCTNMRK%rowtype; -- Запись настройки показателя регламентированного отчета RESROW RRPROW%rowtype; -- Запись строки регламентированного отчета RESCOLUMN RRPCOLUMN%rowtype; -- Запись графы регламентированного отчета + RRRPPRM RRPPRM%rowtype; -- Запись типового параметра регламентированного отчета SROWVER PKG_STD.TSTRING; -- Мнемокод редакции строки SCOLVER PKG_STD.TSTRING; -- Мнемокод редакции графы begin @@ -406,9 +464,18 @@ create or replace package body PKG_P8PANELS_RRPCONFED as /* Получение записи графы */ RESCOLUMN := GET_RRPCOLUMN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPCOLUMN); /* Получение мнемокода редакции строки */ - SROWVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESROW.RRPVERSION); + if (RESROW.RRPVERSION is not null) then + SROWVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESROW.RRPVERSION); + end if; /* Получение мнемокода редакции графы */ - SCOLVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESCOLUMN.RRPVERSION); + if (RESCOLUMN.RRPVERSION is not null) then + SCOLVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESCOLUMN.RRPVERSION); + end if; + /* Получение записи типового параметра */ + if (RESSCTNMRK.RRPPRM is not null) then + RRRPPRM := GET_RRPPRM_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPPRM); + end if; + /* Исправим показатель */ P_RRPCONFSCTNMRK_UPDATE(NRN => NRN, NCOMPANY => NCOMPANY, NNUMB => RESSCTNMRK.NUMB, @@ -422,7 +489,7 @@ create or replace package body PKG_P8PANELS_RRPCONFED as SPRC_ROW => RESSCTNMRK.PRC_ROW, SPKG_COL => RESSCTNMRK.PKG_COL, SPRC_COL => RESSCTNMRK.PRC_COL, - SRRPPRM => RESSCTNMRK.RRPPRM, + SRRPPRM => RRRPPRM.CODE, NIGNORE_ZOOM => RESSCTNMRK.IGNORE_ZOOM, NIGNORE_SHARP => RESSCTNMRK.IGNORE_SHARP, SCLSF_CODE => RESSCTNMRK.CLSF_CODE, @@ -438,48 +505,9 @@ create or replace package body PKG_P8PANELS_RRPCONFED as is NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации begin + /* Удалим показатель */ P_RRPCONFSCTNMRK_DELETE(NCOMPANY => NCOMPANY, NRN => NRN); end RRPCONFSCTNMRK_DELETE; - /* Формирование кода и наименования показателя раздела регламентированного отчёта */ - procedure RRPCONFSCTNMRK_GET_CODE_NAME - ( - SSCTNCODE in varchar2, -- Мнемокод раздела - SROWCODE in varchar2, -- Мнемокод строки - NROWVER in number, -- Ид. редакции строки - SCOLUMNCODE in varchar2, -- Мнемокод графы - NCOLUMNVER in number, -- Ид. редакции графы - SCODE out varchar2, -- Мнемокод показателя раздела - SNAME out varchar2 -- Наименование показателя раздела - ) - is - NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - NROWRN PKG_STD.TREF; -- Ид. строки - NCOLUMNRN PKG_STD.TREF; -- Ид. графы - begin - P_RRPCONFSCTNMRK_MAKE_CODE(SRRPCONFSCTN => SSCTNCODE, - SRRPROW => SROWCODE, - SRRPCOLUMN => SCOLUMNCODE, - SCODE => SCODE); - FIND_RRPROW_CODE(NFLAG_SMART => 0, - NFLAG_OPTION => 0, - NCOMPANY => NCOMPANY, - NRRPVERSION => NROWVER, - SCODE => SROWCODE, - NRN => NROWRN); - FIND_RRPCOLUMN_CODE(NFLAG_SMART => 0, - NFLAG_OPTION => 0, - NCOMPANY => NCOMPANY, - NRRPVERSION => NCOLUMNVER, - SCODE => SCOLUMNCODE, - NRN => NCOLUMNRN); - P_RRPCONFSCTNMRK_MAKE_NAME(NCOMPANY => NCOMPANY, - NRRPROW => NROWRN, - NRRPCOLUMN => NCOLUMNRN, - NCHANGE_NAME => 1, - NCHANGE_NAME_PARENT => 0, - SNAME => SNAME); - end RRPCONFSCTNMRK_GET_CODE_NAME; - end PKG_P8PANELS_RRPCONFED; /