| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- $(function(){
- spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 });
- initSpread();
- var sheet = spread.getActiveSheet();
- $('#info1').show();
- var showLeftColumn = 0;
- var showTopRow = 0;
- if(actualStaKind=='leader'){
- resetColumn();
- showLeftColumn=3;
- showTopRow = 4;
- }
- if(isTotal=='1'){
- showLeftColumn=1;
- showTopRow = 2;
- sheet.frozenColumnCount(3);
- sheet.frozenRowCount(2);
- }
- sheet.showColumn(showLeftColumn, GC.Spread.Sheets.HorizontalPosition.left);
- sheet.showRow(showTopRow, GC.Spread.Sheets.VerticalPosition.top);
- });
- function initSpread(){
- spread.suspendPaint();
- if(dbJson){//数据库
- spread.fromJSON(dbJson);
- }
- var sheet = spread.getActiveSheet();
- bindEvent(spread);//现在只有点击显示单元格维度
- initMeasureData();
- if(actualStaKind=='leader') {
- //设置闵总视图
- setLeader(sheet);
- }
- if(actualStaKind=='main') {
- //设置统计表中的 主统计表
- setStaMain(sheet);
- }
- if(readOnly) {
- setSheetReadOnly(sheet);
- spread.resumePaint();
- return;
- }else {
- setInstDefault(spread);
- }
- spread.options.newTabVisible = false;//取消新增sheet按钮
- spread.options.allowExtendPasteRange =true;//扩展粘贴区域
- setDefaultLock(sheet);
- setCellEdit(sheet);
- spread.resumePaint();
- }
- function setDefaultLock(sheet){
- var option = {
- allowSelectLockedCells:true,
- allowSelectUnlockedCells:true,
- allowFilter: true,
- allowSort: false,
- allowResizeRows: true,
- allowResizeColumns: true,
- allowEditObjects: false,
- allowDragInsertRows: false,
- allowDragInsertColumns: false,
- allowInsertRows: false,
- allowInsertColumns: false,
- allowDeleteRows: false,
- allowDeleteColumns: false
- };
- sheet.options.protectionOptions = option;
- }
- function setCellEdit(sheet){
- var rowCount = sheet.getRowCount();
- var colCount = sheet.getColumnCount();
- for(var i=0;i<rowCount;i++){
- for(var j=0;j<colCount;j++){
- // dataCell
- var tag = sheet.getTag(i,j);
- if(tag){
- if(tag.dataCell){
- if(!tag.readOnly || tag.readOnly==0){
- sheet.getRange(i,j,1,1).locked(false);
- }
- }
- }
- }
- }
- }
- function bindEvent(spread) {
- bindCheckNum(spread);
- spread.bind(GC.Spread.Sheets.Events.EnterCell, function (event, data) {//点击cell事件
- var row = data.row;
- var col = data.col;
- var cellSheet = data.sheet;
- var cellSetting = cellSheet.getTag(row,col);
- var header =false;
- if(cellSetting) {
- var rowHeader = cellSetting[_vars.rowHeader];
- var colHeader = cellSetting[_vars.colHeader];
- if(rowHeader || colHeader) {
- if(rowHeader) $('#otherTxt').html('行表头');
- if(colHeader) $('#otherTxt').html('列表头');
- $('#info1').hide();$('#info2').show();
- header=true;
- }
- }
- if(!header) {
- if(!cellSetting){
- $('#otherTxt').html('无属性单元格');
- $('#info1').hide();$('#info2').show();
- }else{
- $('#info2').hide();$('#info1').show();
- var periodDetailName= cellSetting.periodDetailName;
- var measureName= cellSetting.customCode+" "+cellSetting.measureName;
- var includeTax= cellSetting.includeTax;
- var expect= cellSetting.expect;
- var entityName = cellSetting.entityName;
- $('#timeInput').val(periodDetailName);
- $('#measureInput').val(measureName);
- $('input[name="includeTax"][value=' + includeTax + ']').attr('checked', 'checked');
- $('input[name="expect"][value=' + expect + ']').attr('checked', 'checked');
- if(entityName){
- $('#entityInput').val(entityName);
- $('#entityTr').show();
- }else{
- $('#entityInput').val('');
- $('#entityTr').hide();
- }
- $('#readOnlyInput').val(cellSetting.readOnly==1?'是':'否');
- $('#datatypeInput').val( measureDataTypeList[cellSetting.datatype]);
- var functionTxt = cellSetting.functionTxt?cellSetting.functionTxt:'';
- if(functionTxt){
- $('#functionInputTr').show();
- $('#functionInput').val(functionTxt);
- }else {
- $('#functionInputTr').hide();
- }
- var controlFlagName = cellSetting.controlFlagName?cellSetting.controlFlagName:'';
- if(controlFlagName){
- $('#controlFlagNameTr').show();
- $('#controlFlagNameInput').val(controlFlagName);
- }else {
- $('#controlFlagNameTr').hide();
- }
- }
- }
- // sheet.startEdit(false); //单击修改
- });
- }
- function bindCheckNum(spread) {
- spread.bind(GC.Spread.Sheets.Events.EditEnding, function (sender, args) {
- var sheet = args.sheet;
- var row=args.row;
- var col=args.col;
- var cellTag = sheet.getTag(row,col);
- if(cellTag) {
- if(cellTag.datatype!='txt'){
- var value =args.editingText;
- var reg=/^(-?\d+)(\.\d+)?$/;
- if(value){
- if(value.indexOf('=')!=0) {
- if (!reg.test(value)) {
- args.cancel = true;
- }
- }
- }
- }
- }
- });
- }
- function setLeader(sheet) {
- showTotalSheet(sheet);
- var actualPerCol = 4;//经营类年度执行比例
- var rowCount = sheet.getRowCount();
- var now=new Date;
- var month=now.getMonth();
- month++;
- for(var i=0;i<rowCount;i++){
- var cell = sheet.getCell(i,actualPerCol);
- if(cell){
- var value = cell.value();
- if(value>(month*0.08)){
- cell.foreColor('red').font('bold normal 15px normal');
- sheet.getCell(i,actualPerCol-1).foreColor('red').font('bold normal 15px normal');
- }
- }
- }
- }
- function setStaMain(sheet){
- showTotalSheet(sheet);
- }
- function showTotalSheet(sheet){
- sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (e, info) {
- var row = info.row; var col = info.col;
- if(col==1) {//双击第二列弹出执行总表
- var tag = sheet.getTag(row,col);
- if(tag){
- var entityId =tag.entityId;
- var entityName = tag.entityName;
- if(entityId){
- var data ={};
- data.periodYear = periodYear;
- data.entityId = entityId;
- data.actual = 1;
- var layerIndex = layer.msg('载入中,请稍候···', {
- time : 3000*1000,
- shade: 0.1});
- $.post('budgetInstController.do?getTotalInstId',data,function(d){
- layer.close(layerIndex);
- if(!d.obj){
- alerLayerTip('无对应执行总表');
- return;
- }
- var instId = d.obj[0];
- var instName = d.obj[1];
- if(instId){
- var openUrl = 'budgetInstController.do?goView&id='+instId;
- createdetailwindow(entityName+':'+instName,openUrl,'100%','100%');
- }
- },'json');
- }
- }
- }
- });
- }
|