tchartHelper.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. /************************************************************************************************
  2. DATE : 2007-07-06
  3. WRITER : Comsquare
  4. DEFINITION : TrustForm4.0 TChart 관련 공통 JavaScript ( CMC )
  5. *************************************************************************************************/
  6. /************************************************************************************************
  7. 함수명 : createTChart ()
  8. 인자 :
  9. String objID - 생성될 TChart Object ID
  10. Integer leftPx - Left
  11. Integer topPx - Top
  12. Integer widthPx - Width
  13. Integer heightPx - Height
  14. [Object parentObj] - 생성될 타겟(부모 객체)
  15. 결과값 : Object TChart
  16. 함수설명 : TChart Control 생성
  17. ************************************************************************************************
  18. 작 성 자 : 김 기용
  19. 작 성 일 : 2007. 07. 06
  20. ************************************************************************************************/
  21. function createTChart(tChartID, leftPx, topPx, widthPx, heightPx, parentObj) {
  22. if( parentObj == null )
  23. parentObj = body;
  24. var tChartObj = parentObj.createChild("xforms:object", "id:" + tChartID + "; clsid:{fab9b41c-87d6-474d-ab7e-f07d78f2422e}; left:" + leftPx + "px; top:" + topPx + "px; width:" + widthPx + "px; height:" + heightPx + "px; ")
  25. return tChartObj;
  26. }
  27. function createTChart8(tChartID, leftPx, topPx, widthPx, heightPx, parentObj) {
  28. if( parentObj == null )
  29. parentObj = body;
  30. var tChartObj = parentObj.createChild("xforms:object", "id:" + tChartID + "; clsid:{BDEB0088-66F9-4A55-ABD2-0BF8DEEC1196}; left:" + leftPx + "px; top:" + topPx + "px; width:" + widthPx + "px; height:" + heightPx + "px; ")
  31. return tChartObj;
  32. }
  33. /************************************************************************************************
  34. 함수명 : clearTChart ()
  35. 인자 :
  36. String tChartobj - Target Chart Object
  37. 결과값 :
  38. 함수설명 : TChart Clear
  39. ************************************************************************************************
  40. 작 성 자 : 김 기용
  41. 작 성 일 : 2007. 08. 14
  42. ************************************************************************************************/
  43. function clearTChart(tChartObj) {
  44. tChartObj.RemoveAllSeries();
  45. tChartObj.Tools.clear()
  46. }
  47. /************************************************************************************************
  48. 함수명 : drawBar ()
  49. 인자 :
  50. Object tChartObj - Target TChart Object
  51. Object gridObj - Source DataGrid
  52. String yColRef - Y축 데이터의 Column Ref 노드명
  53. String title - TChart Title
  54. [Boolean pivot] - true | false
  55. 결과값 :
  56. 함수설명 : Datagrid의 해당 로우 data를 반영하여 TChart에(Point Type) 그려 줌.
  57. ************************************************************************************************
  58. 작 성 자 : 김 기용
  59. 작 성 일 : 2007. 08. 14
  60. ************************************************************************************************/
  61. function drawBar(tChartObj, gridObj ,yColRef , title, pivot) {
  62. // TChart 초기화
  63. clearTChart(tChartObj);
  64. tChartObj.Header.Text(0) = title; // Title 설정
  65. tChartObj.Aspect.View3D = 0; // 3D 설정 :: 0 = 2D | 1 = 3D
  66. if( pivot )
  67. pivot = 2;
  68. else
  69. pivot = 1;
  70. tChartObj.AddSeries(pivot); // TChart Type 설정 :: 0 = Line | 1 = Bar ..
  71. tChartObj.Legend.visible = false;
  72. tChartObj.Series(0).marks.visible = false;
  73. var Rnd1, Rnd2, Rnd3;
  74. var cColor;
  75. var i;
  76. var x, y;
  77. var yCol = gridObj.colRef(yColRef);
  78. // alert(xCol + " : " + yCol);
  79. for (i = gridObj.fixedRows; i < gridObj.rows; i++ ) {
  80. Rnd1 = Math.random();
  81. Rnd2 = Math.random();
  82. Rnd3 = Math.random();
  83. cColor = window.rgb( (255 - 1) * Rnd1 + 1, (255 - 1) * Rnd2 + 1 , (255 - 1) * Rnd3 + 1);
  84. x = gridObj.valueMatrix(i, 0);
  85. y = gridObj.valueMatrix(i, yCol);
  86. tChartObj.Series(0).Add (y, x, cColor);
  87. }
  88. }
  89. /************************************************************************************************
  90. 함수명 : drawSelectBar ()
  91. 인자 :
  92. Object chart - TeeChartObject
  93. Object grid - teechart 생성시 참고할 데이터를 가진 대상 grid Object
  94. String title - TeeChart 에 보여질 제목
  95. String rows - Grid 의 행번호배열( 예: grid의 1,2,4번째 행을 대상으로 하고 싶으면 grid[0]=1, grid[1]=2, grid[2]=4 인 길이 3짜리 배열 object)
  96. String cols - Grid 의 컬럼번호배열( 예: grid의 2,4번째 컬럼을 대상으로 하고 싶으면 grid[0]=2, grid[1]=4 인 길이 2짜리 배열 object)
  97. boolean legend - legend 의 visible 여부(true/false) 기본값은 true;
  98. boolean pivot - pivot 여부 (true/false) 기본값은 false;
  99. String type - X 축으로 지정할 기준 데이터(row/col)
  100. 1. row : Grid 의 row(행)이 X축, column(컬럼)이 그래프 데이터가 된다.
  101. 2. col : Grid 의 column(컬럼)이 X축, row(행)이 그래프 데이터가 된다.
  102. 결과값 :
  103. 함수설명 : Datagrid의 원하는 행, 컬럼을 선택해서 BAR 타입의 차트를 보여줌
  104. type == "row" 면 rows 가 X 축, cols 가 그래프 데이터가 된다.
  105. type == "col" 면 cols 가 X 축, rows 가 그래프 데이터가 된다.
  106. ************************************************************************************************
  107. 작 성 자 : 김 기호
  108. 작 성 일 : 2008.07.01
  109. ************************************************************************************************/
  110. function drawSelectBar(chart, grid, title, rows, cols, legend, pivot, type) {
  111. // TChart 초기화
  112. clearTChart(chart);
  113. chart.Header.Text(0) = title; // Title 설정
  114. chart.Aspect.View3D = 0; // 3D 설정 :: 0 = 2D | 1 = 3D
  115. if( pivot ) {
  116. pivot = 2;
  117. } else {
  118. pivot = 1;
  119. }
  120. if (legend) {
  121. chart.Legend.visible = true;
  122. } else {
  123. chart.Legend.visible = false;
  124. }
  125. if (type == "row") {
  126. var r, g, b, color;
  127. var x, y;
  128. for (var i = 0; i < cols.length; i++ ) {
  129. chart.AddSeries(pivot); // TChart Type 설정 :: 0 = Line | 1 = Bar ..
  130. var idx = chart.SeriesCount -1;
  131. chart.Series(idx).title = grid.valueMatrix(0, cols[i]);
  132. chart.Series(i).marks.visible = false;
  133. r = Math.random();
  134. g = Math.random();
  135. b = Math.random();
  136. color = window.rgb( (255 - 1) * r + 1, (255 - 1) * g + 1 , (255 - 1) * b + 1);
  137. for (var j = 0; j < rows.length; j++) {
  138. x = grid.valueMatrix(rows[j], 0);
  139. y = grid.valueMatrix(rows[j], cols[i]);
  140. //alert("x : " + x + "\ny : " + y + "\ncolor : " + color + "\ni : " + i + "\nj : " + j);
  141. chart.Series(i).Add (y, x, chart.Series(idx).Color);
  142. chart.Series(i).LegendItemColor(color)
  143. }
  144. }
  145. } else if (type == "col") {
  146. var r, g, b, color;
  147. var x, y;
  148. for (var i = 0; i < rows.length; i++ ) {
  149. chart.AddSeries(pivot); // TChart Type 설정 :: 0 = Line | 1 = Bar ..
  150. var idx = chart.SeriesCount -1;
  151. chart.Series(idx).title = grid.valueMatrix(rows[i], 0);
  152. chart.Series(i).marks.visible = false;
  153. r = Math.random();
  154. g = Math.random();
  155. b = Math.random();
  156. color = window.rgb( (255 - 1) * r + 1, (255 - 1) * g + 1 , (255 - 1) * b + 1);
  157. for (var j = 0; j < cols.length; j++) {
  158. x = grid.valueMatrix(0, cols[j]);
  159. y = grid.valueMatrix(rows[i], cols[j]);
  160. //alert("x : " + x + "\ny : " + y + "\ncolor : " + color + "\ni : " + i + "\nj : " + j);
  161. chart.Series(i).Add (y, x, chart.Series(idx).Color);
  162. chart.Series(i).LegendItemColor(color)
  163. }
  164. }
  165. }
  166. }
  167. /************************************************************************************************
  168. 함수명 : drawLine ()
  169. 인자 :
  170. Object tChartObj - Target TChart Object
  171. Object gridObj - Source DataGrid
  172. Integer row - Datagrid Source row
  173. [String title] - TChart Title
  174. [Boolean refresh] - 초기화 여부
  175. 결과값 :
  176. 함수설명 : Datagrid의 해당 로우 data를 반영하여 TChart에(Point Type) 그려 줌.
  177. ************************************************************************************************
  178. 작 성 자 : 김 기용
  179. 작 성 일 : 2007. 07. 06
  180. ************************************************************************************************/
  181. function drawLine(tChartObj, gridObj, row, title, refresh) {
  182. // TChart 초기화
  183. if( refresh ) {
  184. clearTChart(tChartObj);
  185. }
  186. if( title != null || title == "" ) {
  187. tChartObj.Header.Text(0) = title; // Title 설정
  188. }
  189. tChartObj.Aspect.View3D = 0; // 모양 설정 :: 0 = 2D | 1 = 3D
  190. tChartObj.Legend.CheckBoxes = true;
  191. tChartObj.Legend.Alignment = 0; // Legend 위치 설정 :: 0 = left | 1 = right | 2 = top| 3 = bottom
  192. var Rnd1, Rnd2, Rnd3;
  193. var cColor;
  194. var i;
  195. var x, y;
  196. tChartObj.AddSeries(0); // TChart Type 설정 :: 0 = Line | 1 = Bar ..
  197. var seriesIndex = tChartObj.SeriesCount - 1;
  198. var trgRow = row;
  199. tChartObj.Series(seriesIndex).asLine.Pointer.Visible = true;
  200. tChartObj.Series(seriesIndex).asLine.Pointer.Style = 1; //PointStyle 설정 :: 0 - 8
  201. tChartObj.Series(seriesIndex).Title = gridObj.valueMatrix(trgRow, 0);
  202. //tChartObj.Series(cline - 2).Marks.Style = 0;
  203. Rnd1 = Math.random();
  204. Rnd2 = Math.random();
  205. Rnd3 = Math.random();
  206. cColor = window.rgb( (255 - 1) * Rnd1 + 1, (255 - 1) * Rnd2 + 1 , (255 - 1) * Rnd3 + 1);
  207. for( i = gridObj.fixedCols; i < gridObj.cols; i++ ){
  208. x = gridObj.valueMatrix(0, i);
  209. y = gridObj.valueMatrix(trgRow, i);
  210. tChartObj.Series(seriesIndex).Add (y, x, tChartObj.Series(seriesIndex).Color);
  211. tChartObj.Series(seriesIndex).LegendItemColor(cColor);
  212. }
  213. }
  214. // 함수명 변경으로 기존 함수 유지 20070813
  215. function drawOneTChart(tChartObj, gridObj, row, title, refresh) {
  216. drawLine(tChartObj, gridObj, row, title, refresh);
  217. }
  218. /************************************************************************************************
  219. 함수명 : drawLineAll ()
  220. 인자 :
  221. Object tChartObj - Target TChart Object
  222. Object gridObj - Source DataGrid
  223. String title - TChart Title
  224. 결과값 :
  225. 함수설명 : Datagrid data를 반영하여 TChart에(Point Type) 그려 줌.
  226. ************************************************************************************************
  227. 작 성 자 : 김 기용
  228. 작 성 일 : 2007. 07. 06
  229. ************************************************************************************************/
  230. function drawLineAll(tChartObj, gridObj, title) {
  231. for( var i = gridObj.fixedRows; i < gridObj.rows; i ++)
  232. drawOneTChart(tChartObj, gridObj, i, title, false);
  233. }
  234. // 함수명 변경으로 기존 함수 유지 20070813
  235. function drawAllTChart(tChartObj, gridObj, title) {
  236. drawLineAll(tChartObj, gridObj, title);
  237. }
  238. //chart 배경이미지 클라이언트 경로만 가능함
  239. //작성자: 김선희(Create 2008.01.30)
  240. function setBackImageLoad(tChartObj, imgCd){
  241. tChartObj.Panel.BackImageLoad(getTChartBackgroundImage(imgCd));
  242. }
  243. function getTChartBackgroundImage(imgcd){
  244. return "C:\\Program Files\\himed\\components\\ClipSoft\\teechart7\\images\\"+imgcd+".gif";
  245. }