Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

이 글에서는 Oracle® XML Publisher 보고서에 차트를 추가하는 방법을 단계별로 소개합니다.

보고서의 데이터는 대부분 표 형태로 제공되지만, 차트를 활용하면 데이터를 시각적으로 표현할 수 있어 내용을 훨씬 더 직관적으로 전달할 수 있습니다.

예를 들어 다음과 같은 보고서에는 그래프가 큰 도움이 됩니다.

  • 주문 관리(OM) 데이터를 기반으로 한 고객별 판매 이력
  • 일자별 실패, 완료, 경고와 함께 완료된 요청 건수 추이

차트 유형

XML Publisher에서 사용할 수 있는 대표적인 차트 유형은 다음과 같습니다.

  • 막대 차트(가로 또는 세로): X축과 Y축을 기준으로 데이터를 막대 형태로 표현합니다.
  • 선 차트: 시간 흐름에 따른 데이터를 나타낼 때 주로 사용합니다.
  • 원형(파이) 차트: 데이터를 원 그래프 형태로 표현하며, 비율 데이터에 적합합니다.

막대 차트 만들기

먼저 예시로 사용할 XML 데이터 파일입니다.

<main>
   <DATA_RECORD>
     <STATUS>Normal</STATUS>
     <REQ_COUNT>210</REQ_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
     <STATUS>Warning</STATUS>
     <REQ_COUNT>30</REQ_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
     <STATUS>Error</STATUS>
     <REQ_COUNT>60</REQ_COUNT>
   </DATA_RECORD>
</main>

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

rtf 템플릿에서 XML Publisher 애드인(add-in)을 통해 차트 유형의 개체를 삽입합니다.

Advanced 탭을 클릭한 뒤 아래 코드를 붙여 넣습니다.

<Graph graphType = "BAR_VERT_CLUST">
  <Title text="Concurrent Request Status 5-DEC-2019" visible="true" horizontalAlignment="CENTER"/>
  <O1Title text="Request Status" visible="true"/>
  <Y1Title text="Number of Requests" visible="true"/>
  <LocalGridData colCount="{count(//DATA_RECORD)}" rowCount="1">
     <RowLabels>
        <Label>Request Count</Label>
     </RowLabels>
     <ColLabels>
       <xsl:for-each select="//DATA_RECORD">
         <Label>
           <xsl:value-of select="STATUS"/>
         </Label>
       </xsl:for-each>
     </ColLabels>
     <DataValues>
       <RowData>
          <xsl:for-each select="//DATA_RECORD">
            <Cell>
               <xsl:value-of select="REQ_COUNT"/>
            </Cell>
          </xsl:for-each>
       </RowData>
     </DataValues>
  </LocalGridData>
</Graph>

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

이렇게 하면 템플릿에 임시 차트 이미지가 생성됩니다. 이 이미지의 크기를 조절하여 최종 출력물에서 원하는 차트 크기를 지정할 수 있습니다.

막대 차트 XML 코드 설명

코드를 한 줄씩 살펴보겠습니다.

<Graph graphType = "BAR_VERT_CLUST">

이 부분은 그래프 유형을 BAR_VERT_CLUST, 즉 세로 클러스터 형식의 막대 차트로 지정합니다.

<Title text="Concurrent Request Status 5-DEC-2019" visible="true" horizontalAlignment="CENTER"/>

이 줄은 차트 제목과 정렬 방식을 정의합니다. XML 태그를 활용하면 동적 제목도 설정할 수 있습니다.

<O1Title text="Request Status" visible="true"/>
<Y1Title text="Number of Requests" visible="true"/>

이 두 줄은 막대 차트의 X축과 Y축 이름을 지정합니다.

<LocalGridData colCount="{count(//DATA_RECORD)}" rowCount="1">

이 부분은 차트의 행과 열 개수를 정의합니다.

예제에서는 colCount="{count(//DATA_RECORD)}"로 설정했는데, XML 데이터 파일에 DATA_RECORD 항목이 세 개 있으므로 차트에는 세 개의 열이 생성됩니다.

rowCount="1"은 막대 차트의 행 개수를 나타냅니다.

<RowLabels>
   <Label>Request Count</Label>
</RowLabels>

