diff --git a/db/PKG_P8PANELS_PROJECTS.pck b/db/PKG_P8PANELS_PROJECTS.pck index 39083ec..8bcc0f1 100644 --- a/db/PKG_P8PANELS_PROJECTS.pck +++ b/db/PKG_P8PANELS_PROJECTS.pck @@ -4570,7 +4570,7 @@ text="Проверить, что для расчётных полей дата- end if; /* Инициализируем диаграмму Ганта */ RG := PKG_P8PANELS_VISUAL.TGANTT_MAKE(STITLE => STITLE, - NZOOM => PKG_P8PANELS_VISUAL.NGANTT_ZOOM_MONTH, + NZOOM => PKG_P8PANELS_VISUAL.NGANTT_ZOOM_MONTH, BREAD_ONLY_DATES => BREAD_ONLY_DATES, BREAD_ONLY_PROGRESS => true); /* Добавим динамические атрибуты к задачам */ @@ -4637,8 +4637,8 @@ text="Проверить, что для расчётных полей дата- end if; /* Определимся с форматированием */ if (C.STAGE = 1) then - /* Этапы всегда одинаково красим */ - STASK_BG_COLOR := SBG_COLOR_STAGE; + /* Этапы всегда одинаково красим */ + STASK_BG_COLOR := SBG_COLOR_STAGE; else /* Сбросим цвета от предыдущей работы (на всякий случай) */ STASK_BG_COLOR := null; @@ -4717,6 +4717,11 @@ text="Проверить, что для расчётных полей дата- /* Добавляем работу в диаграмму */ PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK(RGANTT => RG, RTASK => RGT); end loop; + /* Проверим, что есть хоть что-то для отображения */ + if (RG.RTASKS.COUNT = 0) then + P_EXCEPTION(0, + 'Для проекта не определены этапы/работы, отображение которых допустимо в диаграмме (убедитесь, что для них в учётных данных заданы плановые даты начала/окончания).'); + end if; /* Формируем список */ COUT := PKG_P8PANELS_VISUAL.TGANTT_TO_XML(RGANTT => RG, NINCLUDE_DEF => NINCLUDE_DEF); end JB_JOBS_LIST; @@ -5819,7 +5824,14 @@ text="Проверить, что для расчётных полей дата- end loop; end loop; /* Обходим работы проекта ещё раз, для наполнения списка предшествующих в буфере балансировки */ - for PJ in (select J.RN NRN from PROJECTJOB J where J.PRN = PRJ.NRN) + for PJ in (select J.RN NRN + from PROJECTJOB J + where J.PRN = PRJ.NRN + and exists (select null + from P8PNL_JB_JOBS JB + where JB.IDENT = NIDENT + and JB.STAGE = 0 + and JB.SOURCE = J.RN)) loop RH_JB_JOBS := JB_JOBS_GET_BY_SOURCE(NIDENT => NIDENT, NPRN => NJB_PRJCTS, NSOURCE => PJ.NRN); /* Помещаем предшествующие работы в буфер балансировки */