fs-danaus
2023-03-30 665b0603d09890014f982fdfbd6ec47938f504b0
Grid/UpdateValues.js
@@ -59,7 +59,8 @@
// -----------------------------------------------------------------------------------------------------------
MS.Date$Number$Defaults;
TGP.UpdateRowCells = function(r,CC,CCT){
var p = CC.length, ogt = Grids.OnGetType!=null, C = this.Cols, D = r.Def, L = this.Lang.Format, gmt = L.GMT-0, dyf = this.DynamicFormat==2, exc = this.ExcelDates, hdr = r.Kind=="Header", hir = 0; MS.Hirji; hir = L.Hirji&2; ME.Hirji;
var p = CC.length, ogt = Grids.OnGetType!=null, C = this.Cols, D = r.Def, L = this.Lang.Format, UE = this.UpdateEnum ? {} : null, uecnt = 0;
var gmt = L.GMT-0, dyf = this.DynamicFormat==2, exc = this.ExcelDates, hdr = r.Kind=="Header", hir = 0; MS.Hirji; hir = L.Hirji&2; ME.Hirji;
if(r.CellDef){ var CD = this.Def[r.CellDef]; if(CD) for(var n in CD) if(n!="Name") for(var i=0,v=CD[n];i<p;i++) if(r[CC[i]+n]==null) r[CC[i]+n] = v; }
for(var i=0;i<p;i++){
   var c = CC[i];
@@ -84,7 +85,10 @@
         }
      }
   if(ogt) { var tmp = Grids.OnGetType(this,r,CC[i],type); if(tmp!=null) type = tmp; }
   if(!CUpdateTypes[type]) continue;
   if(!CUpdateTypes[type]) {
      if(UE&&type=="Enum"&&r[c]!=null) { UE[c] = 1; uecnt++; }
      continue;
      }
   var val = r[c], v;
   
@@ -112,7 +116,7 @@
                   r[c] = hir ? L.StringToDateHirji(val) : L.StringToDateEng(val,null,null,0);
                   }
               }
            else if(exc) r[c] = (r[c]+2209161600000)/86400000;
            else if(exc) r[c] = L.ToExcelDate(r[c]);
            }
         }
      else if(this.DateStrings==null) this.DateStrings = 0;
@@ -143,9 +147,38 @@
      r[c+"IsSelect"] = 1;
      if(r[c+"CanFocus"]==null && r.Space) r[c+"CanFocus"] = 0;
      if(r[c+"Wrap"]==null) r[c+"Wrap"] = 0;
      continue;
      }
   ME.Defaults;
   }
MS.Enum;
if(uecnt){
   function UpdateEnum(c){
      var rel = T.GetAttr(r,c,"Related"), rp = null;
      if(rel){
         rel = rel.split(",");
         for(var i=0;i<rel.length;i++) if(!UU[rel[i]]) UpdateEnum(rel[i]);
         rp = T.GetRelatedPrefix(r,c);
         }
      var ek = T.GetEnum(r,c,"EnumKeys",rp);
      if(ek||T.IndexEnum){
         var en = T.GetEnum(r,c,"Enum",rp), val = r[c];
         if(en){
            en = en.split(en.charAt(0)); if(val==null) val = "";
            for(var j=1;j<en.length;j++) if(val==en[j]){
               if(ek) { ek = ek.split(ek.charAt(0)); if(ek[j]!=null) r[c] = ek[j]; }
               else r[c] = j-1;
               break;
               }
            }
         }
      UU[c] = 1;
      }
   var UU = {}, T = this;
   for(var c in UE) if(!UU[c]) UpdateEnum(c);
   }
ME.Enum;
}
ME.Date$Number$Defaults;
// -----------------------------------------------------------------------------------------------------------
@@ -175,6 +208,7 @@
else if(typeof(D)!="string") return; 
D = this.Def[D];
if(this.InitDef){
   if(!D) D = this.Def["R"];
   var dp = r.DefParent!=null ? r.DefParent : D.DefParent;
   var de = r.DefEmpty!=null ? r.DefEmpty : D.DefEmpty;
   if(r.firstChild){ if(dp&&(D.Name==de||!r.Def)) D = this.Def[dp]; }
@@ -296,13 +330,15 @@
ME.Master;   
}
// -----------------------------------------------------------------------------------------------------------
TGP.UpdateChildValues = function(row,CC,CCT,prep){
TGP.UpdateChildValues = function(row,CC,CCT,prep,flg){//****
for(var r=row.firstChild;r;r=r.nextSibling){ 
   this.UpdateRowValues(r,CC,CCT,prep); 
   r.Level = row.Level+1;
   this.LoadedCount++;
   if(r.firstChild) this.UpdateChildValues(r,CC,CCT,prep);
   if(flg==undefined){//***控制只执行一次,会存在加载完数据,treegrid在分页功能里又重新执行多一次,造成超链接的生成有问题
    this.setPession(r);//**权限控制
  }
   }
}
// -----------------------------------------------------------------------------------------------------------
@@ -350,7 +386,7 @@
                  }
               else r[c] = hir ? L.StringToDateHirji(d) : L.StringToDateEng(d,null,null,0);
               }
            else if(exc) r[c] = (r[c]+2209161600000)/86400000;
            else if(exc) r[c] = L.ToExcelDate(r[c]);
            }
         }
      else if(this.DateStrings==null) this.DateStrings = 0;   
@@ -445,7 +481,7 @@
TGP.UpdateValues = function(){
var C = this.Cols, CC = [], CCT = [], p = 0, R = this.Def["R"];
this.AutoId = 1; this.ChildAutoId = 1; this.Rows = { };
this.gridTitleMap=new Map();
for(var c in C) {
   if(C[c].Prepared) continue;
   CCT[p] = c+"Type";
@@ -484,7 +520,6 @@
MS.Calc;
if(this.Calculating==null) for(var c in C) if(C[c].Formula) { this.Calculating = 1; break; }
ME.Calc;
var R = this.GetFixedRows(), hc = this.XH.childNodes.length, dyb = this.DynamicBorder;
for(var i=0;i<R.length;i++){
   var r = R[i];
@@ -497,7 +532,7 @@
var prd = 382879445; 
var prep = this.Prepared; 
for(var B=this.XB.firstChild;B;B=B.nextSibling) { B.Level = -1; this.UpdateChildValues(B,CC,CCT,prep); }
for(var B=this.XB.firstChild;B;B=B.nextSibling) { B.Level = -1; this.UpdateChildValues(B,CC,CCT,prep,false); }//****false表示不需要执行权限控制的处理 by 2021-11-8
this.XB.firstChild.Page = 1;
if(!this.Paging){ 
   this.XB.firstChild.State = 4;