이 부분은 행 레이블을 정적 또는 동적으로 정의합니다. 여기서는 Request Count라는 고정 레이블을 사용했습니다.

<ColLabels>
   <xsl:for-each select="//DATA_RECORD">
      <Label>
         <xsl:value-of select="STATUS"/>
      </Label>
   </xsl:for-each>
</ColLabels>

이 부분은 열 레이블을 정의합니다. XML 데이터 파일의 STATUS 태그 값을 기반으로 동적인 열 레이블을 사용할 수 있습니다.

<DataValues>
   <RowData>
      <xsl:for-each select="//DATA_RECORD">
        <Cell>
           <xsl:value-of select="REQ_COUNT"/>
        </Cell>
      </xsl:for-each>
   </RowData>
</DataValues>

이 부분은 차트에 표시될 데이터 값을 참조합니다. 생성되는 막대의 크기는 XML 데이터 파일의 REQ_COUNT 태그 값에 비례합니다.

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

원형(파이) 차트 만들기

예시 XML 데이터 파일은 막대 차트와 동일하게 사용합니다.

<main>
   <DATA_RECORD>
     <STATUS>Normal</STATUS>
     <REQ_COUNT>210</REQ_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
     <STATUS>Warning</STATUS>
     <REQ_COUNT>30</REQ_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
     <STATUS>Error</STATUS>
     <REQ_COUNT>60</REQ_COUNT>
   </DATA_RECORD>
</main>

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

rtf 템플릿에서 Publisher 애드인을 통해 차트 유형의 개체를 삽입합니다.

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

Advanced 탭을 클릭하고 아래 코드를 붙여 넣습니다.

<Graph graphType="PIE">
   <Title text="Concurrent Request Status 5-DEC-2019" 
   visible="true" horizontalAlignment="LEFT" />
   <LocalGridData rowCount="{count(//DATA_RECORD)}" colCount="1">
      <RowLabels>
         <xsl:for-each select="//DATA_RECORD">
            <Label>
               <xsl:value-of select="STATUS" />
            </Label>
         </xsl:for-each>
      </RowLabels>
      <DataValues>
         <xsl:for-each select="//DATA_RECORD">
            <RowData>
              <Cell>
                 <xsl:value-of select="REQ_COUNT"/>
              </Cell>
            </RowData>
         </xsl:for-each>
      </DataValues>
   </LocalGridData>
</Graph>

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

원형 차트 XML 코드 설명

코드를 한 줄씩 살펴보겠습니다.

<Graph graphType="PIE">

이 부분은 그래프 유형을 PIE, 즉 원형 차트 형식으로 지정합니다.

<LocalGridData rowCount="{count(//DATA_RECORD)}" colCount="1">

이 부분은 차트의 행과 열 개수를 정의합니다.

예제에서 rowCount="{count(//DATA_RECORD)}"로 설정했는데, XML 데이터 파일에 DATA_RECORD 항목이 세 개 있으므로 원 안에 세 개의 조각이 표시됩니다.

<RowLabels>
   <xsl:for-each select="//DATA_RECORD">
      <Label>
         <xsl:value-of select="STATUS" />
      </Label>
   </xsl:for-each>
</RowLabels>

이 부분은 행 레이블을 정적 또는 동적으로 정의합니다. XML 데이터 파일의 STATUS 태그 값을 기반으로 행 레이블을 구성할 수 있습니다.

<DataValues>
   <RowData>
      <xsl:for-each select="//DATA_RECORD">
         <Cell>
            <xsl:value-of select="REQ_COUNT"/>
         </Cell>
      </xsl:for-each>
   </RowData>
</DataValues>

이 부분은 차트의 데이터 값을 참조하여, REQ_COUNT 태그 값에 비례하는 크기의 파이 조각을 생성합니다. 각 값은 전체 합계에서 차지하는 비율을 나타냅니다.

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

선 차트 만들기

선 차트는 일반적으로 시간 순서에 따른 데이터를 표현할 때 사용합니다.

예시 XML 데이터 파일입니다.

