BemsWebApplication.FreeChartAnalysis = function (params, viewInfo) { var facilityTypeId_fin = 0, facilityCode_fin = 0, parentId_fin = 0, propertyId_fin = 0, facilityName_fin = "", formulaId_fin = 0, controlPoint_fin = ""; var Y_Left_excnt = 0; var virtualFacility = 99; var Y_Left_facility_type = ko.observableArray(); var Y_Left_facility_id = ko.observableArray(); var Y_Left_setDataSource1; var Y_Left_changed = false; var Y_Left_Caption; var Y_Left_PointType; var Y_Left_formulaName; var Y_Right1_excnt = 0; var Y_Right1_facility_type = ko.observableArray(); var Y_Right1_facility_id = ko.observableArray(); var Y_Right1_setDataSource1; var Y_Right1_changed = false; var Y_Right1_Caption; var Y_Right1_PointType; var Y_Right1_formulaName; var Y_Right2_excnt = 0; var Y_Right2_facility_type = ko.observableArray(); var Y_Right2_facility_id = ko.observableArray(); var Y_Right2_setDataSource1; var Y_Right2_changed = false; var Y_Right2_Caption; var Y_Right2_PointType; var Y_Right2_formulaName; var Y_Left_maxValuecops = 0; var Y_Left_minValuecops = 0; var Y_Right1_maxValuecops = 0; var Y_Right1_minValuecops = 0; var Y_Right2_maxValuecops = 0; var Y_Right2_minValuecops = 0; var DataArrayforChart = ko.observableArray(); var ChartDataArray = []; var ChartDataArray1 = []; var ChartDataArray2 = []; var ChartDataArray3 = []; var DataArrayforGrid = ko.observableArray(); var GridDataArray = []; var GridDataArray1 = []; var GridDataArray2 = []; var GridDataArray3 = []; var startDate = ko.observableArray(); var endDate = ko.observableArray(); // 2019.05.17 : 그리드 도표 작업 : 팝업창 추가 // 팝업창뷰 보이기 속성 제어용 변수 선언 var DataGridPopup_Visible = ko.observable(false); var DataGridPopup_Visible1 = ko.observable(false); var DataGridPopup_Visible2 = ko.observable(false); var DataGridPopup_Visible3 = ko.observable(false); // 그래프 출력 이후 엑셀출력을 위한 팝업창을 위해 임시 저장용 배열 선언 // 2019.05.17 : 그리드 도표 작업 : 팝업창 추가 var endpointSelector = ""; if (BemsWebApplication.config.mode == "production") { endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production; } else { endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local; } var Time_Interval_Type = [ { id: 1, text: "15분" }, { id: 2, text: "시" }, { id: 3, text: "일" } ]; var Y_Left_treeViewData = [ { id: 1, text: "성능분석", items: [], visualFlag: false }, { id: 2, text: "가상 시설", items: [], visualFlag: false }, { id: 3, text: "일반 시설", items: [], visualFlag: false } ]; var Y_Right1_treeViewData = [ { id: 0, text: "선택안함", items: [], visualFlag: false }, { id: 1, text: "성능분석", items: [], visualFlag: false }, { id: 2, text: "가상 시설", items: [], visualFlag: false }, { id: 3, text: "일반 시설", items: [], visualFlag: false } ]; var Y_Right2_treeViewData = [ { id: 0, text: "선택안함", items: [], visualFlag: false }, { id: 1, text: "성능분석", items: [], visualFlag: false }, { id: 2, text: "가상 시설", items: [], visualFlag: false }, { id: 3, text: "일반 시설", items: [], visualFlag: false } ]; function Y_Left_GetPopupTreeViewData() { Y_Left_treeViewData = [ { id: 1, text: "성능분석", items: [], visualFlag: false }, { id: 2, text: "가상 시설", items: [], visualFlag: false }, { id: 3, text: "일반 시설", items: [], visualFlag: false } ]; Y_Left_excnt = 4; var facilityIdIndex = 4; var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFacilityType", }, requireTotalCount: true, pageSize: 100 }); dataSource.sort({ getter: "FacilityTypeId", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { if (result[i].FacilityTypeId < 100) { //성능분석 if (result[i].FacilityTypeId != virtualFacility) { Y_Left_treeViewData[0].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; Y_Left_excnt++; } } } for (var i = 0; i < result.length; i++) { if (result[i].FacilityTypeId < 100) { //가상 if (result[i].FacilityTypeId != virtualFacility) { Y_Left_treeViewData[2].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; } else { //일반 Y_Left_treeViewData[1].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; } } } var dataSource2 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility", }, requireTotalCount: true, pageSize: 5000 }); dataSource2.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); dataSource2.sort({ getter: "Name", asc: true }); dataSource2.load() .done(function (result2) { for (var i = 0; i < result2.length; i++) { for (var j = 0; j < Y_Left_treeViewData[0].items.length; j++) { if (Y_Left_treeViewData[0].items[j].facilityTypeId == result2[i].FacilityTypeId) { Y_Left_treeViewData[0].items[j].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 0 }); facilityIdIndex++; Y_Left_treeViewData[2].items[j].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 2 }); facilityIdIndex++; break; } } if (result2[i].FacilityTypeId == virtualFacility) { Y_Left_treeViewData[1].items[0].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 1 }); facilityIdIndex++; } } }) .fail(function (error) { utils.toast.show(error); }); }) .fail(function (error) { utils.toast.show(error); }); } function Y_Left_GetData(facilityTypeId, facilityCode, parentId) { if (parentId != 0) { //가상, 일반 시설 var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointConfig", }, requireTotalCount: true, pageSize: 5000, expand: ["BemsMonitoringPoint"] }); dataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", facilityTypeId], "and", ["FacilityCode", "=", facilityCode] ]); dataSource.sort({ getter: "BemsMonitoringPoint/Name", asc: true }); dataSource.load() .done(function (result) { Y_Left_setDataSource1 = new Array(); for (var i = 0; i < result.length; i++) { var Y_Left_setData = { "ControlPoint": "", "FuelType": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0 }; Y_Left_setData.ControlPoint = result[i].BemsMonitoringPoint.Name; var fuelName = result[i].BemsMonitoringPoint.FuelTypeId; if (fuelName == 0) { fuelName = "-"; } else if (fuelName == 1) { fuelName = "전기"; } else if (fuelName == 2) { fuelName = "가스"; } else { fuelName = "수도"; } Y_Left_setData.FuelType = fuelName; Y_Left_setData.FacilityTypeId = result[i].FacilityTypeId; Y_Left_setData.FacilityCode = result[i].FacilityCode; Y_Left_setData.PropertyId = result[i].PropertyId; Y_Left_setDataSource1.push(Y_Left_setData); } $("#Y_Left_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Left_setDataSource1, displayExpr: "ControlPoint", valueExpr: "PropertyId", onValueChanged: function () { var value = $("#Y_Left_ControlId").dxSelectBox('instance').option('value'); if (value != null) { for (var i = 0; i < Y_Left_setDataSource1.length; i++) { if (Y_Left_setDataSource1[i].PropertyId == value) { propertyId_fin = Y_Left_setDataSource1[i].PropertyId; controlPoint_fin = Y_Left_setDataSource1[i].ControlPoint; formulaId_fin = Y_Left_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Left_changed) { $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value', FacilityCode_id_temp); if (Y_Left_setDataSource1 == "") { Y_Left_changed = true; } else { for (var i = 0; i <= Y_Left_setDataSource1.length; i++) { if (FormulaId == 0) { if (Y_Left_setDataSource1[i].PropertyId == PropertyId) { $("#Y_Left_ControlId").dxSelectBox('instance').option('value', Y_Left_setDataSource1[i].PropertyId); break; } } else { if (Y_Left_setDataSource1[i].FormulaId == FormulaId) { $("#Y_Left_ControlId").dxSelectBox('instance').option('value', Y_Left_setDataSource1[i].FormulaId); break; } } } Y_Left_changed = false; } } }) .fail(function (error) { utils.toast.show(error); }); } else { //성능 var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormula", }, requireTotalCount: true, pageSize: 5000, expand: ["BemsFormulaBase"] }); dataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", facilityTypeId], "and", ["FacilityCode", "=", facilityCode] ]); dataSource.sort({ getter: "BemsFormulaBase/Name", asc: true }); dataSource.load() .done(function (result) { Y_Left_setDataSource1 = new Array(); for (var i = 0; i < result.length; i++) { var Y_Left_setData = { "ControlPoint": "", "FuelType": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0 }; Y_Left_setData.ControlPoint = result[i].BemsFormulaBase.Name; Y_Left_setData.FuelType = "-"; Y_Left_setData.FacilityTypeId = result[i].FacilityTypeId; Y_Left_setData.FacilityCode = result[i].FacilityCode; Y_Left_setData.FormulaId = result[i].FormulaId; Y_Left_setDataSource1.push(Y_Left_setData); } $("#Y_Left_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Left_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId", onValueChanged: function () { var value = $("#Y_Left_ControlId").dxSelectBox('instance').option('value'); if (value != null) { for (var i = 0; i < Y_Left_setDataSource1.length; i++) { if (Y_Left_setDataSource1[i].FormulaId == value) { propertyId_fin = Y_Left_setDataSource1[i].PropertyId; controlPoint_fin = Y_Left_setDataSource1[i].ControlPoint; formulaId_fin = Y_Left_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Left_changed) { $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value', FacilityCode_id_temp); if (Y_Left_setDataSource1 == "") { Y_Left_changed = true; } else { for (var i = 0; i < Y_Left_setDataSource1.length; i++) { if (FormulaId == 0) { if (Y_Left_setDataSource1[i].PropertyId == PropertyId) { $("#Y_Left_ControlId").dxSelectBox('instance').option('value', Y_Left_setDataSource1[i].PropertyId); break; } } else { if (Y_Left_setDataSource1[i].FormulaId == FormulaId) { $("#Y_Left_ControlId").dxSelectBox('instance').option('value', Y_Left_setDataSource1[i].FormulaId); break; } } } Y_Left_changed = false; } } }) .fail(function (error) { utils.toast.show(error); }); } } // Y 좌측 함수 ******************** // Y 우측(1) 함수 ******************** function Y_Right1_GetPopupTreeViewData() { Y_Right1_treeViewData = [ { id: 0, text: "선택안함", items: [], visualFlag: false }, { id: 1, text: "성능분석", items: [], visualFlag: false }, { id: 2, text: "가상 시설", items: [], visualFlag: false }, { id: 3, text: "일반 시설", items: [], visualFlag: false } ]; Y_Right1_excnt = 4; var facilityIdIndex = 4; var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFacilityType", }, requireTotalCount: true, pageSize: 100 }); dataSource.sort({ getter: "FacilityTypeId", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { if (result[i].FacilityTypeId < 100) { //성능분석 if (result[i].FacilityTypeId != virtualFacility) { Y_Right1_treeViewData[0].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; Y_Right1_excnt++; } } } for (var i = 0; i < result.length; i++) { if (result[i].FacilityTypeId < 100) { //가상 if (result[i].FacilityTypeId != virtualFacility) { Y_Right1_treeViewData[2].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; } else { //일반 Y_Right1_treeViewData[1].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; } } } var dataSource2 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility", }, requireTotalCount: true, pageSize: 5000 }); dataSource2.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); dataSource2.sort({ getter: "Name", asc: true }); dataSource2.load() .done(function (result2) { for (var i = 0; i < result2.length; i++) { for (var j = 0; j < Y_Right1_treeViewData[0].items.length; j++) { if (Y_Right1_treeViewData[0].items[j].facilityTypeId == result2[i].FacilityTypeId) { Y_Right1_treeViewData[0].items[j].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 0 }); facilityIdIndex++; Y_Right1_treeViewData[2].items[j].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 2 }); facilityIdIndex++; break; } } if (result2[i].FacilityTypeId == virtualFacility) { Y_Right1_treeViewData[1].items[0].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 1 }); facilityIdIndex++; } } }) .fail(function (error) { utils.toast.show(error); }); }) .fail(function (error) { utils.toast.show(error); }); } function Y_Right1_GetData(facilityTypeId, facilityCode, parentId) { if (parentId != 0) { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointConfig", }, requireTotalCount: true, pageSize: 5000, expand: ["BemsMonitoringPoint"] }); dataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", facilityTypeId], "and", ["FacilityCode", "=", facilityCode] ]); dataSource.sort({ getter: "BemsMonitoringPoint/Name", asc: true }); dataSource.load() .done(function (result) { Y_Right1_setDataSource1 = new Array(); for (var i = 0; i < result.length; i++) { var Y_Right1_setData = { "ControlPoint": "", "FuelType": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0 }; Y_Right1_setData.ControlPoint = result[i].BemsMonitoringPoint.Name; var fuelName = result[i].BemsMonitoringPoint.FuelTypeId; if (fuelName == 0) { fuelName = "-"; } else if (fuelName == 1) { fuelName = "전기"; } else if (fuelName == 2) { fuelName = "가스"; } else { fuelName = "수도"; } Y_Right1_setData.FuelType = fuelName; Y_Right1_setData.FacilityTypeId = result[i].FacilityTypeId; Y_Right1_setData.FacilityCode = result[i].FacilityCode; Y_Right1_setData.PropertyId = result[i].PropertyId; Y_Right1_setDataSource1.push(Y_Right1_setData); } $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right1_setDataSource1, displayExpr: "ControlPoint", valueExpr: "PropertyId", onValueChanged: function () { var value = $("#Y_Right1_ControlId").dxSelectBox('instance').option('value'); if (value != null) { for (var i = 0; i < Y_Right1_setDataSource1.length; i++) { if (Y_Right1_setDataSource1[i].PropertyId == value) { propertyId_fin = Y_Right1_setDataSource1[i].PropertyId; controlPoint_fin = Y_Right1_setDataSource1[i].ControlPoint; formulaId_fin = Y_Right1_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Right1_changed) { $("#Y_Right1_FacilityCode").dxSelectBox('instance').option('value', FacilityCode_id_temp); if (Y_Right1_setDataSource1 == "") { Y_Right1_changed = true; } else { for (var i = 0; i <= Y_Right1_setDataSource1.length; i++) { if (FormulaId == 0) { if (Y_Right1_setDataSource1[i].PropertyId == PropertyId) { $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', Y_Right1_setDataSource1[i].PropertyId); break; } } else { if (Y_Right1_setDataSource1[i].FormulaId == FormulaId) { $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', Y_Right1_setDataSource1[i].FormulaId); break; } } } Y_Right1_changed = false; } } }) .fail(function (error) { utils.toast.show(error); }); } else { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormula", }, requireTotalCount: true, pageSize: 5000, expand: ["BemsFormulaBase"] }); dataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", facilityTypeId], "and", ["FacilityCode", "=", facilityCode] ]); dataSource.sort({ getter: "BemsFormulaBase/Name", asc: true }); dataSource.load() .done(function (result) { Y_Right1_setDataSource1 = new Array(); for (var i = 0; i < result.length; i++) { var Y_Right1_setData = { "ControlPoint": "", "FuelType": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0 }; Y_Right1_setData.ControlPoint = result[i].BemsFormulaBase.Name; Y_Right1_setData.FuelType = "-"; Y_Right1_setData.FacilityTypeId = result[i].FacilityTypeId; Y_Right1_setData.FacilityCode = result[i].FacilityCode; Y_Right1_setData.FormulaId = result[i].FormulaId; Y_Right1_setDataSource1.push(Y_Right1_setData); } $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right1_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId", onValueChanged: function () { var value = $("#Y_Right1_ControlId").dxSelectBox('instance').option('value'); if (value != null) { for (var i = 0; i < Y_Right1_setDataSource1.length; i++) { if (Y_Right1_setDataSource1[i].FormulaId == value) { propertyId_fin = Y_Right1_setDataSource1[i].PropertyId; controlPoint_fin = Y_Right1_setDataSource1[i].ControlPoint; formulaId_fin = Y_Right1_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Right1_changed) { $("#Y_Right1_FacilityCode").dxSelectBox('instance').option('value', FacilityCode_id_temp); if (Y_Right1_setDataSource1 == "") { Y_Right1_changed = true; } else { for (var i = 0; i < Y_Right1_setDataSource1.length; i++) { if (FormulaId == 0) { if (Y_Right1_setDataSource1[i].PropertyId == PropertyId) { $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', Y_Right1_setDataSource1[i].PropertyId); break; } } else { if (Y_Right1_setDataSource1[i].FormulaId == FormulaId) { $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', Y_Right1_setDataSource1[i].FormulaId); break; } } } Y_Right1_changed = false; } } }) .fail(function (error) { utils.toast.show(error); }); } } // Y 우측(1) 함수 ******************** // Y 우측(2) 함수 ******************** function Y_Right2_GetPopupTreeViewData() { Y_Right2_treeViewData = [ { id: 0, text: "선택안함", items: [], visualFlag: false }, { id: 1, text: "성능분석", items: [], visualFlag: false }, { id: 2, text: "가상 시설", items: [], visualFlag: false }, { id: 3, text: "일반 시설", items: [], visualFlag: false } ]; Y_Right2_excnt = 4; var facilityIdIndex = 4; var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFacilityType", }, requireTotalCount: true, pageSize: 100 }); dataSource.sort({ getter: "FacilityTypeId", asc: true }); dataSource.load() .done(function (result) { for (var i = 0; i < result.length; i++) { if (result[i].FacilityTypeId < 100) { //성능분석 if (result[i].FacilityTypeId != virtualFacility) { Y_Right2_treeViewData[0].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; Y_Right2_excnt++; } } } for (var i = 0; i < result.length; i++) { if (result[i].FacilityTypeId < 100) { //가상 if (result[i].FacilityTypeId != virtualFacility) { Y_Right2_treeViewData[2].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; } else { //일반 Y_Right2_treeViewData[1].items.push({ id: facilityIdIndex, facilityTypeId: result[i].FacilityTypeId, text: result[i].Name, items: [], visualFlag: false }); facilityIdIndex++; } } } var dataSource2 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility", }, requireTotalCount: true, pageSize: 5000 }); dataSource2.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); dataSource2.sort({ getter: "Name", asc: true }); dataSource2.load() .done(function (result2) { for (var i = 0; i < result2.length; i++) { for (var j = 0; j < Y_Right2_treeViewData[0].items.length; j++) { if (Y_Right2_treeViewData[0].items[j].facilityTypeId == result2[i].FacilityTypeId) { Y_Right2_treeViewData[0].items[j].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 0 }); facilityIdIndex++; Y_Right2_treeViewData[2].items[j].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 2 }); facilityIdIndex++; break; } } if (result2[i].FacilityTypeId == virtualFacility) { Y_Right2_treeViewData[1].items[0].items.push({ id: facilityIdIndex, facilityTypeId: result2[i].FacilityTypeId, facilityCode: result2[i].FacilityCode, text: result2[i].Name, visualFlag: true, parentId: 1 }); facilityIdIndex++; } } }) .fail(function (error) { utils.toast.show(error); }); }) .fail(function (error) { utils.toast.show(error); }); } function Y_Right2_GetData(facilityTypeId, facilityCode, parentId) { if (parentId != 0) { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointConfig", }, requireTotalCount: true, pageSize: 5000, expand: ["BemsMonitoringPoint"] }); dataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", facilityTypeId], "and", ["FacilityCode", "=", facilityCode] ]); dataSource.sort({ getter: "BemsMonitoringPoint/Name", asc: true }); dataSource.load() .done(function (result) { Y_Right2_setDataSource1 = new Array(); for (var i = 0; i < result.length; i++) { var Y_Right2_setData = { "ControlPoint": "", "FuelType": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0 }; Y_Right2_setData.ControlPoint = result[i].BemsMonitoringPoint.Name; var fuelName = result[i].BemsMonitoringPoint.FuelTypeId; if (fuelName == 0) { fuelName = "-"; } else if (fuelName == 1) { fuelName = "전기"; } else if (fuelName == 2) { fuelName = "가스"; } else { fuelName = "수도"; } Y_Right2_setData.FuelType = fuelName; Y_Right2_setData.FacilityTypeId = result[i].FacilityTypeId; Y_Right2_setData.FacilityCode = result[i].FacilityCode; Y_Right2_setData.PropertyId = result[i].PropertyId; Y_Right2_setDataSource1.push(Y_Right2_setData); } $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right2_setDataSource1, displayExpr: "ControlPoint", valueExpr: "PropertyId", onValueChanged: function () { var value = $("#Y_Right2_ControlId").dxSelectBox('instance').option('value'); if (value != null) { for (var i = 0; i < Y_Right2_setDataSource1.length; i++) { if (Y_Right2_setDataSource1[i].PropertyId == value) { propertyId_fin = Y_Right2_setDataSource1[i].PropertyId; controlPoint_fin = Y_Right2_setDataSource1[i].ControlPoint; formulaId_fin = Y_Right2_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Right2_changed) { $("#Y_Right2_FacilityCode").dxSelectBox('instance').option('value', FacilityCode_id_temp); if (Y_Right2_setDataSource1 == "") { Y_Right2_changed = true; } else { for (var i = 0; i <= Y_Right2_setDataSource1.length; i++) { if (FormulaId == 0) { if (Y_Right2_setDataSource1[i].PropertyId == PropertyId) { $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', Y_Right2_setDataSource1[i].PropertyId); break; } } else { if (Y_Right2_setDataSource1[i].FormulaId == FormulaId) { $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', Y_Right2_setDataSource1[i].FormulaId); break; } } } Y_Right2_changed = false; } } }) .fail(function (error) { utils.toast.show(error); }); } else { var dataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormula", }, requireTotalCount: true, pageSize: 5000, expand: ["BemsFormulaBase"] }); dataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()], "and", ["FacilityTypeId", "=", facilityTypeId], "and", ["FacilityCode", "=", facilityCode] ]); dataSource.sort({ getter: "BemsFormulaBase/Name", asc: true }); dataSource.load() .done(function (result) { Y_Right2_setDataSource1 = new Array(); for (var i = 0; i < result.length; i++) { var Y_Right2_setData = { "ControlPoint": "", "FuelType": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0 }; Y_Right2_setData.ControlPoint = result[i].BemsFormulaBase.Name; Y_Right2_setData.FuelType = "-"; Y_Right2_setData.FacilityTypeId = result[i].FacilityTypeId; Y_Right2_setData.FacilityCode = result[i].FacilityCode; Y_Right2_setData.FormulaId = result[i].FormulaId; Y_Right2_setDataSource1.push(Y_Right2_setData); } $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right2_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId", onValueChanged: function () { var value = $("#Y_Right2_ControlId").dxSelectBox('instance').option('value'); if (value != null) { for (var i = 0; i < Y_Right2_setDataSource1.length; i++) { if (Y_Right2_setDataSource1[i].FormulaId == value) { propertyId_fin = Y_Right2_setDataSource1[i].PropertyId; controlPoint_fin = Y_Right2_setDataSource1[i].ControlPoint; formulaId_fin = Y_Right2_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Right2_changed) { $("#Y_Right2_FacilityCode").dxSelectBox('instance').option('value', FacilityCode_id_temp); if (Y_Right2_setDataSource1 == "") { Y_Right2_changed = true; } else { for (var i = 0; i < Y_Right2_setDataSource1.length; i++) { if (FormulaId == 0) { if (Y_Right2_setDataSource1[i].PropertyId == PropertyId) { $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', Y_Right2_setDataSource1[i].PropertyId); break; } } else { if (Y_Right2_setDataSource1[i].FormulaId == FormulaId) { $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', Y_Right2_setDataSource1[i].FormulaId); break; } } } Y_Right2_changed = false; } } }) .fail(function (error) { utils.toast.show(error); }); } } // Y 우측(2) 함수 ******************** // 2017.09.08 : 그리드 도표 작업 : 팝업창 추가 function DataGridPopup_ButtonClick() { //그래프내 데이터 존재 유무 확인 함수 if (DataArrayforGrid.length == 0) { utils.toast.show('데이터가 존재하지않습니다.', 'error'); return; } if (Y_Right1_PointType == 0 && Y_Right2_PointType == 0) DataGridPopup_Visible(true); else if (Y_Right1_PointType != 0 && Y_Right2_PointType == 0) DataGridPopup_Visible1(true); else if (Y_Right1_PointType == 0 && Y_Right2_PointType != 0) DataGridPopup_Visible2(true); else DataGridPopup_Visible3(true); } function handlePopupShown() { Y_Right1_PointType if (Y_Right1_PointType == 0 && Y_Right2_PointType == 0) { viewModel.Free_ChartDataGridOptions.columns[0].format = 'yyyy-MM-dd HH:mm'; viewModel.Free_ChartDataGridOptions.columns[1].caption = Y_Left_formulaName; //viewModel.Free_ChartDataGridOptions.columns[2].caption = '-'; //viewModel.Free_ChartDataGridOptions.columns[3].caption = '-'; // 데이타소스 업데이트 $("#Free_ChartDataGrid_Container").dxDataGrid("instance").option("dataSource", DataArrayforGrid); if (DataArrayforGrid.length == 0) { utils.toast.show('데이터가 존재하지않습니다.', 'error'); DataGridPopup_Visible(false); } else // 팝업창 갱신 DataGridPopup_Visible(true); } else if (Y_Right1_PointType != 0 && Y_Right2_PointType == 0) { viewModel.Free_ChartDataGridOptions1.columns[1].caption = Y_Left_formulaName; viewModel.Free_ChartDataGridOptions1.columns[2].caption = Y_Right1_formulaName; //viewModel.Free_ChartDataGridOptions.columns[3].caption = '-'; // 데이타소스 업데이트 $("#Free_ChartDataGrid_Container1").dxDataGrid("instance").option("dataSource", DataArrayforGrid); if (DataArrayforGrid.length == 0) { utils.toast.show('데이터가 존재하지않습니다.', 'error'); DataGridPopup_Visible1(false); } else // 팝업창 갱신 DataGridPopup_Visible1(true); } else if (Y_Right1_PointType == 0 && Y_Right2_PointType != 0) { viewModel.Free_ChartDataGridOptions2.columns[1].caption = Y_Left_formulaName; //viewModel.Free_ChartDataGridOptions.columns[2].caption = '-'; viewModel.Free_ChartDataGridOptions2.columns[2].caption = Y_Right2_formulaName; // 데이타소스 업데이트 $("#Free_ChartDataGrid_Container2").dxDataGrid("instance").option("dataSource", DataArrayforGrid); if (DataArrayforGrid.length == 0) { utils.toast.show('데이터가 존재하지않습니다.', 'error'); DataGridPopup_Visible2(false); } else // 팝업창 갱신 DataGridPopup_Visible2(true); } else { viewModel.Free_ChartDataGridOptions3.columns[1].caption = Y_Left_formulaName; viewModel.Free_ChartDataGridOptions3.columns[2].caption = Y_Right1_formulaName; viewModel.Free_ChartDataGridOptions3.columns[3].caption = Y_Right2_formulaName; // 데이타소스 업데이트 $("#Free_ChartDataGrid_Container3").dxDataGrid("instance").option("dataSource", DataArrayforGrid); if (DataArrayforGrid.length == 0) { utils.toast.show('데이터가 존재하지않습니다.', 'error'); DataGridPopup_Visible3(false); } else // 팝업창 갱신 DataGridPopup_Visible3(true); } } // 2017.09.08 : 그리드 도표 작업 : 팝업창 추가 function handleViewShown() { } function handleSearchInSearchView() { } // 메뉴 초기화 function handleEdit() { // 시간 정보 var now = new Date(); var year = now.getFullYear(); var month = now.getMonth(); var day = now.getDate(); var hour = now.getHours() //var test = new Date(year, month, day); // 조회 시간 주기 $("#Time_Interval").dxSelectBox({ dataSource: Time_Interval_Type, displayExpr: "text", valueExpr: "id" }); // 조회 시작일 $("#Search_Date_Start").dxDateBox({ format: "date", value: new Date(year, month, day - 1) }); // 조회 시작 시간 $("#Search_Time_Start").dxDateBox({ format: "time", value: new Date(year, month, day - 1, hour) }); // 조회 종료일 $("#Search_Date_End").dxDateBox({ format: "date", value: new Date(year, month, day) }); // 조회 종료 시간 $("#Search_Time_End").dxDateBox({ format: "time", value: new Date(year, month, day, hour) }); $("#Y_Left_Point_Type_Id").dxSelectBox({ placeholder: "관제점 타입", dataSource: Y_Left_treeViewData, displayExpr: "text", value: "" }); $("#Y_Left_FacilityTypeId").dxSelectBox({ placeholder: "설비 타입", dataSource: Y_Left_facility_type, displayExpr: "text", valueExpr: "" }); $("#Y_Left_FacilityCode").dxSelectBox({ placeholder: "설비 이름", dataSource: Y_Left_facility_id, displayExpr: "text", valueExpr: "" }); $("#Y_Left_ControlId").dxSelectBox({ placeholder: "관제점 이름", dataSource: Y_Left_setDataSource1, displayExpr: "ControlPoint", valueExpr: "" }); $("#Y_Right1_Point_Type_Id").dxSelectBox({ placeholder: "관제점 타입", dataSource: Y_Right1_treeViewData, displayExpr: "text", value: "" }); $("#Y_Right1_FacilityTypeId").dxSelectBox({ placeholder: "설비 타입", dataSource: Y_Right1_facility_type, displayExpr: "text", valueExpr: "" }); $("#Y_Right1_FacilityCode").dxSelectBox({ placeholder: "설비 이름", dataSource: Y_Right1_facility_id, displayExpr: "text", valueExpr: "" }); $("#Y_Right1_ControlId").dxSelectBox({ placeholder: "관제점 이름", dataSource: Y_Right1_setDataSource1, displayExpr: "ControlPoint", valueExpr: "" }); $("#Y_Right2_Point_Type_Id").dxSelectBox({ placeholder: "관제점 타입", dataSource: Y_Right2_treeViewData, displayExpr: "text", value: "" }); $("#Y_Right2_FacilityTypeId").dxSelectBox({ placeholder: "설비 타입", dataSource: Y_Right2_facility_type, displayExpr: "text", valueExpr: "" }); $("#Y_Right2_FacilityCode").dxSelectBox({ placeholder: "설비 이름", dataSource: Y_Right2_facility_id, displayExpr: "text", valueExpr: "" }); $("#Y_Right2_ControlId").dxSelectBox({ placeholder: "관제점 이름", dataSource: Y_Right2_setDataSource1, displayExpr: "ControlPoint", valueExpr: "" }); // 초기값 설정 $("#Time_Interval").dxSelectBox("instance").option('value', 2); $("#Y_Right1_Point_Type_Id").dxSelectBox("instance").option('value', 0); $("#Y_Right2_Point_Type_Id").dxSelectBox("instance").option('value', 0); // dxLoadPanel 패널 $("#LoadPanel").dxLoadPanel('instance').option('visible', true); $("#Chart_Free").dxChart({ dataSource: [], //palette: "Bright", legend: { visible: false, verticalAlignment: false }, valueAxis: '', }) $("#LoadPanel").dxLoadPanel('instance').option('visible', false); DataArrayforChart = []; ChartDataArray = []; ChartDataArray1 = []; ChartDataArray2 = []; ChartDataArray3 = []; DataArrayforGrid = []; GridDataArray = []; GridDataArray1 = []; GridDataArray2 = []; GridDataArray3 = []; Y_Left_maxValuecops = 0; Y_Left_minValuecops = 0; Y_Right1_maxValuecops = 0; Y_Right1_minValuecops = 0; Y_Right2_maxValuecops = 0; Y_Right2_minValuecops = 0; Y_Left_PointType = null; Y_Left_formulaName = []; Y_Left_ChartType = []; Y_Left_facilityType = []; Y_Left_facilityCode = []; Y_Left_formula = []; Y_Right1_PointType = null; Y_Right1_formulaName = []; Y_Right1_ChartType = []; Y_Right1_facilityType = []; Y_Right1_facilityCode = []; Y_Right1_formula = []; Y_Right2_PointType = null; Y_Right2_formulaName = []; Y_Right2_ChartType = []; Y_Right2_facilityType = []; Y_Right2_facilityCode = []; Y_Right2_formula = []; } var viewModel = $.extend(BWA.CommonView.create( params, viewInfo, ko.observable(null), ko.observable(null), handleViewShown, null, handleSearchInSearchView, undefined), { viewShown: function () { // 사이드 메뉴 $SideMenu.showSideMenuIfWill(params.view); // dxLoadPanel 패널 $("#LoadPanel").dxLoadPanel({ message: '로딩중...', showIndicator: true, visible: false }); //초기화 handleEdit(); // 시간 정보 var now = new Date(); var year = now.getFullYear(); var month = now.getMonth(); var day = now.getDate(); var hour = now.getHours() //var test = new Date(year, month, day); // 데이터 주기 $("#Time_Interval").dxSelectBox({ dataSource: Time_Interval_Type, displayExpr: "text", valueExpr: "id" }); // 조회 시작일 $("#Search_Date_Start").dxDateBox({ format: "date", value: new Date(year, month, day - 1) }); // 조회 시작 시간 $("#Search_Time_Start").dxDateBox({ format: "time", value: new Date(year, month, day - 1, hour) }); // 조회 종료일 $("#Search_Date_End").dxDateBox({ format: "date", value: new Date(year, month, day) }); // 조회 종료 시간 $("#Search_Time_End").dxDateBox({ format: "time", value: new Date(year, month, day, hour) }); $("#Time_Interval").dxSelectBox({ onValueChanged: function () { var value = $("#Time_Interval").dxSelectBox('instance').option('value'); if (value == 3) { $("#Search_Time_Start").dxDateBox("instance").option('disabled', true); $("#Search_Time_End").dxDateBox("instance").option('disabled', true); } else { $("#Search_Time_Start").dxDateBox("instance").option('disabled', false); $("#Search_Time_End").dxDateBox("instance").option('disabled', false); } } }); // Y 좌측 차트 ******************** Y_Left_GetPopupTreeViewData(); Y_Left_facility_type = ""; Y_Left_facility_id = ""; $("#Y_Left_Point_Type_Id").dxSelectBox({ placeholder: "관제점 타입", dataSource: Y_Left_treeViewData, displayExpr: "text", valueExpr: "id" }); $("#Y_Left_FacilityTypeId").dxSelectBox({ placeholder: "설비 타입" }); $("#Y_Left_FacilityCode").dxSelectBox({ placeholder: "설비 이름" }); $("#Y_Left_ControlId").dxSelectBox({ placeholder: "관제점 이름" }); $("#Y_Left_Point_Type_Id").dxSelectBox({ onValueChanged: function () { Y_Left_facility_type = ""; Y_Left_facility_id = ""; Y_Left_setDataSource1 = ""; var value = $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value'); if (value == null || value == "") Y_Left_facility_type = ""; else Y_Left_facility_type = Y_Left_treeViewData[value - 1].items; $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_FacilityTypeId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 타입", dataSource: Y_Left_facility_type, displayExpr: "text", valueExpr: "id" }); $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_FacilityCode").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 이름", dataSource: Y_Left_facility_id, displayExpr: "text", valueExpr: "id" }); $("#Y_Left_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Left_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId" }); } }); $("#Y_Left_FacilityTypeId").dxSelectBox({ onValueChanged: function () { if (Y_Left_facility_type == "") { var value1 = $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value'); if (value1 == null || value1 == "") Y_Left_facility_type = ""; else Y_Left_facility_type = Y_Left_treeViewData[value1 - 1].items; } Y_Left_facility_id = ""; Y_Left_setDataSource1 = ""; var Pointtype = $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value'); var value = $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value'); if (Pointtype == 1)//성능분석 { if (value != null) { Y_Left_facility_id = Y_Left_facility_type[value - 4].items; } } else if (Pointtype == 2) { //가상 if (value != null) { Y_Left_facility_id = Y_Left_facility_type[0].items; } } else { //일반 if (value != null) { Y_Left_facility_id = Y_Left_facility_type[value - Y_Left_excnt].items; } } $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_FacilityCode").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 이름", dataSource: Y_Left_facility_id, displayExpr: "text", valueExpr: "id" }); $("#Y_Left_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Left_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId" }); } }); $("#Y_Left_FacilityCode").dxSelectBox({ onValueChanged: function () { if (Y_Left_facility_id == "") { if (Y_Left_facility_type == "") { var value1 = $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value'); if (value1 == null || value1 == "") Y_Left_facility_type = ""; else Y_Left_facility_type = Y_Left_treeViewData[value1 - 1].items; } var Pointtype = $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value'); var value = $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value'); if (Pointtype == 1)//성능분석 { if (value != null) { Y_Left_facility_id = Y_Left_facility_type[value - 4].items; } } else if (Pointtype == 2) { //가상 if (value != null) { Y_Left_facility_id = Y_Left_facility_type[0].items; } } else { //일반 if (value != null) { Y_Left_facility_id = Y_Left_facility_type[value - Y_Left_excnt].items; } } } Y_Left_setDataSource1 = ""; var value = $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value'); facilityTypeId_fin = 0, facilityCode_fin = 0, parentId_fin = 0; if (value != null) { for (var i = 0; i < Y_Left_facility_id.length; i++) { if (Y_Left_facility_id[i].id == value) { facilityTypeId_fin = Y_Left_facility_id[i].facilityTypeId; facilityCode_fin = Y_Left_facility_id[i].facilityCode; parentId_fin = Y_Left_facility_id[i].parentId; facilityName_fin = Y_Left_facility_id[i].text; break; } } Y_Left_GetData(facilityTypeId_fin, facilityCode_fin, parentId_fin); } $("#Y_Left_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Left_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Left_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId", }); } }); $("#Y_Left_ControlId").dxSelectBox({ onValueChanged: function () { var value = $("#Y_Left_ControlId").dxSelectBox('instance').option('text'); if (value != null) { for (var i = 0; i < Y_Left_setDataSource1.length; i++) { if (Y_Left_setDataSource1[i].ControlPoint == value) { propertyId_fin = Y_Left_setDataSource1[i].PropertyId; controlPoint_fin = Y_Left_setDataSource1[i].ControlPoint; formulaId_fin = Y_Left_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Left_changed) { var Point_Type_Id_temp = 0; for (var i = 0; i < Y_Left_treeViewData.length; i++) { if (Y_Left_treeViewData[i].text == Point_Type_Id) { Point_Type_Id_temp = Y_Left_treeViewData[i].id; break; } } $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value', Point_Type_Id_temp); var Y_Left_facility_type_Id_temp = 0; for (var j = 0; j < Y_Left_treeViewData[Point_Type_Id_temp - 1].items.length; j++) { if (Y_Left_treeViewData[Point_Type_Id_temp - 1].items[j].facilityTypeId == facilityTypeId) { Y_Left_facility_type_Id_temp = Y_Left_treeViewData[Point_Type_Id_temp - 1].items[j].id; break; } } $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value', Y_Left_facility_type_Id_temp); var FacilityCode_temp = 0; var facilityTypeId_temp = 0; var parentId_temp = 0; var delete_value var FacilityCode_id_temp = 0; if (Point_Type_Id_temp == 1) { delete_value = 4; } else if (Point_Type_Id_temp == 2) { delete_value = Y_Left_facility_type_Id_temp; } else { delete_value = Y_Left_excnt; } for (var k = 0; k < Y_Left_treeViewData[Point_Type_Id_temp - 1].items[Y_Left_facility_type_Id_temp - delete_value].items.length; k++) { if (Y_Left_treeViewData[Point_Type_Id_temp - 1].items[Y_Left_facility_type_Id_temp - delete_value].items[k].facilityCode == FacilityCode) { FacilityCode_id_temp = Y_Left_treeViewData[Point_Type_Id_temp - 1].items[Y_Left_facility_type_Id_temp - delete_value].items[k].id; FacilityCode_temp = Y_Left_treeViewData[Point_Type_Id_temp - 1].items[Y_Left_facility_type_Id_temp - delete_value].items[k].facilityCode; facilityTypeId_temp = Y_Left_treeViewData[Point_Type_Id_temp - 1].items[Y_Left_facility_type_Id_temp - delete_value].items[k].facilityTypeId; parentId_temp = Y_Left_treeViewData[Point_Type_Id_temp - 1].items[Y_Left_facility_type_Id_temp - delete_value].items[k].parentId; break; } } Y_Left_GetData(facilityTypeId_temp, FacilityCode_temp, parentId_temp); } // Y축 좌측 시리즈 선택 $("#Y_Left_ChartType").dxSelectBox({ items: [ "bar", "line", "area", "scatter", "spline", "splinearea", "stepline", "steparea" ], value: "bar" }); // Y 좌측 차트 ******************** // Y 우측(1) 차트 ******************** Y_Right1_GetPopupTreeViewData(); Y_Right1_facility_type = ""; Y_Right1_facility_id = ""; $("#Y_Right1_Point_Type_Id").dxSelectBox({ placeholder: "관제점 타입", dataSource: Y_Right1_treeViewData, displayExpr: "text", valueExpr: "id" }); $("#Y_Right1_FacilityTypeId").dxSelectBox({ placeholder: "설비 타입" }); $("#Y_Right1_FacilityCode").dxSelectBox({ placeholder: "설비 이름" }); $("#Y_Right1_ControlId").dxSelectBox({ placeholder: "관제점 이름" }); $("#Y_Right1_Point_Type_Id").dxSelectBox({ onValueChanged: function () { Y_Right1_facility_type = ""; Y_Right1_facility_id = ""; Y_Right1_setDataSource1 = ""; var value = $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value'); if (value == null || value == 0 || value == "") Y_Right1_facility_type = ""; else Y_Right1_facility_type = Y_Right1_treeViewData[value - 1].items; $("#Y_Right1_FacilityTypeId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_FacilityTypeId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 타입", dataSource: Y_Right1_facility_type, displayExpr: "text", valueExpr: "id" }); $("#Y_Right1_FacilityCode").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_FacilityCode").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 이름", dataSource: Y_Right1_facility_id, displayExpr: "text", valueExpr: "id" }); $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right1_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId" }); } }); $("#Y_Right1_FacilityTypeId").dxSelectBox({ onValueChanged: function () { if (Y_Right1_facility_type == "") { var value1 = $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value'); if (value1 == null || value1 == 0 || value1 == "") Y_Right1_facility_type = ""; else Y_Right1_facility_type = Y_Right1_treeViewData[value1 - 1].items; } Y_Right1_facility_id = ""; Y_Right1_setDataSource1 = ""; var Pointtype = $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value'); var value = $("#Y_Right1_FacilityTypeId").dxSelectBox('instance').option('value'); if (Pointtype == 1)//성능분석 { if (value != null) { Y_Right1_facility_id = Y_Right1_facility_type[value - 4].items; } } else if (Pointtype == 2) { //가상 if (value != null) { Y_Right1_facility_id = Y_Right1_facility_type[0].items; } } else if (Pointtype == 3) { //일반 if (value != null) { Y_Right1_facility_id = Y_Right1_facility_type[value - Y_Right1_excnt].items; } } $("#Y_Right1_FacilityCode").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_FacilityCode").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 이름", dataSource: Y_Right1_facility_id, displayExpr: "text", valueExpr: "id" }); $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right1_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId" }); } }); $("#Y_Right1_FacilityCode").dxSelectBox({ onValueChanged: function () { if (Y_Right1_facility_id == "") { if (Y_Right1_facility_type == "") { var value1 = $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value'); if (value1 == null || value1 == 0 || value1 == "") Y_Right1_facility_type = ""; else Y_Right1_facility_type = Y_Right1_treeViewData[value1 - 1].items; } var Pointtype = $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value'); var value = $("#Y_Right1_FacilityTypeId").dxSelectBox('instance').option('value'); if (Pointtype == 1)//성능분석 { if (value != null) { Y_Right1_facility_id = Y_Right1_facility_type[value - 4].items; } } else if (Pointtype == 2) { //가상 if (value != null) { Y_Right1_facility_id = Y_Right1_facility_type[0].items; } } else if (Pointtype == 3) { //일반 if (value != null) { Y_Right1_facility_id = Y_Right1_facility_type[value - Y_Right1_excnt].items; } } } Y_Right1_setDataSource1 = ""; var value = $("#Y_Right1_FacilityCode").dxSelectBox('instance').option('value'); facilityTypeId_fin = 0, facilityCode_fin = 0, parentId_fin = 0; if (value != null) { for (var i = 0; i < Y_Right1_facility_id.length; i++) { if (Y_Right1_facility_id[i].id == value) { facilityTypeId_fin = Y_Right1_facility_id[i].facilityTypeId; facilityCode_fin = Y_Right1_facility_id[i].facilityCode; parentId_fin = Y_Right1_facility_id[i].parentId; facilityName_fin = Y_Right1_facility_id[i].text; break; } } Y_Right1_GetData(facilityTypeId_fin, facilityCode_fin, parentId_fin); } $("#Y_Right1_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right1_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right1_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId", }); } }); $("#Y_Right1_ControlId").dxSelectBox({ onValueChanged: function () { var value = $("#Y_Right1_ControlId").dxSelectBox('instance').option('text'); if (value != null) { for (var i = 0; i < Y_Right1_setDataSource1.length; i++) { if (Y_Right1_setDataSource1[i].ControlPoint == value) { propertyId_fin = Y_Right1_setDataSource1[i].PropertyId; controlPoint_fin = Y_Right1_setDataSource1[i].ControlPoint; formulaId_fin = Y_Right1_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Right1_changed) { var Point_Type_Id_temp = 0; for (var i = 0; i < Y_Right1_treeViewData.length; i++) { if (Y_Right1_treeViewData[i].text == Point_Type_Id) { Point_Type_Id_temp = Y_Right1_treeViewData[i].id; break; } } $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value', Point_Type_Id_temp); var Y_Right1_facility_type_Id_temp = 0; for (var j = 0; j < Y_Right1_treeViewData[Point_Type_Id_temp - 1].items.length; j++) { if (Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[j].facilityTypeId == facilityTypeId) { Y_Right1_facility_type_Id_temp = Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[j].id; break; } } $("#Y_Right1_FacilityTypeId").dxSelectBox('instance').option('value', Y_Right1_facility_type_Id_temp); var FacilityCode_temp = 0; var facilityTypeId_temp = 0; var parentId_temp = 0; var delete_value var FacilityCode_id_temp = 0; if (Point_Type_Id_temp == 1) { delete_value = 4; } else if (Point_Type_Id_temp == 2) { delete_value = Y_Right1_facility_type_Id_temp; } else { delete_value = Y_Right1_excnt; } for (var k = 0; k < Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[Y_Right1_facility_type_Id_temp - delete_value].items.length; k++) { if (Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[Y_Right1_facility_type_Id_temp - delete_value].items[k].facilityCode == FacilityCode) { FacilityCode_id_temp = Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[Y_Right1_facility_type_Id_temp - delete_value].items[k].id; FacilityCode_temp = Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[Y_Right1_facility_type_Id_temp - delete_value].items[k].facilityCode; facilityTypeId_temp = Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[Y_Right1_facility_type_Id_temp - delete_value].items[k].facilityTypeId; parentId_temp = Y_Right1_treeViewData[Point_Type_Id_temp - 1].items[Y_Right1_facility_type_Id_temp - delete_value].items[k].parentId; break; } } Y_Right1_GetData(facilityTypeId_temp, FacilityCode_temp, parentId_temp); } // Y축 우측(1) 시리즈 선택 $("#Y_Right1_ChartType").dxSelectBox({ items: [ "bar", "line", "area", "scatter", "spline", "splinearea", "stepline", "steparea" ], value: "bar" }); // Y 우측(1) 차트 ******************** // Y 우측(2) 차트 ******************** Y_Right2_GetPopupTreeViewData(); Y_Right2_facility_type = ""; Y_Right2_facility_id = ""; $("#Y_Right2_Point_Type_Id").dxSelectBox({ placeholder: "관제점 타입", dataSource: Y_Right2_treeViewData, displayExpr: "text", valueExpr: "id" }); $("#Y_Right2_FacilityTypeId").dxSelectBox({ placeholder: "설비 타입" }); $("#Y_Right2_FacilityCode").dxSelectBox({ placeholder: "설비 이름" }); $("#Y_Right2_ControlId").dxSelectBox({ placeholder: "관제점 이름" }); $("#Y_Right2_Point_Type_Id").dxSelectBox({ onValueChanged: function () { Y_Right2_facility_type = ""; Y_Right2_facility_id = ""; Y_Right2_setDataSource1 = ""; var value = $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value'); if (value == null || value == 0 || value == "") Y_Right2_facility_type = ""; else Y_Right2_facility_type = Y_Right2_treeViewData[value - 1].items; $("#Y_Right2_FacilityTypeId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_FacilityTypeId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 타입", dataSource: Y_Right2_facility_type, displayExpr: "text", valueExpr: "id" }); $("#Y_Right2_FacilityCode").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_FacilityCode").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 이름", dataSource: Y_Right2_facility_id, displayExpr: "text", valueExpr: "id" }); $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right2_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId" }); } }); $("#Y_Right2_FacilityTypeId").dxSelectBox({ onValueChanged: function () { if (Y_Right2_facility_type == "") { var value1 = $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value'); if (value1 == null || value1 == 0 || value1 == "") Y_Right2_facility_type = ""; else Y_Right2_facility_type = Y_Right2_treeViewData[value1 - 1].items; } Y_Right2_facility_id = ""; Y_Right2_setDataSource1 = ""; var Pointtype = $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value'); var value = $("#Y_Right2_FacilityTypeId").dxSelectBox('instance').option('value'); if (Pointtype == 1)//성능분석 { if (value != null) { Y_Right2_facility_id = Y_Right2_facility_type[value - 4].items; } } else if (Pointtype == 2) { //가상 if (value != null) { Y_Right2_facility_id = Y_Right2_facility_type[0].items; } } else { //일반 if (value != null) { Y_Right2_facility_id = Y_Right2_facility_type[value - Y_Right2_excnt].items; } } $("#Y_Right2_FacilityCode").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_FacilityCode").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "설비 이름", dataSource: Y_Right2_facility_id, displayExpr: "text", valueExpr: "id" }); $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right2_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId" }); } }); $("#Y_Right2_FacilityCode").dxSelectBox({ onValueChanged: function () { if (Y_Right2_facility_id == "") { if (Y_Right2_facility_type == "") { var value1 = $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value'); if (value1 == null || value1 == 0 || value1 == "") Y_Right2_facility_type = ""; else Y_Right2_facility_type = Y_Right2_treeViewData[value1 - 1].items; } var Pointtype = $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value'); var value = $("#Y_Right2_FacilityTypeId").dxSelectBox('instance').option('value'); if (Pointtype == 1)//성능분석 { if (value != null) { Y_Right2_facility_id = Y_Right2_facility_type[value - 4].items; } } else if (Pointtype == 2) { //가상 if (value != null) { Y_Right2_facility_id = Y_Right2_facility_type[0].items; } } else { //일반 if (value != null) { Y_Right2_facility_id = Y_Right2_facility_type[value - Y_Right2_excnt].items; } } } Y_Right2_setDataSource1 = ""; var value = $("#Y_Right2_FacilityCode").dxSelectBox('instance').option('value'); facilityTypeId_fin = 0, facilityCode_fin = 0, parentId_fin = 0; if (value != null) { for (var i = 0; i < Y_Right2_facility_id.length; i++) { if (Y_Right2_facility_id[i].id == value) { facilityTypeId_fin = Y_Right2_facility_id[i].facilityTypeId; facilityCode_fin = Y_Right2_facility_id[i].facilityCode; parentId_fin = Y_Right2_facility_id[i].parentId; facilityName_fin = Y_Right2_facility_id[i].text; break; } } Y_Right2_GetData(facilityTypeId_fin, facilityCode_fin, parentId_fin); } $("#Y_Right2_ControlId").dxSelectBox('instance').option('value', null);// 텍스트 클리어 $("#Y_Right2_ControlId").dxSelectBox({// 두번째 콤보 바인딩 placeholder: "관제점 이름", dataSource: Y_Right2_setDataSource1, displayExpr: "ControlPoint", valueExpr: "FormulaId", }); } }); $("#Y_Right2_ControlId").dxSelectBox({ onValueChanged: function () { var value = $("#Y_Right2_ControlId").dxSelectBox('instance').option('text'); if (value != null) { for (var i = 0; i < Y_Right2_setDataSource1.length; i++) { if (Y_Right2_setDataSource1[i].ControlPoint == value) { propertyId_fin = Y_Right2_setDataSource1[i].PropertyId; controlPoint_fin = Y_Right2_setDataSource1[i].ControlPoint; formulaId_fin = Y_Right2_setDataSource1[i].FormulaId; break; } } } } }); if (Y_Right2_changed) { var Point_Type_Id_temp = 0; for (var i = 0; i < Y_Right2_treeViewData.length; i++) { if (Y_Right2_treeViewData[i].text == Point_Type_Id) { Point_Type_Id_temp = Y_Right2_treeViewData[i].id; break; } } $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value', Point_Type_Id_temp); var Y_Right2_facility_type_Id_temp = 0; for (var j = 0; j < Y_Right2_treeViewData[Point_Type_Id_temp - 1].items.length; j++) { if (Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[j].facilityTypeId == facilityTypeId) { Y_Right2_facility_type_Id_temp = Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[j].id; break; } } $("#Y_Right2_FacilityTypeId").dxSelectBox('instance').option('value', Y_Right2_facility_type_Id_temp); var FacilityCode_temp = 0; var facilityTypeId_temp = 0; var parentId_temp = 0; var delete_value var FacilityCode_id_temp = 0; if (Point_Type_Id_temp == 1) { delete_value = 4; } else if (Point_Type_Id_temp == 2) { delete_value = Y_Right2_facility_type_Id_temp; } else { delete_value = Y_Right2_excnt; } for (var k = 0; k < Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[Y_Right2_facility_type_Id_temp - delete_value].items.length; k++) { if (Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[Y_Right2_facility_type_Id_temp - delete_value].items[k].facilityCode == FacilityCode) { FacilityCode_id_temp = Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[Y_Right2_facility_type_Id_temp - delete_value].items[k].id; FacilityCode_temp = Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[Y_Right2_facility_type_Id_temp - delete_value].items[k].facilityCode; facilityTypeId_temp = Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[Y_Right2_facility_type_Id_temp - delete_value].items[k].facilityTypeId; parentId_temp = Y_Right2_treeViewData[Point_Type_Id_temp - 1].items[Y_Right2_facility_type_Id_temp - delete_value].items[k].parentId; break; } } Y_Right2_GetData(facilityTypeId_temp, FacilityCode_temp, parentId_temp); } // Y축 우측(2) 시리즈 선택 $("#Y_Right2_ChartType").dxSelectBox({ items: [ "bar", "line", "area", "scatter", "spline", "splinearea", "stepline", "steparea" ], value: "bar" }); // Y 우측(2) 차트 ******************** var v1 = $("#Y_Right1_Point_Type_Id").dxSelectBox("instance").option('value', 0); $("#Y_Right2_Point_Type_Id").dxSelectBox("instance").option('value', 0); // 조회 버튼 $("#Button_Search").dxButton({ text: "조회", onClick: function () { Y_Left_PointType = $("#Y_Left_Point_Type_Id").dxSelectBox('instance').option('value'); Y_Left_formulaName = $("#Y_Left_ControlId").dxSelectBox('instance').option('text'); var Y_Left_ChartType = $("#Y_Left_ChartType").dxSelectBox('instance').option('text'); var Y_Left_facilityType = $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value'); var Y_Left_facilityCode = $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value'); var Y_Left_controlId = $("#Y_Left_ControlId").dxSelectBox('instance').option('value'); if (Y_Left_PointType == 1) //성능분석 Y_Left_facilityType = Y_Left_facilityType - 3; else if (Y_Left_PointType == 2) //가상 시설 Y_Left_facilityType = 99; else if (Y_Left_PointType == 3) // 일반 시설 Y_Left_facilityType = Y_Left_facilityType - 49; for (var i = 0; i < Y_Left_facility_id.length; i++) { if (Y_Left_facility_id[i].id == Y_Left_facilityCode) { Y_Left_facilityCode = Y_Left_facility_id[i].facilityCode; break; } } Y_Right1_PointType = $("#Y_Right1_Point_Type_Id").dxSelectBox('instance').option('value'); if (Y_Right1_PointType == 0) { // 데이터 오류 방지 Y_Right1_formulaName = $("#Y_Left_ControlId").dxSelectBox('instance').option('text'); var Y_Right1_ChartType = $("#Y_Left_ChartType").dxSelectBox('instance').option('text'); var Y_Right1_facilityType = $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value'); var Y_Right1_facilityCode = $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value'); var Y_Right1_controlId = $("#Y_Left_ControlId").dxSelectBox('instance').option('value'); } else { Y_Right1_formulaName = $("#Y_Right1_ControlId").dxSelectBox('instance').option('text'); var Y_Right1_ChartType = $("#Y_Right1_ChartType").dxSelectBox('instance').option('text'); var Y_Right1_facilityType = $("#Y_Right1_FacilityTypeId").dxSelectBox('instance').option('value'); var Y_Right1_facilityCode = $("#Y_Right1_FacilityCode").dxSelectBox('instance').option('value'); var Y_Right1_controlId = $("#Y_Right1_ControlId").dxSelectBox('instance').option('value'); if (Y_Right1_PointType == 1) //성능분석 Y_Right1_facilityType = Y_Right1_facilityType - 3; else if (Y_Right1_PointType == 2) //가상 시설 Y_Right1_facilityType = 99; else if (Y_Right1_PointType == 3) // 일반 시설 Y_Right1_facilityType = Y_Right1_facilityType - 49; for (var i = 0; i < Y_Right1_facility_id.length; i++) { if (Y_Right1_facility_id[i].id == Y_Right1_facilityCode) { Y_Right1_facilityCode = Y_Right1_facility_id[i].facilityCode; break; } } } Y_Right2_PointType = $("#Y_Right2_Point_Type_Id").dxSelectBox('instance').option('value'); if (Y_Right2_PointType == 0) { // 데이터 오류 방지 Y_Right2_formulaName = $("#Y_Left_ControlId").dxSelectBox('instance').option('text'); var Y_Right2_ChartType = $("#Y_Left_ChartType").dxSelectBox('instance').option('text'); var Y_Right2_facilityType = $("#Y_Left_FacilityTypeId").dxSelectBox('instance').option('value'); var Y_Right2_facilityCode = $("#Y_Left_FacilityCode").dxSelectBox('instance').option('value'); var Y_Right2_controlId = $("#Y_Left_ControlId").dxSelectBox('instance').option('value'); } else { Y_Right2_formulaName = $("#Y_Right2_ControlId").dxSelectBox('instance').option('text'); var Y_Right2_ChartType = $("#Y_Right2_ChartType").dxSelectBox('instance').option('text'); var Y_Right2_facilityType = $("#Y_Right2_FacilityTypeId").dxSelectBox('instance').option('value'); var Y_Right2_facilityCode = $("#Y_Right2_FacilityCode").dxSelectBox('instance').option('value'); var Y_Right2_controlId = $("#Y_Right2_ControlId").dxSelectBox('instance').option('value'); if (Y_Right2_PointType == 1) //성능분석 Y_Right2_facilityType = Y_Right2_facilityType - 3; else if (Y_Right2_PointType == 2) //가상 시설 Y_Right2_facilityType = 99; else if (Y_Right2_PointType == 3) // 일반 시설 Y_Right2_facilityType = Y_Right2_facilityType - 49; for (var i = 0; i < Y_Right2_facility_id.length; i++) { if (Y_Right2_facility_id[i].id == Y_Right2_facilityCode) { Y_Right2_facilityCode = Y_Right2_facility_id[i].facilityCode; break; } } } var timeIntervalType = $("#Time_Interval").dxSelectBox('instance').option('value'); var start_date = $("#Search_Date_Start").dxDateBox('instance').option('value'); var end_date = $("#Search_Date_End").dxDateBox('instance').option('value'); if (timeIntervalType != 3) { var start_time = $("#Search_Time_Start").dxDateBox('instance').option('value'); var end_time = $("#Search_Time_End").dxDateBox('instance').option('value'); } // 시 선택 if (timeIntervalType == 1) var timeType = $Code.TimeType.QUARTERMIN; else if (timeIntervalType == 2) var timeType = $Code.TimeType.HOUR; else if (timeIntervalType == 3) var timeType = $Code.TimeType.DAY; // 필수 정보 확인 if (Y_Left_PointType == null || Y_Left_facilityType == null || Y_Left_facilityCode == null || Y_Left_controlId == null) { utils.toast.show($G('Error_Formula_NotInputData'), 'error'); return; } if (Y_Right1_PointType != 0 && (Y_Right1_PointType == null || Y_Right1_facilityType == null || Y_Right1_facilityCode == null || Y_Right1_controlId == null)) { utils.toast.show($G('Error_Formula_NotInputData'), 'error'); return; } if (Y_Right2_PointType != 0 && (Y_Right2_PointType == null || Y_Right2_facilityType == null || Y_Right2_facilityCode == null || Y_Right2_controlId == null)) { utils.toast.show($G('Error_Formula_NotInputData'), 'error'); return; } // dxLoadPanel 패널 시작 $("#LoadPanel").dxLoadPanel('instance').option('visible', true); if (timeIntervalType != 3) { startDate = new Date(start_date.getFullYear(), start_date.getMonth(), start_date.getDate(), start_time.getHours(), start_time.getMinutes()); endDate = new Date(end_date.getFullYear(), end_date.getMonth(), end_date.getDate(), end_time.getHours(), end_time.getMinutes()); } else { startDate = new Date(start_date.getFullYear(), start_date.getMonth(), start_date.getDate()); endDate = new Date(end_date.getFullYear(), end_date.getMonth(), end_date.getDate()); } // 컨트롤러에 데이터 요청 (성능분석/일반설비,가상설비 별로 다르게 데이터를 요청해야한다) 2019.05. var formulaGet = new BWA.Chart.FormulaGet(BWA.UserInfo.SiteId()); var virtualNormalPointHistory_CurrentValueGet = new BWA.Chart.VirtualNormalPointHistory_CurrentValueGet(BWA.UserInfo.SiteId()); var promises = []; var commonParameters = { TimeIntervalType: timeType, StartDate: startDate, EndDate: endDate }; if (Y_Left_PointType == 1) { var Y_Left_Parameters = { FacilityTypeId: Y_Left_facilityType, FacilityCode: Y_Left_facilityCode, FormulaId: Y_Left_controlId, }; } else { var Y_Left_Parameters = { FacilityTypeId: Y_Left_facilityType, FacilityCode: Y_Left_facilityCode, PropertyId: Y_Left_controlId, }; } if (Y_Right1_PointType == 1) { var Y_Right1_Parameters = { FacilityTypeId: Y_Right1_facilityType, FacilityCode: Y_Right1_facilityCode, FormulaId: Y_Right1_controlId, }; } else { var Y_Right1_Parameters = { FacilityTypeId: Y_Right1_facilityType, FacilityCode: Y_Right1_facilityCode, PropertyId: Y_Right1_controlId, }; } if (Y_Right2_PointType == 1) { var Y_Right2_Parameters = { FacilityTypeId: Y_Right2_facilityType, FacilityCode: Y_Right2_facilityCode, FormulaId: Y_Right2_controlId, }; } else { var Y_Right2_Parameters = { FacilityTypeId: Y_Right2_facilityType, FacilityCode: Y_Right2_facilityCode, PropertyId: Y_Right2_controlId, }; } if (Y_Left_PointType == 1) promises.push(formulaGet.apiGet(_.extend(Y_Left_Parameters, commonParameters))); else promises.push(virtualNormalPointHistory_CurrentValueGet.apiGet(_.extend(Y_Left_Parameters, commonParameters))); if (Y_Right1_PointType == 1) promises.push(formulaGet.apiGet(_.extend(Y_Right1_Parameters, commonParameters))); else promises.push(virtualNormalPointHistory_CurrentValueGet.apiGet(_.extend(Y_Right1_Parameters, commonParameters))); if (Y_Right2_PointType == 1) promises.push(formulaGet.apiGet(_.extend(Y_Right2_Parameters, commonParameters))); else promises.push(virtualNormalPointHistory_CurrentValueGet.apiGet(_.extend(Y_Right2_Parameters, commonParameters))); DataArrayforChart = []; ChartDataArray = []; ChartDataArray1 = []; ChartDataArray2 = []; ChartDataArray3 = []; DataArrayforGrid = []; GridDataArray = []; GridDataArray1 = []; GridDataArray2 = []; GridDataArray3 = []; Y_Left_maxValuecops = 0; Y_Right1_maxValuecops = 0; Y_Right2_maxValuecops = 0; $.when.apply(this, promises).done(function (values, value2, value3) { if (Y_Left_PointType != 1) values[0] = values[0][0]; if (Y_Right1_PointType != 1) value2[0] = value2[0][0]; if (Y_Right2_PointType != 1) value3[0] = value3[0][0]; _.each(values[0], function (x) { if (Y_Left_maxValuecops < x.Value) Y_Left_maxValuecops = x.Value; if (Y_Left_minValuecops >= x.Value) Y_Left_minValuecops = x.Value; ChartDataArray.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeType, moment(x.DateTime).toDate()), value1: x.Value }); ChartDataArray1.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeType, moment(x.DateTime).toDate()), value1: x.Value }); ChartDataArray2.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeType, moment(x.DateTime).toDate()), value1: x.Value }); ChartDataArray3.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeType, moment(x.DateTime).toDate()), value1: x.Value }); DataArrayforChart = ChartDataArray; }); if (Y_Right1_PointType != 0 && Y_Right2_PointType == 0) { var i = 0; _.each(value2[0], function (x) { if (Y_Right1_maxValuecops < x.Value) Y_Right1_maxValuecops = x.Value; if (Y_Right1_minValuecops >= x.Value) Y_Right1_minValuecops = x.Value; ChartDataArray1[i].value2 = x.Value; ChartDataArray3[i].value2 = x.Value; i++; }); DataArrayforChart = ChartDataArray1; } if (Y_Right1_PointType == 0 && Y_Right2_PointType != 0) { var i = 0; _.each(value3[0], function (x) { if (Y_Right2_maxValuecops < x.Value) Y_Right2_maxValuecops = x.Value; if (Y_Right2_minValuecops >= x.Value) Y_Right2_minValuecops = x.Value; ChartDataArray2[i].value3 = x.Value; ChartDataArray3[i].value3 = x.Value; i++; }); DataArrayforChart = ChartDataArray2; } if (Y_Right1_PointType != 0 && Y_Right2_PointType != 0) { var i = 0; _.each(value2[0], function (x) { if (Y_Right1_maxValuecops < x.Value) Y_Right1_maxValuecops = x.Value; if (Y_Right1_minValuecops >= x.Value) Y_Right1_minValuecops = x.Value; ChartDataArray3[i].value2 = x.Value; i++; }); var i = 0; _.each(value3[0], function (x) { if (Y_Right2_maxValuecops < x.Value) Y_Right2_maxValuecops = x.Value; if (Y_Right2_minValuecops >= x.Value) Y_Right2_minValuecops = x.Value; ChartDataArray3[i].value3 = x.Value; i++; }); DataArrayforChart = ChartDataArray3; } //도표를 위한 데이터 업데이트 _.each(values[0], function (x) { if (Y_Left_maxValuecops < x.Value) Y_Left_maxValuecops = x.Value; if (Y_Left_minValuecops >= x.Value) Y_Left_minValuecops = x.Value; GridDataArray.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString($Code.TimeType.QUARTERMIN, moment(x.DateTime).toDate()), value1: x.Value }); GridDataArray1.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString($Code.TimeType.QUARTERMIN, moment(x.DateTime).toDate()), value1: x.Value }); GridDataArray2.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString($Code.TimeType.QUARTERMIN, moment(x.DateTime).toDate()), value1: x.Value }); GridDataArray3.push({ DateTime: BWA.Chart.getCustermTimeArgumentAxisString($Code.TimeType.QUARTERMIN, moment(x.DateTime).toDate()), value1: x.Value }); DataArrayforGrid = GridDataArray; }); if (Y_Right1_PointType != 0 && Y_Right2_PointType == 0) { var i = 0; _.each(value2[0], function (x) { if (Y_Right1_maxValuecops < x.Value) Y_Right1_maxValuecops = x.Value; if (Y_Right1_minValuecops >= x.Value) Y_Right1_minValuecops = x.Value; GridDataArray1[i].value2 = x.Value; GridDataArray3[i].value2 = x.Value; i++; }); DataArrayforGrid = GridDataArray1; } if (Y_Right1_PointType == 0 && Y_Right2_PointType != 0) { var i = 0; _.each(value3[0], function (x) { if (Y_Right2_maxValuecops < x.Value) Y_Right2_maxValuecops = x.Value; if (Y_Right2_minValuecops >= x.Value) Y_Right2_minValuecops = x.Value; GridDataArray2[i].value3 = x.Value; GridDataArray3[i].value3 = x.Value; i++; }); DataArrayforGrid = GridDataArray2; } if (Y_Right1_PointType != 0 && Y_Right2_PointType != 0) { var i = 0; _.each(value2[0], function (x) { if (Y_Right1_maxValuecops < x.Value) Y_Right1_maxValuecops = x.Value; if (Y_Right1_minValuecops >= x.Value) Y_Right1_minValuecops = x.Value; GridDataArray3[i].value2 = x.Value; i++; }); var i = 0; _.each(value3[0], function (x) { if (Y_Right2_maxValuecops < x.Value) Y_Right2_maxValuecops = x.Value; if (Y_Right2_minValuecops >= x.Value) Y_Right2_minValuecops = x.Value; GridDataArray3[i].value3 = x.Value; i++; }); DataArrayforGrid = GridDataArray3; } //도표를 위한 데이터 업데이트 $("#Chart_Free").dxChart({ dataSource: DataArrayforChart, palette: "Bright", legend: { visible: true, verticalAlignment: 'top', horizontalAlignment: 'center' }, commonSeriesSettings: { argumentField: "DateTime", selectionStyle: { hatching: { direction: "left" } } }, valueAxis: valueAxis(Y_Left_formulaName, Y_Left_maxValuecops, Y_Right1_formulaName, Y_Right1_PointType, Y_Right1_maxValuecops, Y_Right2_formulaName, Y_Right2_PointType, Y_Right2_maxValuecops), series: series(Y_Left_formulaName, Y_Left_ChartType, Y_Right1_formulaName, Y_Right1_ChartType, Y_Right1_PointType, Y_Right2_formulaName, Y_Right2_ChartType, Y_Right2_PointType), crosshair: { enabled: true, width: 2, horizontalLine: { visible: false, //color: 'skyblue', dashStyle: 'dash' }, verticalLine: { visible: true, color: 'black', dashStyle: 'dash' }, label: { visible: true, backgroundColor: "#949494", font: { color: "#fff", size: 12, } } }, panes: [{ name: 'topPane', border: { visible: false, left: false, right: false, top: false, color: 'gray' } }, ], defaultPane: "topPane", tooltip: { format: 'fixedPoint', enabled: true, precision: 2, }, }) // dxLoadPanel 패널 정지 $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }).fail(function (error) { // dxLoadPanel 패널 정지 $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); } }); // 차트 세팅 function valueAxis(Y_Left_formulaName, Y_Left_maxValuecops, Y_Right1_formulaName, Y_Right1_PointType, Y_Right1_maxValuecops, Y_Right2_formulaName, Y_Right2_PointType, Y_Right2_maxValuecops) { var valueAxis = ''; // 기본 var Y_Left_valueAxis = [{ pane: 'topPane', name: 'value1', position: 'left', type: 'continuous', valueType: 'numeric', tickInterval: Math.round(Y_Left_maxValuecops / 5) + 1, //valueMarginsEnabled: true, //minValueMargin: 0, //maxValueMargin: 0, //min: Y_Left_minValuecops, //max: Y_Left_maxValuecops, label: { //font: { color: '#c96374' }, visible: true, }, title: { text: Y_Left_formulaName } }]; var Y_Right1_valueAxis = [{ pane: 'topPane', name: 'value2', position: 'right', type: 'continuous', valueType: 'numeric', tickInterval: Math.round(Y_Right1_maxValuecops / 5) + 1, //valueMarginsEnabled: true, //minValueMargin: 0, //maxValueMargin: 0, //min: Y_Right1_minValuecops, //max: Y_Right1_maxValuecops, label: { font: { color: 'red' }, visible: true, }, title: { text: Y_Right1_formulaName } }]; var Y_Right2_valueAxis = [{ pane: 'topPane', name: 'value3', position: 'right', type: 'continuous', valueType: 'numeric', tickInterval: Math.round(Y_Right2_maxValuecops / 5) + 1, //valueMarginsEnabled: true, //minValueMargin: 0, //maxValueMargin: 0, //min: Y_Right1_minValuecops, //max: Y_Right1_maxValuecops, label: { font: { color: 'blue' }, visible: true, }, title: { text: Y_Right2_formulaName } }]; if (Y_Right1_PointType == 0 && Y_Right2_PointType == 0) valueAxis = Y_Left_valueAxis; else if (Y_Right1_PointType != 0 && Y_Right2_PointType == 0) valueAxis = Y_Left_valueAxis.concat(Y_Right1_valueAxis); else if (Y_Right1_PointType == 0 && Y_Right2_PointType != 0) valueAxis = Y_Left_valueAxis.concat(Y_Right2_valueAxis); else { valueAxis = Y_Left_valueAxis.concat(Y_Right1_valueAxis); valueAxis = valueAxis.concat(Y_Right2_valueAxis); } return valueAxis; } // 차트 세팅 function series(Y_Left_formulaName, Y_Left_ChartType, Y_Right1_formulaName, Y_Right1_ChartType, Y_Right1_PointType, Y_Right2_formulaName, Y_Right2_ChartType, Y_Right2_PointType) { var series = ''; // 기본 var Y_Left_series = [{ axis: 'value1', type: Y_Left_ChartType, pane: 'topPane', name: Y_Left_formulaName, argumentField: "DateTime", valueField: 'value1', // //label: { // visible: false, //}, point: { size: 8 } }]; var Y_Right1_series = [{ axis: 'value2', type: Y_Right1_ChartType, pane: 'topPane', color: 'red', name: Y_Right1_formulaName, argumentField: "DateTime", valueField: 'value2', // //label: { // visible: false, //}, point: { size: 8 }, label: { visible: false, font: { color: 'red', }, } }]; var Y_Right2_series = [{ axis: 'value3', type: Y_Right2_ChartType, pane: 'topPane', color: 'blue', name: Y_Right2_formulaName, argumentField: "DateTime", valueField: 'value3', // //label: { // visible: false, //}, point: { size: 8 }, label: { visible: false, font: { color: 'blue', }, } }]; if (Y_Right1_PointType == 0 && Y_Right2_PointType == 0) series = Y_Left_series; else if (Y_Right1_PointType != 0 && Y_Right2_PointType == 0) series = Y_Left_series.concat(Y_Right1_series); else if (Y_Right1_PointType == 0 && Y_Right2_PointType != 0) series = Y_Left_series.concat(Y_Right2_series); else { series = Y_Left_series.concat(Y_Right1_series); series = series.concat(Y_Right2_series); } return series; } } // 2019.05.17 : 그리드 도표 작업 : 팝업창 추가 , Free_ChartDataGridPopup_ButtonClicked: DataGridPopup_ButtonClick // 2019.05.17 : 그리드 도표 작업 : 팝업창 추가 }); // 2017.09.08 : 그리드 도표 작업 : 팝업창 추가 viewModel.Free_ChartDataGridPopupOptions = { width: '700px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; // 2017.09.08 : 그리드 도표 작업 : 팝업창 추가 // 2017.09.08 : 그리드 도표 작업 : 팝업창 추가 // 주석이 너무 없음. 나중에 변경 작업을 진행하는 누군가가 시간 소비를 하지 않기 위해...남김 // 시간 포맷은 그래프에 귀속해야 되므로 포맷은 변경하지 않는 것이 유리함 // 전기,가스,수도 와 같이 선택적으로 변경해야 된다면 아래와 같이 캡션은 고정하지 말것 viewModel.Free_ChartDataGridOptions = { dataSource: DataArrayforGrid, paging: { pageSize: 17 }, columns: [ { dataField: 'DateTime', caption: "날짜", width: '50%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value1', width: '50%', alignment: 'center', format: 'fixedPoint', precision: 2 }, ], // 엑셀 출력 "export": { enabled: true, fileName: '사용자 지정차트 데이터' } }; viewModel.Free_ChartDataGridPopupOptions1 = { width: '700px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible1, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; viewModel.Free_ChartDataGridOptions1 = { dataSource: DataArrayforGrid, paging: { pageSize: 17 }, columns: [ { dataField: 'DateTime', caption: "날짜", width: '50%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value1', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value2', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, ], // 엑셀 출력 "export": { enabled: true, fileName: '사용자 지정차트 데이터' } }; viewModel.Free_ChartDataGridPopupOptions2 = { width: '700px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible2, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; viewModel.Free_ChartDataGridOptions2 = { dataSource: DataArrayforGrid, paging: { pageSize: 17 }, columns: [ { dataField: 'DateTime', caption: "날짜", width: '50%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value1', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value3', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, ], // 엑셀 출력 "export": { enabled: true, fileName: '사용자 지정차트 데이터' } }; viewModel.Free_ChartDataGridPopupOptions3 = { width: '700px', height: '750px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨 contentTemplate: "content", showTitle: true, title: "도표", visible: DataGridPopup_Visible3, dragEnabled: true, closeOnOutsideClick: true, shownAction: handlePopupShown, animation: window.utils.popup.createAnimation() }; viewModel.Free_ChartDataGridOptions3 = { dataSource: DataArrayforGrid, paging: { pageSize: 17 }, columns: [ { dataField: 'DateTime', caption: "날짜", width: '25%', alignment: 'center' },//, format: 'fixedPoint', precision: 2, }, { dataField: 'value1', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value2', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, { dataField: 'value3', width: '25%', alignment: 'center', format: 'fixedPoint', precision: 2 }, ], // 엑셀 출력 "export": { enabled: true, fileName: '사용자 지정차트 데이터' } }; // 2017.09.08 : 그리드 도표 작업 : 팝업창 추가 viewModel.handleEdit = handleEdit; return viewModel; };