OracleAPEX 피포트 디스플레이의 이름을 확인하십시오.

개요



Oracle APEX의 "Interactive Mode Report"의 피팟 기능을 사용하여
복수열을 행에 지정했을 때의 외형이 이마이치이므로, 그 표시 내용을 CSS를 사용해 바꾸었을 때의 메모.

환경


  • Oracle Database 12c
  • Oracle APEX 18.2

  • 하고 싶은 일


  • 아래 그림과 같이 그룹별 목표·실적의 집계값을 피팟을 사용하여 표시했을 때,
    이미지의 빨간색 테두리 부분의 문자를 표시하지 않기를 원했습니다.


  • 대응 내용


  • 문자의 색을 투명하게 하는 다음의 CSS 클래스를 페이지내에서 정의한다

  • .text-display-none {
      color: transparent;
    }
    

  • 방금 정의한 클래스를 데이터로 갖도록 추출할 쿼리에 열 추가
  • 문자의 색을 투명하게 하는 행만

  • 문자의 표시를 변경하고 싶은 열의 서식으로 방금 전 추가한 열을 class로서 설정하도록(듯이) 아래와 같이 기술한다
  • <span class="#STYLE#">#LABEL#</span>
    
  • 무사 문자가 사라지고 완성. 보기 쉽다!




  • 이번 샘플 데이터를 만들었을 때의 쿼리와 피팟에서의 설정을 올려 둡니다.
  • 피팟 설정
  • 샘플 데이터 쿼리
  • SELECT 
      BASE.LABEL,
      BASE.AGG_CATEGORY,
      BASE.YM_DATE,
      DECODE(VAL_1.VAL, NULL, VAL_2.VAL, VAL_1.VAL) VAL,
      STYLE.STYLE STYLE
    FROM 
      (
        SELECT
          *
        FROM (
          SELECT 
            CASE ROWNUM
              WHEN 1 THEN 'グループ1'
              WHEN 2 THEN 'グループ2'
              WHEN 3 THEN 'グループ3'
            END LABEL
          FROM DUAL CONNECT BY ROWNUM <= 3
        )
        CROSS JOIN (
          SELECT
            *
          FROM (
            SELECT 
              CASE ROWNUM
                WHEN 1 THEN '1.目標'
                WHEN 2 THEN '2.実績'
                WHEN 3 THEN '3.達成率(%)'
              END AGG_CATEGORY
            FROM DUAL CONNECT BY ROWNUM <= 3
          )
        )
        CROSS JOIN (
          SELECT
            TO_CHAR(TRUNC(ADD_MONTHS(A.YM_FROM, ROWNUM - 1),'MM'),'YYYYMM') AS YM_DATE
          FROM
          (
            SELECT
              TRUNC(TO_DATE('201801', 'YYYYMM'),'MM') AS YM_FROM,
              TRUNC(TO_DATE('201812', 'YYYYMM'),'MM') AS YM_TO
            FROM DUAL
          ) A
          CONNECT BY LEVEL <= MONTHS_BETWEEN (A.YM_TO , A.YM_FROM) + 1
        )
      ) BASE
      LEFT JOIN (
        SELECT
          1000000 VAL
        FROM DUAL
      ) VAL_1
      ON BASE.AGG_CATEGORY IN ('1.目標','2.実績')
      LEFT JOIN (
        SELECT
          100 VAL
        FROM DUAL
      ) VAL_2
      ON BASE.AGG_CATEGORY IN ('3.達成率(%)')
      LEFT JOIN (
        SELECT
          'text-display-none' STYLE
        FROM DUAL
      ) STYLE
      ON BASE.AGG_CATEGORY IN ('2.実績','3.達成率(%)')
    

    요약



    피포트 후의 정렬 순서에 의존해 버리기 때문에, 사용할 수 있는 장면은 한정되어 버린다고 생각하지만,
    어떻게든 표시를 바꿀 수 있었다.

    좋은 웹페이지 즐겨찾기