forked from CITKParus/P8-Panels
БД: Панель "Мониторинг сборки изделий" - интеграция SVG-модели, рефакторинг
This commit is contained in:
parent
dea0f3643d
commit
e6ccf979a6
@ -230,7 +230,7 @@ create or replace package PKG_P8PANELS_MECHREC as
|
|||||||
);
|
);
|
||||||
|
|
||||||
/* Получение таблицы маршрутных листов, связанных с производственным составом */
|
/* Получение таблицы маршрутных листов, связанных с производственным составом */
|
||||||
procedure FCROUTLST_MON_DG_GET
|
procedure FCROUTLST_DG_BY_PRDCMPSP_GET
|
||||||
(
|
(
|
||||||
NPRODCMPSP in number, -- Рег. номер производственного состава
|
NPRODCMPSP in number, -- Рег. номер производственного состава
|
||||||
NFCPRODPLAN in number, -- Рег. номер план
|
NFCPRODPLAN in number, -- Рег. номер план
|
||||||
@ -242,7 +242,7 @@ create or replace package PKG_P8PANELS_MECHREC as
|
|||||||
);
|
);
|
||||||
|
|
||||||
/* Получение таблицы комплектовочных ведомостей, связанных с производственным составом */
|
/* Получение таблицы комплектовочных ведомостей, связанных с производственным составом */
|
||||||
procedure FCDELIVSH_DG_GET
|
procedure FCDELIVSH_DG_BY_PRDCMPSP_GET
|
||||||
(
|
(
|
||||||
NPRODCMPSP in number, -- Рег. номер производственного состава
|
NPRODCMPSP in number, -- Рег. номер производственного состава
|
||||||
NFCPRODPLAN in number, -- Рег. номер план
|
NFCPRODPLAN in number, -- Рег. номер план
|
||||||
@ -253,13 +253,6 @@ create or replace package PKG_P8PANELS_MECHREC as
|
|||||||
COUT out clob -- Сериализованная таблица данных
|
COUT out clob -- Сериализованная таблица данных
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Считывание деталий для выбора SVG */
|
|
||||||
procedure FCPRODCMP_DETAILS_GET
|
|
||||||
(
|
|
||||||
NFCPRODPLAN in number, -- Рег. номер плана
|
|
||||||
COUT out clob -- Сериализованная таблица данных
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Получение таблицы записей "Планы и отчеты производства изделий" */
|
/* Получение таблицы записей "Планы и отчеты производства изделий" */
|
||||||
procedure FCPRODPLAN_GET
|
procedure FCPRODPLAN_GET
|
||||||
(
|
(
|
||||||
@ -273,6 +266,13 @@ create or replace package PKG_P8PANELS_MECHREC as
|
|||||||
COUT out clob -- Список каталогов раздела "Планы и отчеты производства изделий"
|
COUT out clob -- Список каталогов раздела "Планы и отчеты производства изделий"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Считывание деталей производственного состава */
|
||||||
|
procedure FCPRODCMP_DETAILS_GET
|
||||||
|
(
|
||||||
|
NFCPRODPLAN in number, -- Рег. номер плана
|
||||||
|
COUT out clob -- Сериализованная таблица данных
|
||||||
|
);
|
||||||
|
|
||||||
end PKG_P8PANELS_MECHREC;
|
end PKG_P8PANELS_MECHREC;
|
||||||
/
|
/
|
||||||
create or replace package body PKG_P8PANELS_MECHREC as
|
create or replace package body PKG_P8PANELS_MECHREC as
|
||||||
@ -335,6 +335,14 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
/* Константы - дополнительные параметры */
|
/* Константы - дополнительные параметры */
|
||||||
SCOL_PATTERN_DATE constant PKG_STD.TSTRING := 'dd_mm_yyyy'; -- Паттерн для динамической колонки граф ("день_месяц_год")
|
SCOL_PATTERN_DATE constant PKG_STD.TSTRING := 'dd_mm_yyyy'; -- Паттерн для динамической колонки граф ("день_месяц_год")
|
||||||
|
|
||||||
|
/* Константы - типовые присоединённые документы */
|
||||||
|
SFLINKTYPE_PREVIEW constant PKG_STD.TSTRING := 'Предпросмотр'; -- Тип ПД для изображений предпросмотра
|
||||||
|
SFLINKTYPE_SVG_MODEL constant PKG_STD.TSTRING := 'Векторная модель'; -- Тип ПД для SVG-модели
|
||||||
|
|
||||||
|
/* Константы - дополнительные свойства */
|
||||||
|
SDP_MODEL_ID constant PKG_STD.TSTRING := 'ПУДП.MODEL_ID'; -- Идентификатор в SVG-модели
|
||||||
|
SDP_MODEL_BG_COLOR constant PKG_STD.TSTRING := 'ПУДП.MODEL_BG_COLOR'; -- Цвет заливки в SVG-модели
|
||||||
|
|
||||||
/* Экземпляр дня загрузки цеха */
|
/* Экземпляр дня загрузки цеха */
|
||||||
type TJOB_DAY is record
|
type TJOB_DAY is record
|
||||||
(
|
(
|
||||||
@ -5319,7 +5327,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
end FCPRODPLANSP_LINKED_GET;
|
end FCPRODPLANSP_LINKED_GET;
|
||||||
|
|
||||||
/* Получение таблицы маршрутных листов, связанных с производственным составом */
|
/* Получение таблицы маршрутных листов, связанных с производственным составом */
|
||||||
procedure FCROUTLST_MON_DG_GET
|
procedure FCROUTLST_DG_BY_PRDCMPSP_GET
|
||||||
(
|
(
|
||||||
NPRODCMPSP in number, -- Рег. номер производственного состава
|
NPRODCMPSP in number, -- Рег. номер производственного состава
|
||||||
NFCPRODPLAN in number, -- Рег. номер план
|
NFCPRODPLAN in number, -- Рег. номер план
|
||||||
@ -5400,11 +5408,11 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(SH.NUMB) SNUMB,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' TRIM(SH.NUMB) SNUMB,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' COALESCE(SH.OPER_UK, FT.NAME) SOPERATION,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' COALESCE(SH.OPER_UK, FT.NAME) SOPERATION,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select I.CODE from INS_DEPARTMENT I where SF.SUBDIV = I.RN) SEXECUTOR,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' (select I.CODE from INS_DEPARTMENT I where SF.SUBDIV = I.RN) SEXECUTOR,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' F_DICMUNTS_BASE_RECALC_QUANT(' || PKG_SQL_BUILD.WRAP_NUM(NVALUE => 0) || ',');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ROUND(F_DICMUNTS_BASE_RECALC_QUANT(' || PKG_SQL_BUILD.WRAP_NUM(NVALUE => 0) || ',');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' :NCOMPANY,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' :NCOMPANY,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' SF.MUNIT,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' SF.MUNIT,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' SF.T_SHT_PLAN - SF.LABOUR_FACT,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' SF.T_SHT_PLAN - SF.LABOUR_FACT,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' :NDICMUNTS_WD) NREMN_LABOUR');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' :NDICMUNTS_WD), 3) NREMN_LABOUR');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from FCROUTLST F,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' from FCROUTLST F,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' FCROUTLSTSP SF,');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' FCROUTLSTSP SF,');
|
||||||
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' FCROUTSHTSP SH left outer join FCOPERTYPES FT on SH.OPER_TPS = FT.RN');
|
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' FCROUTSHTSP SH left outer join FCOPERTYPES FT on SH.OPER_TPS = FT.RN');
|
||||||
@ -5482,10 +5490,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
/* Очищаем отмеченные маршрутные листы */
|
/* Очищаем отмеченные маршрутные листы */
|
||||||
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
|
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
|
||||||
raise;
|
raise;
|
||||||
end FCROUTLST_MON_DG_GET;
|
end FCROUTLST_DG_BY_PRDCMPSP_GET;
|
||||||
|
|
||||||
/* Получение таблицы комплектовочных ведомостей, связанных с производственным составом */
|
/* Получение таблицы комплектовочных ведомостей, связанных с производственным составом */
|
||||||
procedure FCDELIVSH_DG_GET
|
procedure FCDELIVSH_DG_BY_PRDCMPSP_GET
|
||||||
(
|
(
|
||||||
NPRODCMPSP in number, -- Рег. номер производственного состава
|
NPRODCMPSP in number, -- Рег. номер производственного состава
|
||||||
NFCPRODPLAN in number, -- Рег. номер план
|
NFCPRODPLAN in number, -- Рег. номер план
|
||||||
@ -5623,7 +5631,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
SNAME => 'SPROVIDER',
|
SNAME => 'SPROVIDER',
|
||||||
ICURSOR => ICURSOR,
|
ICURSOR => ICURSOR,
|
||||||
NPOSITION => 5);
|
NPOSITION => 5);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||||||
SNAME => 'NDEFICIT',
|
SNAME => 'NDEFICIT',
|
||||||
ICURSOR => ICURSOR,
|
ICURSOR => ICURSOR,
|
||||||
NPOSITION => 6);
|
NPOSITION => 6);
|
||||||
@ -5638,77 +5646,44 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
end if;
|
end if;
|
||||||
/* Сериализуем описание */
|
/* Сериализуем описание */
|
||||||
COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
|
COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
|
||||||
end FCDELIVSH_DG_GET;
|
end FCDELIVSH_DG_BY_PRDCMPSP_GET;
|
||||||
|
|
||||||
/* Считывание деталий для выбора SVG */
|
/* Получение изображения для записи "Планы и отчеты производства изделий" */
|
||||||
procedure FCPRODCMP_DETAILS_GET
|
function FCPRODPLAN_IMAGE_GET
|
||||||
(
|
(
|
||||||
NFCPRODPLAN in number, -- Рег. номер плана
|
NRN in number, -- Рег. номер записи плана производства изделий
|
||||||
COUT out clob -- Сериализованная таблица данных
|
SFLINKTYPE in varchar2 -- Код типа присоединённого документа изображения (см. константы SFLINKTYPE_*)
|
||||||
)
|
) return blob -- Данные считанного изображения (null - если ничего не найдено)
|
||||||
is
|
is
|
||||||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
|
|
||||||
NDOC_PROP PKG_STD.TREF; -- Рег. номер свойства "ID"
|
|
||||||
NFCPRODPLANSP PKG_STD.TREF; -- Рег. номер связанной спецификации плана
|
|
||||||
begin
|
begin
|
||||||
/* Начинаем формирование XML */
|
/* Найдем изображение */
|
||||||
PKG_XFAST.PROLOGUE(ITYPE => PKG_XFAST.CONTENT_);
|
for IMG in (select M.BDATA
|
||||||
/* Считываем свойство документа */
|
from FILELINKS M,
|
||||||
FIND_DOCS_PROPS_CODE_EX(NFLAG_SMART => 0,
|
FILELINKSUNITS U,
|
||||||
NCOMPVERS => NCOMPANY,
|
FLINKTYPES FLT
|
||||||
SUNITCODE => 'CostProductCompositionSpec',
|
where M.FILE_TYPE = FLT.RN
|
||||||
SPROPCODE => 'ID',
|
and FLT.CODE = SFLINKTYPE
|
||||||
NRN => NDOC_PROP);
|
and U.TABLE_PRN = NRN
|
||||||
/* Открываем корень */
|
and U.UNITCODE = 'CostProductPlans'
|
||||||
PKG_XFAST.DOWN_NODE(SNAME => 'XDATA');
|
and M.RN = U.FILELINKS_PRN
|
||||||
/* Цикл по планам и отчетам производства изделий */
|
and M.BDATA is not null
|
||||||
for REC in (select S.RN NRN,
|
and ROWNUM = 1)
|
||||||
(select F.NAME from FCMATRESOURCE F where F.RN = S.MTR_RES) SNAME,
|
|
||||||
PV.NUM_VALUE NID
|
|
||||||
from FCPRODPLANSP T,
|
|
||||||
FCPRODCMPSP S,
|
|
||||||
DOCS_PROPS_VALS PV
|
|
||||||
where T.PRN = NFCPRODPLAN
|
|
||||||
and S.PRN = T.PRODCMP
|
|
||||||
and PV.DOCS_PROP_RN = NDOC_PROP
|
|
||||||
and PV.UNIT_RN = S.RN)
|
|
||||||
loop
|
loop
|
||||||
/* Получаем рег. номер связанной спецификации плана */
|
/* Вернём его */
|
||||||
NFCPRODPLANSP := FCPRODPLANSP_LINKED_GET(NPRODCMPSP => REC.NRN, NFCPRODPLAN => NFCPRODPLAN);
|
return IMG.BDATA;
|
||||||
/* Открываем план */
|
|
||||||
PKG_XFAST.DOWN_NODE(SNAME => 'XFCPRODCMP');
|
|
||||||
/* Описываем план */
|
|
||||||
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => REC.NRN);
|
|
||||||
PKG_XFAST.ATTR(SNAME => 'SNAME', SVALUE => REC.SNAME);
|
|
||||||
PKG_XFAST.ATTR(SNAME => 'NID', NVALUE => REC.NID);
|
|
||||||
PKG_XFAST.ATTR(SNAME => 'NFCPRODPLANSP', NVALUE => NFCPRODPLANSP);
|
|
||||||
/* Закрываем план */
|
|
||||||
PKG_XFAST.UP();
|
|
||||||
end loop;
|
end loop;
|
||||||
/* Закрываем корень */
|
/* Ничего не нашли */
|
||||||
PKG_XFAST.UP();
|
return null;
|
||||||
/* Сериализуем */
|
end FCPRODPLAN_IMAGE_GET;
|
||||||
COUT := PKG_XFAST.SERIALIZE_TO_CLOB();
|
|
||||||
/* Завершаем формирование XML */
|
|
||||||
PKG_XFAST.EPILOGUE();
|
|
||||||
exception
|
|
||||||
when others then
|
|
||||||
/* Завершаем формирование XML */
|
|
||||||
PKG_XFAST.EPILOGUE();
|
|
||||||
/* Вернем ошибку */
|
|
||||||
PKG_STATE.DIAGNOSTICS_STACKED();
|
|
||||||
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
|
|
||||||
end FCPRODCMP_DETAILS_GET;
|
|
||||||
|
|
||||||
/* Получение таблицы записей "Планы и отчеты производства изделий" */
|
/* Получение таблицы записей "Планы и отчеты производства изделий" */
|
||||||
procedure FCPRODPLAN_GET
|
procedure FCPRODPLAN_GET
|
||||||
(
|
(
|
||||||
NCRN in number, -- Рег. номер каталога
|
NCRN in number, -- Рег. номер каталога
|
||||||
COUT out clob -- Сериализованная таблица данных
|
COUT out clob -- Сериализованная таблица данных
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
|
NPROGRESS PKG_STD.TNUMBER; -- Прогресс плана
|
||||||
NPROGRESS PKG_STD.TNUMBER; -- Прогресс плана
|
|
||||||
|
|
||||||
/* Получение номера плана из примечания */
|
/* Получение номера плана из примечания */
|
||||||
function NUMB_BY_NOTE_GET
|
function NUMB_BY_NOTE_GET
|
||||||
@ -5718,7 +5693,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
is
|
is
|
||||||
begin
|
begin
|
||||||
/* Возвращаем результат */
|
/* Возвращаем результат */
|
||||||
return TRIM(SUBSTR(SNOTE, INSTR(SNOTE, '№')+1, length(SNOTE)));
|
return trim(SUBSTR(SNOTE, INSTR(SNOTE, '№') + 1, LENGTH(SNOTE)));
|
||||||
end NUMB_BY_NOTE_GET;
|
end NUMB_BY_NOTE_GET;
|
||||||
|
|
||||||
/* Получение детализации по прогрессу */
|
/* Получение детализации по прогрессу */
|
||||||
@ -5753,16 +5728,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
P.NOTE SNOTE,
|
P.NOTE SNOTE,
|
||||||
D_YEAR(EN.STARTDATE) NYEAR,
|
D_YEAR(EN.STARTDATE) NYEAR,
|
||||||
COALESCE(SUM(SP.LABOUR_FACT), 0) NLABOUR_FACT,
|
COALESCE(SUM(SP.LABOUR_FACT), 0) NLABOUR_FACT,
|
||||||
COALESCE(SUM(SP.LABOUR_NORM), 0) NLABOUR_NORM,
|
COALESCE(SUM(SP.LABOUR_NORM), 0) NLABOUR_NORM
|
||||||
(select M.BDATA
|
|
||||||
from FILELINKS M,
|
|
||||||
FILELINKSUNITS U
|
|
||||||
where M.COMPANY = NCOMPANY
|
|
||||||
and U.TABLE_PRN = P.RN
|
|
||||||
and U.UNITCODE = 'CostProductPlans'
|
|
||||||
and M.RN = U.FILELINKS_PRN
|
|
||||||
and M.BDATA is not null
|
|
||||||
and rownum = 1) BIMAGE
|
|
||||||
from FCPRODPLAN P left outer join FCPRODPLANSP SP on P.RN = SP.PRN and ((SP.LABOUR_NORM is not null) or (SP.LABOUR_FACT is not null)),
|
from FCPRODPLAN P left outer join FCPRODPLANSP SP on P.RN = SP.PRN and ((SP.LABOUR_NORM is not null) or (SP.LABOUR_FACT is not null)),
|
||||||
FINSTATE FS,
|
FINSTATE FS,
|
||||||
ENPERIOD EN
|
ENPERIOD EN
|
||||||
@ -5813,7 +5779,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
PKG_XFAST.ATTR(SNAME => 'NPROGRESS', NVALUE => NPROGRESS);
|
PKG_XFAST.ATTR(SNAME => 'NPROGRESS', NVALUE => NPROGRESS);
|
||||||
PKG_XFAST.ATTR(SNAME => 'SDETAIL', SVALUE => DETAIL_BY_PROGRESS_GET(NPROGRESS => NPROGRESS));
|
PKG_XFAST.ATTR(SNAME => 'SDETAIL', SVALUE => DETAIL_BY_PROGRESS_GET(NPROGRESS => NPROGRESS));
|
||||||
PKG_XFAST.ATTR(SNAME => 'NYEAR', NVALUE => REC.NYEAR);
|
PKG_XFAST.ATTR(SNAME => 'NYEAR', NVALUE => REC.NYEAR);
|
||||||
PKG_XFAST.VALUE(lbVALUE => REC.BIMAGE);
|
PKG_XFAST.DOWN_NODE(SNAME => 'BIMAGE');
|
||||||
|
PKG_XFAST.VALUE(LBVALUE => FCPRODPLAN_IMAGE_GET(NRN => REC.NRN, SFLINKTYPE => SFLINKTYPE_PREVIEW));
|
||||||
|
PKG_XFAST.UP();
|
||||||
/* Закрываем план */
|
/* Закрываем план */
|
||||||
PKG_XFAST.UP();
|
PKG_XFAST.UP();
|
||||||
end loop;
|
end loop;
|
||||||
@ -5917,5 +5885,80 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
|
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
|
||||||
end FCPRODPLAN_CTLG_INIT;
|
end FCPRODPLAN_CTLG_INIT;
|
||||||
|
|
||||||
|
/* Считывание деталей производственного состава */
|
||||||
|
procedure FCPRODCMP_DETAILS_GET
|
||||||
|
(
|
||||||
|
NFCPRODPLAN in number, -- Рег. номер плана
|
||||||
|
COUT out clob -- Сериализованная таблица данных
|
||||||
|
)
|
||||||
|
is
|
||||||
|
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
|
||||||
|
NDP_MODEL_ID PKG_STD.TREF; -- Рег. номер свойства "Идентификатор в SVG-модели"
|
||||||
|
NDP_MODEL_BG_COLOR PKG_STD.TREF; -- Рег. номер свойства "Цвет заливки в SVG-модели"
|
||||||
|
NFCPRODPLANSP PKG_STD.TREF; -- Рег. номер связанной спецификации плана
|
||||||
|
begin
|
||||||
|
/* Начинаем формирование XML */
|
||||||
|
PKG_XFAST.PROLOGUE(ITYPE => PKG_XFAST.CONTENT_);
|
||||||
|
/* Считываем свойства детали для её позиционирования в модели */
|
||||||
|
FIND_DOCS_PROPS_CODE_EX(NFLAG_SMART => 1,
|
||||||
|
NCOMPVERS => NCOMPANY,
|
||||||
|
SUNITCODE => 'CostProductCompositionSpec',
|
||||||
|
SPROPCODE => SDP_MODEL_ID,
|
||||||
|
NRN => NDP_MODEL_ID);
|
||||||
|
FIND_DOCS_PROPS_CODE_EX(NFLAG_SMART => 1,
|
||||||
|
NCOMPVERS => NCOMPANY,
|
||||||
|
SUNITCODE => 'CostProductCompositionSpec',
|
||||||
|
SPROPCODE => SDP_MODEL_BG_COLOR,
|
||||||
|
NRN => NDP_MODEL_BG_COLOR);
|
||||||
|
/* Открываем корень */
|
||||||
|
PKG_XFAST.DOWN_NODE(SNAME => 'XDATA');
|
||||||
|
/* Векторная модель */
|
||||||
|
PKG_XFAST.DOWN_NODE(SNAME => 'BMODEL');
|
||||||
|
PKG_XFAST.VALUE(LBVALUE => FCPRODPLAN_IMAGE_GET(NRN => NFCPRODPLAN, SFLINKTYPE => SFLINKTYPE_SVG_MODEL));
|
||||||
|
PKG_XFAST.UP();
|
||||||
|
/* Цикл по планам и отчетам производства изделий */
|
||||||
|
for REC in (select S.RN NRN,
|
||||||
|
(select F.NAME from FCMATRESOURCE F where F.RN = S.MTR_RES) SNAME,
|
||||||
|
PV_MID.STR_VALUE SMODEL_ID,
|
||||||
|
(select PV_MFC.STR_VALUE
|
||||||
|
from DOCS_PROPS_VALS PV_MFC
|
||||||
|
where PV_MFC.UNIT_RN = S.RN
|
||||||
|
and PV_MFC.DOCS_PROP_RN = NDP_MODEL_BG_COLOR) SMODEL_BG_COLOR
|
||||||
|
from FCPRODPLANSP T,
|
||||||
|
FCPRODCMPSP S,
|
||||||
|
DOCS_PROPS_VALS PV_MID
|
||||||
|
where T.PRN = NFCPRODPLAN
|
||||||
|
and S.PRN = T.PRODCMP
|
||||||
|
and PV_MID.UNIT_RN = S.RN
|
||||||
|
and PV_MID.DOCS_PROP_RN = NDP_MODEL_ID)
|
||||||
|
loop
|
||||||
|
/* Получаем рег. номер связанной спецификации плана */
|
||||||
|
NFCPRODPLANSP := FCPRODPLANSP_LINKED_GET(NPRODCMPSP => REC.NRN, NFCPRODPLAN => NFCPRODPLAN);
|
||||||
|
/* Открываем план */
|
||||||
|
PKG_XFAST.DOWN_NODE(SNAME => 'XFCPRODCMP');
|
||||||
|
/* Описываем план */
|
||||||
|
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => REC.NRN);
|
||||||
|
PKG_XFAST.ATTR(SNAME => 'SNAME', SVALUE => REC.SNAME);
|
||||||
|
PKG_XFAST.ATTR(SNAME => 'SMODEL_ID', SVALUE => REC.SMODEL_ID);
|
||||||
|
PKG_XFAST.ATTR(SNAME => 'SMODEL_BG_COLOR', SVALUE => REC.SMODEL_BG_COLOR);
|
||||||
|
PKG_XFAST.ATTR(SNAME => 'NFCPRODPLANSP', NVALUE => NFCPRODPLANSP);
|
||||||
|
/* Закрываем план */
|
||||||
|
PKG_XFAST.UP();
|
||||||
|
end loop;
|
||||||
|
/* Закрываем корень */
|
||||||
|
PKG_XFAST.UP();
|
||||||
|
/* Сериализуем */
|
||||||
|
COUT := PKG_XFAST.SERIALIZE_TO_CLOB();
|
||||||
|
/* Завершаем формирование XML */
|
||||||
|
PKG_XFAST.EPILOGUE();
|
||||||
|
exception
|
||||||
|
when others then
|
||||||
|
/* Завершаем формирование XML */
|
||||||
|
PKG_XFAST.EPILOGUE();
|
||||||
|
/* Вернем ошибку */
|
||||||
|
PKG_STATE.DIAGNOSTICS_STACKED();
|
||||||
|
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
|
||||||
|
end FCPRODCMP_DETAILS_GET;
|
||||||
|
|
||||||
end PKG_P8PANELS_MECHREC;
|
end PKG_P8PANELS_MECHREC;
|
||||||
/
|
/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user