이력 리포트 차트는   그래프에 데이터를 설정해 해당 데이터들 분보, 시보, 일보, 월보, 년보 형태로 출력 하는 위젯입니다.


 사용자는 이력 리포트 차트 스크립트를 이용해 다음과 같은 작업을 할 수 있습니다.

  • 리포트 차트에 표시할 데이터 종류 (분보,시보,일보,월보,년보)를 설정해 해당 리포트 데이터를 불러 올수 있습니다.

 


  • 날짜 위젯과 조합해 이력 리포트 차트에 선택된 날짜의 데이터를 불러 올수 있습니다.

 


  • 그래프에 설정된 데이터의 이름을 변경해 하나의 그래프에 여러 데이터를 불러와 표시 할 수 있습니다.
  • 그래프에 출력된 데이터 값을 getGraphDate를 호출해 읽어 올수 있습니다.
  • 시작 날짜와 끝 날짜를 선택해 선택한 기간의 데이터를 표시합니다.

 

Methods

 아래 표의 스크립트 함수는 범용 데이터 차트와 기능이 동일함으로 [범용 데이터 차트] 기능을 참조 바랍니다.

리턴 값

함 수

설 명


addBarData( name, value )

차트에 바 그래프 데이터를 추가합니다.


addCurveData( name, value )

차트에 곡선 그래프의 데이터를 추가합니다.


addSeriesData( name, value )

차트에 라인 그래프의 데이터를 추가합니다.


connectGraphClicked( )

그래프 클릭시 클릭한 위치의 X,Y좌표와 X 값을 이벤트로 수신할수 있도록 클릭 이벤트를 활성화 합니다.


fitDataScale()

그래프 위에 표시되는 데이터에 기반하여 Y축 스케일을 자동 조정합니다.


locateMarker (xIndex)

xIndex 위치에 값 표시기를 그래프에 표시 합니다.


moveToY2Scale( name )

차트의 오른쪽 Y축을 사용할 그래프의 이름을 입력합니다.


setBarChartStyle( style )

차트에 바 그래프의 스타일을 설정합니다.


setBarColor( name, color )

차트에 바 그래프의 선 색상을 설정합니다.


setBarSampleColor (name, xIndex , color)

주어진 x위치에 바 색상을 변경 합니다.


setBarSpacing( width )

차트에 바 그래프의 간격을 설정합니다.


setDataVisible( index, visible )

그래프를 보이거나 감춥니다.


setLegendFontSize(fontSize)

범례의 글자크기를 설정합니다


setLineColor( name, color )

차트에 라인 그래프의 선 색상을 설정합니다.


setLineStyle( name, style )

차트에 라인 그래프의 선 스타일을 설정합니다.


setLineWidth( name, width )

차트에 라인 그래프의 선 굵기를 설정합니다.


setMarker( name, value, dir )

차트에 직선 형태의 마커를 설정합니다.


setMaxBarWidth ( width )

바 그래프의 최대 넓이를 설정 합니다. width 값이 0인 경우 최대 바 넓이는 자동으로 설정됩니다.


setY2Range( min, max, step )

차트에 오른쪽 Y축의 범위와 표시 간격을 설정합니다.


setYRange( min, max, step )

차트에 Y축의 범위와 표시 간격을 설정합니다.



 이력 리포트 차트에서 제공하는 기능은 아래 표와 같습니다.


리턴 값

함 수

설 명

list[float]

getGraphData( name )

그래프의 출력된 데이터 값을 읽어옵니다.


loadData( kind )

입력한 리포트 데이터를 불러옵니다. (분, 시간, 일, 월, 년 중 선택)


loadDataThisTime( year, month, day, hour )

입력한 날짜의 데이터를 읽어와 위젯에 출력합니다.


loadReport( syear, smonth, sday, shour, eyear, emonth, eday, ehour )

선택한 기간의 데이터를 불러옵니다. 검색 기간에 따라 자동으로 시,일,월,년 리포트중 하나를 선택해 불러옵니다.


loadReport( kind , syear, smonth, sday, shour, eyear, emonth, eday, ehour )

리포트 데이터를 지정해 선택 한 기간의 데이터를 불러 옵니다. 사용자는 시,일,월,년 리포트중 하나를 지정해 불러 올 수 있습니다.


