b3001c79601850cb465ed38db33f36377a3eec47.svn-base 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. BemsWebApplication.DayYearAnalysis = function (params, viewInfo) {
  2. "use strict";
  3. var initialized = false,
  4. shouldReload = false,
  5. dataSource;
  6. var CO2 = $Code.FuelType.WATER + 1;
  7. var visiblePopup = ko.observable(false);
  8. var fuelTypesDataSource = BemsWebApplication.db.createDataSource('BemsFuelType'),
  9. factorCo2DataSource = BemsWebApplication.db.createDataSource('BemsFactorCo2'),
  10. fuelTypesForSearch = ko.observableArray(),
  11. timeTypesForSearch = ko.observableArray(),
  12. timeTypeIdForSearch = ko.observable(0),
  13. fuelTypeIdForSearch = ko.observable(),
  14. deferredForSearch = new $.Deferred();
  15. var factorCo2 = null;
  16. var energyUsageStatusGet = new BWA.Chart.EnergyUsageStatusGet(BWA.UserInfo.SiteId()),
  17. timeBoxForSearch = BWA.SearchView.createDateTimeBox($G.TimeTypesForDayOnly),
  18. dataArray = ko.observableArray();
  19. // 2017.11.29 : 그리드 도표 작업 : 팝업창 추가
  20. // 팝업창뷰 보이기 속성 제어용 변수 선언
  21. var DataGridPopup_Visible = ko.observable(false);
  22. var DataGridPopup_Visible1 = ko.observable(false);
  23. var dataArrayresult = ko.observableArray();
  24. var dataArrayresult1 = ko.observableArray();
  25. // 2017.11.29 : 그리드 도표 작업 : 팝업창 추가
  26. var chart = BWA.Chart.Instance('chartDYA', 'dxChart');
  27. timeTypesForSearch($G.TimeTypes);
  28. var m = moment();
  29. /*
  30. dataArray([
  31. { DateTime: new Date(m.year(), m.month(), m.date(), 0), Value: 30, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 },
  32. { DateTime: new Date(m.year(), m.month(), m.date(), 0, 15), Value: 32 },
  33. { DateTime: new Date(m.year(), m.month(), m.date(), 0, 30), Value: 33 },
  34. { DateTime: new Date(m.year(), m.month(), m.date(), 0, 45), Value: 34 },
  35. { DateTime: new Date(m.year(), m.month(), m.date(), 1), Value: 50, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 },
  36. { DateTime: new Date(m.year(), m.month(), m.date(), 2), Value: 60, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 },
  37. { DateTime: new Date(m.year(), m.month(), m.date(), 3), Value: 80, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 },
  38. { DateTime: new Date(m.year(), m.month(), m.date(), 4), Value: 100, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 },
  39. { DateTime: new Date(m.year(), m.month(), m.date(), 5), Value: 40, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 },
  40. { DateTime: new Date(m.year(), m.month(), m.date(), 6), Value: 120, PowerCo2: 40, GasCo2: 40, WaterCo2: 40 }
  41. ]);*/
  42. function handleViewShown() {
  43. if (initialized === false) {
  44. //chart = BWA.ChartOptions.DayYear.getChartOptions($Code.TimeType.HOUR);
  45. //chart = chart(BWA.ChartOptions.DayYearAnalysis.getChartOptions($Code.TimeType.HOUR));
  46. chart = chart(BWA.ChartOptions.DayYearAnalysis.getChartOptions($Code.TimeType.HOUR));
  47. initialized = true;
  48. }
  49. if (shouldReload) {
  50. //shouldReload = false;
  51. //dataSource.pageIndex(0);
  52. //dataSource.load();
  53. }
  54. factorCo2DataSource.load().done(function (dbFactorCo2) {
  55. factorCo2 = BWA.Bems.refineFactorCo2DataArray(dbFactorCo2);
  56. });
  57. }
  58. function handleViewHidden() {
  59. visiblePopup(false);
  60. $SearchView.visibleObservable(false); // hcLee 2015 03 23
  61. //hideOverlay();
  62. // var dataGrid = $('#gridContainer').dxDataGrid('instance');
  63. // dataGrid.clearSelection();
  64. }
  65. function handleViewShowing() {
  66. $.when(fuelTypesDataSource.load()).done(function (fuelTypes) {
  67. //fuelTypes.push({
  68. // FuelTypeId: ko.observable(CO2),
  69. // Name: ko.observable('CO2')
  70. //});
  71. fuelTypesForSearch($SearchView.filterObservableArrayForSelectBox('FuelTypeId', fuelTypes));
  72. deferredForSearch.resolve();
  73. handleSearchInSearchView();
  74. });
  75. }
  76. function refreshList() {
  77. //dataSource.pageIndex(0);
  78. //dataSource.load();
  79. }
  80. var searchViewOptions = {
  81. searchViewItems: [
  82. { id: 'TimeTypeId', defaultValue: 0, value: timeTypeIdForSearch, dataSource: timeTypesForSearch },
  83. { id: 'FuelTypeId', ignoreValue: 0, defaultValue: 1, value: fuelTypeIdForSearch, dataSource: fuelTypesForSearch },
  84. { id: 'DateForHour', type: 'dateRange', isOnlyDate: true },
  85. { id: 'TimeForHour', type: 'dateRange', isOnlyDate: true },
  86. ],
  87. promiseDataInSearchView: deferredForSearch.promise()
  88. };
  89. function handleSearchInSearchView() {
  90. visiblePopup(true);
  91. $("#large-indicator").dxLoadIndicator({
  92. height: 60,
  93. width: 60
  94. });
  95. var date = timeBoxForSearch.getDate(),
  96. timeType = timeBoxForSearch.type(),
  97. fuelTypeId = fuelTypeIdForSearch();
  98. var options = BWA.ChartOptions.DayYearAnalysis.getSeriesOptions(fuelTypeIdForSearch(), timeBoxForSearch.type());
  99. var request = energyUsageStatusGet.requestGetForUsgaeStatus.bind(energyUsageStatusGet); // this.apiUri = 'BemsFormula/Calculation'; 이거 사용함.2015 05 15 hcLee
  100. var LaststartDate = moment(date.startDate).subtract(1, 'years');
  101. var LastendtDate = moment(date.endDate).subtract(1, 'years');
  102. var dateLast = BWA.Chart.getLastYearSameWeekDate(LaststartDate, LastendtDate, date.startDate.getDay());
  103. if (fuelTypeId === CO2) {
  104. var promises = [];
  105. var fuelTypes = _.values($Code.FuelType);
  106. _.each(fuelTypes, function (fuelTypeId) {
  107. promises.push(request(fuelTypeId, timeType)(date.startDate, date.endDate));
  108. });
  109. _.each(fuelTypes, function (fuelTypeId) {
  110. promises.push(request(fuelTypeId, timeType)(dateLast.startDate, dateLast.endDate));
  111. });
  112. var calculate = factorCo2.calculate;
  113. $.when.apply(this, promises)
  114. .done(function (electricityArray, gasArray, waterArray, electricityArrayL, gasArrayL, waterArrayL) {
  115. var dday = new Array('일', '월', '화', '수', '목', '금', '토');
  116. var chartDataSource = [];
  117. var chartDataSourceLast = [];
  118. var chartDataSource_temp = [];
  119. var chartDataSource_temp1 = [];
  120. var chartDataSource_temp2 = [];
  121. var chartDataSource_tempL = [];
  122. var chartDataSource_tempL1 = [];
  123. var chartDataSource_tempL2 = [];
  124. var chartDataSource_tempL3 = [];
  125. var co2Fields = ['ECo2', 'GCo2'];
  126. var co2FieldsL = ['ECo2Last', 'GCo2Last'];
  127. var RA = [];
  128. RA.push(electricityArray);
  129. RA.push(gasArray);
  130. RA.push(waterArray);
  131. _.each(RA, function (array, i) {
  132. var field = co2Fields[i];
  133. _.each(array[0], function (x) {
  134. var data = {
  135. //DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
  136. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  137. };
  138. data[field] = calculate(x.Value, fuelTypes[i]);
  139. chartDataSource.push(data);
  140. //var fieldL = co2FieldsL[i];
  141. var dataL = {
  142. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  143. };
  144. //dataL[fieldL] = calculate(x.Value, fuelTypes[i]);
  145. chartDataSourceLast.push(dataL);
  146. });
  147. });
  148. // 2017.11.29 : 그리드 도표 작업 : 팝업창 추가
  149. _.each(electricityArray[0], function (x) {
  150. chartDataSource_temp.push({
  151. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  152. 'ECo2': calculate(x.Value, 1)
  153. });
  154. });
  155. _.each(gasArray[0], function (x) {
  156. chartDataSource_temp1.push({
  157. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  158. 'GCo2': calculate(x.Value, 2)
  159. });
  160. });
  161. // 배열을 하나로 합치자
  162. var array_length_size = Math.max(chartDataSource_temp.length, chartDataSource_temp1.length);
  163. // 크기가 동일한 경우에만 허용함 (예외 방어용)
  164. if (chartDataSource_temp.length == chartDataSource_temp1.length) {
  165. for (var i = 0; i < array_length_size; i++) {
  166. chartDataSource_temp2.push(
  167. {
  168. DateTime: chartDataSource_temp[i].DateTime,
  169. 'ECo2': chartDataSource_temp[i].ECo2,
  170. 'GCo2': chartDataSource_temp1[i].GCo2
  171. });
  172. }
  173. }
  174. // 2017.11.29 : 그리드 도표 작업 : 팝업창 추가
  175. var RALast = [];
  176. RALast.push(electricityArrayL);
  177. RALast.push(gasArrayL);
  178. RALast.push(waterArrayL);
  179. var index = 0;
  180. //_.each(arguments, function (array, i) {
  181. _.each(RALast, function (array, i) {
  182. var fieldL = co2FieldsL[i];
  183. _.each(array[0], function (x) {
  184. var dataL = {
  185. DateTime: chartDataSourceLast[index].DateTime,
  186. };
  187. dataL[fieldL] = calculate(x.Value, fuelTypes[i]);
  188. chartDataSource.push(dataL);
  189. index++;
  190. });
  191. });
  192. // 2017.11.29 : 그리드 도표 작업 : 팝업창 추가
  193. _.each(electricityArray[0], function (x, i) {
  194. chartDataSource_tempL.push({
  195. DateTime: chartDataSourceLast[i].DateTime,
  196. 'ECo2Last': calculate(x.Value, 1)
  197. });
  198. });
  199. _.each(gasArray[0], function (x, i) {
  200. chartDataSource_tempL1.push({
  201. DateTime: chartDataSourceLast[i].DateTime,
  202. 'GCo2Last': calculate(x.Value, 2)
  203. });
  204. });
  205. // 배열을 하나로 합치자
  206. var array_length_size = Math.max(chartDataSource_tempL.length, chartDataSource_tempL1.length);
  207. // 크기가 동일한 경우에만 허용함 (예외 방어용)
  208. if (chartDataSource_tempL.length == chartDataSource_tempL1.length) {
  209. for (var i = 0; i < array_length_size; i++) {
  210. chartDataSource_tempL2.push(
  211. {
  212. DateTime1: chartDataSource_tempL[i].DateTime,
  213. 'ECo2Last': chartDataSource_tempL[i].ECo2Last,
  214. 'GCo2Last': chartDataSource_tempL1[i].GCo2Last
  215. });
  216. }
  217. }
  218. var array_length_size = Math.max(chartDataSource_temp2.length, chartDataSource_tempL2.length);
  219. // 크기가 동일한 경우에만 허용함 (예외 방어용)
  220. if (chartDataSource_temp2.length == chartDataSource_tempL2.length) {
  221. for (var i = 0; i < array_length_size; i++) {
  222. chartDataSource_tempL3.push(
  223. {
  224. DateTime: chartDataSource_temp2[i].DateTime,
  225. 'ECo2': chartDataSource_temp2[i].ECo2,
  226. 'GCo2': chartDataSource_temp2[i].GCo2,
  227. DateTime1: chartDataSource_tempL2[i].DateTime1,
  228. 'ECo2Last': chartDataSource_tempL2[i].ECo2Last,
  229. 'GCo2Last': chartDataSource_tempL2[i].GCo2Last
  230. });
  231. }
  232. }
  233. dataArrayresult1 = chartDataSource_tempL3;
  234. // 2017.11.29 : 그리드 도표 작업 : 팝업창 추가
  235. //chart().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
  236. //chartDataSource.concat(chartDataSourceLast);
  237. options.dataSource = chartDataSource;
  238. chart().option(options);
  239. visiblePopup(false);
  240. })
  241. .fail(function (error) {
  242. visiblePopup(false);
  243. });
  244. }
  245. else {
  246. var promises = [];
  247. promises.push(request(fuelTypeId, timeType)(date.startDate, date.endDate)); // 현재
  248. promises.push(request(fuelTypeId, timeType)(dateLast.startDate, dateLast.endDate)); // 1년전
  249. //request(fuelTypeId, timeType)(date.startDate, date.endDate)
  250. $.when.apply(this, promises)
  251. .done(function (dataArray, dataArray2) {
  252. var dday = new Array('일', '월', '화', '수', '목', '금', '토');
  253. var chartDataSource = [];
  254. var DataArray_temp = [];
  255. var DataArray_temp1 = [];
  256. var DataArray_temp2 = [];
  257. //var i = 0;
  258. //_.map(dataArray[0], function (x) {
  259. _.each(dataArray[0], function (x, i) {
  260. var data = {
  261. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  262. //DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[x.DateTime.getDay()] + ')',
  263. Value: x.Value
  264. }
  265. DataArray_temp.push({
  266. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  267. Value: x.Value
  268. });
  269. chartDataSource.push(data);
  270. var data2 = {
  271. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  272. //DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[x.DateTime.getDay()] + ')',
  273. ValueLast: (dataArray2[0].length != 0 && dataArray2[0].length - 1 >= i) ? dataArray2[0][i].Value : 0
  274. //ValueLast: 0
  275. }
  276. DataArray_temp1.push({
  277. DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  278. ValueLast: (dataArray2[0].length != 0 && dataArray2[0].length - 1 >= i) ? dataArray2[0][i].Value : 0
  279. });
  280. chartDataSource.push(data2);
  281. //i++;
  282. //return x;
  283. });
  284. //// 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  285. //_.each(dataArray[0], function (x, i) {
  286. // DataArray_temp.push({
  287. // DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  288. // Value: x.Value
  289. // });
  290. // DataArray_temp1.push({
  291. // DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()) + '(' + dday[moment(x.DateTime).toDate().getDay()] + ')',
  292. // ValueLast: (dataArray2[0].length != 0 && dataArray2[0].length - 1 >= i) ? dataArray2[0][i].Value : 0
  293. // });
  294. //});
  295. //_.each(dataArray[0], function (x) {
  296. //});
  297. // 배열을 하나로 합치자
  298. var array_length_size = Math.max(DataArray_temp.length, DataArray_temp1.length);
  299. // 크기가 동일한 경우에만 허용함 (예외 방어용)
  300. if (DataArray_temp.length == DataArray_temp1.length) {
  301. for (var i = 0; i < array_length_size; i++) {
  302. DataArray_temp2.push(
  303. {
  304. DateTime: DataArray_temp[i].DateTime,
  305. Value: DataArray_temp[i].Value,
  306. DateTime1: DataArray_temp1[i].DateTime,
  307. ValueLast: DataArray_temp1[i].ValueLast
  308. });
  309. }
  310. }
  311. dataArrayresult = DataArray_temp2;
  312. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  313. if (chartDataSource.length == 0)
  314. //errorMessage.message = '조회된 결과가 없습니다.';
  315. utils.toast.show('데이터가 없습니다.');
  316. else {
  317. //chart().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
  318. options.dataSource = chartDataSource;
  319. chart().option(options);
  320. }
  321. visiblePopup(false);
  322. })
  323. .fail(function (error) {
  324. visiblePopup(false);
  325. });
  326. }
  327. }
  328. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  329. function DataGridPopup_ButtonClick() {
  330. if (fuelTypeIdForSearch() == CO2)
  331. DataGridPopup_Visible1(true);
  332. else
  333. DataGridPopup_Visible(true);
  334. }
  335. function handlePopupShown() {
  336. // 컬럼명 업데이트
  337. var ColumnCaptionName = "";
  338. switch (fuelTypeIdForSearch()) {
  339. case $Code.FuelType.ELECTRICITY:
  340. ColumnCaptionName = "전기";
  341. viewModel.DayYearAnalysisDataGridOptions.columns[1].caption = ColumnCaptionName;
  342. viewModel.DayYearAnalysisDataGridOptions.columns[3].caption = ColumnCaptionName;
  343. $("#DayYearAnalysisDataGrid_Container").dxDataGrid("instance").option("dataSource", dataArrayresult);
  344. DataGridPopup_Visible(true);
  345. break;
  346. case CO2:
  347. ColumnCaptionName = "CO2";
  348. $("#DayYearAnalysisDataGrid_Container1").dxDataGrid("instance").option("dataSource", dataArrayresult1);
  349. DataGridPopup_Visible1(true)
  350. break;
  351. case $Code.FuelType.GAS:
  352. ColumnCaptionName = "가스";
  353. viewModel.DayYearAnalysisDataGridOptions.columns[1].caption = ColumnCaptionName;
  354. viewModel.DayYearAnalysisDataGridOptions.columns[3].caption = ColumnCaptionName;
  355. $("#DayYearAnalysisDataGrid_Container").dxDataGrid("instance").option("dataSource", dataArrayresult);
  356. DataGridPopup_Visible(true);
  357. break;
  358. case $Code.FuelType.WATER:
  359. ColumnCaptionName = "수도";
  360. viewModel.DayYearAnalysisDataGridOptions.columns[1].caption = ColumnCaptionName;
  361. viewModel.DayYearAnalysisDataGridOptions.columns[3].caption = ColumnCaptionName;
  362. $("#DayYearAnalysisDataGrid_Container").dxDataGrid("instance").option("dataSource", dataArrayresult);
  363. DataGridPopup_Visible(true);
  364. break;
  365. }
  366. }
  367. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  368. var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView), {
  369. refreshList: refreshList,
  370. viewHidden: handleViewHidden, // hcLee 2015 03 23
  371. viewShowing: handleViewShowing,
  372. DayYearAnalysisDataGridPopup_ButtonClicked: DataGridPopup_ButtonClick
  373. });
  374. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  375. // 그래프 도표 팝업창
  376. viewModel.DayYearAnalysisDataGridPopupOptions = {
  377. width: '480px',
  378. height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨
  379. contentTemplate: "content",
  380. showTitle: true,
  381. title: "도표",
  382. visible: DataGridPopup_Visible,
  383. dragEnabled: true,
  384. closeOnOutsideClick: true,
  385. shownAction: handlePopupShown,
  386. animation: window.utils.popup.createAnimation()
  387. };
  388. viewModel.DayYearAnalysisDataGridPopupOptions1 = {
  389. width: '700px',
  390. height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨
  391. contentTemplate: "content",
  392. showTitle: true,
  393. title: "도표",
  394. visible: DataGridPopup_Visible1,
  395. dragEnabled: true,
  396. closeOnOutsideClick: true,
  397. shownAction: handlePopupShown,
  398. animation: window.utils.popup.createAnimation()
  399. };
  400. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  401. viewModel.timeBoxForSearch = timeBoxForSearch;
  402. viewModel.popupOptions = {
  403. width: 300,
  404. height: 160,
  405. contentTemplate: "info",
  406. showTitle: false,
  407. title: "메세지",
  408. visible: visiblePopup,
  409. dragEnabled: false,
  410. shading: false,
  411. closeOnOutsideClick: false
  412. };
  413. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  414. viewModel.DayYearAnalysisDataGridOptions = {
  415. dataSource: dataArrayresult,
  416. paging: { pageSize: 17 },
  417. columns: [
  418. { dataField: 'DateTime', caption: "올해", width: '25%', alignment: 'center', },// dataType: 'date', format: 'yyyy-MM-dd HH:mm' },
  419. { dataField: 'Value', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 },
  420. { dataField: 'DateTime1', caption: "작년", width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 },
  421. { dataField: 'ValueLast', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }
  422. ],
  423. "export": {
  424. enabled: true,
  425. fileName: '일자별에너지증감분석'
  426. }
  427. };
  428. viewModel.DayYearAnalysisDataGridOptions1 = {
  429. dataSource: dataArrayresult1,
  430. paging: { pageSize: 17 },
  431. columns: [
  432. { dataField: 'DateTime', caption: "올해", width: '16%', alignment: 'center', },// dataType: 'date', format: 'yyyy-MM-dd HH:mm' },
  433. { dataField: 'ECo2', caption: "전력 CO2", width: '16%', alignment: 'center', format: 'fixedPoint', precision: 2 },
  434. { dataField: 'GCo2', caption: "가스 CO2", width: '16%', alignment: 'center', format: 'fixedPoint', precision: 2 },
  435. { dataField: 'DateTime1', caption: "작년", width: '16%', alignment: 'center', },
  436. { dataField: 'ECo2Last', caption: "전력 CO2", width: '16%', alignment: 'center', format: 'fixedPoint', precision: 2 },
  437. { dataField: 'GCo2Last', caption: "가스 CO2", width: '16%', alignment: 'center', format: 'fixedPoint', precision: 2 }
  438. ],
  439. "export": {
  440. enabled: true,
  441. fileName: '일자별에너지증감분석'
  442. }
  443. };
  444. // 2017.11.27: 그리드 도표 작업 : 팝업창 추가
  445. return viewModel;
  446. };