<main>
   <DATA_RECORD>
      <YEAR>2011</YEAR><ORDER_COUNT>6797</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2012</YEAR><ORDER_COUNT>6686</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2013</YEAR><ORDER_COUNT>6851</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2014</YEAR><ORDER_COUNT>7065</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2015</YEAR><ORDER_COUNT>6421</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2016</YEAR><ORDER_COUNT>6816</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2017</YEAR><ORDER_COUNT>9426</ORDER_COUNT>
   </DATA_RECORD>
   <DATA_RECORD>
      <YEAR>2018</YEAR><ORDER_COUNT>9008</ORDER_COUNT>
   </DATA_RECORD>
</main>

rtf 템플릿에서 XML Publisher 애드인을 통해 차트 유형의 개체를 삽입합니다.

Advanced 탭을 클릭하고 아래 코드를 붙여 넣습니다.

<Graph graphType="LINE_VERT_ABS">
   <Title text="Cutomer Orders Yearwise" visible="true" horizontalAlignment="CENTER" />
   <O1Title text="Year" visible="true" />
   <Y1Title text="Number of Orders" visible="true" />
   <LocalGridData colCount="{count(//DATA_RECORD)}" rowCount="1">
      <RowLabels>
         <Label>Order Count</Label>
      </RowLabels>
      <ColLabels>
         <xsl:for-each select="//DATA_RECORD">
            <Label>
               <xsl:value-of select="YEAR" />
            </Label>
         </xsl:for-each>
      </ColLabels>
      <DataValues>
         <RowData>
            <xsl:for-each select="//DATA_RECORD">
               <Cell>
                  <xsl:value-of select="ORDER_COUNT" />
               </Cell>
            </xsl:for-each>
         </RowData>
      </DataValues>
   </LocalGridData>
</Graph>

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

이렇게 하면 템플릿에 임시 차트 이미지가 생성됩니다. 이 이미지를 사용해 출력물에서 원하는 차트 크기를 조정하면 됩니다.

선 차트 XML 코드 설명

코드를 한 줄씩 살펴보겠습니다.

<Graph graphType="LINE_VERT_ABS">

이 부분은 그래프 유형을 LINE_VERT_ABS, 즉 선 차트로 지정합니다.

나머지 태그의 구조와 의미는 막대(BAR) 유형 차트와 동일합니다.

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

Oracle XML Publisher로 차트 만들기: 막대·원형·선 그래프 완벽 가이드

차트의 활용 분야

Oracle 환경에서 차트는 분석 관련 보고서에 특히 유용합니다. 모든 XML Publisher 보고서에서 이 기능을 자유롭게 활용할 수 있습니다.

결론

차트는 읽기 쉬울 뿐만 아니라 최종 사용자에게 데이터를 더 명확하게 전달합니다. 대용량 데이터 집합을 다룰 때는 데이터를 먼저 구체화된 뷰(materialized view)로 요약한 뒤, 이 뷰를 활용해 XML Publisher로 보고서를 작성하면 됩니다. 이렇게 하면 비싼 서드파티 도구 없이도 효율적인 보고서 작성이 가능합니다.

궁금한 점이나 의견이 있다면 피드백 탭을 이용해 주세요.

전문가의 관리 및 구성 서비스로 환경 최적화하기

Rackspace의 애플리케이션 서비스 (RAS) 전문가들은 폭넓은 애플리케이션 포트폴리오 전반에서 다음과 같은 전문 및 관리형 서비스를 제공합니다.

  • e커머스 및 디지털 경험 플랫폼
  • 엔터프라이즈 리소스 플래닝(ERP)
  • 비즈니스 인텔리전스
  • Salesforce 고객 관계 관리(CRM)
  • 데이터베이스
  • 이메일 호스팅 및 생산성 솔루션

Rackspace가 제공하는 것:

  • 편향 없는 전문성: 즉각적인 가치를 창출하는 역량에 초점을 맞춰 현대화 여정을 간소화하고 안내합니다.
  • Fanatical Experience™: 프로세스 우선, 기술 차후(Process first. Technology second.®) 접근 방식과 전담 기술 지원을 결합해 종합적인 솔루션을 제공합니다.
  • 타의 추종을 불허하는 포트폴리오: 풍부한 클라우드 경험을 바탕으로 적합한 기술을 올바른 클라우드에 선택하고 배포할 수 있도록 돕습니다.
  • 애자일한 서비스 제공: 고객의 여정 단계에 맞춰 함께하며, 우리의 성공을 고객의 성공과 연결합니다.

지금 바로 채팅으로 시작해 보세요.