diff --git a/app/panels/rrp_conf_editor/hooks.js b/app/panels/rrp_conf_editor/hooks.js new file mode 100644 index 0000000..bcafbaa --- /dev/null +++ b/app/panels/rrp_conf_editor/hooks.js @@ -0,0 +1,36 @@ +/* + Парус 8 - Панели мониторинга - Редактор настройки регламентированного отчёта + Пользовательские хуки +*/ + +//--------------------- +//Подключение библиотек +//--------------------- + +import { useState, useLayoutEffect } from "react"; //Классы React + +//----------- +//Тело модуля +//----------- + +//Хук для отработки изменений ширины и высоты рабочей области окна +const useWindowResize = () => { + //Состояние размера рабочей области + const [size, setSize] = useState([0, 0]); + //При изменении размера + useLayoutEffect(() => { + function updateSize() { + setSize([document.documentElement.clientWidth, document.documentElement.clientHeight]); + } + window.addEventListener("resize", updateSize); + updateSize(); + return () => window.removeEventListener("resize", updateSize); + }, []); + return size; +}; + +//-------------- +//Интерфейс хука +//-------------- + +export { useWindowResize }; diff --git a/app/panels/rrp_conf_editor/iud_form_dialog.js b/app/panels/rrp_conf_editor/iud_form_dialog.js index 5c734f3..936de02 100644 --- a/app/panels/rrp_conf_editor/iud_form_dialog.js +++ b/app/panels/rrp_conf_editor/iud_form_dialog.js @@ -13,7 +13,6 @@ import { Dialog, DialogTitle, IconButton, Icon, DialogContent, Typography, Dialo import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { IUDFormTextField } from "./iud_form_text_field"; //Компонент поля ввода -import { STATUSES } from "./layouts"; //Статусы и стили диалогового окна //--------- //Константы @@ -30,6 +29,9 @@ const STYLES = { PADDING_DIALOG_BUTTONS_RIGHT: { paddingRight: "32px" } }; +//Статусы диалогового окна +export const STATUSES = { CREATE: 0, EDIT: 1, DELETE: 2, RRPCONFSCTNMRK_CREATE: 3, RRPCONFSCTNMRK_EDIT: 4, RRPCONFSCTNMRK_DELETE: 5 }; + //--------------- //Тело компонента //--------------- @@ -178,7 +180,7 @@ const IUDFormDialog = ({ initial, onClose, onReload }) => { //Отрисовка диалогового окна const renderSwitch = () => { - var btnText = ""; + let btnText = ""; switch (formData.status) { case STATUSES.CREATE: case STATUSES.RRPCONFSCTNMRK_CREATE: @@ -244,14 +246,20 @@ const IUDFormDialog = ({ initial, onClose, onReload }) => { const getSctnMrkCodeName = useCallback(async () => { const data = await executeStored({ stored: "PKG_P8PANELS_RRPCONFED.RRPCONFSCTNMRK_GET_CODE_NAME", - args: { SSCTNCODE: formData.sctnCode, SROWCODE: formData.rowCode, SCOLUMNCODE: formData.colCode } + args: { + SSCTNCODE: formData.sctnCode, + SROWCODE: formData.rowCode, + NROWVER: formData.rowVRn, + SCOLUMNCODE: formData.colCode, + NCOLUMNVER: formData.colVRn + } }); setFormData(pv => ({ ...pv, code: data.SCODE, name: data.SNAME })); - }, [executeStored, formData.colCode, formData.rowCode, formData.sctnCode]); + }, [executeStored, formData.colCode, formData.colVRn, formData.rowCode, formData.rowVRn, formData.sctnCode]); //Получение наименования и мнемокода показателя раздела при заполнении необходимых полей useEffect(() => { diff --git a/app/panels/rrp_conf_editor/layouts.js b/app/panels/rrp_conf_editor/layouts.js index 4b25d30..d6bdc5b 100644 --- a/app/panels/rrp_conf_editor/layouts.js +++ b/app/panels/rrp_conf_editor/layouts.js @@ -17,12 +17,9 @@ import { Box, IconButton, Icon, Link } from "@mui/material"; //Интерфей //Стили export const STYLES = { BOX_ROW: { display: "flex", justifyContent: "center", alignItems: "center" }, - LINK_STYLE: { component: "button", width: "-webkit-fill-available" } + LINK_STYLE: { component: "button", cursor: "pointer", width: "-webkit-fill-available" } }; -//Статусы диалогового окна -export const STATUSES = { CREATE: 0, EDIT: 1, DELETE: 2, RRPCONFSCTNMRK_CREATE: 3, RRPCONFSCTNMRK_EDIT: 4, RRPCONFSCTNMRK_DELETE: 5 }; - //----------- //Тело модуля //----------- diff --git a/app/panels/rrp_conf_editor/rrp_conf_editor.js b/app/panels/rrp_conf_editor/rrp_conf_editor.js index 80ebec0..3c3d8de 100644 --- a/app/panels/rrp_conf_editor/rrp_conf_editor.js +++ b/app/panels/rrp_conf_editor/rrp_conf_editor.js @@ -17,18 +17,36 @@ import { NavigationCtx } from "../../context/navigation"; //Контекст н import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { SectionTabPanel } from "./section_tab_panel"; //Компонент вкладки раздела import { IUDFormDialog } from "./iud_form_dialog"; //Диалог добавления/исправления/удаления компонентов настройки регламентированного отчёта -import { STATUSES, dataCellRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов +import { dataCellRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов +import { STATUSES } from "./iud_form_dialog"; //Статусы диалогового окна import { TEXTS } from "../../../app.text"; //Текстовые константы import { STYLES as COMMON_STYLES } from "./layouts"; //Общие стили +import { useWindowResize } from "./hooks"; //--------- //Константы //--------- +//Высота меню Парус (пиксели) +const pxOuterMenuH = 53; +//Высота заголовка панели (пиксели) +const pxPanelHeaderH = 64; +//Ширина кнопки добавления раздела (пиксели) +const pxSectionAddButtonW = 40; + //Стили export const STYLES = { + PANELS_MAIN_COLOR: { backgroundColor: "#1976d2" }, + ICON_WHITE: { color: "white" }, TABS_BOTTOM_LINE: { borderBottom: 1, borderColor: "divider" }, - TABS_PADDING: { paddingTop: 1, paddingBottom: 1 } + TABS_PADDING: { padding: "5px" }, + TABS_SIZES: { maxHeight: 150 }, + GRID_PADDING: { paddingTop: 1, paddingBottom: 1 }, + GRID_SIZES: { + padding: 0, + minWidth: 400, + minHeight: 300 + } }; //----------- @@ -124,7 +142,7 @@ const RrpConfEditor = () => { const { showMsgErr } = useContext(MessagingСtx); //Переключение раздела - const handleChange = (event, newValue) => { + const handleSectionChange = (event, newValue) => { setTabValue(newValue); }; @@ -178,7 +196,7 @@ const RrpConfEditor = () => { //Переменная номера раздела с фокусом let tabFocus = 0; const data = await executeStored({ - stored: "PKG_P8PANELS_RRPCONFED.GET_RRPCONF_SECTIONS", + stored: "PKG_P8PANELS_RRPCONFED.RRPCONF_GET_SECTIONS", args: { NRN_RRPCONF: Number(getNavigationSearch().NRN) }, @@ -254,13 +272,21 @@ const RrpConfEditor = () => { //Отбор показателя раздела по ид. const showRrpConfSctnMrk = async rn => { const data = await executeStored({ - stored: "PKG_P8PANELS_RRPCONFED.SELECT_RRPCONFSCTNMRK", + stored: "PKG_P8PANELS_RRPCONFED.RRPCONFSCTNMRK_GET_CODES", args: { NRN: rn } }); - if (data.NIDENT) { - pOnlineShowUnit({ unitCode: "RRPConfigSectionMark", inputParameters: [{ name: "in_SelectList_Ident", value: data.NIDENT }] }); + if (data) { + pOnlineShowUnit({ + unitCode: "RRPConfig", + showMethod: "main_mrk_settings", + inputParameters: [ + { name: "in_CODE", value: data.SRRPCONF }, + { name: "in_SCTN_CODE", value: data.SRRPCONFSCTN }, + { name: "in_MRK_CODE", value: data.SRRPCONFSCTNMRK } + ] + }); } else showMsgErr(TEXTS.NO_DATA_FOUND); }; @@ -280,6 +306,17 @@ const RrpConfEditor = () => { clearFormData(); }; + //Состояние ширины и высоты рабочей области окна + const [width, height] = useWindowResize(); + + //Состояние высоты вкладок с разделами + const [pxTabsH, setPxTabsH] = useState(0); + + //При рендере данных + useEffect(() => { + rrpDoc.docLoaded ? setPxTabsH(document.getElementById("sectionTabs").offsetHeight) : null; + }, [rrpDoc.docLoaded]); + //Генерация содержимого return ( @@ -287,13 +324,22 @@ const RrpConfEditor = () => { {rrpDoc.docLoaded ? ( - + {rrpDoc.sections.map((s, i) => { return ( {s.name} @@ -310,9 +356,9 @@ const RrpConfEditor = () => { ); })} - + - add + add @@ -320,11 +366,18 @@ const RrpConfEditor = () => { return ( - {s.dataLoaded ? ( - + {s.dataLoaded && s.columnsDef.length > 1 ? ( + NCOMPANY, - NPRN => NPRN, - SCODE => SCODE, - SNAME => SNAME, - SRRPCONFSCTN => null, - SRRPPRMGRP => null, - SNOTE => null, - NHTML_HIDE => 0, - NHTML_HIDE_NAME_COL => 0, - NHTML_MAKE_HIER_GRP => 0, - SCLSF_CODE => null, - NLINKS_UPDATE => 0, - NDUP_RN => null, - NRN => NRN); - end RRPCONFSCTN_INSERT; - - /* Исправление раздела регламентированного отчёта */ - procedure RRPCONFSCTN_UPDATE - ( - NRN in number, -- Ид. раздела - SCODE in varchar2, -- Мнемокод раздела - SNAME in varchar2 -- Наименование раздела - ) - is - NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - begin - P_RRPCONFSCTN_UPDATE(NRN => NRN, - NCOMPANY => NCOMPANY, - SCODE => SCODE, - SNAME => SNAME, - SRRPCONFSCTN => null, - SRRPPRMGRP => null, - SNOTE => null, - NHTML_HIDE => 0, - NHTML_HIDE_NAME_COL => 0, - NHTML_MAKE_HIER_GRP => 0, - SCLSF_CODE => null, - NFORMULA_UPDATE => 0, - NMARK_UPDATE => 0); - end RRPCONFSCTN_UPDATE; - - /* Удаление раздела регламентированного отчёта */ - procedure RRPCONFSCTN_DELETE - ( - NRN in number -- Ид. раздела - ) - is - NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - begin - P_RRPCONFSCTN_DELETE(NRN => NRN, NCOMPANY => NCOMPANY); - end RRPCONFSCTN_DELETE; - - /* Добавление показателя раздела регламентированного отчёта */ - procedure RRPCONFSCTNMRK_INSERT - ( - NPRN in number, -- Ид. раздела - SCODE in varchar2, -- Мнемокод показателя раздела - SNAME in varchar2, -- Наименование показателя раздела - SCOLCODE in varchar2, -- Мнемокод графы - SCOLVER in varchar2, -- Мнемокод редакции графы - SROWCODE in varchar2, -- Мнемокод строки - SROWVER in varchar2, -- Мнемокод редакции строки - NRN out number -- Ид. созданной записи - ) - is - NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - NCOUNT PKG_STD.TNUMBER; -- Счётчик показателей раздела - begin - select count(*) into NCOUNT from RRPCONFSCTNMRK T where T.PRN = NPRN; - P_RRPCONFSCTNMRK_INSERT(NCOMPANY => NCOMPANY, - NPRN => NPRN, - NNUMB => NCOUNT + 1, - SCODE => SCODE, - SNAME => SNAME, - SRRPROW => SROWCODE, - SRRPVERSION_ROW => SROWVER, - SRRPCOLUMN => SCOLCODE, - SRRPVERSION_COLUMN => SCOLVER, - SPKG_ROW => null, - SPRC_ROW => null, - SPKG_COL => null, - SPRC_COL => null, - SRRPPRM => null, - NIGNORE_ZOOM => 0, - NIGNORE_SHARP => 0, - SCLSF_CODE => null, - SNOTE => null, - NDUP_RN => null, - NRN => NRN); - end RRPCONFSCTNMRK_INSERT; - - /* Исправление показателя раздела регламентированного отчёта */ - procedure RRPCONFSCTNMRK_UPDATE - ( - NRN in number, -- Ид. показателя раздела - SNAME in varchar2 -- Новое наименование - ) - is - NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - NNUMB PKG_STD.TNUMBER; -- Номер показателя раздела - SCODE PKG_STD.TSTRING; -- Мнемокод показателя раздела - SCOLCODE PKG_STD.TSTRING; -- Мнемокод графы - SCOLVER PKG_STD.TSTRING; -- Мнемокод редакции графы - SROWCODE PKG_STD.TSTRING; -- Мнемокод строки - SROWVER PKG_STD.TSTRING; -- Мнемокод редакции строки - begin - select T.NUMB, - T.CODE, - R.CODE, - RVER.CODE, - C.CODE, - CVER.CODE - into NNUMB, - SCODE, - SROWCODE, - SROWVER, - SCOLCODE, - SCOLVER - from RRPCONFSCTNMRK T, - RRPCOLUMN C, - RRPVERSION CVER, - RRPROW R, - RRPVERSION RVER - where T.RN = NRN - and T.RRPROW = R.RN(+) - and R.RRPVERSION = RVER.RN(+) - and T.RRPCOLUMN = C.RN(+) - and C.RRPVERSION = CVER.RN(+); - P_RRPCONFSCTNMRK_UPDATE(NRN => NRN, - NCOMPANY => NCOMPANY, - NNUMB => NNUMB, - SCODE => SCODE, - SNAME => SNAME, - SRRPROW => SROWCODE, - SRRPVERSION_ROW => SROWVER, - SRRPCOLUMN => SCOLCODE, - SRRPVERSION_COLUMN => SCOLVER, - SPKG_ROW => null, - SPRC_ROW => null, - SPKG_COL => null, - SPRC_COL => null, - SRRPPRM => null, - NIGNORE_ZOOM => 0, - NIGNORE_SHARP => 0, - SCLSF_CODE => null, - NFORMULA_UPDATE => 0, - SNOTE => null); - end RRPCONFSCTNMRK_UPDATE; - - /* Удаление показателя раздела регламентированного отчёта */ - procedure RRPCONFSCTNMRK_DELETE - ( - NRN in number -- Ид. показателя раздела - ) - 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, -- Мнемокод строки - SCOLUMNCODE in varchar2, -- Мнемокод графы - 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); - select R.RN into NROWRN from RRPROW R where R.CODE = SROWCODE; - select C.RN into NCOLUMNRN from RRPCOLUMN C where C.CODE = SCOLUMNCODE; - 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 SELECT_RRPCONFSCTNMRK - ( - NRN in number, -- Ид. показателя раздела - NIDENT out number -- Ид. буфера подобранных (списка отмеченных записей, null - не найдено) - ) - is - NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации - NSELECTLIST PKG_STD.TREF; -- Рег. номер добавленной записи буфера подобранных - begin - /* Сформируем идентификатор буфера */ - if (NIDENT is null) then - NIDENT := GEN_IDENT(); - end if; - /* Добавим подобранное в список отмеченных записей */ - P_SELECTLIST_BASE_INSERT(NIDENT => NIDENT, - NCOMPANY => NCOMPANY, - NDOCUMENT => NRN, - SUNITCODE => 'RRPConfigSectionMark', - SACTIONCODE => null, - NCRN => null, - NDOCUMENT1 => null, - SUNITCODE1 => null, - SACTIONCODE1 => null, - NRN => NSELECTLIST); - end SELECT_RRPCONFSCTNMRK; - /* Получение разделов регламентированного отчёта */ - procedure GET_RRPCONF_SECTIONS + procedure RRPCONF_GET_SECTIONS ( NRN_RRPCONF in number, -- Ид. нстройки форм регламентированного отчёта COUT out clob -- Список разделов @@ -464,7 +242,244 @@ create or replace package body PKG_P8PANELS_RRPCONFED as PKG_XFAST.EPILOGUE(); /* Очистка контейнера */ PKG_CONTVALLOC2NS.PURGE(RCONTAINER => CXML); - end GET_RRPCONF_SECTIONS; + end RRPCONF_GET_SECTIONS; + + /* Добавление раздела регламентированного отчёта */ + procedure RRPCONFSCTN_INSERT + ( + NPRN in number, -- Ид. настройки форм регламентированного отчёта + SCODE in varchar2, -- Мнемокод + SNAME in varchar2, -- Наименование + NRN out number -- Ид. созданной записи + ) + is + NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации + begin + P_RRPCONFSCTN_INSERT(NCOMPANY => NCOMPANY, + NPRN => NPRN, + SCODE => SCODE, + SNAME => SNAME, + SRRPCONFSCTN => null, + SRRPPRMGRP => null, + SNOTE => null, + NHTML_HIDE => 0, + NHTML_HIDE_NAME_COL => 0, + NHTML_MAKE_HIER_GRP => 0, + SCLSF_CODE => null, + NLINKS_UPDATE => 0, + NDUP_RN => null, + NRN => NRN); + end RRPCONFSCTN_INSERT; + + /* Исправление раздела регламентированного отчёта */ + procedure RRPCONFSCTN_UPDATE + ( + NRN in number, -- Ид. раздела + SCODE in varchar2, -- Мнемокод раздела + SNAME in varchar2 -- Наименование раздела + ) + is + NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации + RES RRPCONFSCTN%rowtype; -- Запись раздела настройки формы регламентированного отчета + begin + RES := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN); + P_RRPCONFSCTN_UPDATE(NRN => NRN, + NCOMPANY => NCOMPANY, + SCODE => SCODE, + SNAME => SNAME, + SRRPCONFSCTN => RES.RRPCONFSCTN, + SRRPPRMGRP => RES.RRPPRMGRP, + SNOTE => RES.NOTE, + NHTML_HIDE => RES.HTML_HIDE, + NHTML_HIDE_NAME_COL => RES.HTML_HIDE_NAME_COL, + NHTML_MAKE_HIER_GRP => RES.HTML_MAKE_HIER_GRP, + SCLSF_CODE => RES.CLSF_CODE, + NFORMULA_UPDATE => 1, + NMARK_UPDATE => 1); + end RRPCONFSCTN_UPDATE; + + /* Удаление раздела регламентированного отчёта */ + procedure RRPCONFSCTN_DELETE + ( + NRN in number -- Ид. раздела + ) + is + NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации + begin + P_RRPCONFSCTN_DELETE(NRN => NRN, NCOMPANY => NCOMPANY); + end RRPCONFSCTN_DELETE; + + /* Получение кодов настройки, раздела и показателя раздела по ид. показателя раздела */ + procedure RRPCONFSCTNMRK_GET_CODES + ( + NRN in number, -- Ид. показателя раздела + SRRPCONF out varchar2, -- Код настройки формы регламентированного отчёта + SRRPCONFSCTN out varchar2, -- Код раздела + SRRPCONFSCTNMRK out varchar2 -- Код показателя раздела + ) + is + NVERSION PKG_STD.TREF := GET_SESSION_VERSION(SUNITCODE => 'RRPConfig'); -- Версия раздела + begin + select R.CODE, + RS.CODE, + RSM.CODE + into SRRPCONF, + SRRPCONFSCTN, + SRRPCONFSCTNMRK + from RRPCONF R, + RRPCONFSCTN RS, + RRPCONFSCTNMRK RSM + where R.RN in (select RRPCONF + from RRPCONFSCTNMRK + where RN = NRN + and VERSION = NVERSION) + and RS.RN in (select PRN + from RRPCONFSCTNMRK + where RN = NRN + and VERSION = NVERSION) + and RSM.RN = NRN; + exception + when NO_DATA_FOUND then + P_EXCEPTION(0, 'По выбранному показателю раздела не найдено данных.'); + when TOO_MANY_ROWS then + P_EXCEPTION(0, + 'По выбранному показателю раздела найдено несколько записей.'); + end RRPCONFSCTNMRK_GET_CODES; + + /* Добавление показателя раздела регламентированного отчёта */ + procedure RRPCONFSCTNMRK_INSERT + ( + NPRN in number, -- Ид. раздела + SCODE in varchar2, -- Мнемокод показателя раздела + SNAME in varchar2, -- Наименование показателя раздела + SCOLCODE in varchar2, -- Мнемокод графы + SCOLVER in varchar2, -- Мнемокод редакции графы + SROWCODE in varchar2, -- Мнемокод строки + SROWVER in varchar2, -- Мнемокод редакции строки + NRN out number -- Ид. созданной записи + ) + 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, + SCODE => SCODE, + SNAME => SNAME, + SRRPROW => SROWCODE, + SRRPVERSION_ROW => SROWVER, + SRRPCOLUMN => SCOLCODE, + SRRPVERSION_COLUMN => SCOLVER, + SPKG_ROW => null, + SPRC_ROW => null, + SPKG_COL => null, + SPRC_COL => null, + SRRPPRM => null, + NIGNORE_ZOOM => 0, + NIGNORE_SHARP => 0, + SCLSF_CODE => null, + SNOTE => null, + NDUP_RN => null, + NRN => NRN); + end RRPCONFSCTNMRK_INSERT; + + /* Исправление показателя раздела регламентированного отчёта */ + procedure RRPCONFSCTNMRK_UPDATE + ( + NRN in number, -- Ид. показателя раздела + SNAME in varchar2 -- Новое наименование + ) + is + NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации + RESSCTNMRK RRPCONFSCTNMRK%rowtype; -- Запись настройки показателя регламентированного отчета + RESROW RRPROW%rowtype; -- Запись строки регламентированного отчета + RESCOLUMN RRPCOLUMN%rowtype; -- Запись графы регламентированного отчета + SROWVER PKG_STD.TSTRING; -- Мнемокод редакции строки + SCOLVER PKG_STD.TSTRING; -- Мнемокод редакции графы + begin + /* Получение записи параметра раздела */ + RESSCTNMRK := GET_RRPCONFSCTNMRK_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN); + /* Получение записи строки */ + RESROW := GET_RRPROW_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPROW); + /* Получение записи графы */ + RESCOLUMN := GET_RRPCOLUMN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPCOLUMN); + /* Получение мнемокода редакции строки */ + SROWVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESROW.RRPVERSION); + /* Получение мнемокода редакции графы */ + SCOLVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESCOLUMN.RRPVERSION); + P_RRPCONFSCTNMRK_UPDATE(NRN => NRN, + NCOMPANY => NCOMPANY, + NNUMB => RESSCTNMRK.NUMB, + SCODE => RESSCTNMRK.CODE, + SNAME => SNAME, + SRRPROW => RESROW.CODE, + SRRPVERSION_ROW => SROWVER, + SRRPCOLUMN => RESCOLUMN.CODE, + SRRPVERSION_COLUMN => SCOLVER, + SPKG_ROW => RESSCTNMRK.PKG_ROW, + SPRC_ROW => RESSCTNMRK.PRC_ROW, + SPKG_COL => RESSCTNMRK.PKG_COL, + SPRC_COL => RESSCTNMRK.PRC_COL, + SRRPPRM => RESSCTNMRK.RRPPRM, + NIGNORE_ZOOM => RESSCTNMRK.IGNORE_ZOOM, + NIGNORE_SHARP => RESSCTNMRK.IGNORE_SHARP, + SCLSF_CODE => RESSCTNMRK.CLSF_CODE, + NFORMULA_UPDATE => 0, + SNOTE => RESSCTNMRK.NOTE); + end RRPCONFSCTNMRK_UPDATE; + + /* Удаление показателя раздела регламентированного отчёта */ + procedure RRPCONFSCTNMRK_DELETE + ( + NRN in number -- Ид. показателя раздела + ) + 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; /