BemsWebApplication.ZoneTempHumiSet = function (params, viewInfo) { "use strict"; var buildingDataSource = BemsWebApplication.db.createDataSource( 'CmBuilding', true ), floorDataSource = BemsWebApplication.db.createDataSource( 'CmFloor', true ); var buildings = ko.observableArray(), floors = ko.observableArray(); var buildingsForSearch = ko.observableArray(), floorsForSearch = ko.observableArray(), buildingIdForSerach = ko.observable(), floorIdForSerach = ko.observable(); var deferredForSearch = new $.Deferred(); function handleChangedBuildingInSearchView( e ) { if( e.value === 0 ) { floorsForSearch( getDefaultFloorForSearch() ); } else { BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', e.value, floorsForSearch, getDefaultFloorForSearch() ); } floorIdForSerach( 0 ); } var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'CmZoneTempHumiSet', { rowAlternationEnabled: true, editing: { //editMode: 'batch', //editMode: 'editcell', editMode: 'cell', // 14.1은 batch, row 두가지 밖에 없다. cell->row로 동작중이다. 2015 07 15 hcLee editEnabled: true, //removeEnabled:false, //visible:false, }, dataSourceOptions: { select: ['SiteId', 'FloorId', 'BuildingId', 'ZoneId', 'CmZone/Name', 'CmBuilding/Name', 'CmFloor/Name', 'T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12'], expand: [ 'CmBuilding', 'CmFloor', 'CmZone' ], extendOptions: { forceOriginalField: true, } }, columns: [ { dataField: 'ZoneId', caption: $G('number'), width: '4%', alignment: 'center' }, // ? { dataField: 'CmBuilding/Name', caption: $G('buildingName'), width: '10%', alignment: 'center', allowEditing: false }, { dataField: 'CmFloor/Name', caption: $G('floorName'), width: '8%', alignment: 'center', allowEditing: false }, { dataField: 'CmZone/Name', caption: $G('zoneName'), width: '12%', alignment: 'center', allowEditing: false }, { dataField: 'T1', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H1', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T2', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H2', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T3', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H3', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T4', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H4', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T5', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H5', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T6', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H6', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T7', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H7', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T8', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H8', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T9', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H9', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T10', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H10', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T11', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H11', caption: '습도', width: '4%', alignment: 'center' }, { dataField: 'T12', caption: '온도', width: '4%', alignment: 'center' }, { dataField: 'H12', caption: '습도', width: '4%', alignment: 'center' } /* { dataField: 'T4', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T5', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T6', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T7', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T8', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T9', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T10', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T11', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T12', caption: '2월', width: '6%', alignment: 'center' }, */ //{ dataField: 'Target_humidity', caption: '목표습도', width: '40%', alignment: 'center' } //utils.datagrid.columnIsUse( '15%' ) ], popupWidth: 480, promiseDataInSearchView: deferredForSearch.promise(), searchViewItems: [ { id: 'BuildingId', ignoreValue: 0, defaultValue: 0, value: buildingIdForSerach, dataSource: buildingsForSearch, handleChangedValue: handleChangedBuildingInSearchView }, { id: 'FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'BuildingId', value: floorIdForSerach, dataSource: floorsForSearch }, { id: 'CmZone/Name' } ], handleViewShowing: function() { buildingDataSource.load().done( function( buildingResults ) { buildings( buildingResults ); buildingsForSearch( $SearchView.createArrayOfSelectBox( 'BuildingId', buildings() ) ); floorsForSearch( getDefaultFloorForSearch() ); //buildingIdForSerach( 0 ); //floorIdForSerach( 0 ); deferredForSearch.resolve(); }); }, handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { /* dataGrid.clearSelection(); var data = clickRow.data; var dataModel = viewModel.dataModel; dataModel.BuildingName = $KoSet(dataModel.BuildingName, data['CmBuilding/Name']); dataModel.FloorName = $KoSet(dataModel.FloorName, data['CmFloor/Name']); popupVisible(true);*/ }, handleAfterLoadingModelByKey: function( data, dataViewModel, isNewInPopup ) { if( isNewInPopup() == false ) { // BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors ); } }, handlePopupShowing: function (that) { }, } ); function getDefaultFloorForSearch() { return $SearchView.createDefaultArray( 'FloorId' ); } viewModel.buildings = buildings; viewModel.buildingsForSearch = buildingsForSearch; viewModel.floors = floors; viewModel.floorsForSearch = floorsForSearch; viewModel.handleSelectBoxChangeBuilding = function( e ) { BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', e.value, floors ); // viewModel.dataModel.FloorId( null ); } return viewModel; };