replaceText( replacelist )

그래프의 설정 항목에서 설정한 데이터의 이름을 변경해 필요에 따라 하나의 그래프에 다른 데이터를 불러올때 사용합니다.



 

 loadDataThisTime( year:년, month:월, day:일, hour:시간 )

 

 입력한 날짜의 데이터를 불러와 위젯에 표시 합니다.


  • year : 데이터 날짜의 년도를 입력합니다.
  • month : 데이터 날짜의 월을 입력합니다.
  • day : 데이터 날짜의 일을 입력합니다.
  • hour : 데이터 날짜의 시간을 입력합니다.


 예)

# 날짜 위젯을 얻어옵니다.

d = canvas.getObject('dateWidget')  

# 이력 리포트 차트 위젯을 얻어옵니다.

chart = canvas.getObject('HistoryReportChart')  


# 날짜 위젯에 선택된 날짜를 읽어 이력 리포트 차트 위젯에 표시합니다.

chart.loadDataThisTime(d.getYear(),d.getMonth(),d.getDay(),0)


 



 

 loadData( kind:표시 이력 데이터 종류 )

 

 loadData 함수는 선택된 이력 데이터를 불러와서 이력 리포트 차트 위젯의 그래프에 표시합니다.


  • kind: 표시할 이력 데이터 종류를 입력합니다.
    • HistoryDataReportChartItem.Minute : 분 데이터
    • HistoryDataReportChartItem.Hour : 시간 데이터
    • HistoryDataReportChartItem.Day : 일 데이터
    • HistoryDataReportChartItem.Month : 월 데이터
    • HistoryDataReportChartItem.Year : 년 데이터


 예)

# 이력 리포트 차트 위젯을 얻어옵니다.

chart = canvas.getObject('HistoryReportChart')

# 분 데이터를 표시합니다.  

data = chart.loadData( chart.Minute )  

# 시 데이터를 표시합니다.

data = chart.loadData( chart.Hour )  



 

 list[float] getGraphData( name:데이터 이름 )

 

 그래프에 출력된 데이터 값을 읽어옵니다.


  • name : 이력 리포트 차트 위젯에 설정된 그래프 이름을 입력합니다.

 


 예)

# 이력 리포트 차트 위젯을 얻어옵니다.

chart = canvas.getObject('HistoryReportChart')  

# 이력 리포트 차트 위젯에 출력된 '순시전력' 값을 읽어옵니다.

print chart.getGraphData('순시전력')  



 출력)

(6.099999999976717, 5.400000000023283, 6.199999999982538, 6.0, 5.899999999994179, 5.7000000000116415, 5.999999999970896, 5.800000000017462, 5.899999999994179, 9.500000000029104, 9.799999999988358, 9.899999999965075, 10.800000000046566, 10.39999999999418, 10.699999999982538, 10.300000000046566, 9.699999999982538, 9.799999999988358, 6.0, 6.0, 5.999999999970896, 6.100000000005821, 5.600000000034925, 6.099999999976717 )



 

 replaceText( replaceList )

 

 replaceText는 그래프에 설정된 데이터 이름을 변경해 하나의 그래프 위젯에 각각 다른 데이터를 출력 할때 사용합니다.

 아래 그림과 같이 하나의 그래프에 [화장실]버튼을 클릭시 화장실에 해당하는 데이터를 불러오며, [사무실]버튼을 클릭시 사무실에 해당하는 데이터를 불러 올 수 있습니다.


 


 replaceText를 사용하기를 원하시면 아래 그림과 같이 스크립트를 통해 변경할 이름을 미리 설정 합니다. 아래와 같이 바꿀 문자열을 $1,$2로 설정하면 스크립트를 이용해 $1, $2를 원하는 문자로 대체하여 데이터를 불러 올수 있습니다.


 


  • replaceList 의 형식은 다음과 같습니다.  -> ['변경할 문자:변경될 문자', '변경할 문자:변경될 문자', ···]


 예)

# 이력 리포트 차트 위젯을 얻어옵니다.

chart = canvas.getObject('HistoryReportChart')  

# '$1'와 '$2'를 각각 '분기#1', '화장실'로 변경합니다.

