forked from CITKParus/P8-Panels
БД: P8PGantt - управление видимостью атрибута задачи
This commit is contained in:
parent
75f05bfaae
commit
30c75fb079
@ -11,7 +11,9 @@ create table P8PNL_SMPL_GANTT
|
|||||||
NAME varchar2(200) not null, -- Наименование задачи
|
NAME varchar2(200) not null, -- Наименование задачи
|
||||||
DATE_FROM date not null, -- Дата начала задачи
|
DATE_FROM date not null, -- Дата начала задачи
|
||||||
DATE_TO date not null, -- Дата окончания задачи
|
DATE_TO date not null, -- Дата окончания задачи
|
||||||
|
STATE number(1) not null, -- Состояние задачи (0 - не выполняется, 1 - выполняется)
|
||||||
constraint C_P8PNL_SMPL_GANTT_RN_PK primary key (RN),
|
constraint C_P8PNL_SMPL_GANTT_RN_PK primary key (RN),
|
||||||
constraint C_P8PNL_SMPL_GANTT_VAL check (TYPE in (0, 1)),
|
constraint C_P8PNL_SMPL_GANTT_TP_VAL check (TYPE in (0, 1)),
|
||||||
|
constraint C_P8PNL_SMPL_GANTT_ST_VAL check (STATE in (0, 1)),
|
||||||
constraint C_P8PNL_SMPL_GANTT_UN unique (IDENT, NUMB)
|
constraint C_P8PNL_SMPL_GANTT_UN unique (IDENT, NUMB)
|
||||||
);
|
);
|
||||||
|
@ -456,15 +456,16 @@ create or replace package body PKG_P8PANELS_SAMPLES as
|
|||||||
SNUMB in varchar2, -- Номер задачи
|
SNUMB in varchar2, -- Номер задачи
|
||||||
SNAME in varchar2, -- Наименование задачи
|
SNAME in varchar2, -- Наименование задачи
|
||||||
DDATE_FROM in date, -- Дата начала задачи
|
DDATE_FROM in date, -- Дата начала задачи
|
||||||
DDATE_TO in date -- Дата окончания задачи
|
DDATE_TO in date, -- Дата окончания задачи
|
||||||
|
NSTATE in number -- Состояние (0 - не выполняется, 1 - выполняется)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
begin
|
begin
|
||||||
/* Добавим запись */
|
/* Добавим запись */
|
||||||
insert into P8PNL_SMPL_GANTT
|
insert into P8PNL_SMPL_GANTT
|
||||||
(RN, IDENT, type, NUMB, name, DATE_FROM, DATE_TO)
|
(RN, IDENT, type, NUMB, name, DATE_FROM, DATE_TO, STATE)
|
||||||
values
|
values
|
||||||
(GEN_ID(), NIDENT, NTYPE, SNUMB, SNAME, DDATE_FROM, DDATE_TO);
|
(GEN_ID(), NIDENT, NTYPE, SNUMB, SNAME, DDATE_FROM, DDATE_TO, NSTATE);
|
||||||
end GANTT_BASE_INSERT;
|
end GANTT_BASE_INSERT;
|
||||||
|
|
||||||
/* Исправление данных в буфере диаграммы Ганта */
|
/* Исправление данных в буфере диаграммы Ганта */
|
||||||
@ -503,6 +504,10 @@ create or replace package body PKG_P8PANELS_SAMPLES as
|
|||||||
NYEAR PKG_STD.TNUMBER; -- Текущий год
|
NYEAR PKG_STD.TNUMBER; -- Текущий год
|
||||||
NMONTH PKG_STD.TNUMBER; -- Месяц начала этапа
|
NMONTH PKG_STD.TNUMBER; -- Месяц начала этапа
|
||||||
DDATE_FROM PKG_STD.TLDATE; -- Дата начала этапа
|
DDATE_FROM PKG_STD.TLDATE; -- Дата начала этапа
|
||||||
|
DDATE_TO PKG_STD.TLDATE; -- Дата окончания этапа
|
||||||
|
DDATE_FROM_J PKG_STD.TLDATE; -- Дата начала работы
|
||||||
|
DDATE_TO_J PKG_STD.TLDATE; -- Дата окончания работы
|
||||||
|
NSTATE PKG_STD.TNUMBER; -- Состояние задачи
|
||||||
begin
|
begin
|
||||||
/* Удаляем старые данные из буфера */
|
/* Удаляем старые данные из буфера */
|
||||||
if (NIDENT is not null) then
|
if (NIDENT is not null) then
|
||||||
@ -519,23 +524,41 @@ create or replace package body PKG_P8PANELS_SAMPLES as
|
|||||||
/* Сформируем период этапа */
|
/* Сформируем период этапа */
|
||||||
NMONTH := ST * NSTAGE_LEN - NSTAGE_LEN + 1;
|
NMONTH := ST * NSTAGE_LEN - NSTAGE_LEN + 1;
|
||||||
DDATE_FROM := TO_DATE('01.' || NMONTH || '.' || TO_CHAR(NYEAR), 'dd.mm.yyyy');
|
DDATE_FROM := TO_DATE('01.' || NMONTH || '.' || TO_CHAR(NYEAR), 'dd.mm.yyyy');
|
||||||
|
DDATE_TO := LAST_DAY(ADD_MONTHS(DDATE_FROM, NSTAGE_LEN) - 1);
|
||||||
|
/* Сформируем значение для атриуба "состояние" этапа */
|
||||||
|
if (TRUNC(sysdate) between TRUNC(DDATE_FROM) and TRUNC(DDATE_TO)) then
|
||||||
|
NSTATE := 1;
|
||||||
|
else
|
||||||
|
NSTATE := 0;
|
||||||
|
end if;
|
||||||
/* Добавим его в буфер */
|
/* Добавим его в буфер */
|
||||||
GANTT_BASE_INSERT(NIDENT => NIDENT,
|
GANTT_BASE_INSERT(NIDENT => NIDENT,
|
||||||
NTYPE => 0,
|
NTYPE => 0,
|
||||||
SNUMB => TO_CHAR(ST),
|
SNUMB => TO_CHAR(ST),
|
||||||
SNAME => 'Этап ' || TO_CHAR(ST),
|
SNAME => 'Этап ' || TO_CHAR(ST),
|
||||||
DDATE_FROM => DDATE_FROM,
|
DDATE_FROM => DDATE_FROM,
|
||||||
DDATE_TO => LAST_DAY(ADD_MONTHS(DDATE_FROM, NSTAGE_LEN) - 1));
|
DDATE_TO => DDATE_TO,
|
||||||
|
NSTATE => NSTATE);
|
||||||
/* Работы */
|
/* Работы */
|
||||||
for J in 0 .. NSTAGE_LEN - 1
|
for J in 0 .. NSTAGE_LEN - 1
|
||||||
loop
|
loop
|
||||||
|
/* Сформируем период работы */
|
||||||
|
DDATE_FROM_J := ADD_MONTHS(DDATE_FROM, J);
|
||||||
|
DDATE_TO_J := LAST_DAY(ADD_MONTHS(DDATE_FROM, J + 1) - 1);
|
||||||
|
/* Сформируем значение для атриуба "состояние" работы */
|
||||||
|
if (TRUNC(sysdate) between TRUNC(DDATE_FROM_J) and TRUNC(DDATE_TO_J)) then
|
||||||
|
NSTATE := 1;
|
||||||
|
else
|
||||||
|
NSTATE := 0;
|
||||||
|
end if;
|
||||||
/* Добавим в буфер */
|
/* Добавим в буфер */
|
||||||
GANTT_BASE_INSERT(NIDENT => NIDENT,
|
GANTT_BASE_INSERT(NIDENT => NIDENT,
|
||||||
NTYPE => 1,
|
NTYPE => 1,
|
||||||
SNUMB => TO_CHAR(ST) || '.' || TO_CHAR(J + 1),
|
SNUMB => TO_CHAR(ST) || '.' || TO_CHAR(J + 1),
|
||||||
SNAME => 'Работа ' || TO_CHAR(J + 1) || ' этапа ' || TO_CHAR(ST),
|
SNAME => 'Работа ' || TO_CHAR(J + 1) || ' этапа ' || TO_CHAR(ST),
|
||||||
DDATE_FROM => ADD_MONTHS(DDATE_FROM, J),
|
DDATE_FROM => DDATE_FROM_J,
|
||||||
DDATE_TO => LAST_DAY(ADD_MONTHS(DDATE_FROM, J + 1) - 1));
|
DDATE_TO => DDATE_TO_J,
|
||||||
|
NSTATE => NSTATE);
|
||||||
end loop;
|
end loop;
|
||||||
end loop;
|
end loop;
|
||||||
end GANTT_INIT;
|
end GANTT_INIT;
|
||||||
@ -559,7 +582,11 @@ create or replace package body PKG_P8PANELS_SAMPLES as
|
|||||||
RG := PKG_P8PANELS_VISUAL.TGANTT_MAKE(STITLE => 'Задачи на ' || TO_CHAR(EXTRACT(year from sysdate)) || ' год',
|
RG := PKG_P8PANELS_VISUAL.TGANTT_MAKE(STITLE => 'Задачи на ' || TO_CHAR(EXTRACT(year from sysdate)) || ' год',
|
||||||
NZOOM => PKG_P8PANELS_VISUAL.NGANTT_ZOOM_MONTH);
|
NZOOM => PKG_P8PANELS_VISUAL.NGANTT_ZOOM_MONTH);
|
||||||
/* Добавим динамические атрибуты к задачам */
|
/* Добавим динамические атрибуты к задачам */
|
||||||
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK_ATTR(RGANTT => RG, SNAME => 'type', SCAPTION => 'Тип');
|
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK_ATTR(RGANTT => RG, SNAME => 'type', SCAPTION => 'Тип', BVISIBLE => true);
|
||||||
|
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK_ATTR(RGANTT => RG,
|
||||||
|
SNAME => 'state',
|
||||||
|
SCAPTION => 'Состояние',
|
||||||
|
BVISIBLE => false);
|
||||||
/* Добавим описание цветов задач */
|
/* Добавим описание цветов задач */
|
||||||
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK_COLOR(RGANTT => RG,
|
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK_COLOR(RGANTT => RG,
|
||||||
SBG_COLOR => SBG_COLOR_JOB,
|
SBG_COLOR => SBG_COLOR_JOB,
|
||||||
@ -589,6 +616,7 @@ create or replace package body PKG_P8PANELS_SAMPLES as
|
|||||||
SNAME => 'type',
|
SNAME => 'type',
|
||||||
SVALUE => C.TYPE,
|
SVALUE => C.TYPE,
|
||||||
BCLEAR => true);
|
BCLEAR => true);
|
||||||
|
PKG_P8PANELS_VISUAL.TGANTT_TASK_ADD_ATTR_VAL(RGANTT => RG, RTASK => RGT, SNAME => 'state', SVALUE => C.STATE);
|
||||||
/* Добавляем задачу в диаграмму */
|
/* Добавляем задачу в диаграмму */
|
||||||
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK(RGANTT => RG, RTASK => RGT);
|
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK(RGANTT => RG, RTASK => RGT);
|
||||||
end loop;
|
end loop;
|
||||||
|
@ -125,7 +125,8 @@ create or replace package PKG_P8PANELS_VISUAL as
|
|||||||
type TGANTT_TASK_ATTR is record
|
type TGANTT_TASK_ATTR is record
|
||||||
(
|
(
|
||||||
SNAME PKG_STD.TSTRING, -- Наименование
|
SNAME PKG_STD.TSTRING, -- Наименование
|
||||||
SCAPTION PKG_STD.TSTRING -- Заголовок
|
SCAPTION PKG_STD.TSTRING, -- Заголовок
|
||||||
|
BVISIBLE boolean -- Разрешить отображение
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Типы данных - коллекция описаний атрибутов задачи для диаграммы Ганта */
|
/* Типы данных - коллекция описаний атрибутов задачи для диаграммы Ганта */
|
||||||
@ -483,6 +484,7 @@ create or replace package PKG_P8PANELS_VISUAL as
|
|||||||
RGANTT in out nocopy TGANTT, -- Описание диаграммы Ганта
|
RGANTT in out nocopy TGANTT, -- Описание диаграммы Ганта
|
||||||
SNAME in varchar2, -- Наименование
|
SNAME in varchar2, -- Наименование
|
||||||
SCAPTION in varchar2, -- Заголовок
|
SCAPTION in varchar2, -- Заголовок
|
||||||
|
BVISIBLE boolean := true, -- Разрешить отображение
|
||||||
BCLEAR in boolean := false -- Флаг очистки коллекции атрибутов (false - не очищать, true - очистить коллекцию перед добавлением)
|
BCLEAR in boolean := false -- Флаг очистки коллекции атрибутов (false - не очищать, true - очистить коллекцию перед добавлением)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1897,6 +1899,7 @@ text="Формат data_grid и gant как в chart"
|
|||||||
RGANTT in out nocopy TGANTT, -- Описание диаграммы Ганта
|
RGANTT in out nocopy TGANTT, -- Описание диаграммы Ганта
|
||||||
SNAME in varchar2, -- Наименование
|
SNAME in varchar2, -- Наименование
|
||||||
SCAPTION in varchar2, -- Заголовок
|
SCAPTION in varchar2, -- Заголовок
|
||||||
|
BVISIBLE boolean := true, -- Разрешить отображение
|
||||||
BCLEAR in boolean := false -- Флаг очистки коллекции атрибутов (false - не очищать, true - очистить коллекцию перед добавлением)
|
BCLEAR in boolean := false -- Флаг очистки коллекции атрибутов (false - не очищать, true - очистить коллекцию перед добавлением)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
@ -1917,6 +1920,7 @@ text="Формат data_grid и gant как в chart"
|
|||||||
RGANTT.RTASK_ATTRS.EXTEND();
|
RGANTT.RTASK_ATTRS.EXTEND();
|
||||||
RGANTT.RTASK_ATTRS(RGANTT.RTASK_ATTRS.LAST).SNAME := SNAME;
|
RGANTT.RTASK_ATTRS(RGANTT.RTASK_ATTRS.LAST).SNAME := SNAME;
|
||||||
RGANTT.RTASK_ATTRS(RGANTT.RTASK_ATTRS.LAST).SCAPTION := SCAPTION;
|
RGANTT.RTASK_ATTRS(RGANTT.RTASK_ATTRS.LAST).SCAPTION := SCAPTION;
|
||||||
|
RGANTT.RTASK_ATTRS(RGANTT.RTASK_ATTRS.LAST).BVISIBLE := BVISIBLE;
|
||||||
end TGANTT_ADD_TASK_ATTR;
|
end TGANTT_ADD_TASK_ATTR;
|
||||||
|
|
||||||
/* Добавление описания цвета задачи диаграммы Ганта */
|
/* Добавление описания цвета задачи диаграммы Ганта */
|
||||||
@ -2001,6 +2005,7 @@ text="Формат data_grid и gant как в chart"
|
|||||||
/* Наполняем его атрибутами */
|
/* Наполняем его атрибутами */
|
||||||
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_NAME, SVALUE => RGANTT.RTASK_ATTRS(I).SNAME);
|
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_NAME, SVALUE => RGANTT.RTASK_ATTRS(I).SNAME);
|
||||||
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_CAPTION, SVALUE => RGANTT.RTASK_ATTRS(I).SCAPTION);
|
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_CAPTION, SVALUE => RGANTT.RTASK_ATTRS(I).SCAPTION);
|
||||||
|
PKG_XFAST.ATTR(SNAME => SRESP_ATTR_VISIBLE, BVALUE => RGANTT.RTASK_ATTRS(I).BVISIBLE);
|
||||||
/* Закрываем динамический атрибут задачи */
|
/* Закрываем динамический атрибут задачи */
|
||||||
PKG_XFAST.UP();
|
PKG_XFAST.UP();
|
||||||
end loop;
|
end loop;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user