| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 | BemsWebApplication.SetChart = function (params, viewInfo) {    "use strict";    var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType', true);    var ChartInfoDataSource = BemsWebApplication.db.createDataSource('BemsChartInfo', true);    var facilityTypes = ko.observableArray();    var ChartInfo = ko.observableArray();    var searchfacilityTypes = ko.observableArray();    var facilityTypeDeferred = new $.Deferred();    var BemsFormulaBaseDataSource = BemsWebApplication.db.createDataSource('BemsFormulaBase', true, true);    var formulaListByFacilityType = ko.observableArray();    var palettes = ['Default', 'Soft Pastel', 'Harmony Light', 'Pastel', 'Bright', 'Soft', 'Ocean', 'Vintage', 'Violet'];    var chartTypes = ['bar', 'line', 'spline', 'area', 'scatter', 'splinearea', 'stepline', 'steparea'];    var dataSourceOptions = {        select: [            'SiteId', 'FacilityTypeId', 'BemsFacilityType/Name',            'ChartId', 'Palette', 'Title',            'LAxTitle', 'UseLAxMinMax', 'LAxMin', 'LAxMax',            'RAxTitle', 'UseRAxMinMax', 'RAxMin', 'RAxMax',            'UseX', 'XAxTitle', 'XSFmId', 'XSType', 'UseXAxMinMax', 'XAxMin', 'XAxMax',            'LSFmId1', 'LSName1', 'LSType1',            'LSFmId2', 'LSName2', 'LSType2',            'LSFmId3', 'LSName3', 'LSType3',            'LSFmId4', 'LSName4', 'LSType4',            'RSFmId1', 'RSName1', 'RSType1',            'RSFmId2', 'RSName2', 'RSType2',            'RSFmId3', 'RSName3', 'RSType3',            'RSFmId4', 'RSName4', 'RSType4',            'UseChart',            'UseLCTLine', 'LCTLineTitle', 'LCTLineValue',            'UseRCTLine', 'RCTLineTitle', 'RCTLineValue',        ],        filter: [            ['SiteId', '=', BWA.UserInfo.SiteId()]        ],        expand: [            'BemsFacilityType',        ],        extendOptions: {            forceOriginalField: true        },    };    var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'BemsChartInfo', {        dataSourceOptions: dataSourceOptions,        columns: [                { dataField: 'SiteId', caption: '번호', width: '8%', alignment: 'center', sortOder: 'desc' },                { dataField: 'BemsFacilityType/Name', caption: '설비타입', width: '15%', alignment: 'center' },                { dataField: 'ChartId', caption: '차트ID', width: '10%', alignment: 'center' },                { dataField: 'Title', caption: '차트타이틀', width: '15%', alignment: 'center' },                { dataField: 'Palette', caption: '차트 색상', width: '15%', alignment: 'center' },                { dataField: 'LAxTitle', caption: '좌Y축 타이틀', width: '20%', alignment: 'center' },                { dataField: 'LSName1', caption: '좌Y축 항목1 타이틀', width: '20%', alignment: 'center' },                /*{                    dataField: 'UseLAxMinMax', caption: '좌Y축 최대최소값 사용', width: '5%', alignment: 'center',                    customizeText: function (cellInfo) { return $G.isUse(cellInfo.value); }                },*/                { dataField: 'RAxTitle', caption: '우Y축 타이틀', width: '20%', alignment: 'center' },                /*{                    dataField: 'UseRAxMinMax', caption: '우Y축 최대최소값 사용', width: '5%', alignment: 'center',                    customizeText: function (cellInfo) { return $G.isUse(cellInfo.value); }                },*/                { dataField: 'RSName1', caption: '우Y축 항목1 타이틀', width: '20%', alignment: 'center' },                //{ dataField: 'Palette', caption: $G('phoneNo'), width: '20%', alignment: 'center' },                /*                {                    dataField: 'IsControlSchedule', caption: '제어스케줄', width: '15%', alignment: 'center',                    customizeText: function (cellInfo) {                        return $G.isUse(cellInfo.value);                    }                },*/                {                    dataField: 'UseChart', caption: '차트 사용', width: '15%', alignment: 'center',                    customizeText: function (cellInfo) {                        return $G.isUse(cellInfo.value);                        //return $G.isYes(cellInfo.value);                    }                }                //utils.datagrid.columnIsUse('10%'),        ],        // 2019.04.17 엑셀 출력 기능 추가 ~~~        "export": {            enabled: true,            fileName: '성능분석 차트 설정 내용'        },        onExporting: function (e) {            e.component.columnOption("SiteId", "visible", false);        },        onExported: function (e) {            e.component.columnOption("SiteId", "visible", true);        },        // ~~~ 2019.04.17 엑셀 출력 기능 추가        paging: {            pageSize: 18,            enabled: true        },        pager: {            //showPageSizeSelector: false,            //allowedPageSizes: 18,            //showInfo: false        },        promiseDataInSearchView: facilityTypeDeferred.promise(),        searchViewItems: [{ id: 'FacilityTypeId', ignoreValue: 0, defaultValue: 0, dataSource: searchfacilityTypes }, { id: 'Name' }],        handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {            dataGrid.clearSelection();            viewModel.isNewInPopup(false);            var data = clickRow.data;            viewModel.handleSelectBoxChangeFacilityType({ value: data.FacilityTypeId() });            //var dataModel = viewModel.dataModel;            /*            dataModel.CompanyName = $KoSet(dataModel.CompanyName, data['CmCompany/Name']);            dataModel.DepartmentName = $KoSet(dataModel.DepartmentName, data['CmDepartment/Name']);            dataModel.BusinessFieldName = $KoSet(dataModel.BusinessFieldName, data['CmBusinessField/Name']);            dataModel.UserGroupName = $KoSet(dataModel.UserGroupName, data['CmUserGroup/Name']);            dataModel.IsScheduleUser = $KoSet(dataModel.IsScheduleUser, data.IsScheduleUser());            dataModel.IsSI = $KoSet(dataModel.IsSI, data.IsSI());            dataModel.IsMobile = $KoSet(dataModel.IsMobile, data.IsMobile());*/            popupVisible(true);        },        handleViewShowing: function () {            facilityTypeDataSource.filter([                ['FacilityTypeId', '<', 50]/*,                'and',                ['FacilityTypeId', '<>', 1],                'and',                ['FacilityTypeId', '<>', 2],                'and',                ['FacilityTypeId', '<>', 8],*/            ]);            facilityTypeDataSource.load().done(function (result) {                facilityTypes(result);                //searchfacilityTypes([{ facilityTypeId: 0, Name: $G('selectAll') }].concat(result));                searchfacilityTypes(result);                facilityTypeDeferred.resolve();            });            ChartInfoDataSource.load().done(function (result) {                ChartInfo(result);            });        },        handlePopupShowing: function (isNewInPopup, dataViewModel) {            if (isNewInPopup()) {                dataViewModel.ChartId(1);                dataViewModel.UseChart(true);                dataViewModel.UseX(false);                dataViewModel.UseXAxMinMax(false);                dataViewModel.UseLAxMinMax(false);                dataViewModel.UseRAxMinMax(false);                dataViewModel.Palette('Default');                dataViewModel.UseLCTLine(false);                dataViewModel.UseRCTLine(false);            }        },        popupWidth: 1000,        handleViewShown: function () {        },        //2015 12 21 hcLee        isUseSiteId: (BWA.UserInfo.isAdmin() == false) ? true : false,        beforeInsertingDataViewModel: function (dataModel, dbModelId) {            var dfd = $.Deferred();            var result;            for (var i = 0; i < ChartInfo().length; i++) {                if (viewModel.dataModel.ChartId() == ChartInfo()[i].ChartId()) {                    result = false;                    break;                }                else {                    result = true;                }            }            if (result) {                dfd.resolve(true);            } else {                dfd.resolve(false, '차트 ID가 중복되었습니다.');            }            return dfd.promise();        },        /*        beforeInsertingDataViewModel: function (dataModel, dbModelId) {            var dfd = $.Deferred();            $.when(BWA.api.post('BemsMonitoringPoint/GetMaxSiteId', null))            .done(function (newPid) {                if (newPid > 0) {                    dataModel.SiteId(newPid);                    dfd.resolve(true); // hcLee OK good, (true, false 또는 객체로 리턴가능함) 2015 11 19                }                else dfd.resolve(false, 'SiteId 자동 생성에 실패하였습니다!'); // hcLee OK good, (true, false 또는 객체로 리턴가능함) 2015 11 19            });            return dfd.promise();        },*/        handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {            // 사이트정보는 생성 후 삭제할 수 없음            viewModel.visibleDeleteButton(true);        }    });    viewModel.isEditModeInPopup.subscribe(function (value) {        viewModel.visibleDeleteButton(true);    });    {        viewModel.popupInsertButtonOptions.visible = true;    }    viewModel.facilityTypes = facilityTypes;    viewModel.palettes = palettes;    viewModel.chartTypes = chartTypes;    viewModel.formulaListByFacilityType = formulaListByFacilityType;    viewModel.handleSelectBoxChangeFacilityType = function (e) {        // hcLee 2018 03 02        //기존 setArrayDataSourceFilter 를 확장하여 추가한 함수이다.        // 동기화 Deferred 때문에 이 함수 동기화 내부에서 formulaListByFacilityType에 외기온도,습도 를 강제로 추가하는 코드가 존재 해야만        // 팝업 콤보에 정상으로 추가된 항목(외기온도,습도)이 보이게 된다.        BWA.DataUtil.setArrayDataSourceFilterForChartSet(BemsFormulaBaseDataSource, 'FacilityTypeId', e.value, formulaListByFacilityType);        var i = 0;    }    return viewModel;};
 |