chart.replaceText(['$1:분기#1', '$2:화장실'])  



 

 loadReport( syear:시작 연도, smonth:시작월, sday:시작일, shour:시작 시간,

                  eyear:종료 연도, emonth:종료월, eday:종료일, ehour:종료 시간 )

 

 시작 날짜와 종료 날짜를 선택해 선택된 기간의 리포트 데이터를 불러 옵니다.


  • syear : 시작 날짜의 년도를 입력합니다.
  • smonth : 시작 날짜의 월을 입력합니다.
  • sday : 시작 날짜의 일을 입력합니다.
  • shour : 시작 날짜의 시간을 입력합니다.
  • eyear : 종료 날짜의 년도를 입력합니다.
  • emonth : 종료 날짜의 월을 입력합니다.
  • eday : 종료 날짜의 일을 입력합니다.
  • ehour : 종료 날짜의 시간을 입력합니다.


 선택된 기간에 따라 불려지는 종류가 다르며, 선택 기간에 따라 불려 지는 데이터는 다음과 같습니다.


  • 선택기간이 한달 이내일 경우                : 시 리포트 데이터가 불려집니다.
  • 선택기간이 한달 이상 ~ 1년 미만인 경우  : 일 리포트 데이터가 불려집니다.
  • 선택기간이 1년 이상 ~ 5년 미만인 경우   : 월 리포트 데이터가 불려집니다.
  • 선택기간이 5년 이상인  경우                : 년 리포트 데이터가 불려집니다.

   

 예)

# 이력 리포트 차트 위젯을 얻어옵니다.

chart = canvas.getObject('HistoryReportChart')  

# 날짜 위젯에 선택된 시작 기간을 읽습니다.

start = canvas.getObject('startDateTime')  

# 날짜 위젯에 선택된 종료 기간을 읽습니다.

end = canvas.getObject('endDateTime')  


# 시작 날짜 위젯과 종료 날짜 위젯에 선택된 날짜를 읽어 해당 기간의 리포트 데이터를 불러와 이력 리포트 차트 위젯에 표시합니다.

chart.loadReport(start.getYear(), start.getMonth(), start.getDay(), 0, end.getYear(), end.getMonth(), end.getDay(), 0)


 결과)

 



 

 loadReport( kind: 리포트 종류, syear:시작 연도, smonth:시작월, sday:시작일, shour:시작 시간,

                  eyear:종료 연도, emonth:종료월, eday:종료일, ehour:종료 시간 )

 

 시작 날짜와 종료 날짜를 선택해 선택된 기간의 리포트 데이터를 불러 옵니다.

 데이터를 불러 올때 리포트 종류를 지정하여 불러옵니다.


  • kind: 표시할 이력 데이터 종류를 입력합니다.
    • HistoryDataReportChartItem.Minute : 분 데이터
    • HistoryDataReportChartItem.Hour : 시간 데이터
    • HistoryDataReportChartItem.Day : 일 데이터
    • HistoryDataReportChartItem.Month : 월 데이터
    • HistoryDataReportChartItem.Year : 년 데이터
  • syear : 시작 날짜의 년도를 입력합니다.
  • smonth : 시작 날짜의 월을 입력합니다.
  • sday : 시작 날짜의 일을 입력합니다.
  • shour : 시작 날짜의 시간을 입력합니다.
  • eyear : 종료 날짜의 년도를 입력합니다.
  • emonth : 종료 날짜의 월을 입력합니다.
  • eday : 종료 날짜의 일을 입력합니다.
  • ehour : 종료 날짜의 시간을 입력합니다.

     

 예)

# 이력 리포트 차트 위젯을 얻어옵니다.

chart = canvas.getObject('HistoryReportChart')  

# 날짜 위젯에 선택된 시작 기간을 읽습니다.

start = canvas.getObject('startDateTime')  

# 날짜 위젯에 선택된 종료 기간을 읽습니다.

end = canvas.getObject('endDateTime')  


# 시작 날짜 위젯과 종료 날짜 위젯에 선택된 날짜를 읽어 해당 기간의 일 리포트 데이터를 불러와 이력 리포트 차트 위젯에 표시합니다.

chart.loadReport(chart.Day ,  start.getYear(), start.getMonth(), start.getDay(), 0, end.getYear(), end.getMonth(), end.getDay(), 0)


 결과)