在 oracle apex 22.2 中创建甘特图时出现奇怪的行为

问题描述 投票:0回答:1

我必须为我正在从事的项目创建这个甘特图。这是当前活动项目下的任务及其进度的时间表。但是,我遇到了一些奇怪的行为,我不知道如何解决。

首先,我像这样构建查询

--Projects info
SELECT
  PRO.PROYECTO_ID         task_id,
  NULL                    parent_task_id,
  PRO.NOMBRE              nombre_proyecto,
  PRO.NOMBRE              task_name,
  NULL                    start_date,
  NULL                    end_date,
  NULL                    task_progress
FROM
  PROYECTOS PRO
WHERE
  PRO.ACTIVO = 'Y'
AND EXISTS (SELECT 1
            FROM TAREAS T
           WHERE T.PROYECTO_ID = PRO.PROYECTO_ID
             AND T.AVANCE != 100
             AND ((T.FECHA_DESDE BETWEEN :P78_MIN_DATE AND T.FECHA_HASTA)
                  OR (T.FECHA_HASTA BETWEEN :P78_MIN_DATE AND :P78_MAX_DATE)
                  OR (T.FECHA_DESDE < :P78_MIN_DATE AND T.FECHA_HASTA > :P78_MAX_DATE))
         )
UNION ALL
-- tasks info
SELECT
  TAR.TAREA_ID                    task_id,
  PRO.PROYECTO_ID                 parent_task_id,
  PRO.NOMBRE                      nombre_proyecto,
  TAR.NOMBRE                      task_name,
  TAR.FECHA_DESDE                 start_date,
  TAR.FECHA_HASTA                 end_date,
  TAR.AVANCE                      task_progress
FROM
       PROYECTOS PRO
JOIN TAREAS TAR ON TAR.PROYECTO_ID = PRO.PROYECTO_ID
WHERE
  PRO.ACTIVO = 'Y'

但是,这里发生了一些不希望的事情,正如您在“Extenciones salta”中看到的,某些项目正在显示不在正在处理的日期范围内的任务,那么简单的解决方案只需将项目查询中的相同范围添加到任务查询中即可,对吧?所以我的查询最终是这样的

--Projects info
SELECT
  PRO.PROYECTO_ID         task_id,
  NULL                    parent_task_id,
  PRO.NOMBRE              nombre_proyecto,
  PRO.NOMBRE              task_name,
  NULL                    start_date,
  NULL                    end_date,
  NULL                    task_progress
FROM
  PROYECTOS PRO
WHERE
  PRO.ACTIVO = 'Y'
AND EXISTS (SELECT 1
            FROM TAREAS T
           WHERE T.PROYECTO_ID = PRO.PROYECTO_ID
             AND T.AVANCE != 100
             AND ((T.FECHA_DESDE BETWEEN :P78_MIN_DATE AND T.FECHA_HASTA)
                  OR (T.FECHA_HASTA BETWEEN :P78_MIN_DATE AND :P78_MAX_DATE)
                  OR (T.FECHA_DESDE < :P78_MIN_DATE AND T.FECHA_HASTA > :P78_MAX_DATE))
         )
UNION ALL
-- tasks info
SELECT
  TAR.TAREA_ID                    task_id,
  PRO.PROYECTO_ID                 parent_task_id,
  PRO.NOMBRE                      nombre_proyecto,
  TAR.NOMBRE                      task_name,
  TAR.FECHA_DESDE                 start_date,
  TAR.FECHA_HASTA                 end_date,
  TAR.AVANCE                      task_progress
FROM
       PROYECTOS PRO
JOIN TAREAS TAR ON TAR.PROYECTO_ID = PRO.PROYECTO_ID
WHERE
  PRO.ACTIVO = 'Y'
AND EXISTS (SELECT 1
            FROM TAREAS T
           WHERE T.TAREA_ID = TAR.TAREA_ID
             AND T.AVANCE != 100
             AND ((T.FECHA_DESDE BETWEEN :P78_MIN_DATE AND T.FECHA_HASTA)
                  OR (T.FECHA_HASTA BETWEEN :P78_MIN_DATE AND :P78_MAX_DATE)
                  OR (T.FECHA_DESDE < :P78_MIN_DATE AND T.FECHA_HASTA > :P78_MAX_DATE))
         )

这就是出现大问题的地方,现在当我运行页面时,它看起来像

正如您所看到的,由于某种原因整个图表呈灰色,数据仍然存在并且查询工作正常(不在该月的任务不会显示),如果我将鼠标悬停在线条上,它仍然存在给我他们的工具提示。

如果我删除或注释查询的日期过滤器部分,图表将恢复正常。

我还发现,当我在查询的第二部分添加任何条件作为 AND 时,会发生这种情况,它不限于日期验证。

我也尝试过从这些查询中创建视图并从中执行 select * ,但这产生了相同的结果。

我真的迷失了方向,甚至不知道从哪里开始排除故障。非常感谢任何帮助

Apex版本是22.2

预先感谢您花时间阅读本文。

致以最诚挚的问候。马图特里夫

plsql charts oracle-apex apex anychart
1个回答
0
投票

oracle 论坛上有人帮我解决了这个问题。如果有人遇到同样的问题,解决方案是关闭该区域的两个动画属性。

© www.soinside.com 2019 - 2024. All rights reserved.