diff --git a/README.md b/README.md
index bba4835..2163ed8 100644
--- a/README.md
+++ b/README.md
@@ -1341,18 +1341,18 @@ const MyPanel = () => {
Такие свойства как `columnsDef`, `groups`, `rows` компонента `P8PDataGrid` требуют от разработчика передачи данных в определённом формате. Это не обязательно должна быть информация из БД Системы, можно, например, просто объявить переменные в коде панели, задать им соответствующие значения и передать в компонент. Но изначально, таблица данных задумывалась для отображения сведений, полученных их учётных регистров Системы. Такие сведения, как правило, собираются хранимым объектом БД, исполняемым из панели посредством вызова `executeStored`. С целью снижения трудозатрат на приведение собранных хранимым объектом данных к форматам, потребляемым `P8PDataGrid`, реализован специальный API на стороне сервера БД.
Для таблицы данных это (см. детальные описания программных интерфейсов в пакете `PKG_P8PANELS_VISUAL`):
-`PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE` - функция, инициализация таблицы данных, возвращает объект для хранения описания таблицы\
-`PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF` - процедура, добавление описания колонки в таблицу, принимает на вход объект с описанием таблицы и параметры, описывающие добавляемую колонку (её имя, заголовок, тип данных, видимость, доступность отбора и сортировки, набор предопределённых значений и т.д.)\
-`PKG_P8PANELS_VISUAL.TCOL_VALS_ADD` - процедура, служит для формирования коллекции предопределённых значений колонки таблицы (подготовленная коллекция передаётся в `RCOL_VALS` вызова `TDATA_GRID_ADD_COL_DEF`, если необходимо)\
-`PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP` - процедура, служит для добавления описания группы в таблицу данных, на вход принимает объект для хранения описания таблицы и параметры добавляемой группы\
-`PKG_P8PANELS_VISUAL.TROW_ADD_COL` - процедура, добавляет значение колонки к строке таблицы (значение указывается явно в `[S|N|D]VALUE`)\
-`PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COL[S|N|D]` - процедура, добавляет значение колонки к строке таблицы (значение указывается через ссылку на номер колонки `NPOSITION` в курсоре `ICURSOR` динамического SQL)\
-`PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW` - процедура, добавляет сформированную строку со значениями колонок в таблицу данных, на вход принимает объект для хранения описания таблицы и описание строки, сформированное вызовами `TROW_ADD_COL` и `TROW_ADD_CUR_COL[S|N|D]`, а так же год группы, в которую должна быть включена строка\
-`PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML` - функция, производит сериализацию объекта, описывающего таблицу данных, в специальный XML-формат, корректно интерпретируемый клиентским компонентом `P8PDataGrid` при передаче в WEB-приложение\
-`PKG_P8PANELS_VISUAL.TORDERS_FROM_XML` - функция, служит для десериализации (как правило, полученного от клиентского приложения) состояния сортировок в коллекцию формата `TORDERS`, на вход принимает `CLOB` с сериализованным состоянием сортировок таблицы в виде `BASE64(ИМЯASC|DESC...)` (клиентское приложение должно обеспечить передачу состояния сортировок в этом формате, см. пример ниже)\
-`PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY` - процедура, вспомогательная утилита, производит в тексте SQL-запроса, поданного на вход, замену указанного шаблона на конструкцию `order by`, сформированную с учётом переданной коллекции `RORDERS`\
-`PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML` - функция, служит для десериализации (как правило, полученного от клиентского приложения) состояния фильтров в коллекцию формата `TFILTERS`, на вход принимает `CLOB` с сериализованным состоянием фильтров таблицы в виде `BASE64(ИМЯЗНАЧЕНИЕЗНАЧЕНИЕ...)` (клиентское приложение должно обеспечить передачу состояния фильтров в этом формате, см. пример ниже)\
-`PKG_P8PANELS_VISUAL.TFILTERS_SET_QUERY` - процедура, вспомогательная утилита, производит вызов указанной серверной процедуры отбора с учётом переданных переменных окружения и значений в `RFILTERS`\
+`PKG_P8PANELS_VISUAL.TDG_MAKE` - функция, инициализация таблицы данных, возвращает объект для хранения описания таблицы\
+`PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF` - процедура, добавление описания колонки в таблицу, принимает на вход объект с описанием таблицы и параметры, описывающие добавляемую колонку (её имя, заголовок, тип данных, видимость, доступность отбора и сортировки, набор предопределённых значений и т.д.)\
+`PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD` - процедура, служит для формирования коллекции предопределённых значений колонки таблицы (подготовленная коллекция передаётся в `RCOL_VALS` вызова `TDG_ADD_COL_DEF`, если необходимо)\
+`PKG_P8PANELS_VISUAL.TDG_ADD_GROUP` - процедура, служит для добавления описания группы в таблицу данных, на вход принимает объект для хранения описания таблицы и параметры добавляемой группы\
+`PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL` - процедура, добавляет значение колонки к строке таблицы (значение указывается явно в `[S|N|D]VALUE`)\
+`PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COL[S|N|D]` - процедура, добавляет значение колонки к строке таблицы (значение указывается через ссылку на номер колонки `NPOSITION` в курсоре `ICURSOR` динамического SQL)\
+`PKG_P8PANELS_VISUAL.TDG_ADD_ROW` - процедура, добавляет сформированную строку со значениями колонок в таблицу данных, на вход принимает объект для хранения описания таблицы и описание строки, сформированное вызовами `TDG_ROW_ADD_COL` и `TDG_ROW_ADD_CUR_COL[S|N|D]`, а так же год группы, в которую должна быть включена строка\
+`PKG_P8PANELS_VISUAL.TDG_TO_XML` - функция, производит сериализацию объекта, описывающего таблицу данных, в специальный XML-формат, корректно интерпретируемый клиентским компонентом `P8PDataGrid` при передаче в WEB-приложение\
+`PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML` - функция, служит для десериализации (как правило, полученного от клиентского приложения) состояния сортировок в коллекцию формата `TORDERS`, на вход принимает `CLOB` с сериализованным состоянием сортировок таблицы в виде `BASE64(ИМЯASC|DESC...)` (клиентское приложение должно обеспечить передачу состояния сортировок в этом формате, см. пример ниже)\
+`PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY` - процедура, вспомогательная утилита, производит в тексте SQL-запроса, поданного на вход, замену указанного шаблона на конструкцию `order by`, сформированную с учётом переданной коллекции `RORDERS`\
+`PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML` - функция, служит для десериализации (как правило, полученного от клиентского приложения) состояния фильтров в коллекцию формата `TFILTERS`, на вход принимает `CLOB` с сериализованным состоянием фильтров таблицы в виде `BASE64(ИМЯЗНАЧЕНИЕЗНАЧЕНИЕ...)` (клиентское приложение должно обеспечить передачу состояния фильтров в этом формате, см. пример ниже)\
+`PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY` - процедура, вспомогательная утилита, производит вызов указанной серверной процедуры отбора с учётом переданных переменных окружения и значений в `RFILTERS`\
`PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC` - процедура, вспомогательная утилита, служит для конвертации номера страницы данных и размера страницы данных в границы диапазона строк выборки (как правило, клиентскому приложению удобнее прислать на сервер текущий номер страницы и её размер, в то время к в запросах, для выборки, удобнее применять границы диапазонов строк)
**Пример**
@@ -1372,11 +1372,11 @@ const MyPanel = () => {
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
NIDENT PKG_STD.TREF := GEN_IDENT(); -- Идентификатор отбора
- RF PKG_P8PANELS_VISUAL.TFILTERS; -- Фильтры
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RAGN_TYPES PKG_P8PANELS_VISUAL.TCOL_VALS; -- Предопределенные значения "Типа контрагентов"
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- Фильтры
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RAGN_TYPES PKG_P8PANELS_VISUAL.TDG_COL_VALS; -- Предопределенные значения "Типа контрагентов"
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -1387,71 +1387,71 @@ const MyPanel = () => {
NAGNTYPE PKG_STD.TREF; -- Буфер для "Типа"
begin
/* Читаем фильтры */
- RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 2);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 2);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNABBR',
- SCAPTION => 'Мнемокод',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'AgentAbbr',
- BVISIBLE => true,
- BORDER => true,
- BFILTER => true,
- NWIDTH => 150);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNINFO',
- SCAPTION => 'Сведения',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => false,
- BFILTER => false,
- BEXPANDABLE => true,
- NWIDTH => 300);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNNAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'AgentName',
- BVISIBLE => true,
- BORDER => true,
- BFILTER => true,
- SPARENT => 'SAGNINFO',
- NWIDTH => 200);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 0);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NAGNTYPE',
- SCAPTION => 'Тип',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'AgentType',
- BVISIBLE => true,
- BORDER => true,
- BFILTER => true,
- SPARENT => 'SAGNINFO',
- NWIDTH => 100,
- RCOL_VALS => RAGN_TYPES,
- SHINT => 'В Системе бывают контрагенты двух типов:
' ||
- 'Юридическое лицо - организация, которая имеет в собственности, хозяйственном ведении ' ||
- 'или оперативном управлении обособленное имущество, отвечает по своим обязательствам этим имуществом, может от своего ' ||
- 'имени приобретать и осуществлять имущественные и личные неимущественные права, отвечать по своим обязанностям.
' ||
- 'Физическое лицо - субъект правовых отношений, представляющий собой одного человека.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SFULLNAME',
- SCAPTION => 'Полное наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNIDNUMB',
- SCAPTION => 'ИНН',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNABBR',
+ SCAPTION => 'Мнемокод',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'AgentAbbr',
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => true,
+ NWIDTH => 150);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNINFO',
+ SCAPTION => 'Сведения',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => false,
+ BFILTER => false,
+ BEXPANDABLE => true,
+ NWIDTH => 300);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNNAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'AgentName',
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => true,
+ SPARENT => 'SAGNINFO',
+ NWIDTH => 200);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 0);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NAGNTYPE',
+ SCAPTION => 'Тип',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'AgentType',
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => true,
+ SPARENT => 'SAGNINFO',
+ NWIDTH => 100,
+ RCOL_VALS => RAGN_TYPES,
+ SHINT => 'В Системе бывают контрагенты двух типов:
' ||
+ 'Юридическое лицо - организация, которая имеет в собственности, хозяйственном ведении ' ||
+ 'или оперативном управлении обособленное имущество, отвечает по своим обязательствам этим имуществом, может от своего ' ||
+ 'имени приобретать и осуществлять имущественные и личные неимущественные права, отвечать по своим обязанностям.
' ||
+ 'Физическое лицо - субъект правовых отношений, представляющий собой одного человека.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SFULLNAME',
+ SCAPTION => 'Полное наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNIDNUMB',
+ SCAPTION => 'ИНН',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -1477,14 +1477,17 @@ const MyPanel = () => {
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and AG.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT) %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Учтём фильтры */
- PKG_P8PANELS_VISUAL.TFILTERS_SET_QUERY(NIDENT => NIDENT,
- NCOMPANY => NCOMPANY,
- SUNIT => 'AGNLIST',
- SPROCEDURE => 'P_AGNLIST_BASE_COND',
- RDATA_GRID => RDG,
- RFILTERS => RF);
+ PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY(NIDENT => NIDENT,
+ NCOMPANY => NCOMPANY,
+ SUNIT => 'AGNLIST',
+ SPROCEDURE => 'P_AGNLIST_BASE_COND',
+ RDATA_GRID => RDG,
+ RFILTERS => RF);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1512,29 +1515,38 @@ const MyPanel = () => {
if (NAGNTYPE = 0) then
SGROUP := 'JUR';
SAGNINFO := SAGNNAME || ', ЮЛ';
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SGROUP,
- SCAPTION => 'Юридические лица',
- BEXPANDABLE => true,
- BEXPANDED => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SGROUP,
+ SCAPTION => 'Юридические лица',
+ BEXPANDABLE => true,
+ BEXPANDED => false);
else
SGROUP := 'PERS';
SAGNINFO := SAGNNAME || ', ФЛ';
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SGROUP,
- SCAPTION => 'Физические лица',
- BEXPANDABLE => true,
- BEXPANDED => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SGROUP,
+ SCAPTION => 'Физические лица',
+ BEXPANDABLE => true,
+ BEXPANDED => false);
end if;
- RDG_ROW := PKG_P8PANELS_VISUAL.TROW_MAKE(SGROUP => SGROUP);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SAGNABBR', ICURSOR => ICURSOR, NPOSITION => 1);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNINFO', SVALUE => SAGNINFO);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNNAME', SVALUE => SAGNNAME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NAGNTYPE', NVALUE => NAGNTYPE);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SFULLNAME', ICURSOR => ICURSOR, NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SAGNIDNUMB', ICURSOR => ICURSOR, NPOSITION => 5);
+ RDG_ROW := PKG_P8PANELS_VISUAL.TDG_ROW_MAKE(SGROUP => SGROUP);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGNABBR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNINFO', SVALUE => SAGNINFO);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNNAME', SVALUE => SAGNNAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NAGNTYPE', NVALUE => NAGNTYPE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SFULLNAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGNIDNUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
/* Освобождаем курсор */
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
@@ -1544,7 +1556,7 @@ const MyPanel = () => {
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end DATA_GRID;
```
@@ -1617,14 +1629,14 @@ export const groupCellRender = () => ({ cellStyle: { padding: "2px" } });
//Пример: Таблица данных "P8PDataGrid"
const DataGrid = ({ title }) => {
//Собственное состояние - таблица данных
- const [dataGrid, setdataGrid] = useState({
+ const [dataGrid, setDataGrid] = useState({
dataLoaded: false,
columnsDef: [],
filters: null,
orders: null,
groups: [],
rows: [],
- reload: true,
+ reloading: true,
pageNumber: 1,
morePages: true,
fixedHeader: false,
@@ -1639,7 +1651,7 @@ const DataGrid = ({ title }) => {
//Загрузка данных таблицы с сервера
const loadData = useCallback(async () => {
- if (dataGrid.reload) {
+ if (dataGrid.reloading) {
const data = await executeStored({
stored: "PKG_P8PANELS_SAMPLES.DATA_GRID",
args: {
@@ -1651,32 +1663,31 @@ const DataGrid = ({ title }) => {
},
respArg: "COUT"
});
- setdataGrid(pv => ({
+ setDataGrid(pv => ({
...pv,
- fixedHeader: data.XDATA_GRID.fixedHeader,
- fixedColumns: data.XDATA_GRID.fixedColumns,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
- groups: data.XGROUPS
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
+ groups: data.XDATA_GRID.groups
? pv.pageNumber == 1
- ? [...data.XGROUPS]
- : [...pv.groups, ...data.XGROUPS.filter(g => !pv.groups.find(pg => pg.name == g.name))]
+ ? [...data.XDATA_GRID.groups]
+ : [...pv.groups, ...data.XDATA_GRID.groups.filter(g => !pv.groups.find(pg => pg.name == g.name))]
: [...pv.groups],
dataLoaded: true,
- reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ reloading: false,
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
}
- }, [dataGrid.reload, dataGrid.filters, dataGrid.orders, dataGrid.dataLoaded, dataGrid.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);
+ }, [dataGrid.reloading, dataGrid.filters, dataGrid.orders, dataGrid.dataLoaded, dataGrid.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);
//При изменении состояния фильтра
- const handleFilterChanged = ({ filters }) => setdataGrid(pv => ({ ...pv, filters: [...filters], pageNumber: 1, reload: true }));
+ const handleFilterChanged = ({ filters }) => setDataGrid(pv => ({ ...pv, filters: [...filters], pageNumber: 1, reloading: true }));
//При изменении состояния сортировки
- const handleOrderChanged = ({ orders }) => setdataGrid(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reload: true }));
+ const handleOrderChanged = ({ orders }) => setDataGrid(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reloading: true }));
//При изменении количества отображаемых страниц
- const handlePagesCountChanged = () => setdataGrid(pv => ({ ...pv, pageNumber: pv.pageNumber + 1, reload: true }));
+ const handlePagesCountChanged = () => setDataGrid(pv => ({ ...pv, pageNumber: pv.pageNumber + 1, reloading: true }));
//При нажатии на копку контрагента
const handleAgnButtonClicked = agnCode => pOnlineShowDocument({ unitCode: "AGNLIST", document: agnCode, inRnParameter: "in_AGNABBR" });
@@ -1684,7 +1695,7 @@ const DataGrid = ({ title }) => {
//При необходимости обновить данные таблицы
useEffect(() => {
loadData();
- }, [dataGrid.reload, loadData]);
+ }, [dataGrid.reloading, loadData]);
//Генерация содержимого
return (
@@ -1699,15 +1710,8 @@ const DataGrid = ({ title }) => {
{
//Пример: Диаграмма Ганта "P8Gantt"
const Gantt = ({ title }) => {
//Собственное состояние
- const [state, setState] = useState({
+ const [gantt, setGantt] = useState({
init: false,
dataLoaded: false,
ident: null,
- ganttDef: {},
- ganttTasks: [],
useCustomTaskDialog: false
});
@@ -2142,21 +2144,21 @@ const Gantt = ({ title }) => {
const loadData = useCallback(async () => {
const data = await executeStored({
stored: "PKG_P8PANELS_SAMPLES.GANTT",
- args: { NIDENT: state.ident },
+ args: { NIDENT: gantt.ident },
attributeValueProcessor: (name, val) =>
name == "numb" ? undefined : ["start", "end"].includes(name) ? formatDateJSONDateOnly(val) : val,
respArg: "COUT"
});
- setState(pv => ({ ...pv, dataLoaded: true, ganttDef: { ...data.XGANTT_DEF }, ganttTasks: [...data.XGANTT_TASKS] }));
- }, [state.ident, executeStored]);
+ setGantt(pv => ({ ...pv, dataLoaded: true, ...data.XGANTT }));
+ }, [gantt.ident, executeStored]);
//Инициализация данных диаграммы
const initData = useCallback(async () => {
- if (!state.init) {
- const data = await executeStored({ stored: "PKG_P8PANELS_SAMPLES.GANTT_INIT", args: { NIDENT: state.ident } });
- setState(pv => ({ ...pv, init: true, ident: data.NIDENT }));
+ if (!gantt.init) {
+ const data = await executeStored({ stored: "PKG_P8PANELS_SAMPLES.GANTT_INIT", args: { NIDENT: gantt.ident } });
+ setGantt(pv => ({ ...pv, init: true, ident: data.NIDENT }));
}
- }, [state.init, state.ident, executeStored]);
+ }, [gantt.init, gantt.ident, executeStored]);
//Изменение данных диаграммы
const modifyData = useCallback(
@@ -2164,13 +2166,13 @@ const Gantt = ({ title }) => {
try {
await executeStored({
stored: "PKG_P8PANELS_SAMPLES.GANTT_MODIFY",
- args: { NIDENT: state.ident, NRN: rn, DDATE_FROM: new Date(start), DDATE_TO: new Date(end) }
+ args: { NIDENT: gantt.ident, NRN: rn, DDATE_FROM: new Date(start), DDATE_TO: new Date(end) }
});
} finally {
loadData();
}
},
- [state.ident, executeStored, loadData]
+ [gantt.ident, executeStored, loadData]
);
//Обработка измненения сроков задачи в диаграмме Гантта
@@ -2180,8 +2182,8 @@ const Gantt = ({ title }) => {
//При необходимости обновить данные таблицы
useEffect(() => {
- if (state.ident) loadData();
- }, [state.ident, loadData]);
+ if (gantt.ident) loadData();
+ }, [gantt.ident, loadData]);
//При подключении компонента к странице
useEffect(() => {
@@ -2196,23 +2198,21 @@ const Gantt = ({ title }) => {
{title}
setState(pv => ({ ...pv, useCustomTaskDialog: !pv.useCustomTaskDialog }))} />}
+ sx={STYLES.CONTROL}
+ control={ setGantt(pv => ({ ...pv, useCustomTaskDialog: !pv.useCustomTaskDialog }))} />}
label="Отображать пользовательский диалог задачи"
/>
-
+
- {state.dataLoaded ? (
-
-
-
+ {gantt.dataLoaded ? (
+
) : null}
diff --git a/app/core/utils.js b/app/core/utils.js
index 205a31b..9552d02 100644
--- a/app/core/utils.js
+++ b/app/core/utils.js
@@ -33,34 +33,42 @@ const DISPLAY_SIZE = {
//Типовые пути конвертации в массив (при переводе XML -> JSON)
const XML_ALWAYS_ARRAY_PATHS = [
"XRESPOND.XPAYLOAD.XOUT_ARGUMENTS",
- "XRESPOND.XPAYLOAD.XROWS",
- "XRESPOND.XPAYLOAD.XCOLUMNS_DEF",
- "XRESPOND.XPAYLOAD.XCOLUMNS_DEF.values",
- "XRESPOND.XPAYLOAD.XGROUPS",
- "XRESPOND.XPAYLOAD.XGANTT_DEF.taskAttributes",
- "XRESPOND.XPAYLOAD.XGANTT_DEF.taskColors",
- "XRESPOND.XPAYLOAD.XGANTT_TASKS",
- "XRESPOND.XPAYLOAD.XGANTT_TASKS.dependencies",
+ "XRESPOND.XPAYLOAD.XDATA_GRID.rows",
+ "XRESPOND.XPAYLOAD.XDATA_GRID.columnsDef",
+ "XRESPOND.XPAYLOAD.XDATA_GRID.columnsDef.values",
+ "XRESPOND.XPAYLOAD.XDATA_GRID.groups",
+ "XRESPOND.XPAYLOAD.XGANTT.taskAttributes",
+ "XRESPOND.XPAYLOAD.XGANTT.taskColors",
+ "XRESPOND.XPAYLOAD.XGANTT.tasks",
+ "XRESPOND.XPAYLOAD.XGANTT.tasks.dependencies",
"XRESPOND.XPAYLOAD.XCHART.labels",
"XRESPOND.XPAYLOAD.XCHART.datasets",
"XRESPOND.XPAYLOAD.XCHART.datasets.data",
- "XRESPOND.XPAYLOAD.XCHART.datasets.items"
+ "XRESPOND.XPAYLOAD.XCHART.datasets.items",
+ "XRESPOND.XPAYLOAD.XCYCLOGRAM.taskAttributes",
+ "XRESPOND.XPAYLOAD.XCYCLOGRAM.columns",
+ "XRESPOND.XPAYLOAD.XCYCLOGRAM.groups",
+ "XRESPOND.XPAYLOAD.XCYCLOGRAM.tasks"
];
//Типовые шаблоны конвертации в массив (при переводе XML -> JSON)
const XML_ALWAYS_ARRAY_PATH_PATTERNS = [
- /(.*)XROWS$/,
- /(.*)XCOLUMNS_DEF$/,
- /(.*)XCOLUMNS_DEF.values$/,
- /(.*)XGROUPS$/,
- /(.*)XGANTT_DEF.taskAttributes$/,
- /(.*)XGANTT_DEF.taskColors$/,
- /(.*)XGANTT_TASKS$/,
- /(.*)XGANTT_TASKS.dependencies$/,
+ /(.*)XDATA_GRID.rows$/,
+ /(.*)XDATA_GRID.columnsDef$/,
+ /(.*)XDATA_GRID.columnsDef.values$/,
+ /(.*)XDATA_GRID.groups$/,
+ /(.*)XGANTT.taskAttributes$/,
+ /(.*)XGANTT.taskColors$/,
+ /(.*)XGANTT.tasks$/,
+ /(.*)XGANTT.tasks.dependencies$/,
/(.*)XCHART.labels$/,
/(.*)XCHART.datasets$/,
/(.*)XCHART.datasets.data$/,
- /(.*)XCHART.datasets.items$/
+ /(.*)XCHART.datasets.items$/,
+ /(.*)XCYCLOGRAM.taskAttributes$/,
+ /(.*)XCYCLOGRAM.columns$/,
+ /(.*)XCYCLOGRAM.groups$/,
+ /(.*)XCYCLOGRAM.tasks$/
];
//Типовой постфикс тега для массива (при переводе XML -> JSON)
@@ -68,11 +76,13 @@ const XML_ALWAYS_ARRAY_POSTFIX = "__SYSTEM__ARRAY__";
//Типовые шаблоны конвертации значения атрибута в строку (при переводе XML -> JSON)
const XML_ATTR_ALWAYS_STR_PATH_PATTERNS = [
- /(.*)XCOLUMNS_DEF.name$/,
- /(.*)XCOLUMNS_DEF.caption$/,
- /(.*)XCOLUMNS_DEF.parent$/,
- /(.*)XGROUPS.name$/,
- /(.*)XGROUPS.caption$/
+ /(.*)XDATA_GRID.columnsDef.name$/,
+ /(.*)XDATA_GRID.columnsDef.caption$/,
+ /(.*)XDATA_GRID.columnsDef.parent$/,
+ /(.*)XDATA_GRID.groups.name$/,
+ /(.*)XDATA_GRID.groups.caption$/,
+ /(.*)XCYCLOGRAM.columns.name$/,
+ /(.*)XCYCLOGRAM.groups.name$/
];
//-----------
diff --git a/app/panels/eqs_prfrm/eqs_prfrm.js b/app/panels/eqs_prfrm/eqs_prfrm.js
index c6ca224..3fbb30c 100644
--- a/app/panels/eqs_prfrm/eqs_prfrm.js
+++ b/app/panels/eqs_prfrm/eqs_prfrm.js
@@ -119,8 +119,8 @@ const EqsPrfrm = () => {
let cF = 0;
let sF = 0;
let properties = [];
- if (data.XROWS != null) {
- data.XROWS.map(row => {
+ if (data.XDATA_GRID.rows != null) {
+ data.XDATA_GRID.rows.map(row => {
properties = [];
Object.entries(row).forEach(([key, value]) => properties.push({ name: key, data: value }));
let info2 = properties.find(element => {
@@ -156,11 +156,10 @@ const EqsPrfrm = () => {
}
setDataGrid(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: [...(data.XROWS || [])],
- fixedHeader: data.XDATA_GRID.fixedHeader,
- fixedColumns: data.XDATA_GRID.fixedColumns,
- groups: [...(data.XGROUPS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: [...(data.XDATA_GRID.rows || [])],
+ groups: [...(data.XDATA_GRID.groups || [])],
dataLoaded: true,
reload: false
}));
diff --git a/app/panels/mech_rec_assembly_mon/hooks.js b/app/panels/mech_rec_assembly_mon/hooks.js
index 7b70dff..dbb39b5 100644
--- a/app/panels/mech_rec_assembly_mon/hooks.js
+++ b/app/panels/mech_rec_assembly_mon/hooks.js
@@ -195,9 +195,10 @@ const useProductDetailsTable = (planSpec, product, orders, pageNumber, stored) =
});
setData(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
- morePages: DATA_GRID_PAGE_SIZE == 0 ? false : (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE,
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
+ morePages: DATA_GRID_PAGE_SIZE == 0 ? false : (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE,
init: true
}));
} finally {
diff --git a/app/panels/mech_rec_cost_jobs_manage/hooks.js b/app/panels/mech_rec_cost_jobs_manage/hooks.js
index 01eab21..9b060d3 100644
--- a/app/panels/mech_rec_cost_jobs_manage/hooks.js
+++ b/app/panels/mech_rec_cost_jobs_manage/hooks.js
@@ -150,12 +150,13 @@ const useCostJobsSpecs = task => {
});
setCostJobsSpecs(pv => ({
...pv,
+ ...data.XDATA_GRID,
task: task,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
};
loadData();
@@ -256,12 +257,13 @@ const useEquipConfiguration = (task, fromAction) => {
});
setEquipConfiguration(pv => ({
...pv,
+ ...data.XDATA_GRID,
task: task,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
};
loadData();
diff --git a/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js b/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js
index 04e626f..b913052 100644
--- a/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js
+++ b/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js
@@ -53,14 +53,15 @@ const useCostRouteLists = (task, taskType) => {
});
setCostRouteLists(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE,
- quantPlanSum: data.XROWS ? data.XROWS.reduce((a, b) => a + b["NQUANT_PLAN"], 0) : 0,
- uniqueNomns: data.XROWS
- ? data.XROWS.reduce((accumulator, current) => {
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE,
+ quantPlanSum: data.XDATA_GRID.rows ? data.XDATA_GRID.rows.reduce((a, b) => a + b["NQUANT_PLAN"], 0) : 0,
+ uniqueNomns: data.XDATA_GRID.rows
+ ? data.XDATA_GRID.rows.reduce((accumulator, current) => {
if (!accumulator.find(item => item.SMATRES_PLAN_NOMEN === current.SMATRES_PLAN_NOMEN)) {
accumulator.push(current);
}
@@ -122,11 +123,12 @@ const useIncomFromDeps = (task, taskType) => {
});
setIncomFromDeps(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
}
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -172,11 +174,12 @@ const useGoodsParties = mainRowRN => {
});
setGoodsParties(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
}
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -223,11 +226,12 @@ const useCostDeliveryLists = mainRowRN => {
});
setCostDeliveryLists(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
}
// eslint-disable-next-line react-hooks/exhaustive-deps
diff --git a/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js b/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js
index cea0cad..ea989a4 100644
--- a/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js
+++ b/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js
@@ -97,7 +97,7 @@ const parseProdPlanSpXML = async xmlDoc => {
attributeValueProcessor: (name, val) =>
["numb", "title"].includes(name) ? undefined : ["start", "end"].includes(name) ? formatDateJSONDateOnly(val) : val
});
- return data.XDATA;
+ return data.XDATA.XGANTT;
};
//Форматирование для отображения количества документов
@@ -237,8 +237,7 @@ const MechRecCostProdPlans = () => {
selectedPlanCtlgLevel: null,
selectedPlanCtlgSort: null,
selectedPlanCtlgMenuItems: null,
- selectedPlanCtlgGanttDef: {},
- selectedPlanCtlgSpecs: [],
+ gantt: {},
selectedTaskDetail: null,
selectedTaskDetailType: null,
planSpec: null
@@ -282,8 +281,7 @@ const MechRecCostProdPlans = () => {
selectedPlanCtlgLevel: null,
selectedPlanCtlgSort: null,
selectedPlanCtlgMenuItems: null,
- selectedPlanCtlgSpecs: [],
- selectedPlanCtlgGanttDef: {},
+ gantt: {},
showPlanList: false,
selectedTaskDetail: null,
selectedTaskDetailType: null
@@ -300,8 +298,7 @@ const MechRecCostProdPlans = () => {
selectedPlanCtlgLevel: null,
selectedPlanCtlgSort: null,
selectedPlanCtlgMenuItems: null,
- selectedPlanCtlgSpecs: [],
- selectedPlanCtlgGanttDef: {},
+ gantt: {},
showPlanList: false,
selectedTaskDetail: null,
selectedTaskDetailType: null
@@ -324,8 +321,7 @@ const MechRecCostProdPlans = () => {
? state.selectedPlanCtlgMenuItems
: [...Array(data.NMAX_LEVEL).keys()].map(el => el + 1),
selectedPlanCtlgSpecsLoaded: true,
- selectedPlanCtlgGanttDef: doc.XGANTT_DEF ? { ...doc.XGANTT_DEF } : {},
- selectedPlanCtlgSpecs: [...(doc?.XGANTT_TASKS || [])]
+ gantt: { ...doc, tasks: [...(doc?.tasks || [])] }
}));
},
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -401,7 +397,7 @@ const MechRecCostProdPlans = () => {
{state.selectedPlanCtlgSpecsLoaded ? (
- state.selectedPlanCtlgSpecs.length === 0 ? (
+ state.gantt.tasks.length === 0 ? (
{
) : null}
taskDialogRenderer({ ...prms, handleTaskDetailOpen })}
/>
diff --git a/app/panels/mech_rec_dept_cost_jobs/hooks.js b/app/panels/mech_rec_dept_cost_jobs/hooks.js
index e5ef297..ebeb832 100644
--- a/app/panels/mech_rec_dept_cost_jobs/hooks.js
+++ b/app/panels/mech_rec_dept_cost_jobs/hooks.js
@@ -62,13 +62,12 @@ const useMechRecDeptCostJobs = (subdiv, fullDate, workHours) => {
});
setCostJobs(pv => ({
...pv,
- fixedHeader: data.XDATA_GRID.fixedHeader,
- fixedColumns: data.XDATA_GRID.fixedColumns,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE_LARGE,
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE,
date: fullDate
}));
};
@@ -109,11 +108,12 @@ const useInsDepartment = fullDate => {
});
setInsDepartments(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE_SMALL
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_SMALL
}));
};
if (insDepartments.reload) {
diff --git a/app/panels/mech_rec_dept_cost_prod_plans/hooks.js b/app/panels/mech_rec_dept_cost_prod_plans/hooks.js
index c82d41a..38b4e2c 100644
--- a/app/panels/mech_rec_dept_cost_prod_plans/hooks.js
+++ b/app/panels/mech_rec_dept_cost_prod_plans/hooks.js
@@ -75,13 +75,12 @@ const useDeptCostProdPlans = () => {
});
setState(pv => ({
...pv,
- fixedHeader: data.XDATA_GRID.fixedHeader,
- fixedColumns: data.XDATA_GRID.fixedColumns,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE_LARGE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE
}));
};
if (state.reload) {
@@ -144,11 +143,12 @@ const useCostRouteLists = task => {
});
setCostRouteLists(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE_SMALL
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_SMALL
}));
};
if (costRouteLists.reload && task) {
@@ -202,11 +202,12 @@ const useCostRouteListsSpecs = mainRowRN => {
});
setCostRouteListsSpecs(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE_LARGE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE
}));
};
if (costRouteListsSpecs.reload) {
@@ -258,11 +259,12 @@ const useIncomFromDeps = task => {
});
setIncomFromDeps(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE_LARGE
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE
}));
};
if (incomFromDeps.reload) {
diff --git a/app/panels/prj_fin/projects.js b/app/panels/prj_fin/projects.js
index 9855e07..d5f0501 100644
--- a/app/panels/prj_fin/projects.js
+++ b/app/panels/prj_fin/projects.js
@@ -84,11 +84,12 @@ const Projects = () => {
});
setProjectsDataGrid(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [
diff --git a/app/panels/prj_fin/stage_arts.js b/app/panels/prj_fin/stage_arts.js
index ca9d06b..01c2a28 100644
--- a/app/panels/prj_fin/stage_arts.js
+++ b/app/panels/prj_fin/stage_arts.js
@@ -57,8 +57,9 @@ const StageArts = ({ stage, filters }) => {
});
setStageArtsDataGrid(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: [...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: [...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false
}));
diff --git a/app/panels/prj_fin/stage_contracts.js b/app/panels/prj_fin/stage_contracts.js
index dddc3fb..0953a75 100644
--- a/app/panels/prj_fin/stage_contracts.js
+++ b/app/panels/prj_fin/stage_contracts.js
@@ -67,11 +67,12 @@ const StageContracts = ({ stage, filters }) => {
});
setStageContractsDataGrid(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [
diff --git a/app/panels/prj_fin/stages.js b/app/panels/prj_fin/stages.js
index 9fec2da..7cc1f3b 100644
--- a/app/panels/prj_fin/stages.js
+++ b/app/panels/prj_fin/stages.js
@@ -71,11 +71,12 @@ const Stages = ({ project, projectName, filters }) => {
});
setStagesDataGrid(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [
diff --git a/app/panels/prj_graph/prj_graph.js b/app/panels/prj_graph/prj_graph.js
index bc26b95..a46c83d 100644
--- a/app/panels/prj_graph/prj_graph.js
+++ b/app/panels/prj_graph/prj_graph.js
@@ -55,11 +55,10 @@ const PrjGraph = () => {
const data = await executeStored({ stored: "PKG_P8PANELS_PROJECTS.GRAPH", args: {}, respArg: "COUT" });
setdataGrid(pv => ({
...pv,
- fixedHeader: data.XDATA_GRID.fixedHeader,
- fixedColumns: data.XDATA_GRID.fixedColumns,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: [...(data.XROWS || [])],
- groups: [...(data.XGROUPS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: [...(data.XDATA_GRID.rows || [])],
+ groups: [...(data.XDATA_GRID.groups || [])],
dataLoaded: true,
reload: false
}));
diff --git a/app/panels/prj_jobs/lab_fact_rpt_dtl.js b/app/panels/prj_jobs/lab_fact_rpt_dtl.js
index f443384..e368b48 100644
--- a/app/panels/prj_jobs/lab_fact_rpt_dtl.js
+++ b/app/panels/prj_jobs/lab_fact_rpt_dtl.js
@@ -57,11 +57,12 @@ const LabFactRptDtl = ({ periodId, title, onHide }) => {
});
setFactRptDtl(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [
diff --git a/app/panels/prj_jobs/lab_plan_fot_dtl.js b/app/panels/prj_jobs/lab_plan_fot_dtl.js
index 520360b..e3e323b 100644
--- a/app/panels/prj_jobs/lab_plan_fot_dtl.js
+++ b/app/panels/prj_jobs/lab_plan_fot_dtl.js
@@ -56,11 +56,12 @@ const LabPlanFOTDtl = ({ periodId, title, onHide }) => {
});
setPlanFOTDtl(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [
diff --git a/app/panels/prj_jobs/lab_plan_jobs_dtl.js b/app/panels/prj_jobs/lab_plan_jobs_dtl.js
index 251dd68..a1ee815 100644
--- a/app/panels/prj_jobs/lab_plan_jobs_dtl.js
+++ b/app/panels/prj_jobs/lab_plan_jobs_dtl.js
@@ -61,11 +61,12 @@ const LabPlanJobsDtl = ({ periodId, title, onHide, onProjectClick }) => {
});
setPlanJobsDtl(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [
diff --git a/app/panels/prj_jobs/prj_jobs.js b/app/panels/prj_jobs/prj_jobs.js
index ffafa48..fc2e5b1 100644
--- a/app/panels/prj_jobs/prj_jobs.js
+++ b/app/panels/prj_jobs/prj_jobs.js
@@ -265,8 +265,7 @@ const PrjJobs = () => {
selectedProjectJobsLoaded: false,
selectedProject: null,
selectedProjectDocRn: null,
- selectedProjectGanttDef: {},
- selectedProjectTasks: [],
+ gantt: {},
showInitDialog: false
});
@@ -308,8 +307,9 @@ const PrjJobs = () => {
setState(pv => ({
...pv,
selectedProjectJobsLoaded: true,
- selectedProjectGanttDef: tasksOnly === true ? { ...pv.selectedProjectGanttDef } : data.XGANTT_DEF ? { ...data.XGANTT_DEF } : {},
- selectedProjectTasks: [...data.XGANTT_TASKS]
+ gantt: {
+ ...(tasksOnly === true ? { ...pv.gantt, tasks: [...data.XGANTT.tasks] } : data.XGANTT ? { ...data.XGANTT } : {})
+ }
}));
},
[executeStored, state.ident, state.selectedProject]
@@ -394,8 +394,7 @@ const PrjJobs = () => {
selectedProject: project,
selectedProjectDocRn: projectDocRn,
selectedProjectJobsLoaded: false,
- selectedProjectTasks: [],
- selectedProjectGanttDef: {},
+ gantt: {},
showProjectsList: false
}));
};
@@ -407,8 +406,7 @@ const PrjJobs = () => {
selectedProjectJobsLoaded: false,
selectedProject: null,
selectedProjectDocRn: null,
- selectedProjectTasks: [],
- selectedProjectGanttDef: {},
+ gantt: {},
showProjectsList: false
}));
@@ -515,11 +513,10 @@ const PrjJobs = () => {
{state.selectedProjectJobsLoaded ? (
diff --git a/app/panels/prj_jobs/res_mon.js b/app/panels/prj_jobs/res_mon.js
index d3a2ba9..d499255 100644
--- a/app/panels/prj_jobs/res_mon.js
+++ b/app/panels/prj_jobs/res_mon.js
@@ -79,11 +79,12 @@ const ResMon = ({ ident, onPlanJobsDtlProjectClick }) => {
});
setPeriods(pv => ({
...pv,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
dataLoaded: true,
reload: false,
- morePages: (data.XROWS || []).length >= configSystemPageSize
+ morePages: (data.XDATA_GRID.rows || []).length >= configSystemPageSize
}));
}
}, [ident, peridos.reload, peridos.orders, peridos.dataLoaded, peridos.pageNumber, executeStored, configSystemPageSize, SERV_DATA_TYPE_CLOB]);
diff --git a/app/panels/rrp_conf_editor/hooks.js b/app/panels/rrp_conf_editor/hooks.js
index 03b8066..8030d1d 100644
--- a/app/panels/rrp_conf_editor/hooks.js
+++ b/app/panels/rrp_conf_editor/hooks.js
@@ -97,16 +97,15 @@ const useConf = (currentTab, handleSectionChange) => {
sections.map(s => {
let dg = {};
Object.assign(dg, dataGrid, {
+ ...s.XDATA.XDATA_GRID,
rn: s.NRN,
code: s.SCODE,
name: s.SNAME,
delete_allow: s.NDELETE_ALLOW,
dataLoaded: true,
- columnsDef: [...(s.XDATA.XCOLUMNS_DEF || [])],
- groups: [...(s.XDATA.XGROUPS || [])],
- rows: [...(s.XDATA.XROWS || [])],
- fixedHeader: s.XDATA.XDATA_GRID.fixedHeader,
- fixedColumns: s.XDATA.XDATA_GRID.fixedColumns,
+ columnsDef: [...(s.XDATA.XDATA_GRID.columnsDef || [])],
+ groups: [...(s.XDATA.XDATA_GRID.groups || [])],
+ rows: [...(s.XDATA.XDATA_GRID.rows || [])],
reload: false
});
//Если раздел имеет составы показателей
diff --git a/app/panels/samples/cyclogram.js b/app/panels/samples/cyclogram.js
index d9ee6cb..1ffca33 100644
--- a/app/panels/samples/cyclogram.js
+++ b/app/panels/samples/cyclogram.js
@@ -239,8 +239,7 @@ const Cyclogram = ({ title }) => {
const data = await executeStored({
stored: "PKG_P8PANELS_SAMPLES.CYCLOGRAM",
args: { NIDENT: state.ident },
- attributeValueProcessor: (name, val) =>
- name === "name" ? undefined : ["ddate_start", "ddate_end"].includes(name) ? formatDateJSONDateOnly(val) : val,
+ attributeValueProcessor: (name, val) => (["ddate_start", "ddate_end"].includes(name) ? formatDateJSONDateOnly(val) : val),
respArg: "COUT"
});
setState(pv => ({ ...pv, dataLoaded: true, ...data.XCYCLOGRAM, reload: false }));
diff --git a/app/panels/samples/data_grid.js b/app/panels/samples/data_grid.js
index c5b9bc3..6e61d15 100644
--- a/app/panels/samples/data_grid.js
+++ b/app/panels/samples/data_grid.js
@@ -86,14 +86,14 @@ export const groupCellRender = () => ({ cellStyle: { padding: "2px" } });
//Пример: Таблица данных "P8PDataGrid"
const DataGrid = ({ title }) => {
//Собственное состояние - таблица данных
- const [dataGrid, setdataGrid] = useState({
+ const [dataGrid, setDataGrid] = useState({
dataLoaded: false,
columnsDef: [],
filters: null,
orders: null,
groups: [],
rows: [],
- reload: true,
+ reloading: true,
pageNumber: 1,
morePages: true,
fixedHeader: false,
@@ -108,7 +108,7 @@ const DataGrid = ({ title }) => {
//Загрузка данных таблицы с сервера
const loadData = useCallback(async () => {
- if (dataGrid.reload) {
+ if (dataGrid.reloading) {
const data = await executeStored({
stored: "PKG_P8PANELS_SAMPLES.DATA_GRID",
args: {
@@ -120,32 +120,31 @@ const DataGrid = ({ title }) => {
},
respArg: "COUT"
});
- setdataGrid(pv => ({
+ setDataGrid(pv => ({
...pv,
- fixedHeader: data.XDATA_GRID.fixedHeader,
- fixedColumns: data.XDATA_GRID.fixedColumns,
- columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
- rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
- groups: data.XGROUPS
+ ...data.XDATA_GRID,
+ columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,
+ rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],
+ groups: data.XDATA_GRID.groups
? pv.pageNumber == 1
- ? [...data.XGROUPS]
- : [...pv.groups, ...data.XGROUPS.filter(g => !pv.groups.find(pg => pg.name == g.name))]
+ ? [...data.XDATA_GRID.groups]
+ : [...pv.groups, ...data.XDATA_GRID.groups.filter(g => !pv.groups.find(pg => pg.name == g.name))]
: [...pv.groups],
dataLoaded: true,
- reload: false,
- morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
+ reloading: false,
+ morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE
}));
}
- }, [dataGrid.reload, dataGrid.filters, dataGrid.orders, dataGrid.dataLoaded, dataGrid.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);
+ }, [dataGrid.reloading, dataGrid.filters, dataGrid.orders, dataGrid.dataLoaded, dataGrid.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);
//При изменении состояния фильтра
- const handleFilterChanged = ({ filters }) => setdataGrid(pv => ({ ...pv, filters: [...filters], pageNumber: 1, reload: true }));
+ const handleFilterChanged = ({ filters }) => setDataGrid(pv => ({ ...pv, filters: [...filters], pageNumber: 1, reloading: true }));
//При изменении состояния сортировки
- const handleOrderChanged = ({ orders }) => setdataGrid(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reload: true }));
+ const handleOrderChanged = ({ orders }) => setDataGrid(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reloading: true }));
//При изменении количества отображаемых страниц
- const handlePagesCountChanged = () => setdataGrid(pv => ({ ...pv, pageNumber: pv.pageNumber + 1, reload: true }));
+ const handlePagesCountChanged = () => setDataGrid(pv => ({ ...pv, pageNumber: pv.pageNumber + 1, reloading: true }));
//При нажатии на копку контрагента
const handleAgnButtonClicked = agnCode => pOnlineShowDocument({ unitCode: "AGNLIST", document: agnCode, inRnParameter: "in_AGNABBR" });
@@ -153,7 +152,7 @@ const DataGrid = ({ title }) => {
//При необходимости обновить данные таблицы
useEffect(() => {
loadData();
- }, [dataGrid.reload, loadData]);
+ }, [dataGrid.reloading, loadData]);
//Генерация содержимого
return (
@@ -168,15 +167,8 @@ const DataGrid = ({ title }) => {
{
//Пример: Диаграмма Ганта "P8Gantt"
const Gantt = ({ title }) => {
//Собственное состояние
- const [state, setState] = useState({
+ const [gantt, setGantt] = useState({
init: false,
dataLoaded: false,
ident: null,
- ganttDef: {},
- ganttTasks: [],
useCustomTaskDialog: false
});
@@ -113,21 +111,21 @@ const Gantt = ({ title }) => {
const loadData = useCallback(async () => {
const data = await executeStored({
stored: "PKG_P8PANELS_SAMPLES.GANTT",
- args: { NIDENT: state.ident },
+ args: { NIDENT: gantt.ident },
attributeValueProcessor: (name, val) =>
name == "numb" ? undefined : ["start", "end"].includes(name) ? formatDateJSONDateOnly(val) : val,
respArg: "COUT"
});
- setState(pv => ({ ...pv, dataLoaded: true, ganttDef: { ...data.XGANTT_DEF }, ganttTasks: [...data.XGANTT_TASKS] }));
- }, [state.ident, executeStored]);
+ setGantt(pv => ({ ...pv, dataLoaded: true, ...data.XGANTT }));
+ }, [gantt.ident, executeStored]);
//Инициализация данных диаграммы
const initData = useCallback(async () => {
- if (!state.init) {
- const data = await executeStored({ stored: "PKG_P8PANELS_SAMPLES.GANTT_INIT", args: { NIDENT: state.ident } });
- setState(pv => ({ ...pv, init: true, ident: data.NIDENT }));
+ if (!gantt.init) {
+ const data = await executeStored({ stored: "PKG_P8PANELS_SAMPLES.GANTT_INIT", args: { NIDENT: gantt.ident } });
+ setGantt(pv => ({ ...pv, init: true, ident: data.NIDENT }));
}
- }, [state.init, state.ident, executeStored]);
+ }, [gantt.init, gantt.ident, executeStored]);
//Изменение данных диаграммы
const modifyData = useCallback(
@@ -135,13 +133,13 @@ const Gantt = ({ title }) => {
try {
await executeStored({
stored: "PKG_P8PANELS_SAMPLES.GANTT_MODIFY",
- args: { NIDENT: state.ident, NRN: rn, DDATE_FROM: new Date(start), DDATE_TO: new Date(end) }
+ args: { NIDENT: gantt.ident, NRN: rn, DDATE_FROM: new Date(start), DDATE_TO: new Date(end) }
});
} finally {
loadData();
}
},
- [state.ident, executeStored, loadData]
+ [gantt.ident, executeStored, loadData]
);
//Обработка измненения сроков задачи в диаграмме Гантта
@@ -151,8 +149,8 @@ const Gantt = ({ title }) => {
//При необходимости обновить данные таблицы
useEffect(() => {
- if (state.ident) loadData();
- }, [state.ident, loadData]);
+ if (gantt.ident) loadData();
+ }, [gantt.ident, loadData]);
//При подключении компонента к странице
useEffect(() => {
@@ -168,20 +166,19 @@ const Gantt = ({ title }) => {
setState(pv => ({ ...pv, useCustomTaskDialog: !pv.useCustomTaskDialog }))} />}
+ control={ setGantt(pv => ({ ...pv, useCustomTaskDialog: !pv.useCustomTaskDialog }))} />}
label="Отображать пользовательский диалог задачи"
/>
- {state.dataLoaded ? (
+ {gantt.dataLoaded ? (
) : null}
diff --git a/db/PKG_P8PANELS_EQUIPSRV.pck b/db/PKG_P8PANELS_EQUIPSRV.pck
index e11f20d..6cd469f 100644
--- a/db/PKG_P8PANELS_EQUIPSRV.pck
+++ b/db/PKG_P8PANELS_EQUIPSRV.pck
@@ -227,10 +227,10 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
SPRJ_GROUP_NAME PKG_STD.TSTRING; -- Наименование группы для проекта
BEXPANDED boolean; -- Флаг раскрытости уровня
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW_INFO PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы с информацией по объекту ремонта
- RDG_ROW_PLAN PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы с планом по объекту ремонта
- RDG_ROW_FACT PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы с фактом по объекту ремонта
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW_INFO PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы с информацией по объекту ремонта
+ RDG_ROW_PLAN PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы с планом по объекту ремонта
+ RDG_ROW_FACT PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы с фактом по объекту ремонта
NCURYEAR PKG_STD.TNUMBER; -- Текущий год
NCURMONTH PKG_STD.TNUMBER; -- Текущий месяц
NTOTALDAYS PKG_STD.TNUMBER; -- Дней в текущем месяце
@@ -399,99 +399,99 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
/* Определим дату конца периода */
NTODATE := LAST_DAY(TO_DATE('01.' || LPAD(TO_CHAR(NTOMONTH), 2, '0') || '.' || TO_CHAR(NTOYEAR), 'dd.mm.yyyy'));
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 2);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 2);
/* Формируем структуру заголовка */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SOBJINFO',
- SCAPTION => 'Информация по объекту ремонта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SINFO',
- SCAPTION => 'Объект ремонта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SWRKTYPE',
- SCAPTION => 'Тип работ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SPARENT => 'SINFO',
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SWORKNAME',
- SCAPTION => 'Наименование работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'STECHOBJCODE',
- SCAPTION => 'Код тех. объекта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'STECHOBJNAME',
- SCAPTION => 'Наименование тех. объекта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SBELONG',
- SCAPTION => 'Принадлежность',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPRODOBJ',
- SCAPTION => 'Производственный объект',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'STECHSERV',
- SCAPTION => 'Тех. служба',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SRESPDEP',
- SCAPTION => 'Отвественное подразделение',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'STECSERVCODE',
- SCAPTION => 'Вид ремонта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DDATEPLANBEG',
- SCAPTION => 'Начало работы (план)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DDATEPLANEND',
- SCAPTION => 'Окончание работы (план)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DDATEFACTBEG',
- SCAPTION => 'Начало работы (факт)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DDATEFACTEND',
- SCAPTION => 'Окончание работы (факт)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'STECSRVKINDCODE',
- SCAPTION => 'Код типа работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'STECSRVKINDNAME',
- SCAPTION => 'Наименование типа работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SOBJINFO',
+ SCAPTION => 'Информация по объекту ремонта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SINFO',
+ SCAPTION => 'Объект ремонта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SWRKTYPE',
+ SCAPTION => 'Тип работ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SPARENT => 'SINFO',
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SWORKNAME',
+ SCAPTION => 'Наименование работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'STECHOBJCODE',
+ SCAPTION => 'Код тех. объекта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'STECHOBJNAME',
+ SCAPTION => 'Наименование тех. объекта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SBELONG',
+ SCAPTION => 'Принадлежность',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPRODOBJ',
+ SCAPTION => 'Производственный объект',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'STECHSERV',
+ SCAPTION => 'Тех. служба',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SRESPDEP',
+ SCAPTION => 'Отвественное подразделение',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'STECSERVCODE',
+ SCAPTION => 'Вид ремонта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DDATEPLANBEG',
+ SCAPTION => 'Начало работы (план)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DDATEPLANEND',
+ SCAPTION => 'Окончание работы (план)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DDATEFACTBEG',
+ SCAPTION => 'Начало работы (факт)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DDATEFACTEND',
+ SCAPTION => 'Окончание работы (факт)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'STECSRVKINDCODE',
+ SCAPTION => 'Код типа работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'STECSRVKINDNAME',
+ SCAPTION => 'Наименование типа работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
/* Очистка коллекций */
PKG_CONTVALLOC1S.PURGE(RCONTAINER => YM);
PKG_CONTVALLOC1S.PURGE(RCONTAINER => MCLR);
@@ -530,12 +530,12 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
else
BEXPANDED := false;
end if;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => '_' || TO_CHAR(Y) || '_' || TO_CHAR(M),
- SCAPTION => LPAD(TO_CHAR(M), 2, '0') || ' ' || TO_CHAR(Y),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BEXPANDABLE => true,
- BEXPANDED => BEXPANDED);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => '_' || TO_CHAR(Y) || '_' || TO_CHAR(M),
+ SCAPTION => LPAD(TO_CHAR(M), 2, '0') || ' ' || TO_CHAR(Y),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BEXPANDABLE => true,
+ BEXPANDED => BEXPANDED);
/* Подсчёт кол-ва дней в месяце */
NTOTALDAYS := TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE('01.' || LPAD(TO_CHAR(M), 2, '0') || '.' || TO_CHAR(Y),
'dd.mm.yyyy')),
@@ -544,12 +544,11 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
/* Цикл по дням месяца */
for D in 1 .. NTOTALDAYS
loop
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => '_' || TO_CHAR(Y) || '_' || TO_CHAR(M) || '_' ||
- TO_CHAR(D),
- SCAPTION => TO_CHAR(D, '99'),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SPARENT => '_' || TO_CHAR(Y) || '_' || TO_CHAR(M));
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => '_' || TO_CHAR(Y) || '_' || TO_CHAR(M) || '_' || TO_CHAR(D),
+ SCAPTION => TO_CHAR(D, '99'),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SPARENT => '_' || TO_CHAR(Y) || '_' || TO_CHAR(M));
end loop;
end loop;
end loop;
@@ -573,7 +572,7 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
if (NFROMYEAR = NTOYEAR) then
NMS := NFROMMONTH;
NME := NTOMONTH;
- /* Иначе вычисляем кол-во месяцев в каждом году периода отчёта */
+ /* Иначе вычисляем кол-во месяцев в каждом году периода отчёта */
else
if (Y = NFROMYEAR) then
NMS := NFROMMONTH;
@@ -590,14 +589,14 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
for M in NMS .. NME
loop
SPERIODNAME := '_' || TO_CHAR(Y) || '_' || TO_CHAR(M);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_INFO,
- SNAME => SPERIODNAME,
- SVALUE => 'план: ' || HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
- SROWID => SPERIODNAME || '_P'),
- 1)) || ' факт: ' ||
- HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
- SROWID => SPERIODNAME || '_F'),
- 1)));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_INFO,
+ SNAME => SPERIODNAME,
+ SVALUE => 'план: ' || HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
+ SROWID => SPERIODNAME || '_P'),
+ 1)) || ' факт: ' ||
+ HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
+ SROWID => SPERIODNAME || '_F'),
+ 1)));
/* Добавление в коллекцию трудоёмкость план */
PKG_CONTVALLOC1S.PUTN(RCONTAINER => YM, SROWID => SPERIODNAME || '_P', NVALUE => 0);
/* Добавление в коллекцию трудоёмкость факт */
@@ -605,17 +604,17 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
end loop;
end loop;
/* Добавление строки с трудоёмкостью */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_INFO);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_INFO);
end if;
/* Добавление группы с объектом ремонта */
SCURTECHOBJ := QQ.STECHOBJNAME;
SPRJ_GROUP_NAME := SCURTECHOBJ;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SPRJ_GROUP_NAME,
- SCAPTION => QQ.STECHOBJNAME,
- BEXPANDABLE => false);
- RDG_ROW_INFO := PKG_P8PANELS_VISUAL.TROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_INFO, SNAME => 'SOBJINFO', SVALUE => SCURTECHOBJ);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SPRJ_GROUP_NAME,
+ SCAPTION => QQ.STECHOBJNAME,
+ BEXPANDABLE => false);
+ RDG_ROW_INFO := PKG_P8PANELS_VISUAL.TDG_ROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_INFO, SNAME => 'SOBJINFO', SVALUE => SCURTECHOBJ);
end if;
/* Формируем имя группы для вида ремонта */
SCURTSKCODE := SCURTECHOBJ || '_' || QQ.STECSRVKINDCODE;
@@ -623,7 +622,7 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
if (PKG_CONTVALLOC1S.EXISTS_(RCONTAINER => GF, SROWID => SCURTSKCODE) = false) then
/* Добавляем строку плана */
if (RDG_ROW_PLAN.RCOLS is not null) then
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_PLAN);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_PLAN);
end if;
/* Добавляем строку факта */
if (RDG_ROW_FACT.RCOLS is not null) then
@@ -631,27 +630,27 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
/* Цикл по коллекции для закрашивания месяцев */
for Z in 1 .. PKG_CONTVALLOC1S.COUNT_(RCONTAINER => MCLR)
loop
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_FACT,
- SNAME => CR,
- SVALUE => PKG_CONTVALLOC1S.GETS(RCONTAINER => MCLR, SROWID => CR));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_FACT,
+ SNAME => CR,
+ SVALUE => PKG_CONTVALLOC1S.GETS(RCONTAINER => MCLR, SROWID => CR));
CR := PKG_CONTVALLOC1S.NEXT_(RCONTAINER => MCLR, SROWID => CR);
end loop;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_FACT);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_FACT);
end if;
PKG_CONTVALLOC1S.PURGE(RCONTAINER => MCLR);
/* Добвим группу для вида ремонта */
SPRJ_GROUP_NAME := SCURTSKCODE;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SPRJ_GROUP_NAME,
- SCAPTION => QQ.STECSRVKINDCODE,
- BEXPANDABLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SPRJ_GROUP_NAME,
+ SCAPTION => QQ.STECSRVKINDCODE,
+ BEXPANDABLE => false);
/* Строка плана */
- RDG_ROW_PLAN := PKG_P8PANELS_VISUAL.TROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => 'SOBJINFO', SVALUE => QQ.STECSRVKINDCODE);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => 'SWRKTYPE', SVALUE => 'План');
+ RDG_ROW_PLAN := PKG_P8PANELS_VISUAL.TDG_ROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => 'SOBJINFO', SVALUE => QQ.STECSRVKINDCODE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => 'SWRKTYPE', SVALUE => 'План');
/* Строка факта */
- RDG_ROW_FACT := PKG_P8PANELS_VISUAL.TROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_FACT, SNAME => 'SWRKTYPE', SVALUE => 'Факт');
+ RDG_ROW_FACT := PKG_P8PANELS_VISUAL.TDG_ROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_FACT, SNAME => 'SWRKTYPE', SVALUE => 'Факт');
/* Добавляем в заполненные группы */
PKG_CONTVALLOC1S.PUTS(RCONTAINER => GF, SROWID => SPRJ_GROUP_NAME, SVALUE => '');
end if;
@@ -676,7 +675,7 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
/* Закрашивание месяца плана синим */
if (PKG_CONTVALLOC1S.EXISTS_(RCONTAINER => COLS, SROWID => SPRJ_GROUP_NAME || ' ' || SPERIODNAME || ' PLAN') =
false) then
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => SPERIODNAME, SVALUE => 'blue');
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => SPERIODNAME, SVALUE => 'blue');
PKG_CONTVALLOC1S.PUTS(RCONTAINER => COLS,
SROWID => SPRJ_GROUP_NAME || ' ' || SPERIODNAME || ' PLAN',
SVALUE => '');
@@ -686,7 +685,7 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
/* Закрашивание дня плана синим */
if (PKG_CONTVALLOC1S.EXISTS_(RCONTAINER => COLS, SROWID => SPRJ_GROUP_NAME || ' ' || SPERIODNAME || ' PLAN') =
false) then
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => SPERIODNAME, SVALUE => 'blue');
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_PLAN, SNAME => SPERIODNAME, SVALUE => 'blue');
PKG_CONTVALLOC1S.PUTS(RCONTAINER => COLS,
SROWID => SPRJ_GROUP_NAME || ' ' || SPERIODNAME || ' PLAN',
SVALUE => '');
@@ -783,37 +782,37 @@ create or replace package body PKG_P8PANELS_EQUIPSRV as
for M in NMS .. NME
loop
SPERIODNAME := '_' || TO_CHAR(Y) || '_' || TO_CHAR(M);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_INFO,
- SNAME => SPERIODNAME,
- SVALUE => 'план: ' || HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
- SROWID => SPERIODNAME || '_P'),
- 1)) || ' факт: ' ||
- HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
- SROWID => SPERIODNAME || '_F'),
- 1)));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_INFO,
+ SNAME => SPERIODNAME,
+ SVALUE => 'план: ' || HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
+ SROWID => SPERIODNAME || '_P'),
+ 1)) || ' факт: ' ||
+ HOURS_STR(NHOURS => TRUNC(PKG_CONTVALLOC1S.GETN(RCONTAINER => YM,
+ SROWID => SPERIODNAME || '_F'),
+ 1)));
end loop;
end loop;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_INFO);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_INFO);
end if;
/* План для последней записи */
if ((RDG_ROW_PLAN.RCOLS is not null) and (NROWS = 0)) then
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_PLAN);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_PLAN);
end if;
/* Факт для последней записи */
if ((RDG_ROW_FACT.RCOLS is not null) and (NROWS = 0)) then
CR := PKG_CONTVALLOC1S.FIRST_(RCONTAINER => MCLR);
for Z in 1 .. PKG_CONTVALLOC1S.COUNT_(RCONTAINER => MCLR)
loop
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW_FACT,
- SNAME => CR,
- SVALUE => PKG_CONTVALLOC1S.GETS(RCONTAINER => MCLR, SROWID => CR));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW_FACT,
+ SNAME => CR,
+ SVALUE => PKG_CONTVALLOC1S.GETS(RCONTAINER => MCLR, SROWID => CR));
CR := PKG_CONTVALLOC1S.NEXT_(RCONTAINER => MCLR, SROWID => CR);
end loop;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_FACT);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW_FACT);
end if;
end loop;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
/* Очищаем контейнеры */
PKG_CONTVALLOC1S.PURGE(RCONTAINER => YM);
PKG_CONTVALLOC1S.PURGE(RCONTAINER => MCLR);
diff --git a/db/PKG_P8PANELS_MECHREC.pck b/db/PKG_P8PANELS_MECHREC.pck
index 74db9ce..ce4dcf8 100644
--- a/db/PKG_P8PANELS_MECHREC.pck
+++ b/db/PKG_P8PANELS_MECHREC.pck
@@ -390,7 +390,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
TDAYS(TDAYS.LAST).DDATE := DDATE;
TDAYS(TDAYS.LAST).NVALUE := NVALUE;
TDAYS(TDAYS.LAST).NTYPE := NTYPE;
- end TJOB_DAYS_ADD;
+ end TJOB_DAYS_ADD;
/* Инциализация списка маршрутных листов (с иерархией) */
procedure UTL_FCROUTLST_IDENT_INIT
@@ -911,9 +911,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -921,62 +921,62 @@ create or replace package body PKG_P8PANELS_MECHREC as
NFCROUTLST_IDENT PKG_STD.TREF; -- Рег. номер идентификатора отмеченных записей маршрутных листов
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_INFO',
- SCAPTION => 'Накладная',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_INFO',
+ SCAPTION => 'Накладная',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
/* Если тип "Приход из подразделений и маршрутные листы", то необходимо включать состояние */
if (NTYPE = NTASK_TYPE_INC_DEPS_RL) then
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_STATE',
- SCAPTION => 'Состояние',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_STATE',
+ SCAPTION => 'Состояние',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
end if;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DWORK_DATE',
- SCAPTION => 'Дата сдачи',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_VALID_INFO',
- SCAPTION => 'Маршрутный лист',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SOUT_DEPARTMENT',
- SCAPTION => 'Сдающий цех',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTORE',
- SCAPTION => 'Склад цеха потребителя',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_FACT',
- SCAPTION => 'Количество сдано',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DWORK_DATE',
+ SCAPTION => 'Дата сдачи',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_VALID_INFO',
+ SCAPTION => 'Маршрутный лист',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SOUT_DEPARTMENT',
+ SCAPTION => 'Сдающий цех',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTORE',
+ SCAPTION => 'Склад цеха потребителя',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_FACT',
+ SCAPTION => 'Количество сдано',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
/* Инициализируем список маршрутных листов */
UTL_FCROUTLST_IDENT_INIT(NFCPRODPLANSP => NFCPRODPLANSP, NIDENT => NFCROUTLST_IDENT);
/* Обходим данные */
@@ -1034,7 +1034,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1062,41 +1065,44 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_INFO',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_INFO',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
/* Если тип "Приход из подразделений и маршрутные листы", то необходимо включать состояние */
if (NTYPE = NTASK_TYPE_INC_DEPS_RL) then
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_STATE',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_STATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
end if;
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DWORK_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_VALID_INFO',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SOUT_DEPARTMENT',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SSTORE', ICURSOR => ICURSOR, NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DWORK_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_VALID_INFO',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SOUT_DEPARTMENT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTORE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -1106,7 +1112,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Очищаем отмеченные маршрутные листы */
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
exception
when others then
/* Очищаем отмеченные маршрутные листы */
@@ -1126,71 +1132,71 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRESPL_CODE',
- SCAPTION => 'Обозначение',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRESPL_NAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPROD_QUANT',
- SCAPTION => 'Применяемость',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_PLAN',
- SCAPTION => 'Количество план',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NREST',
- SCAPTION => 'Остаток',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_FACT',
- SCAPTION => 'Скомплектовано',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DRES_DATE_TO',
- SCAPTION => 'Зарезервировано',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRESPL_NOMEN',
- SCAPTION => 'Номенклатура',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRESPL_CODE',
+ SCAPTION => 'Обозначение',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRESPL_NAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPROD_QUANT',
+ SCAPTION => 'Применяемость',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_PLAN',
+ SCAPTION => 'Количество план',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NREST',
+ SCAPTION => 'Остаток',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_FACT',
+ SCAPTION => 'Скомплектовано',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DRES_DATE_TO',
+ SCAPTION => 'Зарезервировано',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRESPL_NOMEN',
+ SCAPTION => 'Номенклатура',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -1228,7 +1234,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1256,42 +1265,42 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DRES_DATE_TO',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRESPL_NOMEN',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRESPL_CODE',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRESPL_NAME',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NPROD_QUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NREST', ICURSOR => ICURSOR, NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DRES_DATE_TO',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRESPL_NOMEN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRESPL_CODE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRESPL_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NPROD_QUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NREST', ICURSOR => ICURSOR, NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -1299,7 +1308,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCDELIVERYLISTSP_DG_GET;
/* Получение таблицы товарных запасов на основании маршрутного листа */
@@ -1317,9 +1326,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
NSTORAGE_IN PKG_STD.TREF; -- Рег. номер склада получения
NNOMENCLATURE PKG_STD.TREF; -- Рег. номер номенклатуры основного материала
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -1352,50 +1361,50 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Инициализируем даты */
DDATE := TRUNC(sysdate);
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SINDOC',
- SCAPTION => 'Партия',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTORE',
- SCAPTION => 'Склад',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSALE',
- SCAPTION => 'К продаже',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRESTFACT',
- SCAPTION => 'Фактический остаток',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRESERV',
- SCAPTION => 'Резерв',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPRICEMEAS',
- SCAPTION => 'Единица измерения',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SINDOC',
+ SCAPTION => 'Партия',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTORE',
+ SCAPTION => 'Склад',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSALE',
+ SCAPTION => 'К продаже',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRESTFACT',
+ SCAPTION => 'Фактический остаток',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRESERV',
+ SCAPTION => 'Резерв',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPRICEMEAS',
+ SCAPTION => 'Единица измерения',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -1454,7 +1463,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1482,24 +1494,30 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SINDOC',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SSTORE', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NSALE', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRESTFACT',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NRESERV', ICURSOR => ICURSOR, NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPRICEMEAS',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SINDOC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTORE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NSALE', ICURSOR => ICURSOR, NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRESTFACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRESERV',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPRICEMEAS',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -1507,7 +1525,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end GOODSPARTIES_DG_GET;
/* Получение таблицы маршрутных листов, связанных со спецификацией плана (по детали) */
@@ -1522,71 +1540,71 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOCPREF',
- SCAPTION => 'Префикс',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOCNUMB',
- SCAPTION => 'Номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DEXEC_DATE',
- SCAPTION => 'Дата запуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRES_PLAN_NOMEN',
- SCAPTION => 'Номенклатура основного материала',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRES_PLAN_NAME',
- SCAPTION => 'Наименование основного материала',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT',
- SCAPTION => 'Количество запуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_PLAN',
- SCAPTION => 'Выдать по норме',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOCPREF',
+ SCAPTION => 'Префикс',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOCNUMB',
+ SCAPTION => 'Номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DEXEC_DATE',
+ SCAPTION => 'Дата запуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRES_PLAN_NOMEN',
+ SCAPTION => 'Номенклатура основного материала',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRES_PLAN_NAME',
+ SCAPTION => 'Наименование основного материала',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT',
+ SCAPTION => 'Количество запуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_PLAN',
+ SCAPTION => 'Выдать по норме',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -1639,7 +1657,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1666,38 +1687,41 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOCPREF',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SDOCNUMB', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DEXEC_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRES_PLAN_NOMEN',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRES_PLAN_NAME',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOCPREF',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOCNUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DEXEC_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRES_PLAN_NOMEN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRES_PLAN_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -1705,7 +1729,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCROUTLST_DG_BY_DTL;
/* Получение таблицы маршрутных листов, связанных со спецификацией плана (по изделию) */
@@ -1720,65 +1744,65 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOCPREF',
- SCAPTION => 'Префикс',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOCNUMB',
- SCAPTION => 'Номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DEXEC_DATE',
- SCAPTION => 'Дата запуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT',
- SCAPTION => 'Количество запуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DREL_DATE',
- SCAPTION => 'Дата выпуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NREL_QUANT',
- SCAPTION => 'Количество выпуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOCPREF',
+ SCAPTION => 'Префикс',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOCNUMB',
+ SCAPTION => 'Номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DEXEC_DATE',
+ SCAPTION => 'Дата запуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT',
+ SCAPTION => 'Количество запуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DREL_DATE',
+ SCAPTION => 'Дата выпуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NREL_QUANT',
+ SCAPTION => 'Количество выпуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -1829,7 +1853,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1855,34 +1882,37 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOCPREF',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SDOCNUMB', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DEXEC_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DREL_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NREL_QUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOCPREF',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOCNUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DEXEC_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DREL_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NREL_QUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -1890,7 +1920,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCROUTLST_DG_BY_PRDCT;
/* Получение таблицы маршрутных листов, связанных со спецификацией плана (для приходов) */
@@ -1905,77 +1935,77 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOCPREF',
- SCAPTION => 'Префикс',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOCNUMB',
- SCAPTION => 'Номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DEXEC_DATE',
- SCAPTION => 'Дата запуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT',
- SCAPTION => 'Количество запуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DREL_DATE',
- SCAPTION => 'Дата выпуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NREL_QUANT',
- SCAPTION => 'Количество выпуска',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_FACT',
- SCAPTION => 'Сдано',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPROCENT',
- SCAPTION => '% готовности',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOCPREF',
+ SCAPTION => 'Префикс',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOCNUMB',
+ SCAPTION => 'Номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DEXEC_DATE',
+ SCAPTION => 'Дата запуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT',
+ SCAPTION => 'Количество запуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DREL_DATE',
+ SCAPTION => 'Дата выпуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NREL_QUANT',
+ SCAPTION => 'Количество выпуска',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_FACT',
+ SCAPTION => 'Сдано',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPROCENT',
+ SCAPTION => '% готовности',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -2048,7 +2078,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -2076,33 +2109,45 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SDOCPREF', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SDOCNUMB', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DEXEC_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NQUANT', ICURSOR => ICURSOR, NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DREL_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NREL_QUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NPROCENT', ICURSOR => ICURSOR, NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOCPREF',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOCNUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DEXEC_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DREL_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NREL_QUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NPROCENT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -2110,7 +2155,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCROUTLST_DG_BY_DEPS;
/* Получение таблицы маршрутных листов, связанных со спецификацией плана с учетом типа */
@@ -2980,9 +3025,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -3033,56 +3078,56 @@ create or replace package body PKG_P8PANELS_MECHREC as
end FCROUTLSTORD_QUANT_GET;
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_INFO',
- SCAPTION => 'Документ (тип, №, дата)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT',
- SCAPTION => 'Количество план',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPROCENT',
- SCAPTION => 'Готовность партии',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPRIOR_PARTY',
- SCAPTION => 'Приоритет партии',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPROD_ORDER',
- SCAPTION => 'Заказ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_INFO',
+ SCAPTION => 'Документ (тип, №, дата)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT',
+ SCAPTION => 'Количество план',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPROCENT',
+ SCAPTION => 'Готовность партии',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPRIOR_PARTY',
+ SCAPTION => 'Приоритет партии',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPROD_ORDER',
+ SCAPTION => 'Заказ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
/*! Пока отключен */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCHANGE_FACEACC',
- SCAPTION => 'Изменить заказ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCHANGE_FACEACC',
+ SCAPTION => 'Изменить заказ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false,
+ BORDER => true);
/* Считываем рег. номер связанной спецификации из "Производственная программа" */
NFCPRODPLANSP_MAIN := UTL_FCPRODPLANSP_MAIN_GET(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP);
/* Если спецификация производственной программы найдена */
@@ -3156,7 +3201,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -3184,17 +3232,17 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Читаем данные из курсора */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 1, NVALUE => NFCROUTLST);
/* Добавляем колонку с рег. номером */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NFCROUTLST, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NFCROUTLST, BCLEAR => true);
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_INFO',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_INFO',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
/* Проверяем наличие прямой связи между МЛ и спецификацией плана */
if (PKG_DOCLINKS.FIND(NFLAG_SMART => 1,
SIN_UNITCODE => 'CostProductPlansSpecs',
@@ -3208,30 +3256,33 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Если сумма "Количество" в "Заказы" больше 0 */
if (NFCROUTLSTORD_QUANT > 0) then
/* Указываем её */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NQUANT', NVALUE => NFCROUTLSTORD_QUANT);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NQUANT', NVALUE => NFCROUTLSTORD_QUANT);
else
/* Берем из заголовка МЛ */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
end if;
else
/* Указываем 0 */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NQUANT', NVALUE => 0);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NQUANT', NVALUE => 0);
end if;
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NPROCENT', ICURSOR => ICURSOR, NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NPRIOR_PARTY',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPROD_ORDER',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCHANGE_FACEACC', SVALUE => null);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NPROCENT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NPRIOR_PARTY',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPROD_ORDER',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCHANGE_FACEACC', SVALUE => null);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -3242,7 +3293,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
exception
when others then
/* Очищаем отмеченные маршрутные листы */
@@ -3262,9 +3313,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -3297,65 +3348,65 @@ create or replace package body PKG_P8PANELS_MECHREC as
end FCROUTLSTSP_STATE_NAME_GET;
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTATE',
- SCAPTION => 'Состояние',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SOPER_NUMB',
- SCAPTION => 'Номер операции',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SROUTSHTSP_NAME',
- SCAPTION => 'Операция',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSUBDIV',
- SCAPTION => 'Цех, участок',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_PLAN',
- SCAPTION => 'План',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_FACT',
- SCAPTION => 'Факт',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NT_SHT_PLAN',
- SCAPTION => 'Трудоемкость план',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLABOUR_FACT',
- SCAPTION => 'Трудоемкость факт',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMUNIT',
- SCAPTION => 'ЕИ трудоемкости',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTATE',
+ SCAPTION => 'Состояние',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SOPER_NUMB',
+ SCAPTION => 'Номер операции',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SROUTSHTSP_NAME',
+ SCAPTION => 'Операция',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSUBDIV',
+ SCAPTION => 'Цех, участок',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_PLAN',
+ SCAPTION => 'План',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_FACT',
+ SCAPTION => 'Факт',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NT_SHT_PLAN',
+ SCAPTION => 'Трудоемкость план',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLABOUR_FACT',
+ SCAPTION => 'Трудоемкость факт',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMUNIT',
+ SCAPTION => 'ЕИ трудоемкости',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -3381,7 +3432,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -3410,44 +3464,50 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
/* Читаем состояние из курсора */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 2, NVALUE => NSTATE);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'SSTATE',
- SVALUE => FCROUTLSTSP_STATE_NAME_GET(NSTATE => NSTATE));
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SOPER_NUMB',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SROUTSHTSP_NAME',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SSUBDIV', ICURSOR => ICURSOR, NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NT_SHT_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLABOUR_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SMUNIT', ICURSOR => ICURSOR, NPOSITION => 10);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'SSTATE',
+ SVALUE => FCROUTLSTSP_STATE_NAME_GET(NSTATE => NSTATE));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SOPER_NUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SROUTSHTSP_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSUBDIV',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NT_SHT_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLABOUR_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMUNIT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 10);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -3455,7 +3515,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCROUTLSTSP_DEPT_DG_GET;
/* Получение таблицы ПиП на основании маршрутного листа, связанных со спецификацией плана */
@@ -3470,9 +3530,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -3481,43 +3541,43 @@ create or replace package body PKG_P8PANELS_MECHREC as
NFCROUTLST_IDENT PKG_STD.TREF; -- Рег. номер идентификатора отмеченных записей маршрутных листов
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTATE',
- SCAPTION => 'Состояние',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_INFO',
- SCAPTION => 'Документ (тип, №, дата)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_FACT',
- SCAPTION => 'Количество сдано',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DDUE_DATE',
- SCAPTION => 'Дата сдачи',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => true,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTATE',
+ SCAPTION => 'Состояние',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_INFO',
+ SCAPTION => 'Документ (тип, №, дата)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_FACT',
+ SCAPTION => 'Количество сдано',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DDUE_DATE',
+ SCAPTION => 'Дата сдачи',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => true,
+ BORDER => true);
/* Считываем рег. номер связанной спецификации из "Производственная программа" */
NFCPRODPLANSP_MAIN := UTL_FCPRODPLANSP_MAIN_GET(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP);
/* Если спецификация производственной программы найдена */
@@ -3562,7 +3622,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -3587,29 +3650,29 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SSTATE',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_INFO',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DDUE_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_INFO',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DDUE_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -3620,7 +3683,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
exception
when others then
/* Очищаем отмеченные маршрутные листы */
@@ -3640,9 +3703,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -3684,16 +3747,16 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Инициализация дней месяца */
procedure INIT_DAYS
(
- RDG in out nocopy PKG_P8PANELS_VISUAL.TDATA_GRID, -- Описание таблицы
- DDATE_FROM in date, -- Дата начала месяца
- DDATE_TO in date -- Дата окончания месяца
+ RDG in out nocopy PKG_P8PANELS_VISUAL.TDG, -- Описание таблицы
+ DDATE_FROM in date, -- Дата начала месяца
+ DDATE_TO in date -- Дата окончания месяца
)
is
- DDATE PKG_STD.TLDATE; -- Сформированная дата дня
- NMONTH PKG_STD.TNUMBER; -- Текущий месяц
- NYEAR PKG_STD.TNUMBER; -- Текущий год
- SDATE_NAME PKG_STD.TSTRING; -- Строковое представление даты для наименования колонки
- SPARENT_NAME PKG_STD.TSTRING; -- Наименование родительской строки
+ DDATE PKG_STD.TLDATE; -- Сформированная дата дня
+ NMONTH PKG_STD.TNUMBER; -- Текущий месяц
+ NYEAR PKG_STD.TNUMBER; -- Текущий год
+ SDATE_NAME PKG_STD.TSTRING; -- Строковое представление даты для наименования колонки
+ SPARENT_NAME PKG_STD.TSTRING; -- Наименование родительской строки
begin
/* Считываем месяц и год текущей даты */
NMONTH := D_MONTH(DDATE => sysdate);
@@ -3708,11 +3771,11 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Формируем наименование родительской строки */
SPARENT_NAME := 'N_' || SDATE_NAME || '_PLAN_FACT';
/* Описываем родительскую колонку таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => SPARENT_NAME,
- SCAPTION => LPAD(D_DAY(DDATE), 2, '0'),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SPARENT => 'NVALUE_BY_DAYS');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => SPARENT_NAME,
+ SCAPTION => LPAD(D_DAY(DDATE), 2, '0'),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SPARENT => 'NVALUE_BY_DAYS');
end loop;
end INIT_DAYS;
@@ -3750,98 +3813,98 @@ create or replace package body PKG_P8PANELS_MECHREC as
FCPRODPLANSP_CALC(NFCPRODPLAN => NFCPRODPLAN, NCOMPANY => NCOMPANY);
end if;
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 7);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 7);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTATUS',
- SCAPTION => 'Статус',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPROD_ORDER',
- SCAPTION => 'Заказ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true,
- SHINT => 'Содержит ссылку на связанные сдаточные накладные.',
- NWIDTH => 100);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRES_CODE',
- SCAPTION => 'Обозначение',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true,
- SHINT => 'Содержит ссылку на связанные маршрутные листы.
' ||
- 'Цвет залики отражает следующие статусы:
' ||
- 'Зеленый - "Факт" равен "План";
' ||
- 'Голубой - "План" меньше или равно "Факт" + "Запущено";
' ||
- 'Желтый - предыдущие условия не выполнены и на текущую дату сумма "Количество план" = 0 или меньше "План", то "Факт" больше или равно "План". ' ||
- 'Иначе сумма "Количество факт" больше или равно сумме "Количество план";
' ||
- 'Красный - ни одно из предыдущих условий не выполнено.
',
- NWIDTH => 120);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRES_NAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true,
- NWIDTH => 200);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSUBDIV',
- SCAPTION => 'Цех-получатель',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => true,
- NWIDTH => 180);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NMAIN_QUANT',
- SCAPTION => 'План',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NREL_FACT',
- SCAPTION => 'Факт',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFCROUTLST_QUANT',
- SCAPTION => 'Запущено',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- NWIDTH => 90);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NVALUE_BY_DAYS',
- SCAPTION => 'План/факт по дням',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- SHINT => 'Значения по спецификации "График сдачи":
' ||
- 'Черный - значение "Количество план";
' ||
- 'Синий - значение "Количество факт".
' ||
- 'Заливка серым определяет текущий день.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSUM_PLAN',
- SCAPTION => 'Сумма "Количество план"',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSUM_FACT',
- SCAPTION => 'Сумма "Количество факт"',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTATUS',
+ SCAPTION => 'Статус',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPROD_ORDER',
+ SCAPTION => 'Заказ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true,
+ SHINT => 'Содержит ссылку на связанные сдаточные накладные.',
+ NWIDTH => 100);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRES_CODE',
+ SCAPTION => 'Обозначение',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true,
+ SHINT => 'Содержит ссылку на связанные маршрутные листы.
' ||
+ 'Цвет залики отражает следующие статусы:
' ||
+ 'Зеленый - "Факт" равен "План";
' ||
+ 'Голубой - "План" меньше или равно "Факт" + "Запущено";
' ||
+ 'Желтый - предыдущие условия не выполнены и на текущую дату сумма "Количество план" = 0 или меньше "План", то "Факт" больше или равно "План". ' ||
+ 'Иначе сумма "Количество факт" больше или равно сумме "Количество план";
' ||
+ 'Красный - ни одно из предыдущих условий не выполнено.
',
+ NWIDTH => 120);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRES_NAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true,
+ NWIDTH => 200);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSUBDIV',
+ SCAPTION => 'Цех-получатель',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => true,
+ NWIDTH => 180);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NMAIN_QUANT',
+ SCAPTION => 'План',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NREL_FACT',
+ SCAPTION => 'Факт',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFCROUTLST_QUANT',
+ SCAPTION => 'Запущено',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ NWIDTH => 90);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NVALUE_BY_DAYS',
+ SCAPTION => 'План/факт по дням',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ SHINT => 'Значения по спецификации "График сдачи":
' ||
+ 'Черный - значение "Количество план";
' ||
+ 'Синий - значение "Количество факт".
' ||
+ 'Заливка серым определяет текущий день.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSUM_PLAN',
+ SCAPTION => 'Сумма "Количество план"',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSUM_FACT',
+ SCAPTION => 'Сумма "Количество факт"',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
/* Считываем первый и последний день месяца */
P_FIRST_LAST_DAY(DCALCDATE => sysdate, DBGNDATE => DDATE_FROM, DENDDATE => DDATE_TO);
/* Инициализация дней месяца */
@@ -3908,7 +3971,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -3937,33 +4003,36 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Читаем данные из курсора */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 1, NVALUE => NFCPRODPLANSP);
/* Добавляем колонку с рег. номером */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NFCPRODPLANSP, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NFCPRODPLANSP, BCLEAR => true);
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPROD_ORDER',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRES_CODE',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SMATRES_NAME',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SSUBDIV', ICURSOR => ICURSOR, NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NMAIN_QUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NREL_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NFCROUTLST_QUANT',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPROD_ORDER',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRES_CODE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRES_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSUBDIV',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NMAIN_QUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NREL_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NFCROUTLST_QUANT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
/* Считываем рег. номер связанной спецификации из "Производственная программа" */
NFCPRODPLANSP_MAIN := UTL_FCPRODPLANSP_MAIN_GET(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP);
/* Если есть связанная спецификация из производственной программы */
@@ -4028,9 +4097,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
group by TMP.DOC_DATE)
loop
/* Добавляем значение план/факт в соответствующую колонку */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'N_' || TO_CHAR(REC.DOC_DATE, SCOL_PATTERN_DATE) || '_PLAN_FACT',
- SVALUE => TO_CHAR(REC.QUANT_PLAN) || '/' || TO_CHAR(REC.QUANT_FACT));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'N_' || TO_CHAR(REC.DOC_DATE, SCOL_PATTERN_DATE) || '_PLAN_FACT',
+ SVALUE => TO_CHAR(REC.QUANT_PLAN) || '/' || TO_CHAR(REC.QUANT_FACT));
/* Если это ранее текущей даты */
if (REC.DOC_DATE <= DDATE) then
/* Добавляем к сумме по строке */
@@ -4039,10 +4108,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
end if;
end loop;
/* Добавляем колонки с суммами */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUM_PLAN', NVALUE => NSUM_PLAN);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUM_FACT', NVALUE => NSUM_FACT);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUM_PLAN', NVALUE => NSUM_PLAN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUM_FACT', NVALUE => NSUM_FACT);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
/* Очищаем отмеченные маршрутные листы */
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
end loop;
@@ -4054,7 +4123,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCPRODPLANSP_DEPT_DG_GET;
/* Инициализация записей раздела "Планы и отчеты производства изделий" */
@@ -4603,9 +4672,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -4613,7 +4682,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
NVERSION PKG_STD.TREF; -- Версия контрагентов
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Считываем версию контрагентов */
FIND_VERSION_BY_COMPANY(NCOMPANY => NCOMPANY, SUNITCODE => 'AGNLIST', NVERSION => NVERSION);
/* Преобразуем номер и размер страницы в номер строк с и по */
@@ -4622,64 +4691,64 @@ create or replace package body PKG_P8PANELS_MECHREC as
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 8);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 8);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSELECT',
- SCAPTION => 'Выбран',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPRIOR_PARTY',
- SCAPTION => 'Приоритет партии',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SFCROUTLST',
- SCAPTION => 'МЛ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMATRES',
- SCAPTION => 'ДСЕ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SOPER',
- SCAPTION => 'Операция',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_PLAN',
- SCAPTION => 'Количество',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLABOUR_PLAN',
- SCAPTION => 'Трудоемкость',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SEQCONFIG',
- SCAPTION => 'Станок',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NEQCONFIG',
- SCAPTION => 'Рег. номер станка',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NEQUIP_PLAN',
- SCAPTION => 'Рег. номер оборудования',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DBEG_FACT',
- SCAPTION => 'Дата начала факт',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSELECT',
+ SCAPTION => 'Выбран',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPRIOR_PARTY',
+ SCAPTION => 'Приоритет партии',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SFCROUTLST',
+ SCAPTION => 'МЛ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMATRES',
+ SCAPTION => 'ДСЕ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SOPER',
+ SCAPTION => 'Операция',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_PLAN',
+ SCAPTION => 'Количество',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLABOUR_PLAN',
+ SCAPTION => 'Трудоемкость',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEQCONFIG',
+ SCAPTION => 'Станок',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NEQCONFIG',
+ SCAPTION => 'Рег. номер станка',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NEQUIP_PLAN',
+ SCAPTION => 'Рег. номер оборудования',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DBEG_FACT',
+ SCAPTION => 'Дата начала факт',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -4718,7 +4787,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Если сортировки не указаны */
if (CORDERS is not null) then
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
else
/* Устанавливаем стандартную сортировку */
CSQL := replace(CSQL, '%ORDER_BY%', 'order by T.PRIOR_PARTY asc, T.BEG_PLAN asc');
@@ -4752,48 +4824,51 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSELECT', NVALUE => 0);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NPRIOR_PARTY',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SFCROUTLST',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SMATRES', ICURSOR => ICURSOR, NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SOPER', ICURSOR => ICURSOR, NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLABOUR_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SEQCONFIG',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NEQCONFIG',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NEQUIP_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 10);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DBEG_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 11);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSELECT', NVALUE => 0);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NPRIOR_PARTY',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SFCROUTLST',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SMATRES',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SOPER', ICURSOR => ICURSOR, NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLABOUR_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEQCONFIG',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NEQCONFIG',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NEQUIP_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 10);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DBEG_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 11);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -4801,7 +4876,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCJOBSSP_DG_GET;
/* Получение составов оборудования подразделения */
@@ -4817,9 +4892,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -4833,44 +4908,44 @@ create or replace package body PKG_P8PANELS_MECHREC as
NDICMUNTS_WD PKG_STD.TREF; -- Рег. номер ед. изм. нормочасов
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 4);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 4);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSELECT',
- SCAPTION => 'Выбран',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCODE',
- SCAPTION => 'Станок',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSUM_LABOUR',
- SCAPTION => 'Загрузка в н/ч',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLOADING',
- SCAPTION => 'Загрузка в %',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NEQUIPMENT',
- SCAPTION => 'Рег. номер оборудования',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSELECT',
+ SCAPTION => 'Выбран',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCODE',
+ SCAPTION => 'Станок',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSUM_LABOUR',
+ SCAPTION => 'Загрузка в н/ч',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLOADING',
+ SCAPTION => 'Загрузка в %',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NEQUIPMENT',
+ SCAPTION => 'Рег. номер оборудования',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
/* Считываем единицу измерения минут */
FIND_DICMUNTS_CODE(NFLAG_SMART => 0,
NFLAG_OPTION => 0,
@@ -4912,7 +4987,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -4967,17 +5045,20 @@ create or replace package body PKG_P8PANELS_MECHREC as
end if;
end if;
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NEQCONFIG, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSELECT', NVALUE => 0);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUM_LABOUR', NVALUE => NSUM_LABOUR);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCODE', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLOADING', NVALUE => NLOADING);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NEQUIPMENT',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NEQCONFIG, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSELECT', NVALUE => 0);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUM_LABOUR', NVALUE => NSUM_LABOUR);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCODE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLOADING', NVALUE => NLOADING);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NEQUIPMENT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -4986,7 +5067,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
end;
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end EQCONFIG_DG_GET;
/* Инициализация записей раздела "Планы и отчеты производства изделий" */
@@ -5186,8 +5267,8 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -5201,29 +5282,29 @@ create or replace package body PKG_P8PANELS_MECHREC as
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCODE',
- SCAPTION => 'Мнемокод',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DBGNDATE',
- SCAPTION => 'Действует с',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DENDDATE',
- SCAPTION => 'Действует по',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCODE',
+ SCAPTION => 'Мнемокод',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DBGNDATE',
+ SCAPTION => 'Действует с',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DENDDATE',
+ SCAPTION => 'Действует по',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE);
/* Считываем первый и последний день месяца */
P_FIRST_LAST_DAY(DCALCDATE => TO_DATE(SMONTH_YEAR, 'mm.yyyy'), DBGNDATE => DDATE_FROM, DENDDATE => DDATE_TO);
/* Обходим данные */
@@ -5273,17 +5354,23 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCODE', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW, SNAME => 'DBGNDATE', ICURSOR => ICURSOR, NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW, SNAME => 'DENDDATE', ICURSOR => ICURSOR, NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCODE', ICURSOR => ICURSOR, NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DBGNDATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DENDDATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -5291,7 +5378,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end INS_DEPARTMENT_DG_GET;
/* Получение загрузки цеха */
@@ -5309,9 +5396,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
SUTILIZER PKG_STD.TSTRING := UTILIZER(); -- Пользователь сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -5440,16 +5527,16 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Инициализация дней месяца */
procedure DAYS_INIT
(
- RDG in out nocopy PKG_P8PANELS_VISUAL.TDATA_GRID, -- Описание таблицы
- TJOB_DAYS in out nocopy TJOB_DAYS, -- Коллекция дней месяца
- DDATE_FROM in date, -- Дата начала месяца
- DDATE_TO in date -- Дата окончания месяца
+ RDG in out nocopy PKG_P8PANELS_VISUAL.TDG, -- Описание таблицы
+ TJOB_DAYS in out nocopy TJOB_DAYS, -- Коллекция дней месяца
+ DDATE_FROM in date, -- Дата начала месяца
+ DDATE_TO in date -- Дата окончания месяца
)
is
- DDATE PKG_STD.TLDATE; -- Сформированная дата дня
- NMONTH PKG_STD.TNUMBER; -- Текущий месяц
- NYEAR PKG_STD.TNUMBER; -- Текущий год
- SDATE_NAME PKG_STD.TSTRING; -- Строковое представление даты для наименования колонки
+ DDATE PKG_STD.TLDATE; -- Сформированная дата дня
+ NMONTH PKG_STD.TNUMBER; -- Текущий месяц
+ NYEAR PKG_STD.TNUMBER; -- Текущий год
+ SDATE_NAME PKG_STD.TSTRING; -- Строковое представление даты для наименования колонки
begin
/* Считываем месяц и год текущей даты */
NMONTH := D_MONTH(DDATE => DDATE_FROM);
@@ -5462,18 +5549,18 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Строковое представление даты для наименования колонки */
SDATE_NAME := TO_CHAR(DDATE, SCOL_PATTERN_DATE);
/* Описываем родительскую колонку таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'N_' || SDATE_NAME || '_VALUE',
- SCAPTION => LPAD(D_DAY(DDATE), 2, '0'),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SPARENT => 'NVALUE_BY_DAYS');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'N_' || SDATE_NAME || '_VALUE',
+ SCAPTION => LPAD(D_DAY(DDATE), 2, '0'),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SPARENT => 'NVALUE_BY_DAYS');
/* Описываем родительскую колонку таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'N_' || SDATE_NAME || '_TYPE',
- SCAPTION => LPAD(D_DAY(DDATE), 2, '0'),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false,
- SPARENT => 'NVALUE_BY_DAYS');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'N_' || SDATE_NAME || '_TYPE',
+ SCAPTION => LPAD(D_DAY(DDATE), 2, '0'),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false,
+ SPARENT => 'NVALUE_BY_DAYS');
/* Добавляем день в коллекцию */
TJOB_DAYS_ADD(TDAYS => TJOB_DAYS, DDATE => DDATE, NVALUE => null, NTYPE => 0);
end loop;
@@ -5570,50 +5657,50 @@ create or replace package body PKG_P8PANELS_MECHREC as
end DAYS_FILL;
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 4);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 4);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSUBDIV',
- SCAPTION => 'Участок',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true,
- NWIDTH => 120);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNAME',
- SCAPTION => 'Станок',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- NWIDTH => 240);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLOAD',
- SCAPTION => 'Загрузка (н/ч)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPROCENT_LOAD',
- SCAPTION => 'Загрузка (%)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- NWIDTH => 80);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NVALUE_BY_DAYS',
- SCAPTION => 'Загрузка в н/ч по дням месяца',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SHINT => 'Отображает сумму трудоемкости по дням месяца.
' ||
- 'Цвет значения отражает трудоемкость план/факт.
' ||
- 'Если дата месяца больше или равна текущей, то отображается трудоемкость "План", иначе "Факт":
' ||
- 'Черный - сумма трудоемкости "План";
' ||
- 'Голубой - сумма трудоемкости "Факт";
');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSUBDIV',
+ SCAPTION => 'Участок',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true,
+ NWIDTH => 120);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNAME',
+ SCAPTION => 'Станок',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ NWIDTH => 240);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLOAD',
+ SCAPTION => 'Загрузка (н/ч)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPROCENT_LOAD',
+ SCAPTION => 'Загрузка (%)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ NWIDTH => 80);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NVALUE_BY_DAYS',
+ SCAPTION => 'Загрузка в н/ч по дням месяца',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SHINT => 'Отображает сумму трудоемкости по дням месяца.
' ||
+ 'Цвет значения отражает трудоемкость план/факт.
' ||
+ 'Если дата месяца больше или равна текущей, то отображается трудоемкость "План", иначе "Факт":
' ||
+ 'Черный - сумма трудоемкости "План";
' ||
+ 'Голубой - сумма трудоемкости "Факт";
');
/* Считываем первый и последний день месяца */
P_FIRST_LAST_DAY(DCALCDATE => TO_DATE(SMONTH_YEAR, 'mm.yyyy'), DBGNDATE => DDATE_FROM, DENDDATE => DDATE_TO);
/* Считываем единицу измерения нормочасов */
@@ -5686,7 +5773,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' ) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -5716,12 +5806,15 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Считываем рег. номер станка */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 1, NVALUE => NEQCONFIG);
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NEQCONFIG, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SSUBDIV',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NEQCONFIG, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SNAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSUBDIV',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
/* Считываем загрузку в нормочасах */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 4, NVALUE => NLOAD);
/* Округляем загрузку */
@@ -5735,8 +5828,8 @@ create or replace package body PKG_P8PANELS_MECHREC as
NPROCENT_LOAD := 0;
end if;
/* Устанавливаем загрузку */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLOAD', NVALUE => NLOAD);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPROCENT_LOAD', NVALUE => NPROCENT_LOAD);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLOAD', NVALUE => NLOAD);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPROCENT_LOAD', NVALUE => NPROCENT_LOAD);
/* Если у оборудования есть загрузка */
if (NLOAD <> 0) then
/* Обходим загруженность по дням */
@@ -5781,17 +5874,19 @@ create or replace package body PKG_P8PANELS_MECHREC as
for I in TDAYS.FIRST .. TDAYS.LAST
loop
/* Отмечаем значение дня */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) || '_VALUE',
- NVALUE => ROUND(TDAYS(I).NVALUE, 1));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) ||
+ '_VALUE',
+ NVALUE => ROUND(TDAYS(I).NVALUE, 1));
/* Если рабочий календарь считан */
if (NENPERIOD is not null) then
/* Отмечаем тип дня */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) || '_TYPE',
- NVALUE => DAY_TYPE_GET(NENPERIOD => NENPERIOD,
- DDATE => TDAYS(I).DDATE,
- DCURRENT_DAY => DCURRENT_DAY));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) ||
+ '_TYPE',
+ NVALUE => DAY_TYPE_GET(NENPERIOD => NENPERIOD,
+ DDATE => TDAYS(I).DDATE,
+ DCURRENT_DAY => DCURRENT_DAY));
end if;
/* Обнуляем значение */
TDAYS(I).NVALUE := null;
@@ -5801,22 +5896,24 @@ create or replace package body PKG_P8PANELS_MECHREC as
for I in TDAYS.FIRST .. TDAYS.LAST
loop
/* Отмечаем значение дня */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) || '_VALUE',
- NVALUE => null);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) ||
+ '_VALUE',
+ NVALUE => null);
/* Если рабочий календарь считан */
if (NENPERIOD is not null) then
/* Отмечаем тип дня */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) || '_TYPE',
- NVALUE => DAY_TYPE_GET(NENPERIOD => NENPERIOD,
- DDATE => TDAYS(I).DDATE,
- DCURRENT_DAY => DCURRENT_DAY));
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'N_' || TO_CHAR(TDAYS(I).DDATE, SCOL_PATTERN_DATE) ||
+ '_TYPE',
+ NVALUE => DAY_TYPE_GET(NENPERIOD => NENPERIOD,
+ DDATE => TDAYS(I).DDATE,
+ DCURRENT_DAY => DCURRENT_DAY));
end if;
end loop;
end if;
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -5825,7 +5922,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
end;
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCJOBS_DEP_LOAD_DG_GET;
/*
@@ -5844,9 +5941,9 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -5855,40 +5952,40 @@ create or replace package body PKG_P8PANELS_MECHREC as
NDICMUNTS_WD PKG_STD.TREF; -- Рег. номер ед. измерения нормочасов
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNUMB',
- SCAPTION => '% п/п',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SOPERATION',
- SCAPTION => 'Содержание работ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SEXECUTOR',
- SCAPTION => 'Исполнитель',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NREMN_LABOUR',
- SCAPTION => 'Остаточная трудоемкость, в н/ч',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNUMB',
+ SCAPTION => '% п/п',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SOPERATION',
+ SCAPTION => 'Содержание работ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEXECUTOR',
+ SCAPTION => 'Исполнитель',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NREMN_LABOUR',
+ SCAPTION => 'Остаточная трудоемкость, в н/ч',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
/* Если спецификация считалась */
if (NFCPRODPLANSP is not null) then
/* Инициализируем список маршрутных листов */
@@ -5928,7 +6025,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -5953,29 +6053,29 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SNUMB',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SOPERATION',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SEXECUTOR',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NREMN_LABOUR',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SNUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SOPERATION',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEXECUTOR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NREMN_LABOUR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -5986,7 +6086,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
/* Очищаем отмеченные маршрутные листы */
P_SELECTLIST_CLEAR(NIDENT => NFCROUTLST_IDENT);
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
exception
when others then
/* Очищаем отмеченные маршрутные листы */
@@ -6006,49 +6106,49 @@ create or replace package body PKG_P8PANELS_MECHREC as
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
begin
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNOMEN',
- SCAPTION => 'Номенклатура',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NQUANT_PLAN',
- SCAPTION => 'Применяемость',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPROVIDER',
- SCAPTION => 'Поставщик',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NDEFICIT',
- SCAPTION => 'Дефицит',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNOMEN',
+ SCAPTION => 'Номенклатура',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NQUANT_PLAN',
+ SCAPTION => 'Применяемость',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPROVIDER',
+ SCAPTION => 'Поставщик',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NDEFICIT',
+ SCAPTION => 'Дефицит',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true);
/* Если спецификация считалась */
if (NFCPRODPLANSP is not null) then
begin
@@ -6078,7 +6178,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -6102,29 +6205,29 @@ create or replace package body PKG_P8PANELS_MECHREC as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SNOMEN',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NQUANT_PLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPROVIDER',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NDEFICIT',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SNOMEN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NQUANT_PLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPROVIDER',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NDEFICIT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
exception
when others then
@@ -6133,7 +6236,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
end;
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end FCDELIVSH_DG_BY_LINKED_GET;
/* Получение изображения для записи "Планы и отчеты производства изделий" по мат. ресурсу */
diff --git a/db/PKG_P8PANELS_PROJECTS.pck b/db/PKG_P8PANELS_PROJECTS.pck
index 960779a..9d5d5c9 100644
--- a/db/PKG_P8PANELS_PROJECTS.pck
+++ b/db/PKG_P8PANELS_PROJECTS.pck
@@ -1026,11 +1026,11 @@ create or replace package body PKG_P8PANELS_PROJECTS as
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
NIDENT PKG_STD.TREF := GEN_IDENT(); -- Идентификатор отбора
- RF PKG_P8PANELS_VISUAL.TFILTERS; -- Фильтры
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
- RCOL_VALS PKG_P8PANELS_VISUAL.TCOL_VALS; -- Предопределённые значения столбцов
+ RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- Фильтры
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
+ RCOL_VALS PKG_P8PANELS_VISUAL.TDG_COL_VALS; -- Предопределённые значения столбцов
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -1038,250 +1038,250 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NECON_RESP_DP PKG_STD.TREF; -- Рег. номер ДС "Ответственный экономист"
begin
/* Читаем фильтры */
- RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
/* Читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCODE',
- SCAPTION => 'Код',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDMNEMO',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDNAME',
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNAME_USL',
- SCAPTION => 'Условное наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDNAME_USL',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SEXPECTED_RES',
- SCAPTION => 'Ожидаемые результаты',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPRJTYPE',
- SCAPTION => 'Тип',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDPROJECTTYPE',
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SEXT_CUST',
- SCAPTION => 'Заказчик',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDEXT_CUST',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SGOVCNTRID',
- SCAPTION => 'ИГК',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_OSN',
- SCAPTION => 'Документ-основание',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_SDOC_OSN',
- SCAPTION => 'Документ-основание (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_SDOC_OSN',
- SCAPTION => 'Документ-основание (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSUBDIV_RESP',
- SCAPTION => 'Подразделение-исполнитель',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SRESPONSIBLE',
- SCAPTION => 'Ответственный исполнитель',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SECON_RESP',
- SCAPTION => 'Ответственный экономист',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 2);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 3);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 4);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 5);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSTATE',
- SCAPTION => 'Состояние',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'CGSTATE',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DBEGPLAN',
- SCAPTION => 'Дата начала',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDPLANBEGFrom',
- SCOND_TO => 'EDPLANBEGTo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DENDPLAN',
- SCAPTION => 'Дата окончания',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDPLANENDFrom',
- SCOND_TO => 'EDPLANENDTo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_SUM',
- SCAPTION => 'Стоимость',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCURNAMES',
- SCAPTION => 'Валюта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFIN_IN',
- SCAPTION => 'Входящее финансирование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_NFIN_IN',
- SCAPTION => 'Входящее финансирование (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_NFIN_IN',
- SCAPTION => 'Входящее финансирование (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFIN_OUT',
- SCAPTION => 'Исходящее финансирование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_NFIN_OUT',
- SCAPTION => 'Исходящее финансирование (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
- SCAPTION => 'Исходящее финансирование (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_FIN',
- SCAPTION => 'Фин-е (исх.)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_FIN',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Финансирование (исходящее) - контроль оплаты счетов, выставленных соисполнителями в рамках проекта.
' ||
- 'Требует внимания - в проекте есть этапы, для которых не все выставленные соисполнителями счета оплачены.
' ||
- 'В норме - нет этапов с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана привязка к договорам с соисполнителями.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_CONTR',
- SCAPTION => 'Контр-я',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_CONTR',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Контрактация - контроль суммы договоров, заключеных с соисполнителями в рамках проекта.
' ||
- 'Требует внимания - в проекте есть этапы, для которых сумма договоров с соисполнителями превышает заложенные в калькуляцию плановые показатели.
' ||
- 'В норме - нет этапов с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для всех этапов заданы плановые калькуляции.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_COEXEC',
- SCAPTION => 'Соисп-е',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_COEXEC',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Соисполнение - контроль исполнения обязательств по договорам, заключеным с соисполнителями в рамках проекта.
' ||
- 'Требует внимания - в проекте есть этапы, до окончания которых осталось менее ' ||
- TO_CHAR(NDAYS_LEFT_LIMIT) ||
- ' дней, при этом зафиксирован положительный остаток к поставке/актированию по договорам соисполнителей данного этапа.
' ||
- 'В норме - нет этапов с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана привязка к договорам с соисполнителями и плановые сроки окончания.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_PERIOD',
- SCAPTION => 'Сроки',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_PERIOD',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Сроки - контроль сроков исполнения работ по проекту.
' ||
- 'Требует внимания - в проекте есть этапы, до окончания которых осталось менее ' ||
- TO_CHAR(NDAYS_LEFT_LIMIT) || ' дней.
' ||
- 'В норме - нет этапов с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов заданы плановые сроки окончания.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_COST',
- SCAPTION => 'Затраты',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_COST',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Затраты - контроль затрат, понесённых в ходе выполнения работ по проекту.
' ||
- 'Требует внимания - в проекте есть этапы, для которых сумма фактических затрат по статьям калькуляции превысила плановую.
' ||
- 'В норме - нет этапов с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана действующая калькуляция с указанием плановых значений по статьям, подлежащим контролю.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_ACT',
- SCAPTION => 'Актир-е',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_ACT',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Актирование - контроль актирования работ, выполненных по проекту, со стороны заказчика.
' ||
- 'Требует внимания - в проекте есть этапы, в состоянии "Закрыт", но при этом в Системе отсутствует утверждённая "Расходная накладная на отпуск потребителю" для данного этапа.
' ||
- 'В норме - нет этапов с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что этапы, по которым завершены работы, переведены в состояние "Закрыт".');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_READY',
- SCAPTION => 'Готов (%, затраты)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCOST_READYFrom',
- SCOND_TO => 'EDCOST_READYTo',
- BORDER => true,
- BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCODE',
+ SCAPTION => 'Код',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDMNEMO',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDNAME',
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNAME_USL',
+ SCAPTION => 'Условное наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDNAME_USL',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEXPECTED_RES',
+ SCAPTION => 'Ожидаемые результаты',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPRJTYPE',
+ SCAPTION => 'Тип',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDPROJECTTYPE',
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEXT_CUST',
+ SCAPTION => 'Заказчик',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDEXT_CUST',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SGOVCNTRID',
+ SCAPTION => 'ИГК',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_OSN',
+ SCAPTION => 'Документ-основание',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_SDOC_OSN',
+ SCAPTION => 'Документ-основание (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_SDOC_OSN',
+ SCAPTION => 'Документ-основание (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSUBDIV_RESP',
+ SCAPTION => 'Подразделение-исполнитель',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SRESPONSIBLE',
+ SCAPTION => 'Ответственный исполнитель',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SECON_RESP',
+ SCAPTION => 'Ответственный экономист',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 2);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 3);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 4);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 5);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSTATE',
+ SCAPTION => 'Состояние',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'CGSTATE',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DBEGPLAN',
+ SCAPTION => 'Дата начала',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDPLANBEGFrom',
+ SCOND_TO => 'EDPLANBEGTo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DENDPLAN',
+ SCAPTION => 'Дата окончания',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDPLANENDFrom',
+ SCOND_TO => 'EDPLANENDTo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_SUM',
+ SCAPTION => 'Стоимость',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCURNAMES',
+ SCAPTION => 'Валюта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFIN_IN',
+ SCAPTION => 'Входящее финансирование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_NFIN_IN',
+ SCAPTION => 'Входящее финансирование (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_NFIN_IN',
+ SCAPTION => 'Входящее финансирование (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFIN_OUT',
+ SCAPTION => 'Исходящее финансирование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_NFIN_OUT',
+ SCAPTION => 'Исходящее финансирование (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
+ SCAPTION => 'Исходящее финансирование (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_FIN',
+ SCAPTION => 'Фин-е (исх.)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_FIN',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Финансирование (исходящее) - контроль оплаты счетов, выставленных соисполнителями в рамках проекта.
' ||
+ 'Требует внимания - в проекте есть этапы, для которых не все выставленные соисполнителями счета оплачены.
' ||
+ 'В норме - нет этапов с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана привязка к договорам с соисполнителями.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_CONTR',
+ SCAPTION => 'Контр-я',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_CONTR',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Контрактация - контроль суммы договоров, заключеных с соисполнителями в рамках проекта.
' ||
+ 'Требует внимания - в проекте есть этапы, для которых сумма договоров с соисполнителями превышает заложенные в калькуляцию плановые показатели.
' ||
+ 'В норме - нет этапов с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для всех этапов заданы плановые калькуляции.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_COEXEC',
+ SCAPTION => 'Соисп-е',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_COEXEC',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Соисполнение - контроль исполнения обязательств по договорам, заключеным с соисполнителями в рамках проекта.
' ||
+ 'Требует внимания - в проекте есть этапы, до окончания которых осталось менее ' ||
+ TO_CHAR(NDAYS_LEFT_LIMIT) ||
+ ' дней, при этом зафиксирован положительный остаток к поставке/актированию по договорам соисполнителей данного этапа.
' ||
+ 'В норме - нет этапов с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана привязка к договорам с соисполнителями и плановые сроки окончания.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_PERIOD',
+ SCAPTION => 'Сроки',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_PERIOD',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Сроки - контроль сроков исполнения работ по проекту.
' ||
+ 'Требует внимания - в проекте есть этапы, до окончания которых осталось менее ' ||
+ TO_CHAR(NDAYS_LEFT_LIMIT) || ' дней.
' ||
+ 'В норме - нет этапов с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов заданы плановые сроки окончания.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_COST',
+ SCAPTION => 'Затраты',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_COST',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Затраты - контроль затрат, понесённых в ходе выполнения работ по проекту.
' ||
+ 'Требует внимания - в проекте есть этапы, для которых сумма фактических затрат по статьям калькуляции превысила плановую.
' ||
+ 'В норме - нет этапов с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана действующая калькуляция с указанием плановых значений по статьям, подлежащим контролю.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_ACT',
+ SCAPTION => 'Актир-е',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_ACT',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Актирование - контроль актирования работ, выполненных по проекту, со стороны заказчика.
' ||
+ 'Требует внимания - в проекте есть этапы, в состоянии "Закрыт", но при этом в Системе отсутствует утверждённая "Расходная накладная на отпуск потребителю" для данного этапа.
' ||
+ 'В норме - нет этапов с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что этапы, по которым завершены работы, переведены в состояние "Закрыт".');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_READY',
+ SCAPTION => 'Готов (%, затраты)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCOST_READYFrom',
+ SCOND_TO => 'EDCOST_READYTo',
+ BORDER => true,
+ BFILTER => true);
/* Определим дополнительные свойства - ответственный экономист */
FIND_DOCS_PROPS_CODE(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, SCODE => SDP_SECON_RESP, NRN => NECON_RESP_DP);
/* Обходим данные */
@@ -1338,14 +1338,17 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and P.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT) %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Учтём фильтры */
- PKG_P8PANELS_VISUAL.TFILTERS_SET_QUERY(NIDENT => NIDENT,
- NCOMPANY => NCOMPANY,
- SUNIT => 'Projects',
- SPROCEDURE => PKG_SQL_BUILD.PKG_NAME(SNAME => 'PKG_P8PANELS_PROJECTS.COND'),
- RDATA_GRID => RDG,
- RFILTERS => RF);
+ PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY(NIDENT => NIDENT,
+ NCOMPANY => NCOMPANY,
+ SUNIT => 'Projects',
+ SPROCEDURE => PKG_SQL_BUILD.PKG_NAME(SNAME => 'PKG_P8PANELS_PROJECTS.COND'),
+ RDATA_GRID => RDG,
+ RFILTERS => RF);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -1396,119 +1399,131 @@ create or replace package body PKG_P8PANELS_PROJECTS as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCODE', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SNAME_USL',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SEXPECTED_RES',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SPRJTYPE', ICURSOR => ICURSOR, NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SEXT_CUST',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SGOVCNTRID',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SDOC_OSN', ICURSOR => ICURSOR, NPOSITION => 9);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_SDOC_OSN',
- ICURSOR => ICURSOR,
- NPOSITION => 10);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_SDOC_OSN',
- ICURSOR => ICURSOR,
- NPOSITION => 11);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SSUBDIV_RESP',
- ICURSOR => ICURSOR,
- NPOSITION => 12);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SRESPONSIBLE',
- ICURSOR => ICURSOR,
- NPOSITION => 13);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SECON_RESP',
- ICURSOR => ICURSOR,
- NPOSITION => 14);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NSTATE', ICURSOR => ICURSOR, NPOSITION => 15);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DBEGPLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 16);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DENDPLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 17);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCOST_SUM',
- ICURSOR => ICURSOR,
- NPOSITION => 18);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SCURNAMES',
- ICURSOR => ICURSOR,
- NPOSITION => 19);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NFIN_IN', ICURSOR => ICURSOR, NPOSITION => 20);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_NFIN_IN',
- ICURSOR => ICURSOR,
- NPOSITION => 21);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_NFIN_IN',
- ICURSOR => ICURSOR,
- NPOSITION => 22);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NFIN_OUT',
- ICURSOR => ICURSOR,
- NPOSITION => 23);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_NFIN_OUT',
- ICURSOR => ICURSOR,
- NPOSITION => 24);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
- ICURSOR => ICURSOR,
- NPOSITION => 25);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_FIN',
- ICURSOR => ICURSOR,
- NPOSITION => 26);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_CONTR',
- ICURSOR => ICURSOR,
- NPOSITION => 27);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_COEXEC',
- ICURSOR => ICURSOR,
- NPOSITION => 28);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_PERIOD',
- ICURSOR => ICURSOR,
- NPOSITION => 29);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_COST',
- ICURSOR => ICURSOR,
- NPOSITION => 30);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_ACT',
- ICURSOR => ICURSOR,
- NPOSITION => 31);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCOST_READY',
- ICURSOR => ICURSOR,
- NPOSITION => 32);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCODE', ICURSOR => ICURSOR, NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SNAME_USL',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEXPECTED_RES',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPRJTYPE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEXT_CUST',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SGOVCNTRID',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_OSN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_SDOC_OSN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 10);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_SDOC_OSN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 11);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSUBDIV_RESP',
+ ICURSOR => ICURSOR,
+ NPOSITION => 12);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SRESPONSIBLE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 13);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SECON_RESP',
+ ICURSOR => ICURSOR,
+ NPOSITION => 14);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NSTATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 15);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DBEGPLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 16);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DENDPLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 17);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCOST_SUM',
+ ICURSOR => ICURSOR,
+ NPOSITION => 18);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCURNAMES',
+ ICURSOR => ICURSOR,
+ NPOSITION => 19);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NFIN_IN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 20);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_NFIN_IN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 21);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_NFIN_IN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 22);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NFIN_OUT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 23);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_NFIN_OUT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 24);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 25);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_FIN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 26);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_CONTR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 27);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_COEXEC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 28);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_PERIOD',
+ ICURSOR => ICURSOR,
+ NPOSITION => 29);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_COST',
+ ICURSOR => ICURSOR,
+ NPOSITION => 30);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_ACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 31);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCOST_READY',
+ ICURSOR => ICURSOR,
+ NPOSITION => 32);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
/* Освобождаем курсор */
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
@@ -1518,7 +1533,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end LIST;
/* Сфодный график проектов */
@@ -1535,8 +1550,8 @@ create or replace package body PKG_P8PANELS_PROJECTS as
SYEAR_COL_NAME PKG_STD.TSTRING; -- Наименование колонки для года
SPRJ_GROUP_NAME PKG_STD.TSTRING; -- Наименование группы для проекта
BEXPANDED boolean; -- Флаг раскрытости уровня
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
begin
/* Определим даты начала и окончания проектов */
select TRUNC(min(DBEGPLAN), 'mm'),
@@ -1563,40 +1578,40 @@ create or replace package body PKG_P8PANELS_PROJECTS as
and PS.ENDPLAN is not null
and PS.HRN is null);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 1);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 1);
/* Если есть данные о начале и окончании проектов в портфеле */
if ((DFROM is not null) and (DTO is not null)) then
/* Формируем структуру заголовка */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SJOB',
- SCAPTION => 'Работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- NWIDTH => 300);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SRESP',
- SCAPTION => 'Ответственный',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSTATE',
- SCAPTION => 'Состояние',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DFROM',
- SCAPTION => 'Начало работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DTO',
- SCAPTION => 'Окончание работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SJOB',
+ SCAPTION => 'Работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ NWIDTH => 300);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SRESP',
+ SCAPTION => 'Ответственный',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSTATE',
+ SCAPTION => 'Состояние',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DFROM',
+ SCAPTION => 'Начало работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DTO',
+ SCAPTION => 'Окончание работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BVISIBLE => false);
for Y in EXTRACT(year from DFROM) .. EXTRACT(year from DTO)
loop
SYEAR_COL_NAME := TO_CHAR(Y);
@@ -1605,22 +1620,22 @@ create or replace package body PKG_P8PANELS_PROJECTS as
else
BEXPANDED := false;
end if;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => SYEAR_COL_NAME,
- SCAPTION => TO_CHAR(Y),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BEXPANDABLE => true,
- BEXPANDED => BEXPANDED);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => SYEAR_COL_NAME,
+ SCAPTION => TO_CHAR(Y),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BEXPANDABLE => true,
+ BEXPANDED => BEXPANDED);
for M in 1 .. 12
loop
DFROM_CUR := TO_DATE('01.' || LPAD(TO_CHAR(M), 2, '0') || '.' || TO_CHAR(Y), 'dd.mm.yyyy');
DTO_CUR := LAST_DAY(DFROM_CUR);
if ((DFROM_CUR >= DFROM) and (DTO_CUR <= DTO)) then
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => SYEAR_COL_NAME || '_' || TO_CHAR(M),
- SCAPTION => LPAD(TO_CHAR(M), 2, '0'),
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SPARENT => SYEAR_COL_NAME);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => SYEAR_COL_NAME || '_' || TO_CHAR(M),
+ SCAPTION => LPAD(TO_CHAR(M), 2, '0'),
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SPARENT => SYEAR_COL_NAME);
end if;
end loop;
end loop;
@@ -1635,11 +1650,11 @@ create or replace package body PKG_P8PANELS_PROJECTS as
loop
/* Добвим группу для проекта */
SPRJ_GROUP_NAME := PR.RN;
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SPRJ_GROUP_NAME,
- SCAPTION => PR.CODE || ' - ' || PR.NAME,
- BEXPANDABLE => true,
- BEXPANDED => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SPRJ_GROUP_NAME,
+ SCAPTION => PR.CODE || ' - ' || PR.NAME,
+ BEXPANDABLE => true,
+ BEXPANDED => true);
/* Обходим этапы проекта */
for ST in (select PS.RN NRN,
trim(PS.NUMB) || ' - ' || PS.NAME SJOB,
@@ -1660,21 +1675,21 @@ create or replace package body PKG_P8PANELS_PROJECTS as
order by PS.NUMB)
loop
/* Инициализируем строку */
- RDG_ROW := PKG_P8PANELS_VISUAL.TROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
+ RDG_ROW := PKG_P8PANELS_VISUAL.TDG_ROW_MAKE(SGROUP => SPRJ_GROUP_NAME);
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => ST.NRN);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SJOB', SVALUE => ST.SJOB);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SRESP', SVALUE => ST.SRESP);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSTATE', NVALUE => ST.NSTATE);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DFROM', DVALUE => ST.DFROM);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DTO', DVALUE => ST.DTO);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => ST.NRN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SJOB', SVALUE => ST.SJOB);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SRESP', SVALUE => ST.SRESP);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSTATE', NVALUE => ST.NSTATE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DFROM', DVALUE => ST.DFROM);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DTO', DVALUE => ST.DTO);
/* Добавим строку для этапа */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
end loop;
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
end GRAPH;
/* График по данным проектов - "Топ проблем" */
@@ -2550,11 +2565,11 @@ create or replace package body PKG_P8PANELS_PROJECTS as
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
NIDENT PKG_STD.TREF := GEN_IDENT(); -- Идентификатор отбора
- RF PKG_P8PANELS_VISUAL.TFILTERS; -- Фильтры
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
- RCOL_VALS PKG_P8PANELS_VISUAL.TCOL_VALS; -- Предопределённые значения столбцов
+ RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- Фильтры
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
+ RCOL_VALS PKG_P8PANELS_VISUAL.TDG_COL_VALS; -- Предопределённые значения столбцов
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
NFPDARTCL_REALIZ PKG_STD.TREF; -- Рег. номер статьи калькуляции для реализации
@@ -2568,246 +2583,246 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* Определим рег. номер статьи калькуляции для учёта реализации */
FIND_FPDARTCL_CODE(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, SCODE => SFPDARTCL_REALIZ, NRN => NFPDARTCL_REALIZ);
/* Читаем фильтры */
- RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
/* Читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNUMB',
- SCAPTION => 'Номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDNUMB',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDNAME',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SEXPECTED_RES',
- SCAPTION => 'Ожидаемые результаты',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SFACEACC',
- SCAPTION => 'Шифр затрат',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 2);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 3);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 4);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 5);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSTATE',
- SCAPTION => 'Состояние',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'CGSTATE',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DBEGPLAN',
- SCAPTION => 'Дата начала',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDPLANBEGFrom',
- SCOND_TO => 'EDPLANBEGTo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DENDPLAN',
- SCAPTION => 'Дата окончания',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDPLANENDFrom',
- SCOND_TO => 'EDPLANENDTo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_SUM',
- SCAPTION => 'Стоимость',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCURNAMES',
- SCAPTION => 'Валюта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFIN_IN',
- SCAPTION => 'Входящее финансирование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_NFIN_IN',
- SCAPTION => 'Входящее финансирование (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_NFIN_IN',
- SCAPTION => 'Входящее финансирование (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFIN_OUT',
- SCAPTION => 'Исходящее финансирование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_NFIN_OUT',
- SCAPTION => 'Исходящее финансирование (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
- SCAPTION => 'Исходящее финансирование (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_FIN',
- SCAPTION => 'Фин-е (исх.)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_FIN',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Финансирование (исходящее) - контроль оплаты счетов, выставленных соисполнителями по этапу.
' ||
- 'Требует внимания - к этапу привязаны договоры соисполнителей, для которых не все выставленные соисполнителями счета оплачены.
' ||
- 'В норме - нет договоров соисполнения с отклонениями, описанными выше.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана привязка к договорам с соисполнителями.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_CONTR',
- SCAPTION => 'Контр-я',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_CONTR',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Контрактация - контроль суммы договоров, заключеных с соисполнителями в рамках этапа.
' ||
- 'Требует внимания - сумма договоров с соисполнителями, привязанных к этапу, превышает заложенные в калькуляцию плановые показатели по сответствующим статьям.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задана калькуляция и для контрагентских статей указаны плановые показатели.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_COEXEC',
- SCAPTION => 'Соисп-е',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_COEXEC',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Соисполнение - контроль исполнения обязательств по договорам, заключеным с соисполнителями в рамках этапа.
' ||
- 'Требует внимания - до окончания этапа осталось менее ' ||
- TO_CHAR(NDAYS_LEFT_LIMIT) ||
- ' дней, при этом зафиксирован положительный остаток к поставке/актированию по привязанным к нему договорам соисполнителей.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задана привязка к договорам с соисполнителями и плановый срок окончания.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NDAYS_LEFT',
- SCAPTION => 'Дней до окончания',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_PERIOD',
- SCAPTION => 'Сроки',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_PERIOD',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Сроки - контроль сроков исполнения работ по этапу.
' ||
- 'Требует внимания - до окончания этапа осталось менее ' ||
- TO_CHAR(NDAYS_LEFT_LIMIT) || ' дней.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задан плановый срок окончания.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_FACT',
- SCAPTION => 'Сумма фактических затрат',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_NCOST_FACT',
- SCAPTION => 'Сумма фактических затрат (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_NCOST_FACT',
- SCAPTION => 'Сумма фактических затрат (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSUMM_REALIZ',
- SCAPTION => 'Сумма реализации',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_NSUMM_REALIZ',
- SCAPTION => 'Сумма реализации (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_NSUMM_REALIZ',
- SCAPTION => 'Сумма реализации (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSUMM_INCOME',
- SCAPTION => 'Сумма прибыли',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NINCOME_PRC',
- SCAPTION => 'Процент прибыли',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_COST',
- SCAPTION => 'Затраты',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_COST',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Затраты - контроль затрат, понесённых в ходе выполнения работ по этапу.
' ||
- 'Требует внимания - сумма фактических затрат этапа по некоторым статьям калькуляции превысила плановую.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задана действующая калькуляция с указанием плановых значений по статьям, подлежащим контролю.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_ACT',
- SCAPTION => 'Актир-е',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_ACT',
- BORDER => true,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Актирование - контроль актирования работ, выполненных по этапу, со стороны заказчика.
' ||
- 'Требует внимания - этап в состоянии "Закрыт", но при этом в Системе отсутствует утверждённая "Расходная накладная на отпуск потребителю" для данного этапа.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что этап, если работы по нему завершены, переведен в состояние "Закрыт".');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_READY',
- SCAPTION => 'Готов (%, затраты)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCOST_READYFrom',
- SCOND_TO => 'EDCOST_READYTo',
- BORDER => true,
- BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNUMB',
+ SCAPTION => 'Номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDNUMB',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDNAME',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEXPECTED_RES',
+ SCAPTION => 'Ожидаемые результаты',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SFACEACC',
+ SCAPTION => 'Шифр затрат',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 2);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 3);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 4);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 5);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSTATE',
+ SCAPTION => 'Состояние',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'CGSTATE',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DBEGPLAN',
+ SCAPTION => 'Дата начала',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDPLANBEGFrom',
+ SCOND_TO => 'EDPLANBEGTo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DENDPLAN',
+ SCAPTION => 'Дата окончания',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDPLANENDFrom',
+ SCOND_TO => 'EDPLANENDTo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_SUM',
+ SCAPTION => 'Стоимость',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCURNAMES',
+ SCAPTION => 'Валюта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFIN_IN',
+ SCAPTION => 'Входящее финансирование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_NFIN_IN',
+ SCAPTION => 'Входящее финансирование (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_NFIN_IN',
+ SCAPTION => 'Входящее финансирование (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFIN_OUT',
+ SCAPTION => 'Исходящее финансирование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_NFIN_OUT',
+ SCAPTION => 'Исходящее финансирование (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
+ SCAPTION => 'Исходящее финансирование (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_FIN',
+ SCAPTION => 'Фин-е (исх.)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_FIN',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Финансирование (исходящее) - контроль оплаты счетов, выставленных соисполнителями по этапу.
' ||
+ 'Требует внимания - к этапу привязаны договоры соисполнителей, для которых не все выставленные соисполнителями счета оплачены.
' ||
+ 'В норме - нет договоров соисполнения с отклонениями, описанными выше.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапов задана привязка к договорам с соисполнителями.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_CONTR',
+ SCAPTION => 'Контр-я',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_CONTR',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Контрактация - контроль суммы договоров, заключеных с соисполнителями в рамках этапа.
' ||
+ 'Требует внимания - сумма договоров с соисполнителями, привязанных к этапу, превышает заложенные в калькуляцию плановые показатели по сответствующим статьям.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задана калькуляция и для контрагентских статей указаны плановые показатели.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_COEXEC',
+ SCAPTION => 'Соисп-е',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_COEXEC',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Соисполнение - контроль исполнения обязательств по договорам, заключеным с соисполнителями в рамках этапа.
' ||
+ 'Требует внимания - до окончания этапа осталось менее ' ||
+ TO_CHAR(NDAYS_LEFT_LIMIT) ||
+ ' дней, при этом зафиксирован положительный остаток к поставке/актированию по привязанным к нему договорам соисполнителей.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задана привязка к договорам с соисполнителями и плановый срок окончания.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NDAYS_LEFT',
+ SCAPTION => 'Дней до окончания',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_PERIOD',
+ SCAPTION => 'Сроки',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_PERIOD',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Сроки - контроль сроков исполнения работ по этапу.
' ||
+ 'Требует внимания - до окончания этапа осталось менее ' ||
+ TO_CHAR(NDAYS_LEFT_LIMIT) || ' дней.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задан плановый срок окончания.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_FACT',
+ SCAPTION => 'Сумма фактических затрат',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_NCOST_FACT',
+ SCAPTION => 'Сумма фактических затрат (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_NCOST_FACT',
+ SCAPTION => 'Сумма фактических затрат (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSUMM_REALIZ',
+ SCAPTION => 'Сумма реализации',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_NSUMM_REALIZ',
+ SCAPTION => 'Сумма реализации (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_NSUMM_REALIZ',
+ SCAPTION => 'Сумма реализации (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSUMM_INCOME',
+ SCAPTION => 'Сумма прибыли',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NINCOME_PRC',
+ SCAPTION => 'Процент прибыли',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_COST',
+ SCAPTION => 'Затраты',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_COST',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Затраты - контроль затрат, понесённых в ходе выполнения работ по этапу.
' ||
+ 'Требует внимания - сумма фактических затрат этапа по некоторым статьям калькуляции превысила плановую.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для этапа задана действующая калькуляция с указанием плановых значений по статьям, подлежащим контролю.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_ACT',
+ SCAPTION => 'Актир-е',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_ACT',
+ BORDER => true,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Актирование - контроль актирования работ, выполненных по этапу, со стороны заказчика.
' ||
+ 'Требует внимания - этап в состоянии "Закрыт", но при этом в Системе отсутствует утверждённая "Расходная накладная на отпуск потребителю" для данного этапа.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что этап, если работы по нему завершены, переведен в состояние "Закрыт".');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_READY',
+ SCAPTION => 'Готов (%, затраты)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCOST_READYFrom',
+ SCOND_TO => 'EDCOST_READYTo',
+ BORDER => true,
+ BFILTER => true);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -2857,15 +2872,18 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and PS.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT) %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Учтём фильтры */
- PKG_P8PANELS_VISUAL.TFILTERS_SET_QUERY(NIDENT => NIDENT,
- NCOMPANY => NCOMPANY,
- NPARENT => NPRN,
- SUNIT => 'ProjectsStages',
- SPROCEDURE => PKG_SQL_BUILD.PKG_NAME(SNAME => 'PKG_P8PANELS_PROJECTS.STAGES_COND'),
- RDATA_GRID => RDG,
- RFILTERS => RF);
+ PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY(NIDENT => NIDENT,
+ NCOMPANY => NCOMPANY,
+ NPARENT => NPRN,
+ SUNIT => 'ProjectsStages',
+ SPROCEDURE => PKG_SQL_BUILD.PKG_NAME(SNAME => 'PKG_P8PANELS_PROJECTS.STAGES_COND'),
+ RDATA_GRID => RDG,
+ RFILTERS => RF);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -2914,80 +2932,95 @@ create or replace package body PKG_P8PANELS_PROJECTS as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNUMB', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SEXPECTED_RES',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SFACEACC', ICURSOR => ICURSOR, NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NSTATE', ICURSOR => ICURSOR, NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW, SNAME => 'DBEGPLAN', ICURSOR => ICURSOR, NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW, SNAME => 'DENDPLAN', ICURSOR => ICURSOR, NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCOST_SUM',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SCURNAMES',
- ICURSOR => ICURSOR,
- NPOSITION => 10);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NFIN_IN', ICURSOR => ICURSOR, NPOSITION => 11);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_NFIN_IN',
- ICURSOR => ICURSOR,
- NPOSITION => 12);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_NFIN_IN',
- ICURSOR => ICURSOR,
- NPOSITION => 13);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NFIN_OUT',
- ICURSOR => ICURSOR,
- NPOSITION => 14);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_NFIN_OUT',
- ICURSOR => ICURSOR,
- NPOSITION => 15);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
- ICURSOR => ICURSOR,
- NPOSITION => 16);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_FIN',
- ICURSOR => ICURSOR,
- NPOSITION => 17);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_CONTR',
- ICURSOR => ICURSOR,
- NPOSITION => 18);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_COEXEC',
- ICURSOR => ICURSOR,
- NPOSITION => 19);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NDAYS_LEFT',
- ICURSOR => ICURSOR,
- NPOSITION => 20);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_PERIOD',
- ICURSOR => ICURSOR,
- NPOSITION => 21);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNUMB', ICURSOR => ICURSOR, NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SNAME', ICURSOR => ICURSOR, NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEXPECTED_RES',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SFACEACC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NSTATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DBEGPLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DENDPLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCOST_SUM',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCURNAMES',
+ ICURSOR => ICURSOR,
+ NPOSITION => 10);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NFIN_IN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 11);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_NFIN_IN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 12);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_NFIN_IN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 13);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NFIN_OUT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 14);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_NFIN_OUT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 15);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_NFIN_OUT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 16);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_FIN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 17);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_CONTR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 18);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_COEXEC',
+ ICURSOR => ICURSOR,
+ NPOSITION => 19);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NDAYS_LEFT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 20);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_PERIOD',
+ ICURSOR => ICURSOR,
+ NPOSITION => 21);
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 22, NVALUE => NCOST_FACT);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOST_FACT', NVALUE => NCOST_FACT);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_NCOST_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 23);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_NCOST_FACT',
- ICURSOR => ICURSOR,
- NPOSITION => 24);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOST_FACT', NVALUE => NCOST_FACT);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_NCOST_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 23);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_NCOST_FACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 24);
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 25, NVALUE => NSUMM_REALIZ);
if (NSUMM_REALIZ = 0) then
NSUMM_INCOME := 0;
@@ -2996,31 +3029,31 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NSUMM_INCOME := NSUMM_REALIZ - NCOST_FACT;
NINCOME_PRC := NSUMM_INCOME / NCOST_FACT * 100;
end if;
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUMM_REALIZ', NVALUE => NSUMM_REALIZ);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_NSUMM_REALIZ',
- ICURSOR => ICURSOR,
- NPOSITION => 26);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_NSUMM_REALIZ',
- ICURSOR => ICURSOR,
- NPOSITION => 27);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUMM_INCOME', NVALUE => NSUMM_INCOME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NINCOME_PRC', NVALUE => NINCOME_PRC);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_COST',
- ICURSOR => ICURSOR,
- NPOSITION => 28);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCTRL_ACT',
- ICURSOR => ICURSOR,
- NPOSITION => 29);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NCOST_READY',
- ICURSOR => ICURSOR,
- NPOSITION => 30);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUMM_REALIZ', NVALUE => NSUMM_REALIZ);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_NSUMM_REALIZ',
+ ICURSOR => ICURSOR,
+ NPOSITION => 26);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_NSUMM_REALIZ',
+ ICURSOR => ICURSOR,
+ NPOSITION => 27);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUMM_INCOME', NVALUE => NSUMM_INCOME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NINCOME_PRC', NVALUE => NINCOME_PRC);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_COST',
+ ICURSOR => ICURSOR,
+ NPOSITION => 28);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCTRL_ACT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 29);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NCOST_READY',
+ ICURSOR => ICURSOR,
+ NPOSITION => 30);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
/* Освобождаем курсор */
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
@@ -3030,7 +3063,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end STAGES_LIST;
/* Подбор записей журнала затрат по статье калькуляции этапа проекта */
@@ -3303,84 +3336,86 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* Список статей калькуляции этапа проекта */
procedure STAGE_ARTS_LIST
(
- NSTAGE in number, -- Рег. номер этапа проекта
- CFILTERS in clob, -- Фильтры
- NINCLUDE_DEF in number, -- Признак включения описания колонок таблицы в ответ
- COUT out clob -- Сериализованная таблица данных
+ NSTAGE in number, -- Рег. номер этапа проекта
+ CFILTERS in clob, -- Фильтры
+ NINCLUDE_DEF in number, -- Признак включения описания колонок таблицы в ответ
+ COUT out clob -- Сериализованная таблица данных
)
is
- RF PKG_P8PANELS_VISUAL.TFILTERS; -- Фильтры
- RF_CTRL_COST PKG_P8PANELS_VISUAL.TFILTER; -- Фильтр по колонке "Контроль (затраты)"
- NCTRL_COST_FROM PKG_STD.TNUMBER; -- Нижняя граница диапазона фильтра по колонке "Контроль (затраты)"
- NCTRL_COST_TO PKG_STD.TNUMBER; -- Верхняя граница диапазона фильтра по колонке "Контроль (затраты)"
- RF_CTRL_CONTR PKG_P8PANELS_VISUAL.TFILTER; -- Фильтр по колонке "Контроль (контрактация)"
- NCTRL_CONTR_FROM PKG_STD.TNUMBER; -- Нижняя граница диапазона фильтра по колонке "Контроль (контрактация)"
- NCTRL_CONTR_TO PKG_STD.TNUMBER; -- Верхняя граница диапазона фильтра по колонке "Контроль (контрактация)"
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
- RCOL_VALS PKG_P8PANELS_VISUAL.TCOL_VALS; -- Предопределённые значения столбцов
- RSTAGE_ARTS TSTAGE_ARTS; -- Список статей этапа проекта
+ RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- Фильтры
+ RF_CTRL_COST PKG_P8PANELS_VISUAL.TDG_FILTER; -- Фильтр по колонке "Контроль (затраты)"
+ NCTRL_COST_FROM PKG_STD.TNUMBER; -- Нижняя граница диапазона фильтра по колонке "Контроль (затраты)"
+ NCTRL_COST_TO PKG_STD.TNUMBER; -- Верхняя граница диапазона фильтра по колонке "Контроль (затраты)"
+ RF_CTRL_CONTR PKG_P8PANELS_VISUAL.TDG_FILTER; -- Фильтр по колонке "Контроль (контрактация)"
+ NCTRL_CONTR_FROM PKG_STD.TNUMBER; -- Нижняя граница диапазона фильтра по колонке "Контроль (контрактация)"
+ NCTRL_CONTR_TO PKG_STD.TNUMBER; -- Верхняя граница диапазона фильтра по колонке "Контроль (контрактация)"
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
+ RCOL_VALS PKG_P8PANELS_VISUAL.TDG_COL_VALS; -- Предопределённые значения столбцов
+ RSTAGE_ARTS TSTAGE_ARTS; -- Список статей этапа проекта
begin
/* Читаем фильтры */
- RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
/* Найдем фильтр по контролю затрат */
- RF_CTRL_COST := PKG_P8PANELS_VISUAL.TFILTERS_FIND(RFILTERS => RF, SNAME => 'NCTRL_COST');
- PKG_P8PANELS_VISUAL.TFILTER_TO_NUMBER(RFILTER => RF_CTRL_COST, NFROM => NCTRL_COST_FROM, NTO => NCTRL_COST_TO);
+ RF_CTRL_COST := PKG_P8PANELS_VISUAL.TDG_FILTERS_FIND(RFILTERS => RF, SNAME => 'NCTRL_COST');
+ PKG_P8PANELS_VISUAL.TDG_FILTER_TO_NUMBER(RFILTER => RF_CTRL_COST, NFROM => NCTRL_COST_FROM, NTO => NCTRL_COST_TO);
/* Найдем фильтр по контролю контрактации */
- RF_CTRL_CONTR := PKG_P8PANELS_VISUAL.TFILTERS_FIND(RFILTERS => RF, SNAME => 'NCTRL_CONTR');
- PKG_P8PANELS_VISUAL.TFILTER_TO_NUMBER(RFILTER => RF_CTRL_CONTR, NFROM => NCTRL_CONTR_FROM, NTO => NCTRL_CONTR_TO);
+ RF_CTRL_CONTR := PKG_P8PANELS_VISUAL.TDG_FILTERS_FIND(RFILTERS => RF, SNAME => 'NCTRL_CONTR');
+ PKG_P8PANELS_VISUAL.TDG_FILTER_TO_NUMBER(RFILTER => RF_CTRL_CONTR,
+ NFROM => NCTRL_CONTR_FROM,
+ NTO => NCTRL_CONTR_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNUMB',
- SCAPTION => 'Номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SNAME',
- SCAPTION => 'Наименование статьи',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPLAN',
- SCAPTION => 'План',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_FACT',
- SCAPTION => 'Фактические затраты',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOST_DIFF',
- SCAPTION => 'Отклонение по затратам',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_COST',
- SCAPTION => 'Контроль (затраты)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCONTR',
- SCAPTION => 'Законтрактовано',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCONTR_LEFT',
- SCAPTION => 'Осталось законтрактовать',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_CONTR',
- SCAPTION => 'Контроль (контрактация)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNUMB',
+ SCAPTION => 'Номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SNAME',
+ SCAPTION => 'Наименование статьи',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPLAN',
+ SCAPTION => 'План',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_FACT',
+ SCAPTION => 'Фактические затраты',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOST_DIFF',
+ SCAPTION => 'Отклонение по затратам',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_COST',
+ SCAPTION => 'Контроль (затраты)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCONTR',
+ SCAPTION => 'Законтрактовано',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCONTR_LEFT',
+ SCAPTION => 'Осталось законтрактовать',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_CONTR',
+ SCAPTION => 'Контроль (контрактация)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS);
/* Сформируем сведения по статям этапа проекта */
STAGE_ARTS_GET(NSTAGE => NSTAGE, NINC_COST => 1, NINC_CONTR => 1, RSTAGE_ARTS => RSTAGE_ARTS);
/* Обходим собранные статьи */
@@ -3393,30 +3428,36 @@ create or replace package body PKG_P8PANELS_PROJECTS as
((NCTRL_CONTR_FROM is null) or
((NCTRL_CONTR_FROM is not null) and (NCTRL_CONTR_FROM = RSTAGE_ARTS(I).NCTRL_CONTR)))) then
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'NRN',
- NVALUE => RSTAGE_ARTS(I).NRN,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SNUMB', SVALUE => RSTAGE_ARTS(I).SCODE);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SNAME', SVALUE => RSTAGE_ARTS(I).SNAME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPLAN', NVALUE => RSTAGE_ARTS(I).NPLAN);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOST_FACT', NVALUE => RSTAGE_ARTS(I).NCOST_FACT);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOST_DIFF', NVALUE => RSTAGE_ARTS(I).NCOST_DIFF);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_COST', NVALUE => RSTAGE_ARTS(I).NCTRL_COST);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCONTR', NVALUE => RSTAGE_ARTS(I).NCONTR);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'NCONTR_LEFT',
- NVALUE => RSTAGE_ARTS(I).NCONTR_LEFT);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'NCTRL_CONTR',
- NVALUE => RSTAGE_ARTS(I).NCTRL_CONTR);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ NVALUE => RSTAGE_ARTS(I).NRN,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SNUMB', SVALUE => RSTAGE_ARTS(I).SCODE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SNAME', SVALUE => RSTAGE_ARTS(I).SNAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPLAN', NVALUE => RSTAGE_ARTS(I).NPLAN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NCOST_FACT',
+ NVALUE => RSTAGE_ARTS(I).NCOST_FACT);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NCOST_DIFF',
+ NVALUE => RSTAGE_ARTS(I).NCOST_DIFF);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NCTRL_COST',
+ NVALUE => RSTAGE_ARTS(I).NCTRL_COST);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCONTR', NVALUE => RSTAGE_ARTS(I).NCONTR);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NCONTR_LEFT',
+ NVALUE => RSTAGE_ARTS(I).NCONTR_LEFT);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NCTRL_CONTR',
+ NVALUE => RSTAGE_ARTS(I).NCTRL_CONTR);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end if;
end loop;
end if;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end STAGE_ARTS_LIST;
/* Считывание записи соисполнителя этапа проекта */
@@ -3858,11 +3899,11 @@ create or replace package body PKG_P8PANELS_PROJECTS as
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
NIDENT PKG_STD.TREF := GEN_IDENT(); -- Идентификатор отбора
- RF PKG_P8PANELS_VISUAL.TFILTERS; -- Фильтры
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
- RCOL_VALS PKG_P8PANELS_VISUAL.TCOL_VALS; -- Предопределённые значения столбцов
+ RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- Фильтры
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
+ RCOL_VALS PKG_P8PANELS_VISUAL.TDG_COL_VALS; -- Предопределённые значения столбцов
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -3878,195 +3919,195 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NCTRL_COEXEC PKG_STD.TNUMBER; -- Сведения о соисполнении - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
begin
/* Читаем фильтры */
- RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
/* Читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_PREF',
- SCAPTION => 'Префикс',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDDOC_PREF',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_SDOC_PREF',
- SCAPTION => 'Префикс (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_SDOC_PREF',
- SCAPTION => 'Префикс (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SDOC_NUMB',
- SCAPTION => 'Номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDDOC_NUMB',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SLNK_UNIT_SDOC_NUMB',
- SCAPTION => 'Номер (код раздела ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLNK_DOCUMENT_SDOC_NUMB',
- SCAPTION => 'Номер (документ ссылки)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DDOC_DATE',
- SCAPTION => 'Дата',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDDOC_DATEFrom',
- SCOND_TO => 'EDDOC_DATETo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SEXT_NUMBER',
- SCAPTION => 'Внешний номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGENT',
- SCAPTION => 'Соисполнитель',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDAGENT',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGENT_INN',
- SCAPTION => 'ИНН соисполнителя',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGENT_KPP',
- SCAPTION => 'КПП соисполнителя',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SGOVCNTRID',
- SCAPTION => 'ИГК',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCSTAGE',
- SCAPTION => 'Этап',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDSTAGE',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCSTAGE_DESCRIPTION',
- SCAPTION => 'Описание этапа',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DCSTAGE_BEGIN_DATE',
- SCAPTION => 'Дата начала',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDCSTAGE_BEGIN_DATEFrom',
- SCOND_TO => 'EDCSTAGE_BEGIN_DATETo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DCSTAGE_END_DATE',
- SCAPTION => 'Дата окончания',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- SCOND_FROM => 'EDCSTAGE_END_DATEFrom',
- SCOND_TO => 'EDCSTAGE_END_DATETo',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NSUMM',
- SCAPTION => 'Сумма',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCURR',
- SCAPTION => 'Валюта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCOST_ART',
- SCAPTION => 'Статья затрат',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'EDSCOST_ART',
- BORDER => true,
- BFILTER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPAY_IN',
- SCAPTION => 'Акцептовано счетов на оплату',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFIN_OUT',
- SCAPTION => 'Оплачено счетов',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPAY_IN_REST',
- SCAPTION => 'Осталось оплатить счетов',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_FIN',
- SCAPTION => 'Фин-е (исх.)',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_FIN',
- BORDER => false,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Финансирование (исходящее) - контроль оплаты счетов, выставленных соисполнителем в рамках договора.
' ||
- 'Требует внимания - не все выставленные соисполнителем акцептованные счета оплачены.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для договора с соисполнителем аккуратно ведётся учёт первичных документов оперативного учёта (входящих счетов на оплату).');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NFIN_REST',
- SCAPTION => 'Общий остаток к оплате по договору',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOEXEC_IN',
- SCAPTION => 'Получено актов/накладных',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOEXEC_REST',
- SCAPTION => 'Остаток к актированию/поставке',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCTRL_COEXEC',
- SCAPTION => 'Соисполнение',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'EDCTRL_COEXEC',
- BORDER => false,
- BFILTER => true,
- RCOL_VALS => RCOL_VALS,
- SHINT => 'Соисполнение - контроль исполнения обязательств по договору с соисполнителем.
' ||
- 'Требует внимания - до окончания этапа проекта, в рамках которого действует соисполнение, осталось менее ' ||
- TO_CHAR(NDAYS_LEFT_LIMIT) ||
- ' дней, при этом зафиксирован положительный остаток к поставке/актированию по договору.
' ||
- 'В норме - нет описанных выше отклонений.
' ||
- 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для связанного этапа проекта задана плановая дата окончания, ' ||
- 'а по договору с соисполнителем аккуратно ведётся учёт первичных документов оперативного учёта (приходных накладных).');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_PREF',
+ SCAPTION => 'Префикс',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDDOC_PREF',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_SDOC_PREF',
+ SCAPTION => 'Префикс (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_SDOC_PREF',
+ SCAPTION => 'Префикс (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SDOC_NUMB',
+ SCAPTION => 'Номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDDOC_NUMB',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SLNK_UNIT_SDOC_NUMB',
+ SCAPTION => 'Номер (код раздела ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLNK_DOCUMENT_SDOC_NUMB',
+ SCAPTION => 'Номер (документ ссылки)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DDOC_DATE',
+ SCAPTION => 'Дата',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDDOC_DATEFrom',
+ SCOND_TO => 'EDDOC_DATETo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SEXT_NUMBER',
+ SCAPTION => 'Внешний номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGENT',
+ SCAPTION => 'Соисполнитель',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDAGENT',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGENT_INN',
+ SCAPTION => 'ИНН соисполнителя',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGENT_KPP',
+ SCAPTION => 'КПП соисполнителя',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SGOVCNTRID',
+ SCAPTION => 'ИГК',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCSTAGE',
+ SCAPTION => 'Этап',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDSTAGE',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCSTAGE_DESCRIPTION',
+ SCAPTION => 'Описание этапа',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DCSTAGE_BEGIN_DATE',
+ SCAPTION => 'Дата начала',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDCSTAGE_BEGIN_DATEFrom',
+ SCOND_TO => 'EDCSTAGE_BEGIN_DATETo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DCSTAGE_END_DATE',
+ SCAPTION => 'Дата окончания',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ SCOND_FROM => 'EDCSTAGE_END_DATEFrom',
+ SCOND_TO => 'EDCSTAGE_END_DATETo',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NSUMM',
+ SCAPTION => 'Сумма',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCURR',
+ SCAPTION => 'Валюта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCOST_ART',
+ SCAPTION => 'Статья затрат',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'EDSCOST_ART',
+ BORDER => true,
+ BFILTER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPAY_IN',
+ SCAPTION => 'Акцептовано счетов на оплату',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFIN_OUT',
+ SCAPTION => 'Оплачено счетов',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPAY_IN_REST',
+ SCAPTION => 'Осталось оплатить счетов',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 0, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RCOL_VALS, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_FIN',
+ SCAPTION => 'Фин-е (исх.)',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_FIN',
+ BORDER => false,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Финансирование (исходящее) - контроль оплаты счетов, выставленных соисполнителем в рамках договора.
' ||
+ 'Требует внимания - не все выставленные соисполнителем акцептованные счета оплачены.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для договора с соисполнителем аккуратно ведётся учёт первичных документов оперативного учёта (входящих счетов на оплату).');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NFIN_REST',
+ SCAPTION => 'Общий остаток к оплате по договору',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOEXEC_IN',
+ SCAPTION => 'Получено актов/накладных',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOEXEC_REST',
+ SCAPTION => 'Остаток к актированию/поставке',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCTRL_COEXEC',
+ SCAPTION => 'Соисполнение',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'EDCTRL_COEXEC',
+ BORDER => false,
+ BFILTER => true,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => 'Соисполнение - контроль исполнения обязательств по договору с соисполнителем.
' ||
+ 'Требует внимания - до окончания этапа проекта, в рамках которого действует соисполнение, осталось менее ' ||
+ TO_CHAR(NDAYS_LEFT_LIMIT) ||
+ ' дней, при этом зафиксирован положительный остаток к поставке/актированию по договору.
' ||
+ 'В норме - нет описанных выше отклонений.
' ||
+ 'Пусто - в Системе не хватает данных для рассчёта. Убедитесь, что для связанного этапа проекта задана плановая дата окончания, ' ||
+ 'а по договору с соисполнителем аккуратно ведётся учёт первичных документов оперативного учёта (приходных накладных).');
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -4113,15 +4154,18 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and PSPF.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT) %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Учтём фильтры */
- PKG_P8PANELS_VISUAL.TFILTERS_SET_QUERY(NIDENT => NIDENT,
- NCOMPANY => NCOMPANY,
- NPARENT => NSTAGE,
- SUNIT => 'ProjectsStagesPerformers',
- SPROCEDURE => PKG_SQL_BUILD.PKG_NAME(SNAME => 'PKG_P8PANELS_PROJECTS.STAGE_CONTRACTS_COND'),
- RDATA_GRID => RDG,
- RFILTERS => RF);
+ PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY(NIDENT => NIDENT,
+ NCOMPANY => NCOMPANY,
+ NPARENT => NSTAGE,
+ SUNIT => 'ProjectsStagesPerformers',
+ SPROCEDURE => PKG_SQL_BUILD.PKG_NAME(SNAME => 'PKG_P8PANELS_PROJECTS.STAGE_CONTRACTS_COND'),
+ RDATA_GRID => RDG,
+ RFILTERS => RF);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -4160,71 +4204,83 @@ create or replace package body PKG_P8PANELS_PROJECTS as
loop
/* Добавляем колонки с данными */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 1, NVALUE => NPROJECTSTAGEPF);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NPROJECTSTAGEPF, BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_PREF',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_SDOC_PREF',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_SDOC_PREF',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SDOC_NUMB',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SLNK_UNIT_SDOC_NUMB',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLNK_DOCUMENT_SDOC_NUMB',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DDOC_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SEXT_NUMBER',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SAGENT', ICURSOR => ICURSOR, NPOSITION => 10);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SAGENT_INN',
- ICURSOR => ICURSOR,
- NPOSITION => 11);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SAGENT_KPP',
- ICURSOR => ICURSOR,
- NPOSITION => 12);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SGOVCNTRID',
- ICURSOR => ICURSOR,
- NPOSITION => 13);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCSTAGE', ICURSOR => ICURSOR, NPOSITION => 14);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SCSTAGE_DESCRIPTION',
- ICURSOR => ICURSOR,
- NPOSITION => 15);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DCSTAGE_BEGIN_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 16);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLD(RROW => RDG_ROW,
- SNAME => 'DCSTAGE_END_DATE',
- ICURSOR => ICURSOR,
- NPOSITION => 17);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NSUMM', ICURSOR => ICURSOR, NPOSITION => 18);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCURR', ICURSOR => ICURSOR, NPOSITION => 19);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SCOST_ART',
- ICURSOR => ICURSOR,
- NPOSITION => 20);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN', NVALUE => NPROJECTSTAGEPF, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_PREF',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_SDOC_PREF',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_SDOC_PREF',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SDOC_NUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SLNK_UNIT_SDOC_NUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLNK_DOCUMENT_SDOC_NUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DDOC_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SEXT_NUMBER',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGENT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 10);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGENT_INN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 11);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGENT_KPP',
+ ICURSOR => ICURSOR,
+ NPOSITION => 12);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SGOVCNTRID',
+ ICURSOR => ICURSOR,
+ NPOSITION => 13);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCSTAGE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 14);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCSTAGE_DESCRIPTION',
+ ICURSOR => ICURSOR,
+ NPOSITION => 15);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DCSTAGE_BEGIN_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 16);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLD(RROW => RDG_ROW,
+ SNAME => 'DCSTAGE_END_DATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 17);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NSUMM',
+ ICURSOR => ICURSOR,
+ NPOSITION => 18);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCURR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 19);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SCOST_ART',
+ ICURSOR => ICURSOR,
+ NPOSITION => 20);
STAGE_CONTRACTS_GET(NPROJECTSTAGEPF => NPROJECTSTAGEPF,
NINC_FIN => 1,
NINC_COEXEC => 1,
@@ -4236,16 +4292,16 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NCOEXEC_IN => NCOEXEC_IN,
NCOEXEC_REST => NCOEXEC_REST,
NCTRL_COEXEC => NCTRL_COEXEC);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN', NVALUE => NPAY_IN);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_OUT', NVALUE => NFIN_OUT);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN_REST', NVALUE => NPAY_IN_REST);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_FIN', NVALUE => NCTRL_FIN);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_REST', NVALUE => NFIN_REST);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOEXEC_IN', NVALUE => NCOEXEC_IN);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOEXEC_REST', NVALUE => NCOEXEC_REST);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_COEXEC', NVALUE => NCTRL_COEXEC);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN', NVALUE => NPAY_IN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_OUT', NVALUE => NFIN_OUT);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN_REST', NVALUE => NPAY_IN_REST);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_FIN', NVALUE => NCTRL_FIN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_REST', NVALUE => NFIN_REST);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOEXEC_IN', NVALUE => NCOEXEC_IN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOEXEC_REST', NVALUE => NCOEXEC_REST);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_COEXEC', NVALUE => NCTRL_COEXEC);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
/* Освобождаем курсор */
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
@@ -4255,7 +4311,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end STAGE_CONTRACTS_LIST;
/* Считывание записи работы проекта */
@@ -5010,9 +5066,9 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
RPRD P8PNL_JB_PERIODS%rowtype; -- Запись детализируемого периода
RJB_PRMS P8PNL_JB_PRMS%rowtype; -- Параметры балансировки
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
NROW_FROM PKG_STD.TREF; -- Номер строки с
@@ -5040,30 +5096,30 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NROW_TO => NROW_TO);
else
/* Будем строить курсор по параметрам - читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер исполнения должности',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPERSON',
- SCAPTION => 'Сотрудник',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB_PLAN_FOT',
- SCAPTION => 'Трудоёмкость (' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер исполнения должности',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPERSON',
+ SCAPTION => 'Сотрудник',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB_PLAN_FOT',
+ SCAPTION => 'Трудоёмкость (' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
end if;
/* Обходим данные */
begin
@@ -5098,7 +5154,10 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -5134,18 +5193,18 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* При формировании списка для клиента */
if (NMODE = 0) then
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPERSON',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLAB_PLAN_FOT', NVALUE => NPERS_LAB);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPERSON',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLAB_PLAN_FOT', NVALUE => NPERS_LAB);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end if;
end loop;
/* Освобождаем курсор */
@@ -5158,7 +5217,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* При формировании списка для клиента */
if (NMODE = 0) then
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end if;
end JB_PERIODS_PLAN_FOT_BUILD;
@@ -5217,9 +5276,9 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
RPRD P8PNL_JB_PERIODS%rowtype; -- Запись детализируемого периода
RJB_PRMS P8PNL_JB_PRMS%rowtype; -- Параметры балансировки
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
NROW_FROM PKG_STD.TREF; -- Номер строки с
@@ -5245,69 +5304,69 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NROW_TO => NROW_TO);
else
/* Будем строить курсор по параметрам - читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер трудового ресурса отчета',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPRJDEPLAN',
- SCAPTION => 'Документ',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPRJ',
- SCAPTION => 'Проект',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTG_JOB',
- SCAPTION => 'Этап-работа',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SJOB_NAME',
- SCAPTION => 'Наим. работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NJOB_STATE',
- SCAPTION => 'Сост. работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DJOB_BEG',
- SCAPTION => 'Начало работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DJOB_END',
- SCAPTION => 'Окончание работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NJOB_DUR',
- SCAPTION => 'Длительн. работы (' || RJB_PRMS.DURATION_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPERSON',
- SCAPTION => 'Сотрудник',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB',
- SCAPTION => 'Труд. (' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер трудового ресурса отчета',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPRJDEPLAN',
+ SCAPTION => 'Документ',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPRJ',
+ SCAPTION => 'Проект',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTG_JOB',
+ SCAPTION => 'Этап-работа',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SJOB_NAME',
+ SCAPTION => 'Наим. работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NJOB_STATE',
+ SCAPTION => 'Сост. работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DJOB_BEG',
+ SCAPTION => 'Начало работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DJOB_END',
+ SCAPTION => 'Окончание работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NJOB_DUR',
+ SCAPTION => 'Длительн. работы (' || RJB_PRMS.DURATION_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPERSON',
+ SCAPTION => 'Сотрудник',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB',
+ SCAPTION => 'Труд. (' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
end if;
/* Обходим данные */
begin
@@ -5355,7 +5414,10 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -5408,38 +5470,41 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* При формировании списка для клиента */
if (NMODE = 0) then
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPRJDEPLAN',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SPRJ', ICURSOR => ICURSOR, NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SSTG_JOB',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SJOB_NAME',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NJOB_STATE',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_BEG', DVALUE => DJOB_BEG);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_END', DVALUE => DJOB_END);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NJOB_DUR', NVALUE => NJOB_DUR);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SPERSON',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLAB', NVALUE => NJOB_LAB);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPRJDEPLAN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPRJ',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTG_JOB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SJOB_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NJOB_STATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_BEG', DVALUE => DJOB_BEG);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_END', DVALUE => DJOB_END);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NJOB_DUR', NVALUE => NJOB_DUR);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPERSON',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NLAB', NVALUE => NJOB_LAB);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end if;
end loop;
/* Освобождаем курсор */
@@ -5452,7 +5517,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* При формировании списка для клиента */
if (NMODE = 0) then
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end if;
end JB_PERIODS_FACT_RPT_BUILD;
@@ -5511,9 +5576,9 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
RPRD P8PNL_JB_PERIODS%rowtype; -- Запись детализируемого периода
RJB_PRMS P8PNL_JB_PRMS%rowtype; -- Параметры балансировки
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
NROW_FROM PKG_STD.TREF; -- Номер строки с
@@ -5543,76 +5608,76 @@ create or replace package body PKG_P8PANELS_PROJECTS as
NROW_TO => NROW_TO);
else
/* Будем строить курсор по параметрам - читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер работы в буфере балансировки',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NPROJECT',
- SCAPTION => 'Рег. номер проекта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NJB_PRJCTS',
- SCAPTION => 'Рег. номер буфера балансировки проекта',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPRJ',
- SCAPTION => 'Проект',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SSTG_JOB',
- SCAPTION => 'Этап-работа',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SJOB_NAME',
- SCAPTION => 'Наим. работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NJOB_STATE',
- SCAPTION => 'Сост. работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DJOB_BEG',
- SCAPTION => 'Начало работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'DJOB_END',
- SCAPTION => 'Окончание работы',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
- BORDER => true);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NJOB_DUR',
- SCAPTION => 'Длительн. работы (' || RJB_PRMS.DURATION_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NMP_LAB',
- SCAPTION => 'Труд. (' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NMP_LAB_ONE',
- SCAPTION => 'Труд. (в ед. длит., ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NMP_LAB_PLAN',
- SCAPTION => 'Труд. (план, график, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер работы в буфере балансировки',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NPROJECT',
+ SCAPTION => 'Рег. номер проекта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NJB_PRJCTS',
+ SCAPTION => 'Рег. номер буфера балансировки проекта',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPRJ',
+ SCAPTION => 'Проект',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SSTG_JOB',
+ SCAPTION => 'Этап-работа',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SJOB_NAME',
+ SCAPTION => 'Наим. работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NJOB_STATE',
+ SCAPTION => 'Сост. работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DJOB_BEG',
+ SCAPTION => 'Начало работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'DJOB_END',
+ SCAPTION => 'Окончание работы',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_DATE,
+ BORDER => true);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NJOB_DUR',
+ SCAPTION => 'Длительн. работы (' || RJB_PRMS.DURATION_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NMP_LAB',
+ SCAPTION => 'Труд. (' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NMP_LAB_ONE',
+ SCAPTION => 'Труд. (в ед. длит., ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NMP_LAB_PLAN',
+ SCAPTION => 'Труд. (план, график, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB);
end if;
/* Обходим данные */
begin
@@ -5655,7 +5720,10 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -5722,40 +5790,43 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* При формировании списка для клиента */
if (NMODE = 0) then
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NPROJECT',
- ICURSOR => ICURSOR,
- NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NJB_PRJCTS',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SPRJ', ICURSOR => ICURSOR, NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SSTG_JOB',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SJOB_NAME',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NJOB_STATE',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_BEG', DVALUE => DJOB_BEG);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_END', DVALUE => DJOB_END);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NJOB_DUR', NVALUE => NJOB_DUR);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NMP_LAB', NVALUE => NMP_LAB);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NMP_LAB_ONE', NVALUE => NMP_LAB_ONE);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NMP_LAB_PLAN', NVALUE => NMP_LAB_PLAN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NPROJECT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NJB_PRJCTS',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPRJ',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SSTG_JOB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SJOB_NAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NJOB_STATE',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_BEG', DVALUE => DJOB_BEG);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'DJOB_END', DVALUE => DJOB_END);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NJOB_DUR', NVALUE => NJOB_DUR);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NMP_LAB', NVALUE => NMP_LAB);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NMP_LAB_ONE', NVALUE => NMP_LAB_ONE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NMP_LAB_PLAN', NVALUE => NMP_LAB_PLAN);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end if;
end loop;
/* Освобождаем курсор */
@@ -5768,7 +5839,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* При формировании списка для клиента */
if (NMODE = 0) then
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end if;
end JB_PERIODS_PLAN_JOBS_BUILD;
@@ -6011,9 +6082,9 @@ create or replace package body PKG_P8PANELS_PROJECTS as
)
is
RJB_PRMS P8PNL_JB_PRMS%rowtype; -- Параметры балансировки
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
CSQL clob; -- Буфер для запроса
ICURSOR integer; -- Курсор для исполнения запроса
NROW_FROM PKG_STD.TREF; -- Номер строки с
@@ -6022,70 +6093,70 @@ create or replace package body PKG_P8PANELS_PROJECTS as
/* Считаем параметры балансировки */
RJB_PRMS := JB_PRMS_GET(NIDENT => NIDENT);
/* Читаем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE();
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE();
/* Добавляем в таблицу описание колонок */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NRN',
- SCAPTION => 'Рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SPERIOD',
- SCAPTION => 'Период',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SINS_DEPARTMENT',
- SCAPTION => 'Подразделение',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SFCMANPOWER',
- SCAPTION => 'Ресурс',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB_PLAN_FOT',
- SCAPTION => 'Труд. (план, ФОТ, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB_FACT_RPT',
- SCAPTION => 'Труд. (факт, отчёт, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB_DIFF_RPT_FOT',
- SCAPTION => 'Отклон. (факт-план, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => true,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB_PLAN_JOBS',
- SCAPTION => 'Труд. (план, график, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true,
- BFILTER => false);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NLAB_DIFF_JOBS_FOT',
- SCAPTION => 'Отклон. (график-план, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BORDER => true,
- BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NRN',
+ SCAPTION => 'Рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SPERIOD',
+ SCAPTION => 'Период',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SINS_DEPARTMENT',
+ SCAPTION => 'Подразделение',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SFCMANPOWER',
+ SCAPTION => 'Ресурс',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB_PLAN_FOT',
+ SCAPTION => 'Труд. (план, ФОТ, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB_FACT_RPT',
+ SCAPTION => 'Труд. (факт, отчёт, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB_DIFF_RPT_FOT',
+ SCAPTION => 'Отклон. (факт-план, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB_PLAN_JOBS',
+ SCAPTION => 'Труд. (план, график, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true,
+ BFILTER => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NLAB_DIFF_JOBS_FOT',
+ SCAPTION => 'Отклон. (график-план, ' || RJB_PRMS.LAB_MEAS_CODE || ')',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BORDER => true,
+ BFILTER => false);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -6113,7 +6184,10 @@ create or replace package body PKG_P8PANELS_PROJECTS as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -6140,42 +6214,45 @@ create or replace package body PKG_P8PANELS_PROJECTS as
while (PKG_SQL_DML.FETCH_ROWS(ICURSOR => ICURSOR) > 0)
loop
/* Добавляем колонки с данными */
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NRN',
- ICURSOR => ICURSOR,
- NPOSITION => 1,
- BCLEAR => true);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SPERIOD', ICURSOR => ICURSOR, NPOSITION => 2);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SINS_DEPARTMENT',
- ICURSOR => ICURSOR,
- NPOSITION => 3);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
- SNAME => 'SFCMANPOWER',
- ICURSOR => ICURSOR,
- NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLAB_PLAN_FOT',
- ICURSOR => ICURSOR,
- NPOSITION => 5);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLAB_FACT_RPT',
- ICURSOR => ICURSOR,
- NPOSITION => 6);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLAB_DIFF_RPT_FOT',
- ICURSOR => ICURSOR,
- NPOSITION => 7);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLAB_PLAN_JOBS',
- ICURSOR => ICURSOR,
- NPOSITION => 8);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
- SNAME => 'NLAB_DIFF_JOBS_FOT',
- ICURSOR => ICURSOR,
- NPOSITION => 9);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NRN',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1,
+ BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SPERIOD',
+ ICURSOR => ICURSOR,
+ NPOSITION => 2);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SINS_DEPARTMENT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 3);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SFCMANPOWER',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLAB_PLAN_FOT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLAB_FACT_RPT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 6);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLAB_DIFF_RPT_FOT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 7);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLAB_PLAN_JOBS',
+ ICURSOR => ICURSOR,
+ NPOSITION => 8);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLN(RROW => RDG_ROW,
+ SNAME => 'NLAB_DIFF_JOBS_FOT',
+ ICURSOR => ICURSOR,
+ NPOSITION => 9);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
/* Освобождаем курсор */
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
@@ -6185,7 +6262,7 @@ create or replace package body PKG_P8PANELS_PROJECTS as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end JB_PERIODS_LIST;
/* Очистка данных балансировки */
diff --git a/db/PKG_P8PANELS_RRPCONFED.pck b/db/PKG_P8PANELS_RRPCONFED.pck
index e531efb..494de72 100644
--- a/db/PKG_P8PANELS_RRPCONFED.pck
+++ b/db/PKG_P8PANELS_RRPCONFED.pck
@@ -784,8 +784,8 @@ create or replace package body PKG_P8PANELS_RRPCONFED as
is
NVERSION PKG_STD.TREF; -- Рег. номер версии словаря контрагентов
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
CDG clob; -- XML данных раздела
CXML PKG_CONTVALLOC2NS.TCONTAINER; -- Контейнер для данных XML
RRRPCONFSCTNMRK RRPCONFSCTNMRK%rowtype; -- Рег. номер показателя
@@ -798,8 +798,8 @@ create or replace package body PKG_P8PANELS_RRPCONFED as
/* Инициализация колонок граф показателей */
procedure MARKS_COLUMNS_INIT
(
- RDG in out nocopy PKG_P8PANELS_VISUAL.TDATA_GRID, -- Описание таблицы
- NRRPCONFSCTN in number -- Рег. номер раздела
+ RDG in out nocopy PKG_P8PANELS_VISUAL.TDG, -- Описание таблицы
+ NRRPCONFSCTN in number -- Рег. номер раздела
)
is
begin
@@ -816,35 +816,35 @@ create or replace package body PKG_P8PANELS_RRPCONFED as
order by C.CODE)
loop
/* Наименование графы */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SCOL_' || REC.CODE,
- SCAPTION => REC.NAME,
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- NWIDTH => 200);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SCOL_' || REC.CODE,
+ SCAPTION => REC.NAME,
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ NWIDTH => 200);
/* Рег. номер графы */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NCOL_RN_' || REC.CODE,
- SCAPTION => REC.NAME || ' рег. номер',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NCOL_RN_' || REC.CODE,
+ SCAPTION => REC.NAME || ' рег. номер',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
/* Рег. номер показателя */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NMARK_RN_' || REC.CODE,
- SCAPTION => REC.NAME || ' рег. номер показателя',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NMARK_RN_' || REC.CODE,
+ SCAPTION => REC.NAME || ' рег. номер показателя',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
/* Мнемокод показателя */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SMARK_CODE_' || REC.CODE,
- SCAPTION => REC.NAME || ' мнемокод показателя',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SMARK_CODE_' || REC.CODE,
+ SCAPTION => REC.NAME || ' мнемокод показателя',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
/* Для составов показтелей */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'MARK_CNS_' || REC.CODE,
- SCAPTION => REC.NAME || ' состав показателя',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'MARK_CNS_' || REC.CODE,
+ SCAPTION => REC.NAME || ' состав показателя',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
end loop;
end MARKS_COLUMNS_INIT;
@@ -897,25 +897,25 @@ create or replace package body PKG_P8PANELS_RRPCONFED as
order by T.CODE)
loop
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 1);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 1);
/* Формируем структуру заголовка */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SROW_NAME',
- SCAPTION => '',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- NWIDTH => 150);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SROW_NAME',
+ SCAPTION => '',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ NWIDTH => 150);
/* Формируем структуру заголовка */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SROW_CODE',
- SCAPTION => 'Мнемокод строки',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SROW_CODE',
+ SCAPTION => 'Мнемокод строки',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => false);
/* Формируем структуру заголовка */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NROW_RN',
- SCAPTION => 'Рег. номер строки',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- BVISIBLE => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NROW_RN',
+ SCAPTION => 'Рег. номер строки',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ BVISIBLE => false);
/* Если раздел содержит показатели */
if (S.NMARKS_EXISTS = 1) then
/* Инициализируем колонки граф */
@@ -938,11 +938,11 @@ create or replace package body PKG_P8PANELS_RRPCONFED as
LPAD(R.CODE, 20, '0'))
loop
/* Заполняем наименование строки */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_NAME', SVALUE => R.NAME, BCLEAR => true);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_NAME', SVALUE => R.NAME, BCLEAR => true);
/* Заполняем мнемокод строки */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_CODE', SVALUE => R.CODE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_CODE', SVALUE => R.CODE);
/* Заполняем рег. номер строки */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NROW_RN', NVALUE => R.RN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NROW_RN', NVALUE => R.RN);
/* Обходим графы раздела */
for C in (select C.RN,
C.CODE,
@@ -963,29 +963,29 @@ create or replace package body PKG_P8PANELS_RRPCONFED as
/* Считываем показатель по строке/графе */
RRRPCONFSCTNMRK := RRPCONFSCTNMRK_GET_ROWCOL(NRRPCONFSCTN => S.NRN, NRRPROW => R.RN, NRRPCOLUMN => C.RN);
/* Заполняем рег. номер графы */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SCOL_' || C.CODE, SVALUE => C.NAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SCOL_' || C.CODE, SVALUE => C.NAME);
/* Заполняем рег. номер графы */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOL_RN_' || C.CODE, NVALUE => C.RN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOL_RN_' || C.CODE, NVALUE => C.RN);
/* Заполняем рег. номер показателя */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'NMARK_RN_' || C.CODE,
- NVALUE => RRRPCONFSCTNMRK.RN);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'NMARK_RN_' || C.CODE,
+ NVALUE => RRRPCONFSCTNMRK.RN);
/* Если ошибка считывания показателя */
if (RRRPCONFSCTNMRK.RN is not null) then
/* Заполняем мнемокод показателя */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW,
- SNAME => 'SMARK_CODE_' || C.CODE,
- SVALUE => RRRPCONFSCTNMRK.CODE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
+ SNAME => 'SMARK_CODE_' || C.CODE,
+ SVALUE => RRRPCONFSCTNMRK.CODE);
/* Добавляем атрибут состава показателей */
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'MARK_CNS_' || C.CODE, SVALUE => null);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'MARK_CNS_' || C.CODE, SVALUE => null);
end if;
end loop;
/* Добавим строку для раздела */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
end if;
/* Сериализуем описание */
- CDG := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
+ CDG := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
/* Заполняем контейнер данными о разделе */
PKG_CONTVALLOC2NS.PUTN(RCONTAINER => CXML, NTABID => S.RNUM, SROWID => 'RN', NVALUE => S.NRN);
PKG_CONTVALLOC2NS.PUTS(RCONTAINER => CXML, NTABID => S.RNUM, SROWID => 'CODE', SVALUE => S.SCODE);
diff --git a/db/PKG_P8PANELS_SAMPLES.pck b/db/PKG_P8PANELS_SAMPLES.pck
index ee842fa..7aff8e6 100644
--- a/db/PKG_P8PANELS_SAMPLES.pck
+++ b/db/PKG_P8PANELS_SAMPLES.pck
@@ -257,11 +257,11 @@ create or replace package body PKG_P8PANELS_SAMPLES as
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
NIDENT PKG_STD.TREF := GEN_IDENT(); -- Идентификатор отбора
- RF PKG_P8PANELS_VISUAL.TFILTERS; -- Фильтры
- RO PKG_P8PANELS_VISUAL.TORDERS; -- Сортировки
- RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
- RAGN_TYPES PKG_P8PANELS_VISUAL.TCOL_VALS; -- Предопределенные значения "Типа контрагентов"
- RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
+ RF PKG_P8PANELS_VISUAL.TDG_FILTERS; -- Фильтры
+ RO PKG_P8PANELS_VISUAL.TDG_ORDERS; -- Сортировки
+ RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
+ RAGN_TYPES PKG_P8PANELS_VISUAL.TDG_COL_VALS; -- Предопределенные значения "Типа контрагентов"
+ RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
NROW_FROM PKG_STD.TREF; -- Номер строки с
NROW_TO PKG_STD.TREF; -- Номер строки по
CSQL clob; -- Буфер для запроса
@@ -272,71 +272,71 @@ create or replace package body PKG_P8PANELS_SAMPLES as
NAGNTYPE PKG_STD.TREF; -- Буфер для "Типа"
begin
/* Читаем фильтры */
- RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
+ RF := PKG_P8PANELS_VISUAL.TDG_FILTERS_FROM_XML(CFILTERS => CFILTERS);
/* Читем сортировки */
- RO := PKG_P8PANELS_VISUAL.TORDERS_FROM_XML(CORDERS => CORDERS);
+ RO := PKG_P8PANELS_VISUAL.TDG_ORDERS_FROM_XML(CORDERS => CORDERS);
/* Преобразуем номер и размер страницы в номер строк с и по */
PKG_P8PANELS_VISUAL.UTL_ROWS_LIMITS_CALC(NPAGE_NUMBER => NPAGE_NUMBER,
NPAGE_SIZE => NPAGE_SIZE,
NROW_FROM => NROW_FROM,
NROW_TO => NROW_TO);
/* Инициализируем таблицу данных */
- RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 2);
+ RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 2);
/* Описываем колонки таблицы данных */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNABBR',
- SCAPTION => 'Мнемокод',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'AgentAbbr',
- BVISIBLE => true,
- BORDER => true,
- BFILTER => true,
- NWIDTH => 150);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNINFO',
- SCAPTION => 'Сведения',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- BVISIBLE => true,
- BORDER => false,
- BFILTER => false,
- BEXPANDABLE => true,
- NWIDTH => 300);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNNAME',
- SCAPTION => 'Наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
- SCOND_FROM => 'AgentName',
- BVISIBLE => true,
- BORDER => true,
- BFILTER => true,
- SPARENT => 'SAGNINFO',
- NWIDTH => 200);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 0);
- PKG_P8PANELS_VISUAL.TCOL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 1);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'NAGNTYPE',
- SCAPTION => 'Тип',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
- SCOND_FROM => 'AgentType',
- BVISIBLE => true,
- BORDER => true,
- BFILTER => true,
- SPARENT => 'SAGNINFO',
- NWIDTH => 100,
- RCOL_VALS => RAGN_TYPES,
- SHINT => 'В Системе бывают контрагенты двух типов:
' ||
- 'Юридическое лицо - организация, которая имеет в собственности, хозяйственном ведении ' ||
- 'или оперативном управлении обособленное имущество, отвечает по своим обязательствам этим имуществом, может от своего ' ||
- 'имени приобретать и осуществлять имущественные и личные неимущественные права, отвечать по своим обязанностям.
' ||
- 'Физическое лицо - субъект правовых отношений, представляющий собой одного человека.');
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SFULLNAME',
- SCAPTION => 'Полное наименование',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
- SNAME => 'SAGNIDNUMB',
- SCAPTION => 'ИНН',
- SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNABBR',
+ SCAPTION => 'Мнемокод',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'AgentAbbr',
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => true,
+ NWIDTH => 150);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNINFO',
+ SCAPTION => 'Сведения',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ BVISIBLE => true,
+ BORDER => false,
+ BFILTER => false,
+ BEXPANDABLE => true,
+ NWIDTH => 300);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNNAME',
+ SCAPTION => 'Наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
+ SCOND_FROM => 'AgentName',
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => true,
+ SPARENT => 'SAGNINFO',
+ NWIDTH => 200);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 0);
+ PKG_P8PANELS_VISUAL.TDG_COL_VALS_ADD(RCOL_VALS => RAGN_TYPES, NVALUE => 1);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'NAGNTYPE',
+ SCAPTION => 'Тип',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
+ SCOND_FROM => 'AgentType',
+ BVISIBLE => true,
+ BORDER => true,
+ BFILTER => true,
+ SPARENT => 'SAGNINFO',
+ NWIDTH => 100,
+ RCOL_VALS => RAGN_TYPES,
+ SHINT => 'В Системе бывают контрагенты двух типов:
' ||
+ 'Юридическое лицо - организация, которая имеет в собственности, хозяйственном ведении ' ||
+ 'или оперативном управлении обособленное имущество, отвечает по своим обязательствам этим имуществом, может от своего ' ||
+ 'имени приобретать и осуществлять имущественные и личные неимущественные права, отвечать по своим обязанностям.
' ||
+ 'Физическое лицо - субъект правовых отношений, представляющий собой одного человека.');
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SFULLNAME',
+ SCAPTION => 'Полное наименование',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
+ PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
+ SNAME => 'SAGNIDNUMB',
+ SCAPTION => 'ИНН',
+ SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
/* Обходим данные */
begin
/* Добавляем подсказку совместимости */
@@ -362,14 +362,17 @@ create or replace package body PKG_P8PANELS_SAMPLES as
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' and AG.RN in (select ID from COND_BROKER_IDSMART where IDENT = :NIDENT) %ORDER_BY%) D) F');
PKG_SQL_BUILD.APPEND(SSQL => CSQL, SELEMENT1 => ' where F.NROW between :NROW_FROM and :NROW_TO');
/* Учтём сортировки */
- PKG_P8PANELS_VISUAL.TORDERS_SET_QUERY(RDATA_GRID => RDG, RORDERS => RO, SPATTERN => '%ORDER_BY%', CSQL => CSQL);
+ PKG_P8PANELS_VISUAL.TDG_ORDERS_SET_QUERY(RDATA_GRID => RDG,
+ RORDERS => RO,
+ SPATTERN => '%ORDER_BY%',
+ CSQL => CSQL);
/* Учтём фильтры */
- PKG_P8PANELS_VISUAL.TFILTERS_SET_QUERY(NIDENT => NIDENT,
- NCOMPANY => NCOMPANY,
- SUNIT => 'AGNLIST',
- SPROCEDURE => 'P_AGNLIST_BASE_COND',
- RDATA_GRID => RDG,
- RFILTERS => RF);
+ PKG_P8PANELS_VISUAL.TDG_FILTERS_SET_QUERY(NIDENT => NIDENT,
+ NCOMPANY => NCOMPANY,
+ SUNIT => 'AGNLIST',
+ SPROCEDURE => 'P_AGNLIST_BASE_COND',
+ RDATA_GRID => RDG,
+ RFILTERS => RF);
/* Разбираем его */
ICURSOR := PKG_SQL_DML.OPEN_CURSOR(SWHAT => 'SELECT');
PKG_SQL_DML.PARSE(ICURSOR => ICURSOR, SQUERY => CSQL);
@@ -382,7 +385,7 @@ create or replace package body PKG_P8PANELS_SAMPLES as
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 2);
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 3);
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 4);
- PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 5);
+ PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 5);
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 6);
/* Делаем выборку */
if (PKG_SQL_DML.EXECUTE(ICURSOR => ICURSOR) = 0) then
@@ -397,29 +400,38 @@ create or replace package body PKG_P8PANELS_SAMPLES as
if (NAGNTYPE = 0) then
SGROUP := 'JUR';
SAGNINFO := SAGNNAME || ', ЮЛ';
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SGROUP,
- SCAPTION => 'Юридические лица',
- BEXPANDABLE => true,
- BEXPANDED => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SGROUP,
+ SCAPTION => 'Юридические лица',
+ BEXPANDABLE => true,
+ BEXPANDED => false);
else
SGROUP := 'PERS';
SAGNINFO := SAGNNAME || ', ФЛ';
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_GROUP(RDATA_GRID => RDG,
- SNAME => SGROUP,
- SCAPTION => 'Физические лица',
- BEXPANDABLE => true,
- BEXPANDED => false);
+ PKG_P8PANELS_VISUAL.TDG_ADD_GROUP(RDATA_GRID => RDG,
+ SNAME => SGROUP,
+ SCAPTION => 'Физические лица',
+ BEXPANDABLE => true,
+ BEXPANDED => false);
end if;
- RDG_ROW := PKG_P8PANELS_VISUAL.TROW_MAKE(SGROUP => SGROUP);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SAGNABBR', ICURSOR => ICURSOR, NPOSITION => 1);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNINFO', SVALUE => SAGNINFO);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNNAME', SVALUE => SAGNNAME);
- PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NAGNTYPE', NVALUE => NAGNTYPE);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SFULLNAME', ICURSOR => ICURSOR, NPOSITION => 4);
- PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SAGNIDNUMB', ICURSOR => ICURSOR, NPOSITION => 5);
+ RDG_ROW := PKG_P8PANELS_VISUAL.TDG_ROW_MAKE(SGROUP => SGROUP);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGNABBR',
+ ICURSOR => ICURSOR,
+ NPOSITION => 1);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNINFO', SVALUE => SAGNINFO);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SAGNNAME', SVALUE => SAGNNAME);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NAGNTYPE', NVALUE => NAGNTYPE);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SFULLNAME',
+ ICURSOR => ICURSOR,
+ NPOSITION => 4);
+ PKG_P8PANELS_VISUAL.TDG_ROW_ADD_CUR_COLS(RROW => RDG_ROW,
+ SNAME => 'SAGNIDNUMB',
+ ICURSOR => ICURSOR,
+ NPOSITION => 5);
/* Добавляем строку в таблицу */
- PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
+ PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
end loop;
/* Освобождаем курсор */
PKG_SQL_DML.CLOSE_CURSOR(ICURSOR => ICURSOR);
@@ -429,7 +441,7 @@ create or replace package body PKG_P8PANELS_SAMPLES as
raise;
end;
/* Сериализуем описание */
- COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
+ COUT := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
end DATA_GRID;
/* График */
diff --git a/db/PKG_P8PANELS_VISUAL.pck b/db/PKG_P8PANELS_VISUAL.pck
index 7b88ef2..0c86f8c 100644
--- a/db/PKG_P8PANELS_VISUAL.pck
+++ b/db/PKG_P8PANELS_VISUAL.pck
@@ -43,7 +43,7 @@ create or replace package PKG_P8PANELS_VISUAL as
NCYCLOGRAM_LINE_HEIGHT constant PKG_STD.TNUMBER := 20; -- Высота строк циклограммы
/* Типы данных - значение колонки таблицы данных */
- type TCOL_VAL is record
+ type TDG_COL_VAL is record
(
SVALUE PKG_STD.TLSTRING, -- Значение (строка)
NVALUE PKG_STD.TLNUMBER, -- Значение (число)
@@ -51,10 +51,10 @@ create or replace package PKG_P8PANELS_VISUAL as
);
/* Типы данных - коллекция значений колонки таблицы данных */
- type TCOL_VALS is table of TCOL_VAL;
+ type TDG_COL_VALS is table of TDG_COL_VAL;
/* Типы данных - описатель колонки таблицы данных */
- type TCOL_DEF is record
+ type TDG_COL_DEF is record
(
SNAME PKG_STD.TSTRING, -- Наименование
SCAPTION PKG_STD.TSTRING, -- Заголовок
@@ -64,7 +64,7 @@ create or replace package PKG_P8PANELS_VISUAL as
BVISIBLE boolean, -- Разрешить отображение
BORDER boolean, -- Разрешить сортировку
BFILTER boolean, -- Разрешить отбор
- RCOL_VALS TCOL_VALS, -- Предопределённые значения
+ RCOL_VALS TDG_COL_VALS, -- Предопределённые значения
SHINT PKG_STD.TSTRING, -- Текст всплывающей подсказки
SPARENT PKG_STD.TSTRING, -- Наименование родительской колонки
BEXPANDABLE boolean, -- Разрешить сокрытие/отображение дочерних колонок
@@ -73,30 +73,30 @@ create or replace package PKG_P8PANELS_VISUAL as
);
/* Типы данных - коллекция описателей колонок таблицы данных */
- type TCOL_DEFS is table of TCOL_DEF;
+ type TDG_COL_DEFS is table of TDG_COL_DEF;
/* Типы данных - колонка */
- type TCOL is record
+ type TDG_COL is record
(
SNAME PKG_STD.TSTRING, -- Наименование
- RCOL_VAL TCOL_VAL -- Значение
+ RCOL_VAL TDG_COL_VAL -- Значение
);
/* Типы данных - коллекция колонок */
- type TCOLS is table of TCOL;
+ type TDG_COLS is table of TDG_COL;
/* Типы данных - строка */
- type TROW is record
+ type TDG_ROW is record
(
SGROUP PKG_STD.TSTRING, -- Наименование группы
- RCOLS TCOLS -- Колонки
+ RCOLS TDG_COLS -- Колонки
);
/* Типы данных - коллекция строк */
- type TROWS is table of TROW;
+ type TDG_ROWS is table of TDG_ROW;
/* Типы данных - группа */
- type TGROUP is record
+ type TDG_GROUP is record
(
SNAME PKG_STD.TSTRING, -- Наименование
SCAPTION PKG_STD.TSTRING, -- Заголовок
@@ -105,20 +105,20 @@ create or replace package PKG_P8PANELS_VISUAL as
);
/* Типы данных - коллекция групп */
- type TGROUPS is table of TGROUP;
+ type TDG_GROUPS is table of TDG_GROUP;
/* Типы данных - таблица данных */
- type TDATA_GRID is record
+ type TDG is record
(
BFIXED_HEADER boolean, -- Зафиксировать заголовок
NFIXED_COLUMNS PKG_STD.TNUMBER, -- Количество фиксированных колонок
- RCOL_DEFS TCOL_DEFS, -- Описание колонок
- RGROUPS TGROUPS, -- Описание групп
- RROWS TROWS -- Данные строк
+ RCOL_DEFS TDG_COL_DEFS, -- Описание колонок
+ RGROUPS TDG_GROUPS, -- Описание групп
+ RROWS TDG_ROWS -- Данные строк
);
/* Типы данных - фильтр */
- type TFILTER is record
+ type TDG_FILTER is record
(
SNAME PKG_STD.TSTRING, -- Наименование
SFROM PKG_STD.TSTRING, -- Значение "с"
@@ -126,17 +126,17 @@ create or replace package PKG_P8PANELS_VISUAL as
);
/* Типы данных - коллекция фильтров */
- type TFILTERS is table of TFILTER;
+ type TDG_FILTERS is table of TDG_FILTER;
/* Типы данных - сортировка */
- type TORDER is record
+ type TDG_ORDER is record
(
SNAME PKG_STD.TSTRING, -- Наименование
SDIRECTION PKG_STD.TSTRING -- Направление (см. константы SORDER_DIRECTION_*)
);
/* Типы данных - коллекция сортировок */
- type TORDERS is table of TORDER;
+ type TDG_ORDERS is table of TDG_ORDER;
/* Типы данных - описание атрибута задачи для диаграммы Ганта */
type TGANTT_TASK_ATTR is record
@@ -355,80 +355,80 @@ create or replace package PKG_P8PANELS_VISUAL as
) return varchar2; -- Результат
/* Добавление значения в коллекцию */
- procedure TCOL_VALS_ADD
+ procedure TDG_COL_VALS_ADD
(
- RCOL_VALS in out nocopy TCOL_VALS, -- Коллекция значений
- SVALUE in varchar2 := null, -- Значение (строка)
- NVALUE in number := null, -- Значение (число)
- DVALUE in date := null, -- Значение (дата)
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RCOL_VALS in out nocopy TDG_COL_VALS, -- Коллекция значений
+ SVALUE in varchar2 := null, -- Значение (строка)
+ NVALUE in number := null, -- Значение (число)
+ DVALUE in date := null, -- Значение (дата)
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Формирование строки */
- function TROW_MAKE
+ function TDG_ROW_MAKE
(
SGROUP in varchar2 := null -- Наименование группы
- ) return TROW; -- Результат работы
+ ) return TDG_ROW; -- Результат работы
/* Добавление колонки к строке */
- procedure TROW_ADD_COL
+ procedure TDG_ROW_ADD_COL
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- SVALUE in varchar2 := null, -- Значение (строка)
- NVALUE in number := null, -- Значение (число)
- DVALUE in date := null, -- Значение (дата)
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ SVALUE in varchar2 := null, -- Значение (строка)
+ NVALUE in number := null, -- Значение (число)
+ DVALUE in date := null, -- Значение (дата)
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Добавление строковой колонки к строке из курсора динамического запроса */
- procedure TROW_ADD_CUR_COLS
+ procedure TDG_ROW_ADD_CUR_COLS
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- ICURSOR in integer, -- Курсор
- NPOSITION in number, -- Номер колонки в курсоре
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ ICURSOR in integer, -- Курсор
+ NPOSITION in number, -- Номер колонки в курсоре
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Добавление числовой колонки к строке из курсора динамического запроса */
- procedure TROW_ADD_CUR_COLN
+ procedure TDG_ROW_ADD_CUR_COLN
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- ICURSOR in integer, -- Курсор
- NPOSITION in number, -- Номер колонки в курсоре
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ ICURSOR in integer, -- Курсор
+ NPOSITION in number, -- Номер колонки в курсоре
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Добавление колонки типа "дата" к строке из курсора динамического запроса */
- procedure TROW_ADD_CUR_COLD
+ procedure TDG_ROW_ADD_CUR_COLD
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- ICURSOR in integer, -- Курсор
- NPOSITION in number, -- Номер колонки в курсоре
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ ICURSOR in integer, -- Курсор
+ NPOSITION in number, -- Номер колонки в курсоре
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Формирование таблицы данных */
- function TDATA_GRID_MAKE
+ function TDG_MAKE
(
BFIXED_HEADER in boolean := false, -- Зафиксировать заголовок
NFIXED_COLUMNS in number := 0 -- Количество фиксированных колонок
- ) return TDATA_GRID; -- Результат работы
+ ) return TDG; -- Результат работы
/* Поиск описания колонки в таблице данных по наименованию */
- function TDATA_GRID_FIND_COL_DEF
+ function TDG_FIND_COL_DEF
(
- RDATA_GRID in TDATA_GRID, -- Описание таблицы данных
- SNAME in varchar2 -- Наименование колонки
- ) return TCOL_DEF; -- Найденное описание (null - если не нашли)
+ RDATA_GRID in TDG, -- Описание таблицы данных
+ SNAME in varchar2 -- Наименование колонки
+ ) return TDG_COL_DEF; -- Найденное описание (null - если не нашли)
/* Добавление описания колонки к таблице данных */
- procedure TDATA_GRID_ADD_COL_DEF
+ procedure TDG_ADD_COL_DEF
(
- RDATA_GRID in out nocopy TDATA_GRID, -- Описание таблицы данных
+ RDATA_GRID in out nocopy TDG, -- Описание таблицы данных
SNAME in varchar2, -- Наименование колонки
SCAPTION in varchar2, -- Заголовок колонки
SDATA_TYPE in varchar2 := SDATA_TYPE_STR, -- Тип данных колонки (см. константы SDATA_TYPE_*)
@@ -437,7 +437,7 @@ create or replace package PKG_P8PANELS_VISUAL as
BVISIBLE in boolean := true, -- Разрешить отображение
BORDER in boolean := false, -- Разрешить сортировку по колонке
BFILTER in boolean := false, -- Разрешить отбор по колонке
- RCOL_VALS in TCOL_VALS := null, -- Предопределённые значения колонки
+ RCOL_VALS in TDG_COL_VALS := null, -- Предопределённые значения колонки
SHINT in varchar2 := null, -- Текст всплывающей подсказки
SPARENT in varchar2 := null, -- Наименование родительской колонки
BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних колонок
@@ -447,84 +447,84 @@ create or replace package PKG_P8PANELS_VISUAL as
);
/* Добавление описания группы к таблице данных */
- procedure TDATA_GRID_ADD_GROUP
+ procedure TDG_ADD_GROUP
(
- RDATA_GRID in out nocopy TDATA_GRID, -- Описание таблицы данных
- SNAME in varchar2, -- Наименование группы
- SCAPTION in varchar2, -- Заголовок группы
- BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних
- BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние
- BCLEAR in boolean := false -- Флаг очистки коллекции описаний групп таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
+ RDATA_GRID in out nocopy TDG, -- Описание таблицы данных
+ SNAME in varchar2, -- Наименование группы
+ SCAPTION in varchar2, -- Заголовок группы
+ BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних
+ BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние
+ BCLEAR in boolean := false -- Флаг очистки коллекции описаний групп таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Добавление описания колонки к таблице данных */
- procedure TDATA_GRID_ADD_ROW
+ procedure TDG_ADD_ROW
(
- RDATA_GRID in out nocopy TDATA_GRID, -- Описание таблицы данных
- RROW in TROW, -- Строка
- BCLEAR in boolean := false -- Флаг очистки коллекции строк таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
+ RDATA_GRID in out nocopy TDG, -- Описание таблицы данных
+ RROW in TDG_ROW, -- Строка
+ BCLEAR in boolean := false -- Флаг очистки коллекции строк таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
);
/* Сериализация таблицы данных */
- function TDATA_GRID_TO_XML
+ function TDG_TO_XML
(
- RDATA_GRID in TDATA_GRID, -- Описание таблицы данных
+ RDATA_GRID in TDG, -- Описание таблицы данных
NINCLUDE_DEF in number := 1 -- Включить описание колонок (0 - нет, 1 - да)
) return clob; -- XML-описание
/* Конвертация значений фильтра в число */
- procedure TFILTER_TO_NUMBER
+ procedure TDG_FILTER_TO_NUMBER
(
- RFILTER in TFILTER, -- Фильтр
- NFROM out number, -- Значение нижней границы диапазона
- NTO out number -- Значение верхней границы диапазона
+ RFILTER in TDG_FILTER, -- Фильтр
+ NFROM out number, -- Значение нижней границы диапазона
+ NTO out number -- Значение верхней границы диапазона
);
/* Конвертация значений фильтра в дату */
- procedure TFILTER_TO_DATE
+ procedure TDG_FILTER_TO_DATE
(
- RFILTER in TFILTER, -- Фильтр
- DFROM out date, -- Значение нижней границы диапазона
- DTO out date -- Значение верхней границы диапазона
+ RFILTER in TDG_FILTER, -- Фильтр
+ DFROM out date, -- Значение нижней границы диапазона
+ DTO out date -- Значение верхней границы диапазона
);
/* Поиск фильтра в коллекции */
- function TFILTERS_FIND
+ function TDG_FILTERS_FIND
(
- RFILTERS in TFILTERS, -- Коллекция фильтров
- SNAME in varchar2 -- Наименование
- ) return TFILTER; -- Найденный фильтр (null - если не нашли)
+ RFILTERS in TDG_FILTERS, -- Коллекция фильтров
+ SNAME in varchar2 -- Наименование
+ ) return TDG_FILTER; -- Найденный фильтр (null - если не нашли)
/* Десериализация фильтров */
- function TFILTERS_FROM_XML
+ function TDG_FILTERS_FROM_XML
(
- CFILTERS in clob -- Сериализованное представление фильтров (BASE64(ИМЯЗНАЧЕНИЕЗНАЧЕНИЕ...))
- ) return TFILTERS; -- Результат работы
+ CFILTERS in clob -- Сериализованное представление фильтров (BASE64(ИМЯЗНАЧЕНИЕЗНАЧЕНИЕ...))
+ ) return TDG_FILTERS; -- Результат работы
/* Применение параметров фильтрации в запросе */
- procedure TFILTERS_SET_QUERY
+ procedure TDG_FILTERS_SET_QUERY
(
NIDENT in number, -- Идентификатор отбора
NCOMPANY in number, -- Рег. номер организации
NPARENT in number := null, -- Рег. номер родителя
SUNIT in varchar2, -- Код раздела
SPROCEDURE in varchar2, -- Наименование серверной процедуры отбора
- RDATA_GRID in TDATA_GRID, -- Описание таблицы данных
- RFILTERS in TFILTERS -- Коллекция фильтров
+ RDATA_GRID in TDG, -- Описание таблицы данных
+ RFILTERS in TDG_FILTERS -- Коллекция фильтров
);
/* Десериализация сортировок */
- function TORDERS_FROM_XML
+ function TDG_ORDERS_FROM_XML
(
CORDERS in clob -- Сериализованное представление сотрировок (BASE64(ИМЯASC/DESC...))
- ) return TORDERS; -- Результат работы
+ ) return TDG_ORDERS; -- Результат работы
/* Применение параметров сортировки в запросе */
- procedure TORDERS_SET_QUERY
+ procedure TDG_ORDERS_SET_QUERY
(
- RDATA_GRID in TDATA_GRID, -- Описание таблицы
- RORDERS in TORDERS, -- Коллекция сортировок
+ RDATA_GRID in TDG, -- Описание таблицы
+ RORDERS in TDG_ORDERS, -- Коллекция сортировок
SPATTERN in varchar2, -- Шаблон для подстановки условий отбора в запрос
CSQL in out nocopy clob -- Буфер запроса
);
@@ -753,10 +753,7 @@ create or replace package PKG_P8PANELS_VISUAL as
end PKG_P8PANELS_VISUAL;
/
create or replace package body PKG_P8PANELS_VISUAL as
-/*
-TODO: owner="root" created="18.10.2023"
-text="Формат data_grid и gant как в chart"
-*/
+
/* Константы - тэги запросов */
SRQ_TAG_XROOT constant PKG_STD.TSTRING := 'XROOT'; -- Тэг для корня данных запроса
SRQ_TAG_XFILTERS constant PKG_STD.TSTRING := 'filters'; -- Тэг для строк данных
@@ -768,14 +765,10 @@ text="Формат data_grid и gant как в chart"
/* Константы - тэги ответов */
SRESP_TAG_XDATA constant PKG_STD.TSTRING := 'XDATA'; -- Тэг для корня описания данных
- SRESP_TAG_XROWS constant PKG_STD.TSTRING := 'XROWS'; -- Тэг для строк данных
- SRESP_TAG_XCOLUMNS_DEF constant PKG_STD.TSTRING := 'XCOLUMNS_DEF'; -- Тэг для описания колонок
- SRESP_TAG_XGROUPS constant PKG_STD.TSTRING := 'XGROUPS'; -- Тэг для описания групп
- SRESP_TAG_XGANTT_DEF constant PKG_STD.TSTRING := 'XGANTT_DEF'; -- Тэг для описания заголовка диаграммы Ганта
- SRESP_TAG_XGANTT_TASKS constant PKG_STD.TSTRING := 'XGANTT_TASKS'; -- Тэг для описания коллекции задач диаграммы Ганта
SRESP_TAG_XCHART constant PKG_STD.TSTRING := 'XCHART'; -- Тэг для описания графика
SRESP_TAG_XDATA_GRID constant PKG_STD.TSTRING := 'XDATA_GRID'; -- Тэг для описания таблицы данных
- SRESP_TAG_XCYCLOGRAM constant PKG_STD.TSTRING := 'XCYCLOGRAM'; -- Тэг для описания заголовка циклограммы
+ SRESP_TAG_XCYCLOGRAM constant PKG_STD.TSTRING := 'XCYCLOGRAM'; -- Тэг для описания циклограммы
+ SRESP_TAG_XGANTT constant PKG_STD.TSTRING := 'XGANTT'; -- Тэг для описания диаграммы Ганта
/* Константы - атрибуты ответов (универсальные) */
SRESP_ATTR_NAME constant PKG_STD.TSTRING := 'name'; -- Атрибут для наименования
@@ -801,11 +794,13 @@ text="Формат data_grid и gant как в chart"
SRESP_ATTR_FIXED_COLUMNS constant PKG_STD.TSTRING := 'fixedColumns'; -- Атрибут для количества фиксированных колонок
SRESP_ATTR_WIDTH constant PKG_STD.TSTRING := 'width'; -- Атрибут для ширины
SRESP_ATTR_HEIGHT constant PKG_STD.TSTRING := 'height'; -- Атрибут для высоты
- SRESP_ATTR_GROUPS constant PKG_STD.TSTRING := 'groups'; -- Атрибут для групп
SRESP_ATTR_COLUMNS constant PKG_STD.TSTRING := 'columns'; -- Атрибут для колонок
SRESP_ATTR_TASKS constant PKG_STD.TSTRING := 'tasks'; -- Атрибут для задач
SRESP_ATTR_HL_COLOR constant PKG_STD.TSTRING := 'highlightColor'; -- Атрибут для цвета подсветки
SRESP_ATTR_ZOOM_BAR constant PKG_STD.TSTRING := 'zoomBar'; -- Атрибут для флага отображения панели масштаба
+ SRESP_ATTR_ROWS constant PKG_STD.TSTRING := 'rows'; -- Атрибут для строк данных
+ SRESP_ATTR_COLUMNS_DEF constant PKG_STD.TSTRING := 'columnsDef'; -- Атрибут для описания колонок
+ SRESP_ATTR_GROUPS constant PKG_STD.TSTRING := 'groups'; -- Атрибут для описания групп
/* Константы - атрибуты ответов (таблица данных) */
SRESP_ATTR_DT_ORDER constant PKG_STD.TSTRING := 'order'; -- Атрибут для флага сортировки
@@ -884,14 +879,14 @@ text="Формат data_grid и gant как в chart"
end UTL_COND_NAME_MAKE_TO;
/* Формирование значения */
- function TCOL_VAL_MAKE
+ function TDG_COL_VAL_MAKE
(
SVALUE in varchar2, -- Значение (строка)
NVALUE in number, -- Значение (число)
DVALUE in date -- Значение (дата)
- ) return TCOL_VAL -- Результат работы
+ ) return TDG_COL_VAL -- Результат работы
is
- RRES TCOL_VAL; -- Буфер для результата
+ RRES TDG_COL_VAL; -- Буфер для результата
begin
/* Формируем объект */
RRES.SVALUE := SVALUE;
@@ -899,30 +894,30 @@ text="Формат data_grid и gant как в chart"
RRES.DVALUE := DVALUE;
/* Возвращаем результат */
return RRES;
- end TCOL_VAL_MAKE;
+ end TDG_COL_VAL_MAKE;
/* Добавление значения в коллекцию */
- procedure TCOL_VALS_ADD
+ procedure TDG_COL_VALS_ADD
(
- RCOL_VALS in out nocopy TCOL_VALS, -- Коллекция значений
- SVALUE in varchar2 := null, -- Значение (строка)
- NVALUE in number := null, -- Значение (число)
- DVALUE in date := null, -- Значение (дата)
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RCOL_VALS in out nocopy TDG_COL_VALS, -- Коллекция значений
+ SVALUE in varchar2 := null, -- Значение (строка)
+ NVALUE in number := null, -- Значение (число)
+ DVALUE in date := null, -- Значение (дата)
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
begin
/* Инициализируем коллекцию если необходимо */
if ((RCOL_VALS is null) or (BCLEAR)) then
- RCOL_VALS := TCOL_VALS();
+ RCOL_VALS := TDG_COL_VALS();
end if;
/* Добавляем элемент */
RCOL_VALS.EXTEND();
- RCOL_VALS(RCOL_VALS.LAST) := TCOL_VAL_MAKE(SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE);
- end TCOL_VALS_ADD;
+ RCOL_VALS(RCOL_VALS.LAST) := TDG_COL_VAL_MAKE(SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE);
+ end TDG_COL_VALS_ADD;
/* Формирование описания колонки */
- function TCOL_DEF_MAKE
+ function TDG_COL_DEF_MAKE
(
SNAME in varchar2, -- Наименование
SCAPTION in varchar2, -- Заголовок
@@ -932,15 +927,15 @@ text="Формат data_grid и gant как в chart"
BVISIBLE in boolean := true, -- Разрешить отображение
BORDER in boolean := false, -- Разрешить сортировку
BFILTER in boolean := false, -- Разрешить отбор
- RCOL_VALS in TCOL_VALS := null, -- Предопределённые значения
+ RCOL_VALS in TDG_COL_VALS := null, -- Предопределённые значения
SHINT in varchar2 := null, -- Текст всплывающей подсказки
SPARENT in varchar2 := null, -- Наименование родительской колонки
BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних колонок
BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние колонки
NWIDTH in number := null -- Ширина колонки (обязательно для фиксированных)
- ) return TCOL_DEF -- Результат работы
+ ) return TDG_COL_DEF -- Результат работы
is
- RRES TCOL_DEF; -- Буфер для результата
+ RRES TDG_COL_DEF; -- Буфер для результата
begin
/* Формируем объект */
RRES.SNAME := SNAME;
@@ -951,7 +946,7 @@ text="Формат data_grid и gant как в chart"
RRES.BVISIBLE := COALESCE(BVISIBLE, true);
RRES.BORDER := COALESCE(BORDER, false);
RRES.BFILTER := COALESCE(BFILTER, false);
- RRES.RCOL_VALS := COALESCE(RCOL_VALS, TCOL_VALS());
+ RRES.RCOL_VALS := COALESCE(RCOL_VALS, TDG_COL_VALS());
RRES.SHINT := SHINT;
RRES.SPARENT := SPARENT;
RRES.BEXPANDABLE := COALESCE(BEXPANDABLE, false);
@@ -959,12 +954,12 @@ text="Формат data_grid и gant как в chart"
RRES.NWIDTH := NWIDTH;
/* Возвращаем результат */
return RRES;
- end TCOL_DEF_MAKE;
+ end TDG_COL_DEF_MAKE;
/* Добавление описания колонки в коллекцию */
- procedure TCOL_DEFS_ADD
+ procedure TDG_COL_DEFS_ADD
(
- RCOL_DEFS in out nocopy TCOL_DEFS, -- Коллекция описаний колонок
+ RCOL_DEFS in out nocopy TDG_COL_DEFS, -- Коллекция описаний колонок
SNAME in varchar2, -- Наименование
SCAPTION in varchar2, -- Заголовок
SDATA_TYPE in varchar2 := SDATA_TYPE_STR, -- Тип данных (см. константы SDATA_TYPE_*)
@@ -973,7 +968,7 @@ text="Формат data_grid и gant как в chart"
BVISIBLE in boolean := true, -- Разрешить отображение
BORDER in boolean := false, -- Разрешить сортировку
BFILTER in boolean := false, -- Разрешить отбор
- RCOL_VALS in TCOL_VALS := null, -- Предопределённые значения
+ RCOL_VALS in TDG_COL_VALS := null, -- Предопределённые значения
SHINT in varchar2 := null, -- Текст всплывающей подсказки
SPARENT in varchar2 := null, -- Наименование родительской колонки
BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних колонок
@@ -985,32 +980,32 @@ text="Формат data_grid и gant как в chart"
begin
/* Инициализируем коллекцию если необходимо */
if ((RCOL_DEFS is null) or (BCLEAR)) then
- RCOL_DEFS := TCOL_DEFS();
+ RCOL_DEFS := TDG_COL_DEFS();
end if;
/* Добавляем элемент */
RCOL_DEFS.EXTEND();
- RCOL_DEFS(RCOL_DEFS.LAST) := TCOL_DEF_MAKE(SNAME => SNAME,
- SCAPTION => SCAPTION,
- SDATA_TYPE => SDATA_TYPE,
- SCOND_FROM => SCOND_FROM,
- SCOND_TO => SCOND_TO,
- BVISIBLE => BVISIBLE,
- BORDER => BORDER,
- BFILTER => BFILTER,
- RCOL_VALS => RCOL_VALS,
- SHINT => SHINT,
- SPARENT => SPARENT,
- BEXPANDABLE => BEXPANDABLE,
- BEXPANDED => BEXPANDED,
- NWIDTH => NWIDTH);
- end TCOL_DEFS_ADD;
+ RCOL_DEFS(RCOL_DEFS.LAST) := TDG_COL_DEF_MAKE(SNAME => SNAME,
+ SCAPTION => SCAPTION,
+ SDATA_TYPE => SDATA_TYPE,
+ SCOND_FROM => SCOND_FROM,
+ SCOND_TO => SCOND_TO,
+ BVISIBLE => BVISIBLE,
+ BORDER => BORDER,
+ BFILTER => BFILTER,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => SHINT,
+ SPARENT => SPARENT,
+ BEXPANDABLE => BEXPANDABLE,
+ BEXPANDED => BEXPANDED,
+ NWIDTH => NWIDTH);
+ end TDG_COL_DEFS_ADD;
/* Поиск описания колонки по наименованию */
- function TCOL_DEFS_FIND
+ function TDG_COL_DEFS_FIND
(
- RCOL_DEFS in TCOL_DEFS, -- Описание колонок таблицы данных
- SNAME in varchar2 -- Наименование
- ) return TCOL_DEF -- Найденное описание (null - если не нашли)
+ RCOL_DEFS in TDG_COL_DEFS, -- Описание колонок таблицы данных
+ SNAME in varchar2 -- Наименование
+ ) return TDG_COL_DEF -- Найденное описание (null - если не нашли)
is
begin
/* Обходим колонки из коллекции описаний */
@@ -1024,12 +1019,12 @@ text="Формат data_grid и gant как в chart"
end if;
/* Ничего не нашли */
return null;
- end TCOL_DEFS_FIND;
+ end TDG_COL_DEFS_FIND;
/* Сериализация описания колонок таблицы данных */
- procedure TCOL_DEFS_TO_XML
+ procedure TDG_COL_DEFS_TO_XML
(
- RCOL_DEFS in TCOL_DEFS -- Описание колонок таблицы данных
+ RCOL_DEFS in TDG_COL_DEFS -- Описание колонок таблицы данных
)
is
begin
@@ -1038,7 +1033,7 @@ text="Формат data_grid и gant как в chart"
for I in RCOL_DEFS.FIRST .. RCOL_DEFS.LAST
loop
/* Открываем описание колонки */
- PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XCOLUMNS_DEF);
+ PKG_XFAST.DOWN_NODE(SNAME => SRESP_ATTR_COLUMNS_DEF);
/* Атрибуты колонки */
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_NAME, SVALUE => RCOL_DEFS(I).SNAME);
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_CAPTION, SVALUE => RCOL_DEFS(I).SCAPTION);
@@ -1081,57 +1076,57 @@ text="Формат data_grid и gant как в chart"
PKG_XFAST.UP();
end loop;
end if;
- end TCOL_DEFS_TO_XML;
+ end TDG_COL_DEFS_TO_XML;
/* Формирование колонки */
- function TCOL_MAKE
+ function TDG_COL_MAKE
(
SNAME in varchar2, -- Наименование колонки
SVALUE in varchar2 := null, -- Значение (строка)
NVALUE in number := null, -- Значение (число)
DVALUE in date := null -- Значение (дата)
- ) return TCOL -- Результат работы
+ ) return TDG_COL -- Результат работы
is
- RRES TCOL; -- Буфер для результата
+ RRES TDG_COL; -- Буфер для результата
begin
/* Формируем объект */
RRES.SNAME := SNAME;
- RRES.RCOL_VAL := TCOL_VAL_MAKE(SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE);
+ RRES.RCOL_VAL := TDG_COL_VAL_MAKE(SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE);
/* Возвращаем результат */
return RRES;
- end TCOL_MAKE;
+ end TDG_COL_MAKE;
/* Добавление колонки в коллекцию */
- procedure TCOLS_ADD
+ procedure TDG_COLS_ADD
(
- RCOLS in out nocopy TCOLS, -- Коллекция колонок
- SNAME in varchar2, -- Наименование колонки
- SVALUE in varchar2 := null, -- Значение (строка)
- NVALUE in number := null, -- Значение (число)
- DVALUE in date := null, -- Значение (дата)
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RCOLS in out nocopy TDG_COLS, -- Коллекция колонок
+ SNAME in varchar2, -- Наименование колонки
+ SVALUE in varchar2 := null, -- Значение (строка)
+ NVALUE in number := null, -- Значение (число)
+ DVALUE in date := null, -- Значение (дата)
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
begin
/* Инициализируем коллекцию если необходимо */
if ((RCOLS is null) or (BCLEAR)) then
- RCOLS := TCOLS();
+ RCOLS := TDG_COLS();
end if;
/* Добавляем элемент */
RCOLS.EXTEND();
- RCOLS(RCOLS.LAST) := TCOL_MAKE(SNAME => SNAME, SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE);
- end TCOLS_ADD;
+ RCOLS(RCOLS.LAST) := TDG_COL_MAKE(SNAME => SNAME, SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE);
+ end TDG_COLS_ADD;
/* Формирование описания группы */
- function TGROUP_MAKE
+ function TDG_GROUP_MAKE
(
SNAME in varchar2, -- Наименование
SCAPTION in varchar2, -- Заголовок
BEXPANDABLE in boolean := true, -- Разрешить сокрытие/отображение дочерних
BEXPANDED in boolean := true -- Отобразить/скрыть дочерние
- ) return TGROUP -- Результат работы
+ ) return TDG_GROUP -- Результат работы
is
- RRES TGROUP; -- Буфер для результата
+ RRES TDG_GROUP; -- Буфер для результата
begin
/* Формируем объект */
RRES.SNAME := SNAME;
@@ -1140,24 +1135,24 @@ text="Формат data_grid и gant как в chart"
RRES.BEXPANDED := COALESCE(BEXPANDED, true);
/* Возвращаем результат */
return RRES;
- end TGROUP_MAKE;
+ end TDG_GROUP_MAKE;
/* Добавление описания группы в коллекцию */
- procedure TGROUPS_ADD
+ procedure TDG_GROUPS_ADD
(
- RGROUPS in out nocopy TGROUPS, -- Коллекция описаний колонок
- SNAME in varchar2, -- Наименование
- SCAPTION in varchar2, -- Заголовок
- BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних
- BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RGROUPS in out nocopy TDG_GROUPS, -- Коллекция описаний колонок
+ SNAME in varchar2, -- Наименование
+ SCAPTION in varchar2, -- Заголовок
+ BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних
+ BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
- BFND boolean := false; -- Флаг наличия группы в коллекции
+ BFND boolean := false; -- Флаг наличия группы в коллекции
begin
/* Инициализируем коллекцию если необходимо */
if ((RGROUPS is null) or (BCLEAR)) then
- RGROUPS := TGROUPS();
+ RGROUPS := TDG_GROUPS();
end if;
/* Проверим наличие */
if (RGROUPS.COUNT > 0) then
@@ -1166,10 +1161,10 @@ text="Формат data_grid и gant как в chart"
if (RGROUPS(I).SNAME = SNAME) then
/* Элемент найден - обновим */
BFND := true;
- RGROUPS(I) := TGROUP_MAKE(SNAME => SNAME,
- SCAPTION => SCAPTION,
- BEXPANDABLE => BEXPANDABLE,
- BEXPANDED => BEXPANDED);
+ RGROUPS(I) := TDG_GROUP_MAKE(SNAME => SNAME,
+ SCAPTION => SCAPTION,
+ BEXPANDABLE => BEXPANDABLE,
+ BEXPANDED => BEXPANDED);
exit;
end if;
end loop;
@@ -1177,17 +1172,17 @@ text="Формат data_grid и gant как в chart"
/* Добавляем элемент если такого нет */
if (not BFND) then
RGROUPS.EXTEND();
- RGROUPS(RGROUPS.LAST) := TGROUP_MAKE(SNAME => SNAME,
- SCAPTION => SCAPTION,
- BEXPANDABLE => BEXPANDABLE,
- BEXPANDED => BEXPANDED);
+ RGROUPS(RGROUPS.LAST) := TDG_GROUP_MAKE(SNAME => SNAME,
+ SCAPTION => SCAPTION,
+ BEXPANDABLE => BEXPANDABLE,
+ BEXPANDED => BEXPANDED);
end if;
- end TGROUPS_ADD;
+ end TDG_GROUPS_ADD;
/* Сериализация описания групп таблицы данных */
- procedure TGROUPS_TO_XML
+ procedure TDG_GROUPS_TO_XML
(
- RGROUPS in TGROUPS -- Описание групп таблицы данных
+ RGROUPS in TDG_GROUPS -- Описание групп таблицы данных
)
is
begin
@@ -1196,7 +1191,7 @@ text="Формат data_grid и gant как в chart"
for I in RGROUPS.FIRST .. RGROUPS.LAST
loop
/* Открываем описание группы */
- PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XGROUPS);
+ PKG_XFAST.DOWN_NODE(SNAME => SRESP_ATTR_GROUPS);
/* Атрибуты группы */
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_NAME, SVALUE => RGROUPS(I).SNAME);
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_CAPTION, SVALUE => RGROUPS(I).SCAPTION);
@@ -1206,109 +1201,129 @@ text="Формат data_grid и gant как в chart"
PKG_XFAST.UP();
end loop;
end if;
- end TGROUPS_TO_XML;
+ end TDG_GROUPS_TO_XML;
/* Формирование строки */
- function TROW_MAKE
+ function TDG_ROW_MAKE
(
SGROUP in varchar2 := null -- Наименование группы
)
- return TROW -- Результат работы
+ return TDG_ROW -- Результат работы
is
- RRES TROW; -- Буфер для результата
+ RRES TDG_ROW; -- Буфер для результата
begin
/* Формируем объект */
RRES.SGROUP := SGROUP;
- RRES.RCOLS := TCOLS();
+ RRES.RCOLS := TDG_COLS();
/* Возвращаем результат */
return RRES;
- end TROW_MAKE;
+ end TDG_ROW_MAKE;
/* Добавление колонки к строке */
- procedure TROW_ADD_COL
+ procedure TDG_ROW_ADD_COL
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- SVALUE in varchar2 := null, -- Значение (строка)
- NVALUE in number := null, -- Значение (число)
- DVALUE in date := null, -- Значение (дата)
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ SVALUE in varchar2 := null, -- Значение (строка)
+ NVALUE in number := null, -- Значение (число)
+ DVALUE in date := null, -- Значение (дата)
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
begin
/* Сформируем колонку и добавим её к коллекции колонок строки */
- TCOLS_ADD(RCOLS => RROW.RCOLS, SNAME => SNAME, SVALUE => SVALUE, NVALUE => NVALUE, DVALUE => DVALUE, BCLEAR => BCLEAR);
- end TROW_ADD_COL;
+ TDG_COLS_ADD(RCOLS => RROW.RCOLS,
+ SNAME => SNAME,
+ SVALUE => SVALUE,
+ NVALUE => NVALUE,
+ DVALUE => DVALUE,
+ BCLEAR => BCLEAR);
+ end TDG_ROW_ADD_COL;
/* Добавление строковой колонки к строке из курсора динамического запроса */
- procedure TROW_ADD_CUR_COLS
+ procedure TDG_ROW_ADD_CUR_COLS
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- ICURSOR in integer, -- Курсор
- NPOSITION in number, -- Номер колонки в курсоре
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ ICURSOR in integer, -- Курсор
+ NPOSITION in number, -- Номер колонки в курсоре
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
- SVALUE PKG_STD.TLSTRING; -- Буфер для значения курсора
+ SVALUE PKG_STD.TLSTRING; -- Буфер для значения курсора
begin
/* Читаем данные из курсора */
PKG_SQL_DML.COLUMN_VALUE_STR(ICURSOR => ICURSOR, IPOSITION => NPOSITION, SVALUE => SVALUE);
/* Сформируем колонку и добавим её к коллекции колонок строки */
- TCOLS_ADD(RCOLS => RROW.RCOLS, SNAME => SNAME, SVALUE => SVALUE, NVALUE => null, DVALUE => null, BCLEAR => BCLEAR);
- end TROW_ADD_CUR_COLS;
+ TDG_COLS_ADD(RCOLS => RROW.RCOLS,
+ SNAME => SNAME,
+ SVALUE => SVALUE,
+ NVALUE => null,
+ DVALUE => null,
+ BCLEAR => BCLEAR);
+ end TDG_ROW_ADD_CUR_COLS;
/* Добавление числовой колонки к строке из курсора динамического запроса */
- procedure TROW_ADD_CUR_COLN
+ procedure TDG_ROW_ADD_CUR_COLN
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- ICURSOR in integer, -- Курсор
- NPOSITION in number, -- Номер колонки в курсоре
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ ICURSOR in integer, -- Курсор
+ NPOSITION in number, -- Номер колонки в курсоре
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
- NVALUE PKG_STD.TLNUMBER; -- Буфер для значения курсора
+ NVALUE PKG_STD.TLNUMBER; -- Буфер для значения курсора
begin
/* Читаем данные из курсора */
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => NPOSITION, NVALUE => NVALUE);
/* Сформируем колонку и добавим её к коллекции колонок строки */
- TCOLS_ADD(RCOLS => RROW.RCOLS, SNAME => SNAME, SVALUE => null, NVALUE => NVALUE, DVALUE => null, BCLEAR => BCLEAR);
- end TROW_ADD_CUR_COLN;
+ TDG_COLS_ADD(RCOLS => RROW.RCOLS,
+ SNAME => SNAME,
+ SVALUE => null,
+ NVALUE => NVALUE,
+ DVALUE => null,
+ BCLEAR => BCLEAR);
+ end TDG_ROW_ADD_CUR_COLN;
/* Добавление колонки типа "дата" к строке из курсора динамического запроса */
- procedure TROW_ADD_CUR_COLD
+ procedure TDG_ROW_ADD_CUR_COLD
(
- RROW in out nocopy TROW, -- Строка
- SNAME in varchar2, -- Наименование колонки
- ICURSOR in integer, -- Курсор
- NPOSITION in number, -- Номер колонки в курсоре
- BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
+ RROW in out nocopy TDG_ROW, -- Строка
+ SNAME in varchar2, -- Наименование колонки
+ ICURSOR in integer, -- Курсор
+ NPOSITION in number, -- Номер колонки в курсоре
+ BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
- DVALUE PKG_STD.TLDATE; -- Буфер для значения курсора
+ DVALUE PKG_STD.TLDATE; -- Буфер для значения курсора
begin
/* Читаем данные из курсора */
PKG_SQL_DML.COLUMN_VALUE_DATE(ICURSOR => ICURSOR, IPOSITION => NPOSITION, DVALUE => DVALUE);
/* Сформируем колонку и добавим её к коллекции колонок строки */
- TCOLS_ADD(RCOLS => RROW.RCOLS, SNAME => SNAME, SVALUE => null, NVALUE => null, DVALUE => DVALUE, BCLEAR => BCLEAR);
- end TROW_ADD_CUR_COLD;
+ TDG_COLS_ADD(RCOLS => RROW.RCOLS,
+ SNAME => SNAME,
+ SVALUE => null,
+ NVALUE => null,
+ DVALUE => DVALUE,
+ BCLEAR => BCLEAR);
+ end TDG_ROW_ADD_CUR_COLD;
/* Сериализация строки данных таблицы данных */
- procedure TROWS_TO_XML
+ procedure TDG_ROWS_TO_XML
(
- RCOL_DEFS in TCOL_DEFS, -- Описание колонок таблицы данных
- RROWS in TROWS -- Строки таблицы данных
+ RCOL_DEFS in TDG_COL_DEFS, -- Описание колонок таблицы данных
+ RROWS in TDG_ROWS -- Строки таблицы данных
)
is
- RCOL_DEF TCOL_DEF; -- Описание текущей сериализуемой колонки
+ RCOL_DEF TDG_COL_DEF; -- Описание текущей сериализуемой колонки
begin
/* Обходим строки из коллекции */
if ((RROWS is not null) and (RROWS.COUNT > 0)) then
for I in RROWS.FIRST .. RROWS.LAST
loop
/* Открываем строку */
- PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XROWS);
+ PKG_XFAST.DOWN_NODE(SNAME => SRESP_ATTR_ROWS);
/* Если указана группа - добавим её */
if (RROWS(I).SGROUP is not null) then
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_GROUP_NAME, SVALUE => RROWS(I).SGROUP);
@@ -1318,7 +1333,7 @@ text="Формат data_grid и gant как в chart"
for J in RROWS(I).RCOLS.FIRST .. RROWS(I).RCOLS.LAST
loop
/* Найдём описание колонки */
- RCOL_DEF := TCOL_DEFS_FIND(RCOL_DEFS => RCOL_DEFS, SNAME => RROWS(I).RCOLS(J).SNAME);
+ RCOL_DEF := TDG_COL_DEFS_FIND(RCOL_DEFS => RCOL_DEFS, SNAME => RROWS(I).RCOLS(J).SNAME);
if (RCOL_DEF.SNAME is null) then
P_EXCEPTION(0,
'Описание колонки "%s" таблицы данных не определено.',
@@ -1344,42 +1359,42 @@ text="Формат data_grid и gant как в chart"
PKG_XFAST.UP();
end loop;
end if;
- end TROWS_TO_XML;
+ end TDG_ROWS_TO_XML;
/* Формирование таблицы данных */
- function TDATA_GRID_MAKE
+ function TDG_MAKE
(
BFIXED_HEADER in boolean := false, -- Зафиксировать заголовок
NFIXED_COLUMNS in number := 0 -- Количество фиксированных колонок
- ) return TDATA_GRID -- Результат работы
+ ) return TDG -- Результат работы
is
- RRES TDATA_GRID; -- Буфер для результата
+ RRES TDG; -- Буфер для результата
begin
/* Формируем объект */
RRES.BFIXED_HEADER := COALESCE(BFIXED_HEADER, false);
RRES.NFIXED_COLUMNS := COALESCE(NFIXED_COLUMNS, 0);
- RRES.RCOL_DEFS := TCOL_DEFS();
- RRES.RGROUPS := TGROUPS();
- RRES.RROWS := TROWS();
+ RRES.RCOL_DEFS := TDG_COL_DEFS();
+ RRES.RGROUPS := TDG_GROUPS();
+ RRES.RROWS := TDG_ROWS();
/* Возвращаем результат */
return RRES;
- end TDATA_GRID_MAKE;
+ end TDG_MAKE;
/* Поиск описания колонки в таблице данных по наименованию */
- function TDATA_GRID_FIND_COL_DEF
+ function TDG_FIND_COL_DEF
(
- RDATA_GRID in TDATA_GRID, -- Описание таблицы данных
- SNAME in varchar2 -- Наименование колонки
- ) return TCOL_DEF -- Найденное описание (null - если не нашли)
+ RDATA_GRID in TDG, -- Описание таблицы данных
+ SNAME in varchar2 -- Наименование колонки
+ ) return TDG_COL_DEF -- Найденное описание (null - если не нашли)
is
begin
- return TCOL_DEFS_FIND(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, SNAME => SNAME);
- end TDATA_GRID_FIND_COL_DEF;
+ return TDG_COL_DEFS_FIND(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, SNAME => SNAME);
+ end TDG_FIND_COL_DEF;
/* Добавление описания колонки к таблице данных */
- procedure TDATA_GRID_ADD_COL_DEF
+ procedure TDG_ADD_COL_DEF
(
- RDATA_GRID in out nocopy TDATA_GRID, -- Описание таблицы данных
+ RDATA_GRID in out nocopy TDG, -- Описание таблицы данных
SNAME in varchar2, -- Наименование колонки
SCAPTION in varchar2, -- Заголовок колонки
SDATA_TYPE in varchar2 := SDATA_TYPE_STR, -- Тип данных колонки (см. константы SDATA_TYPE_*)
@@ -1388,7 +1403,7 @@ text="Формат data_grid и gant как в chart"
BVISIBLE in boolean := true, -- Разрешить отображение
BORDER in boolean := false, -- Разрешить сортировку по колонке
BFILTER in boolean := false, -- Разрешить отбор по колонке
- RCOL_VALS in TCOL_VALS := null, -- Предопределённые значения колонки
+ RCOL_VALS in TDG_COL_VALS := null, -- Предопределённые значения колонки
SHINT in varchar2 := null, -- Текст всплывающей подсказки
SPARENT in varchar2 := null, -- Наименование родительской колонки
BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних колонок
@@ -1399,79 +1414,79 @@ text="Формат data_grid и gant как в chart"
is
begin
/* Формируем описание и добавляем в коллекцию таблицы данных */
- TCOL_DEFS_ADD(RCOL_DEFS => RDATA_GRID.RCOL_DEFS,
- SNAME => SNAME,
- SCAPTION => SCAPTION,
- SDATA_TYPE => SDATA_TYPE,
- SCOND_FROM => SCOND_FROM,
- SCOND_TO => SCOND_TO,
- BVISIBLE => BVISIBLE,
- BORDER => BORDER,
- BFILTER => BFILTER,
- RCOL_VALS => RCOL_VALS,
- SHINT => SHINT,
- SPARENT => SPARENT,
- BEXPANDABLE => BEXPANDABLE,
- BEXPANDED => BEXPANDED,
- NWIDTH => NWIDTH,
- BCLEAR => BCLEAR);
- end TDATA_GRID_ADD_COL_DEF;
+ TDG_COL_DEFS_ADD(RCOL_DEFS => RDATA_GRID.RCOL_DEFS,
+ SNAME => SNAME,
+ SCAPTION => SCAPTION,
+ SDATA_TYPE => SDATA_TYPE,
+ SCOND_FROM => SCOND_FROM,
+ SCOND_TO => SCOND_TO,
+ BVISIBLE => BVISIBLE,
+ BORDER => BORDER,
+ BFILTER => BFILTER,
+ RCOL_VALS => RCOL_VALS,
+ SHINT => SHINT,
+ SPARENT => SPARENT,
+ BEXPANDABLE => BEXPANDABLE,
+ BEXPANDED => BEXPANDED,
+ NWIDTH => NWIDTH,
+ BCLEAR => BCLEAR);
+ end TDG_ADD_COL_DEF;
/* Добавление описания группы к таблице данных */
- procedure TDATA_GRID_ADD_GROUP
+ procedure TDG_ADD_GROUP
(
- RDATA_GRID in out nocopy TDATA_GRID, -- Описание таблицы данных
- SNAME in varchar2, -- Наименование группы
- SCAPTION in varchar2, -- Заголовок группы
- BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних
- BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние
- BCLEAR in boolean := false -- Флаг очистки коллекции описаний групп таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
+ RDATA_GRID in out nocopy TDG, -- Описание таблицы данных
+ SNAME in varchar2, -- Наименование группы
+ SCAPTION in varchar2, -- Заголовок группы
+ BEXPANDABLE in boolean := false, -- Разрешить сокрытие/отображение дочерних
+ BEXPANDED in boolean := true, -- Отобразить/скрыть дочерние
+ BCLEAR in boolean := false -- Флаг очистки коллекции описаний групп таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
begin
/* Формируем описание и добавляем в коллекцию таблицы данных */
- TGROUPS_ADD(RGROUPS => RDATA_GRID.RGROUPS,
- SNAME => SNAME,
- SCAPTION => SCAPTION,
- BEXPANDABLE => BEXPANDABLE,
- BEXPANDED => BEXPANDED,
- BCLEAR => BCLEAR);
- end TDATA_GRID_ADD_GROUP;
+ TDG_GROUPS_ADD(RGROUPS => RDATA_GRID.RGROUPS,
+ SNAME => SNAME,
+ SCAPTION => SCAPTION,
+ BEXPANDABLE => BEXPANDABLE,
+ BEXPANDED => BEXPANDED,
+ BCLEAR => BCLEAR);
+ end TDG_ADD_GROUP;
/* Добавление описания колонки к таблице данных */
- procedure TDATA_GRID_ADD_ROW
+ procedure TDG_ADD_ROW
(
- RDATA_GRID in out nocopy TDATA_GRID, -- Описание таблицы данных
- RROW in TROW, -- Строка
- BCLEAR in boolean := false -- Флаг очистки коллекции строк таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
+ RDATA_GRID in out nocopy TDG, -- Описание таблицы данных
+ RROW in TDG_ROW, -- Строка
+ BCLEAR in boolean := false -- Флаг очистки коллекции строк таблицы данных (false - не очищать, true - очистить коллекцию перед добавлением)
)
is
begin
/* Инициализируем коллекцию если необходимо */
if ((RDATA_GRID.RROWS is null) or (BCLEAR)) then
- RDATA_GRID.RROWS := TROWS();
+ RDATA_GRID.RROWS := TDG_ROWS();
end if;
/* Добавляем элемент */
RDATA_GRID.RROWS.EXTEND();
RDATA_GRID.RROWS(RDATA_GRID.RROWS.LAST) := RROW;
- end TDATA_GRID_ADD_ROW;
+ end TDG_ADD_ROW;
/* Сериализация описания таблицы данных */
- procedure TDATA_GRID_DEF_TO_XML
+ procedure TDG_DEF_TO_XML
(
- RDATA_GRID in TDATA_GRID -- Описание таблицы данных
+ RDATA_GRID in TDG -- Описание таблицы данных
)
is
begin
/* Cтатические атрибуты заголовка */
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_FIXED_HEADER, BVALUE => RDATA_GRID.BFIXED_HEADER);
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_FIXED_COLUMNS, NVALUE => RDATA_GRID.NFIXED_COLUMNS);
- end TDATA_GRID_DEF_TO_XML;
+ end TDG_DEF_TO_XML;
/* Сериализация таблицы данных */
- function TDATA_GRID_TO_XML
+ function TDG_TO_XML
(
- RDATA_GRID in TDATA_GRID, -- Описание таблицы данных
+ RDATA_GRID in TDG, -- Описание таблицы данных
NINCLUDE_DEF in number := 1 -- Включить описание колонок (0 - нет, 1 - да)
) return clob -- XML-описание
is
@@ -1484,17 +1499,17 @@ text="Формат data_grid и gant как в chart"
/* Открываем таблицу данных */
PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XDATA_GRID);
/* Формируем описание таблицы данных */
- TDATA_GRID_DEF_TO_XML(RDATA_GRID => RDATA_GRID);
- /* Закрываем таблицу данных */
- PKG_XFAST.UP();
+ TDG_DEF_TO_XML(RDATA_GRID => RDATA_GRID);
/* Если необходимо включить описание колонок */
if (NINCLUDE_DEF = 1) then
- TCOL_DEFS_TO_XML(RCOL_DEFS => RDATA_GRID.RCOL_DEFS);
+ TDG_COL_DEFS_TO_XML(RCOL_DEFS => RDATA_GRID.RCOL_DEFS);
end if;
/* Формируем описание групп */
- TGROUPS_TO_XML(RGROUPS => RDATA_GRID.RGROUPS);
+ TDG_GROUPS_TO_XML(RGROUPS => RDATA_GRID.RGROUPS);
/* Формируем описание строк */
- TROWS_TO_XML(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, RROWS => RDATA_GRID.RROWS);
+ TDG_ROWS_TO_XML(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, RROWS => RDATA_GRID.RROWS);
+ /* Закрываем таблицу данных */
+ PKG_XFAST.UP();
/* Закрываем корень */
PKG_XFAST.UP();
/* Сериализуем */
@@ -1510,14 +1525,14 @@ text="Формат data_grid и gant как в chart"
/* Вернем ошибку */
PKG_STATE.DIAGNOSTICS_STACKED();
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
- end TDATA_GRID_TO_XML;
+ end TDG_TO_XML;
/* Конвертация значений фильтра в число */
- procedure TFILTER_TO_NUMBER
+ procedure TDG_FILTER_TO_NUMBER
(
- RFILTER in TFILTER, -- Фильтр
- NFROM out number, -- Значение нижней границы диапазона
- NTO out number -- Значение верхней границы диапазона
+ RFILTER in TDG_FILTER, -- Фильтр
+ NFROM out number, -- Значение нижней границы диапазона
+ NTO out number -- Значение верхней границы диапазона
)
is
begin
@@ -1543,14 +1558,14 @@ text="Формат data_grid и gant как в chart"
RFILTER.STO);
end;
end if;
- end TFILTER_TO_NUMBER;
+ end TDG_FILTER_TO_NUMBER;
/* Конвертация значений фильтра в дату */
- procedure TFILTER_TO_DATE
+ procedure TDG_FILTER_TO_DATE
(
- RFILTER in TFILTER, -- Фильтр
- DFROM out date, -- Значение нижней границы диапазона
- DTO out date -- Значение верхней границы диапазона
+ RFILTER in TDG_FILTER, -- Фильтр
+ DFROM out date, -- Значение нижней границы диапазона
+ DTO out date -- Значение верхней границы диапазона
)
is
begin
@@ -1576,17 +1591,17 @@ text="Формат data_grid и gant как в chart"
RFILTER.STO);
end;
end if;
- end TFILTER_TO_DATE;
+ end TDG_FILTER_TO_DATE;
/* Формирование фильтра */
- function TFILTER_MAKE
+ function TDG_FILTER_MAKE
(
SNAME in varchar2, -- Наименование
SFROM in varchar2, -- Значение "с"
STO in varchar2 -- Значение "по"
- ) return TFILTER -- Результат работы
+ ) return TDG_FILTER -- Результат работы
is
- RRES TFILTER; -- Буфер для результата
+ RRES TDG_FILTER; -- Буфер для результата
begin
/* Формируем объект */
RRES.SNAME := SNAME;
@@ -1594,14 +1609,14 @@ text="Формат data_grid и gant как в chart"
RRES.STO := STO;
/* Возвращаем результат */
return RRES;
- end TFILTER_MAKE;
+ end TDG_FILTER_MAKE;
/* Поиск фильтра в коллекции */
- function TFILTERS_FIND
+ function TDG_FILTERS_FIND
(
- RFILTERS in TFILTERS, -- Коллекция фильтров
- SNAME in varchar2 -- Наименование
- ) return TFILTER -- Найденный фильтр (null - если не нашли)
+ RFILTERS in TDG_FILTERS, -- Коллекция фильтров
+ SNAME in varchar2 -- Наименование
+ ) return TDG_FILTER -- Найденный фильтр (null - если не нашли)
is
begin
/* Обходим фильтры из коллекции */
@@ -1615,22 +1630,22 @@ text="Формат data_grid и gant как в chart"
end if;
/* Ничего не нашли */
return null;
- end TFILTERS_FIND;
+ end TDG_FILTERS_FIND;
/* Десериализация фильтров */
- function TFILTERS_FROM_XML
+ function TDG_FILTERS_FROM_XML
(
CFILTERS in clob -- Сериализованное представление фильтров (BASE64(ИМЯЗНАЧЕНИЕЗНАЧЕНИЕ...))
- ) return TFILTERS -- Результат работы
+ ) return TDG_FILTERS -- Результат работы
is
- RFILTERS TFILTERS; -- Буфер для результата работы
+ RFILTERS TDG_FILTERS; -- Буфер для результата работы
XDOC PKG_XPATH.TDOCUMENT; -- Документ XML
XROOT PKG_XPATH.TNODE; -- Корень документа XML
XNODE PKG_XPATH.TNODE; -- Буфер узла документа
XNODES PKG_XPATH.TNODES; -- Буфер коллекции узлов документа
begin
/* Вернём выходную коллекцию */
- RFILTERS := TFILTERS();
+ RFILTERS := TDG_FILTERS();
/* Разбираем XML */
XDOC := PKG_XPATH.PARSE_FROM_CLOB(LCXML => '<' || SRQ_TAG_XROOT || '>' ||
BLOB2CLOB(LBDATA => BASE64_DECODE(LCSRCE => CFILTERS),
@@ -1647,9 +1662,9 @@ text="Формат data_grid и gant как в chart"
XNODE := PKG_XPATH.ITEM_NODE(RNODES => XNODES, INUMBER => I);
/* Добавим его в коллекцию */
RFILTERS.EXTEND();
- RFILTERS(RFILTERS.LAST) := TFILTER_MAKE(SNAME => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SNAME),
- SFROM => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SFROM),
- STO => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_STO));
+ RFILTERS(RFILTERS.LAST) := TDG_FILTER_MAKE(SNAME => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SNAME),
+ SFROM => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SFROM),
+ STO => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_STO));
end loop;
/* Освободим документ */
PKG_XPATH.FREE(RDOCUMENT => XDOC);
@@ -1662,21 +1677,21 @@ text="Формат data_grid и gant как в chart"
/* Вернем ошибку */
PKG_STATE.DIAGNOSTICS_STACKED();
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
- end TFILTERS_FROM_XML;
+ end TDG_FILTERS_FROM_XML;
/* Применение параметров фильтрации в запросе */
- procedure TFILTERS_SET_QUERY
+ procedure TDG_FILTERS_SET_QUERY
(
NIDENT in number, -- Идентификатор отбора
NCOMPANY in number, -- Рег. номер организации
NPARENT in number := null, -- Рег. номер родителя
SUNIT in varchar2, -- Код раздела
SPROCEDURE in varchar2, -- Наименование серверной процедуры отбора
- RDATA_GRID in TDATA_GRID, -- Описание таблицы данных
- RFILTERS in TFILTERS -- Коллекция фильтров
+ RDATA_GRID in TDG, -- Описание таблицы данных
+ RFILTERS in TDG_FILTERS -- Коллекция фильтров
)
is
- RCOL_DEF TCOL_DEF; -- Описание текущей фильтруемой колонки
+ RCOL_DEF TDG_COL_DEF; -- Описание текущей фильтруемой колонки
BENUM boolean; -- Флаг начиличия перечисляемых значений
NFROM PKG_STD.TLNUMBER; -- Буфер для верхней границы диапазона отбора чисел
NTO PKG_STD.TLNUMBER; -- Буфер для нижней границы диапазона отбора чисел
@@ -1700,7 +1715,7 @@ text="Формат data_grid и gant как в chart"
for I in RFILTERS.FIRST .. RFILTERS.LAST
loop
/* Найдем фильтруемую колонку в описании */
- RCOL_DEF := TCOL_DEFS_FIND(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, SNAME => RFILTERS(I).SNAME);
+ RCOL_DEF := TDG_COL_DEFS_FIND(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, SNAME => RFILTERS(I).SNAME);
if (RCOL_DEF.SNAME is not null) then
/* Определимся с наличием перечисляемых значений */
if ((RCOL_DEF.RCOL_VALS is not null) and (RCOL_DEF.RCOL_VALS.COUNT > 0)) then
@@ -1728,7 +1743,7 @@ text="Формат data_grid и gant как в chart"
PKG_COND_BROKER.SET_CONDITION_ENUM(SCONDITION_NAME => RCOL_DEF.SCOND_FROM,
SCONDITION_ENUM => RFILTERS(I).SFROM);
else
- TFILTER_TO_NUMBER(RFILTER => RFILTERS(I), NFROM => NFROM, NTO => NTO);
+ TDG_FILTER_TO_NUMBER(RFILTER => RFILTERS(I), NFROM => NFROM, NTO => NTO);
if (NFROM is not null) then
PKG_COND_BROKER.SET_CONDITION_NUM(SCONDITION_NAME => RCOL_DEF.SCOND_FROM,
NCONDITION_VALUE => NFROM);
@@ -1740,11 +1755,11 @@ text="Формат data_grid и gant как в chart"
end;
when SDATA_TYPE_DATE then
begin
- if (BENUM) then
- PKG_COND_BROKER.SET_CONDITION_EDATE(SCONDITION_NAME => RCOL_DEF.SCOND_FROM,
+ if (BENUM) then
+ PKG_COND_BROKER.SET_CONDITION_EDATE(SCONDITION_NAME => RCOL_DEF.SCOND_FROM,
SCONDITION_EDATE => RFILTERS(I).SFROM);
else
- TFILTER_TO_DATE(RFILTER => RFILTERS(I), DFROM => DFROM, DTO => DTO);
+ TDG_FILTER_TO_DATE(RFILTER => RFILTERS(I), DFROM => DFROM, DTO => DTO);
if (DFROM is not null) then
PKG_COND_BROKER.SET_CONDITION_DATE(SCONDITION_NAME => RCOL_DEF.SCOND_FROM,
DCONDITION_VALUE => DFROM);
@@ -1765,38 +1780,38 @@ text="Формат data_grid и gant как в chart"
end if;
/* Формирование условий отбора - Эпилог */
PKG_COND_BROKER.EPILOGUE();
- end TFILTERS_SET_QUERY;
+ end TDG_FILTERS_SET_QUERY;
/* Формирование сортировки */
- function TORDER_MAKE
+ function TDG_ORDER_MAKE
(
SNAME in varchar2, -- Наименование
SDIRECTION in varchar2 -- Направление (см. константы SORDER_DIRECTION_*)
- ) return TORDER -- Результат работы
+ ) return TDG_ORDER -- Результат работы
is
- RRES TORDER; -- Буфер для результата
+ RRES TDG_ORDER; -- Буфер для результата
begin
/* Формируем объект */
RRES.SNAME := SNAME;
RRES.SDIRECTION := SDIRECTION;
/* Возвращаем результат */
return RRES;
- end TORDER_MAKE;
+ end TDG_ORDER_MAKE;
/* Десериализация сортировок */
- function TORDERS_FROM_XML
+ function TDG_ORDERS_FROM_XML
(
CORDERS in clob -- Сериализованное представление сотрировок (BASE64(ИМЯASC/DESC...))
- ) return TORDERS -- Результат работы
+ ) return TDG_ORDERS -- Результат работы
is
- RORDERS TORDERS; -- Буфер для результата работы
+ RORDERS TDG_ORDERS; -- Буфер для результата работы
XDOC PKG_XPATH.TDOCUMENT; -- Документ XML
XROOT PKG_XPATH.TNODE; -- Корень документа XML
XNODE PKG_XPATH.TNODE; -- Буфер узла документа
XNODES PKG_XPATH.TNODES; -- Буфер коллекции узлов документа
begin
/* Инициализируем выходную коллекцию */
- RORDERS := TORDERS();
+ RORDERS := TDG_ORDERS();
/* Разбираем XML */
XDOC := PKG_XPATH.PARSE_FROM_CLOB(LCXML => '<' || SRQ_TAG_XROOT || '>' ||
BLOB2CLOB(LBDATA => BASE64_DECODE(LCSRCE => CORDERS),
@@ -1813,8 +1828,9 @@ text="Формат data_grid и gant как в chart"
XNODE := PKG_XPATH.ITEM_NODE(RNODES => XNODES, INUMBER => I);
/* Добавим его в коллекцию */
RORDERS.EXTEND();
- RORDERS(RORDERS.LAST) := TORDER_MAKE(SNAME => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SNAME),
- SDIRECTION => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SDIRECTION));
+ RORDERS(RORDERS.LAST) := TDG_ORDER_MAKE(SNAME => PKG_XPATH.VALUE(RNODE => XNODE, SPATTERN => SRQ_TAG_SNAME),
+ SDIRECTION => PKG_XPATH.VALUE(RNODE => XNODE,
+ SPATTERN => SRQ_TAG_SDIRECTION));
end loop;
/* Освободим документ */
PKG_XPATH.FREE(RDOCUMENT => XDOC);
@@ -1827,13 +1843,13 @@ text="Формат data_grid и gant как в chart"
/* Вернем ошибку */
PKG_STATE.DIAGNOSTICS_STACKED();
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
- end TORDERS_FROM_XML;
+ end TDG_ORDERS_FROM_XML;
/* Применение параметров сортировки в запросе */
- procedure TORDERS_SET_QUERY
+ procedure TDG_ORDERS_SET_QUERY
(
- RDATA_GRID in TDATA_GRID, -- Описание таблицы
- RORDERS in TORDERS, -- Коллекция сортировок
+ RDATA_GRID in TDG, -- Описание таблицы
+ RORDERS in TDG_ORDERS, -- Коллекция сортировок
SPATTERN in varchar2, -- Шаблон для подстановки условий отбора в запрос
CSQL in out nocopy clob -- Буфер запроса
)
@@ -1846,7 +1862,7 @@ text="Формат data_grid и gant как в chart"
for I in RORDERS.FIRST .. RORDERS.LAST
loop
/* Перед добавлением в запрос - обязательная проверка, чтобы избежать SQL-инъекций */
- if ((TCOL_DEFS_FIND(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, SNAME => RORDERS(I).SNAME).SNAME is not null) and
+ if ((TDG_COL_DEFS_FIND(RCOL_DEFS => RDATA_GRID.RCOL_DEFS, SNAME => RORDERS(I).SNAME).SNAME is not null) and
(RORDERS(I).SDIRECTION in (SORDER_DIRECTION_ASC, SORDER_DIRECTION_DESC))) then
CSQL_ORDERS := CSQL_ORDERS || RORDERS(I).SNAME || ' ' || RORDERS(I).SDIRECTION;
if (I < RORDERS.LAST) then
@@ -1856,7 +1872,7 @@ text="Формат data_grid и gant как в chart"
end loop;
end if;
CSQL := replace(CSQL, SPATTERN, CSQL_ORDERS);
- end TORDERS_SET_QUERY;
+ end TDG_ORDERS_SET_QUERY;
/* Проверка корректности наименования дополнительного атрибута задачи диаграммы Ганта */
procedure TGANTT_TASK_ATTR_NAME_CHECK
@@ -2039,7 +2055,7 @@ text="Формат data_grid и gant как в chart"
for I in RTASKS.FIRST .. RTASKS.LAST
loop
/* Открываем строку */
- PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XGANTT_TASKS);
+ PKG_XFAST.DOWN_NODE(SNAME => SRESP_ATTR_TASKS);
/* Статические тарибуты */
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_ID, SVALUE => 'taskId' || RTASKS(I).NRN);
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_RN, NVALUE => RTASKS(I).NRN);
@@ -2211,8 +2227,6 @@ text="Формат data_grid и gant как в chart"
)
is
begin
- /* Открываем описание заголовка */
- PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XGANTT_DEF);
/* Cтатические атрибуты заголовка */
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_TITLE, SVALUE => RGANTT.STITLE);
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_ZOOM, NVALUE => RGANTT.NZOOM);
@@ -2257,8 +2271,6 @@ text="Формат data_grid и gant как в chart"
PKG_XFAST.UP();
end loop;
end if;
- /* Закрываем описание заголовка */
- PKG_XFAST.UP();
end TGANTT_DEF_TO_XML;
/* Сериализация диаграммы Ганта */
@@ -2274,12 +2286,16 @@ text="Формат data_grid и gant как в chart"
PKG_XFAST.PROLOGUE(ITYPE => PKG_XFAST.CONTENT_);
/* Открываем корень */
PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XDATA);
+ /* Открываем диаграмму Ганта */
+ PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XGANTT);
/* Если необходимо включить описание колонок */
if (NINCLUDE_DEF = 1) then
TGANTT_DEF_TO_XML(RGANTT => RGANTT);
end if;
/* Формируем описание задач */
TGANTT_TASKS_TO_XML(RTASKS => RGANTT.RTASKS);
+ /* Закрываем диаграмму Ганта */
+ PKG_XFAST.UP();
/* Закрываем корень */
PKG_XFAST.UP();
/* Сериализуем */
@@ -2602,29 +2618,6 @@ text="Формат data_grid и gant как в chart"
RCOLUMNS(RCOLUMNS.LAST) := TCYCLOGRAM_COLUMN_MAKE(SNAME => SNAME, NSTART => NSTART, NEND => NEND);
end TCYCLOGRAM_COLUMNS_ADD;
- /* Сериализация описания колонок циклограммы */
- procedure TCYCLOGRAM_COLUMNS_TO_XML
- (
- RCYCLOGRAM_COLUMNS in TCYCLOGRAM_COLUMNS -- Описание колонок циклограммы
- )
- is
- begin
- /* Обходим колонки из коллекции */
- if ((RCYCLOGRAM_COLUMNS is not null) and (RCYCLOGRAM_COLUMNS.COUNT > 0)) then
- for I in RCYCLOGRAM_COLUMNS.FIRST .. RCYCLOGRAM_COLUMNS.LAST
- loop
- /* Открываем описание колонки */
- PKG_XFAST.DOWN_NODE(SNAME => SRESP_TAG_XCOLUMNS_DEF);
- /* Атрибуты колонки */
- PKG_XFAST.ATTR(SNAME => SRESP_ATTR_NAME, SVALUE => RCYCLOGRAM_COLUMNS(I).SNAME);
- PKG_XFAST.ATTR(SNAME => SRESP_ATTR_START, NVALUE => RCYCLOGRAM_COLUMNS(I).NSTART);
- PKG_XFAST.ATTR(SNAME => SRESP_ATTR_END, NVALUE => RCYCLOGRAM_COLUMNS(I).NEND);
- /* Закрываем описание колонки */
- PKG_XFAST.UP();
- end loop;
- end if;
- end TCYCLOGRAM_COLUMNS_TO_XML;
-
/* Формирование группы циклограммы */
function TCYCLOGRAM_GROUP_MAKE
(