hqchart 1.1.14982 → 1.1.14991

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1825,6 +1825,16 @@ function JSReportChartContainer(uielement)
1825
1825
  if (IFrameSplitOperator.IsString(item[208]) || IFrameSplitOperator.IsObject(item[208])) stock.ReserveString8=item[208];
1826
1826
  if (IFrameSplitOperator.IsString(item[209]) || IFrameSplitOperator.IsObject(item[209])) stock.ReserveString9=item[209];
1827
1827
  if (IFrameSplitOperator.IsString(item[210]) || IFrameSplitOperator.IsObject(item[210])) stock.ReserveString10=item[210];
1828
+ if (IFrameSplitOperator.IsString(item[211]) || IFrameSplitOperator.IsObject(item[211])) stock.ReserveString11=item[211];
1829
+ if (IFrameSplitOperator.IsString(item[212]) || IFrameSplitOperator.IsObject(item[212])) stock.ReserveString12=item[212];
1830
+ if (IFrameSplitOperator.IsString(item[213]) || IFrameSplitOperator.IsObject(item[213])) stock.ReserveString13=item[213];
1831
+ if (IFrameSplitOperator.IsString(item[214]) || IFrameSplitOperator.IsObject(item[214])) stock.ReserveString14=item[214];
1832
+ if (IFrameSplitOperator.IsString(item[215]) || IFrameSplitOperator.IsObject(item[215])) stock.ReserveString15=item[215];
1833
+ if (IFrameSplitOperator.IsString(item[216]) || IFrameSplitOperator.IsObject(item[216])) stock.ReserveString16=item[216];
1834
+ if (IFrameSplitOperator.IsString(item[217]) || IFrameSplitOperator.IsObject(item[217])) stock.ReserveString17=item[217];
1835
+ if (IFrameSplitOperator.IsString(item[218]) || IFrameSplitOperator.IsObject(item[218])) stock.ReserveString18=item[218];
1836
+ if (IFrameSplitOperator.IsString(item[219]) || IFrameSplitOperator.IsObject(item[219])) stock.ReserveString19=item[219];
1837
+ if (IFrameSplitOperator.IsString(item[220]) || IFrameSplitOperator.IsObject(item[220])) stock.ReserveString20=item[220];
1828
1838
 
1829
1839
  //10个进度条 301-350 { Value:, BGColor: }
1830
1840
  if (IFrameSplitOperator.IsNumber(item[301]) || IFrameSplitOperator.IsObject(item[301])) stock.ReserveProgressBar1=item[301];
@@ -4242,6 +4252,16 @@ function JSReportChartContainer(uielement)
4242
4252
  case REPORT_COLUMN_ID.RESERVE_STRING8_ID:
4243
4253
  case REPORT_COLUMN_ID.RESERVE_STRING9_ID:
4244
4254
  case REPORT_COLUMN_ID.RESERVE_STRING10_ID:
4255
+ case REPORT_COLUMN_ID.RESERVE_STRING11_ID:
4256
+ case REPORT_COLUMN_ID.RESERVE_STRING12_ID:
4257
+ case REPORT_COLUMN_ID.RESERVE_STRING13_ID:
4258
+ case REPORT_COLUMN_ID.RESERVE_STRING14_ID:
4259
+ case REPORT_COLUMN_ID.RESERVE_STRING15_ID:
4260
+ case REPORT_COLUMN_ID.RESERVE_STRING16_ID:
4261
+ case REPORT_COLUMN_ID.RESERVE_STRING17_ID:
4262
+ case REPORT_COLUMN_ID.RESERVE_STRING18_ID:
4263
+ case REPORT_COLUMN_ID.RESERVE_STRING19_ID:
4264
+ case REPORT_COLUMN_ID.RESERVE_STRING20_ID:
4245
4265
  return this.LocalReserveStringSort(left, right, column, sortType);
4246
4266
 
4247
4267
 
@@ -4913,6 +4933,16 @@ var REPORT_COLUMN_ID=
4913
4933
  RESERVE_STRING8_ID:308,
4914
4934
  RESERVE_STRING9_ID:309,
4915
4935
  RESERVE_STRING10_ID:310,
4936
+ RESERVE_STRING11_ID:311,
4937
+ RESERVE_STRING12_ID:312,
4938
+ RESERVE_STRING13_ID:313,
4939
+ RESERVE_STRING14_ID:314,
4940
+ RESERVE_STRING15_ID:315,
4941
+ RESERVE_STRING16_ID:316,
4942
+ RESERVE_STRING17_ID:317,
4943
+ RESERVE_STRING18_ID:318,
4944
+ RESERVE_STRING19_ID:319,
4945
+ RESERVE_STRING20_ID:320,
4916
4946
 
4917
4947
  //预留进度条类型 10个 401-450
4918
4948
  RESERVE_PROGRESS_BAR1_ID:401, //ReserveProgressBar1:
@@ -5033,6 +5063,16 @@ var MAP_COLUMN_FIELD=new Map([
5033
5063
  [REPORT_COLUMN_ID.RESERVE_STRING8_ID,"ReserveString8"],
5034
5064
  [REPORT_COLUMN_ID.RESERVE_STRING9_ID,"ReserveString9"],
5035
5065
  [REPORT_COLUMN_ID.RESERVE_STRING10_ID,"ReserveString10"],
5066
+ [REPORT_COLUMN_ID.RESERVE_STRING11_ID,"ReserveString11"],
5067
+ [REPORT_COLUMN_ID.RESERVE_STRING12_ID,"ReserveString12"],
5068
+ [REPORT_COLUMN_ID.RESERVE_STRING13_ID,"ReserveString13"],
5069
+ [REPORT_COLUMN_ID.RESERVE_STRING14_ID,"ReserveString14"],
5070
+ [REPORT_COLUMN_ID.RESERVE_STRING15_ID,"ReserveString15"],
5071
+ [REPORT_COLUMN_ID.RESERVE_STRING16_ID,"ReserveString16"],
5072
+ [REPORT_COLUMN_ID.RESERVE_STRING17_ID,"ReserveString17"],
5073
+ [REPORT_COLUMN_ID.RESERVE_STRING18_ID,"ReserveString18"],
5074
+ [REPORT_COLUMN_ID.RESERVE_STRING19_ID,"ReserveString19"],
5075
+ [REPORT_COLUMN_ID.RESERVE_STRING20_ID,"ReserveString20"],
5036
5076
 
5037
5077
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID,"ReserveProgressBar1"],
5038
5078
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR2_ID,"ReserveProgressBar2"],
@@ -5266,6 +5306,9 @@ function ChartReport()
5266
5306
 
5267
5307
  this.LastMouseStatus;
5268
5308
 
5309
+ //绘图过程中的缓存数据 绘制完清空的
5310
+ this.TempCache=null; //
5311
+
5269
5312
  this.ReloadResource=function(resource)
5270
5313
  {
5271
5314
  this.DevicePixelRatio=GetDevicePixelRatio()
@@ -5379,6 +5422,7 @@ function ChartReport()
5379
5422
  if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
5380
5423
  if (item.MaxText) colItem.MaxText=item.MaxText;
5381
5424
  if (item.MaxText2) colItem.MaxText=item.MaxText2;
5425
+ if (item.TitleAlign) colItem.TitleAlign=item.TitleAlign;
5382
5426
  if (IFrameSplitOperator.IsNumber(item.Space)) colItem.Space=item.Space;
5383
5427
  if (item.ID) colItem.ID=item.ID;
5384
5428
  if (item.FullColBGColor) colItem.FullColBGColor=item.FullColBGColor; //整列背景色
@@ -5467,6 +5511,7 @@ function ChartReport()
5467
5511
  else if (this.IsReserveDateTime(item.Type))
5468
5512
  {
5469
5513
  if (item.DateTimeFormat) colItem.DateTimeFormat=item.DateTimeFormat; //日期格式化
5514
+ if (item.SubDateTimeFormat) colItem.SubDateTimeFormat=item.SubDateTimeFormat;
5470
5515
  }
5471
5516
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
5472
5517
  {
@@ -5698,6 +5743,16 @@ function ChartReport()
5698
5743
  { Type:REPORT_COLUMN_ID.RESERVE_STRING8_ID, Title:"文字8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5699
5744
  { Type:REPORT_COLUMN_ID.RESERVE_STRING9_ID, Title:"文字9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5700
5745
  { Type:REPORT_COLUMN_ID.RESERVE_STRING10_ID, Title:"文字10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5746
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING11_ID, Title:"文字11", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5747
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING12_ID, Title:"文字12", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5748
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING13_ID, Title:"文字13", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5749
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING14_ID, Title:"文字14", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5750
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING15_ID, Title:"文字15", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5751
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING16_ID, Title:"文字16", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5752
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING17_ID, Title:"文字17", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5753
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING18_ID, Title:"文字18", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5754
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING19_ID, Title:"文字19", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5755
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING20_ID, Title:"文字20", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5701
5756
 
5702
5757
 
5703
5758
  { Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID, Title:"进度条1", TextAlign:"center", FixedWidth:100*GetDevicePixelRatio() },
@@ -5754,6 +5809,11 @@ function ChartReport()
5754
5809
  this.Canvas.clip();
5755
5810
  }
5756
5811
 
5812
+ this.CreateTempCache=function()
5813
+ {
5814
+ this.TempCache={ MapReserveDateTime:new Map() }; //MapReserveDateTime:key=colindex, Value:{ PreDate }
5815
+ }
5816
+
5757
5817
  this.Draw=function(lastMouseStatus)
5758
5818
  {
5759
5819
  this.ShowSymbol=[];
@@ -5762,6 +5822,7 @@ function ChartReport()
5762
5822
  this.AryFullSelectedRow=[];
5763
5823
  this.DevicePixelRatio=GetDevicePixelRatio()
5764
5824
  this.LastMouseStatus=lastMouseStatus;
5825
+ this.CreateTempCache();
5765
5826
 
5766
5827
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
5767
5828
 
@@ -5800,6 +5861,7 @@ function ChartReport()
5800
5861
  this.LastMouseStatus=null;
5801
5862
  this.SizeChange=false;
5802
5863
  this.AryFullSelectedRow=[];
5864
+ this.TempCache=null;
5803
5865
  }
5804
5866
 
5805
5867
  this.DrawDragHeaderBG=function()
@@ -6165,8 +6227,12 @@ function ChartReport()
6165
6227
  textWidth=this.Canvas.measureText(item.Text).width;
6166
6228
  }
6167
6229
 
6168
- if (column.TextAlign=='center') x=x+(cellWidth-textWidth)/2;
6169
- else if (column.TextAlign=='right') x=x+textSize.TextMaxWidth-textWidth;
6230
+ var textAlign=column.TextAlign;
6231
+ if (column.TitleAlign) textAlign=column.TitleAlign;
6232
+
6233
+ if (textAlign=='center') x=x+(cellWidth-textWidth)/2;
6234
+ else if (textAlign=='right') x=x+textSize.TextMaxWidth-textWidth;
6235
+
6170
6236
 
6171
6237
  if (item.Text) //文字
6172
6238
  {
@@ -7230,7 +7296,11 @@ function ChartReport()
7230
7296
  [
7231
7297
  REPORT_COLUMN_ID.RESERVE_STRING1_ID,REPORT_COLUMN_ID.RESERVE_STRING2_ID,REPORT_COLUMN_ID.RESERVE_STRING3_ID,REPORT_COLUMN_ID.RESERVE_STRING4_ID,
7232
7298
  REPORT_COLUMN_ID.RESERVE_STRING5_ID,REPORT_COLUMN_ID.RESERVE_STRING6_ID,REPORT_COLUMN_ID.RESERVE_STRING7_ID,REPORT_COLUMN_ID.RESERVE_STRING8_ID,
7233
- REPORT_COLUMN_ID.RESERVE_STRING9_ID,REPORT_COLUMN_ID.RESERVE_STRING10_ID
7299
+ REPORT_COLUMN_ID.RESERVE_STRING9_ID,REPORT_COLUMN_ID.RESERVE_STRING10_ID,
7300
+
7301
+ REPORT_COLUMN_ID.RESERVE_STRING11_ID,REPORT_COLUMN_ID.RESERVE_STRING12_ID,REPORT_COLUMN_ID.RESERVE_STRING13_ID,REPORT_COLUMN_ID.RESERVE_STRING14_ID,
7302
+ REPORT_COLUMN_ID.RESERVE_STRING15_ID,REPORT_COLUMN_ID.RESERVE_STRING16_ID,REPORT_COLUMN_ID.RESERVE_STRING17_ID,REPORT_COLUMN_ID.RESERVE_STRING18_ID,
7303
+ REPORT_COLUMN_ID.RESERVE_STRING19_ID,REPORT_COLUMN_ID.RESERVE_STRING20_ID
7234
7304
  ];
7235
7305
 
7236
7306
  return ARARY_TYPE.includes(value);
@@ -7692,6 +7762,36 @@ function ChartReport()
7692
7762
  }
7693
7763
  }
7694
7764
 
7765
+ this.GetReserveDateTimePreItem=function(colIndex)
7766
+ {
7767
+ if (!this.CreateTempCache) return null;
7768
+ if (!this.TempCache.MapReserveDateTime) return null;
7769
+
7770
+ var mapData=this.TempCache.MapReserveDateTime;
7771
+ if (!mapData.has(colIndex)) return null;
7772
+
7773
+ return mapData.get(colIndex);
7774
+ }
7775
+
7776
+ this.SetReserveDateTimePreItem=function(colIndex,data)
7777
+ {
7778
+ if (!this.CreateTempCache) return false;
7779
+ if (!this.TempCache.MapReserveDateTime) return false;
7780
+
7781
+ var mapData=this.TempCache.MapReserveDateTime;
7782
+ if (mapData.has(colIndex))
7783
+ {
7784
+ var item=mapData.get(colIndex);
7785
+ item.PreItem.Date=data.Date;
7786
+ }
7787
+ else
7788
+ {
7789
+ mapData.set(colIndex, { PreItem:{ Date:data.Date } })
7790
+ }
7791
+
7792
+ return true;
7793
+ }
7794
+
7695
7795
  this.FormatReserveDateTime=function(column, data, drawInfo)
7696
7796
  {
7697
7797
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -7702,7 +7802,24 @@ function ChartReport()
7702
7802
  var item=data[fieldName];
7703
7803
  if (!IFrameSplitOperator.IsObject(item)) return;
7704
7804
 
7705
- if (item.DateTime) drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);
7805
+ var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);
7806
+ if (item.DateTime)
7807
+ {
7808
+ var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();
7809
+ var format=column.DateTimeFormat;
7810
+ if (cacheItem && cacheItem.PreItem && date==cacheItem.PreItem.Date)
7811
+ {
7812
+ if (column.SubDateTimeFormat) format=column.SubDateTimeFormat
7813
+ }
7814
+ else
7815
+ {
7816
+
7817
+ this.SetReserveDateTimePreItem(drawInfo.ColumnIndex, {Date:date});
7818
+ }
7819
+
7820
+ drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime, format);
7821
+ }
7822
+
7706
7823
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
7707
7824
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
7708
7825
  }
@@ -1844,6 +1844,10 @@ HQData.Report_RequestStockData=function(data, callback)
1844
1844
 
1845
1845
  newItem[301]=HQData.GetRandomTestData(0,100)/100;
1846
1846
  newItem[302]=HQData.GetRandomTestData(0,100)/100;
1847
+
1848
+ var testDate=new Date();
1849
+ testDate.setHours(testDate.getHours() + i*2)
1850
+ newItem[401]={ DateTime:testDate } ;
1847
1851
 
1848
1852
 
1849
1853
  item.Data=newItem;
@@ -1999,6 +2003,9 @@ HQData.Report_RequestStockSortData=function(data, callback)
1999
2003
  extendData[7]=(Math.round(Math.random()*60))/100;
2000
2004
  extendData[8]=(Math.round(Math.random()*60))/100;
2001
2005
 
2006
+ var testDate=new Date();
2007
+ testDate.setHours(testDate.getHours() + i*2)
2008
+ newItem[401]={ DateTime:testDate } ;
2002
2009
 
2003
2010
  item.Data=newItem;
2004
2011
  }
@@ -2571,6 +2578,8 @@ HQData.Report_APIIndex=function(data, callback)
2571
2578
  HQData.APIIndex_MARK_AREA_V2(data, callback);
2572
2579
  else if (request.Data.indexname=="API_CHANNELV2")
2573
2580
  HQData.APIIndex_CHANNEL_V2(data, callback);
2581
+ else if (request.Data.indexname=="API_CHART_AREA_TEXT")
2582
+ HQData.API_CHART_AREA_TEXT(data, callback);
2574
2583
  }
2575
2584
 
2576
2585
 
@@ -4065,3 +4074,84 @@ HQData.APIIndex_MARK_AREA_V2=function(data, callback)
4065
4074
  }
4066
4075
 
4067
4076
 
4077
+ HQData.API_CHART_AREA_TEXT=function(data, callback)
4078
+ {
4079
+ data.PreventDefault=true;
4080
+ var hqchart=data.HQChart;
4081
+ var kData=hqchart.GetKData();
4082
+
4083
+ var markData=
4084
+ {
4085
+ name:'区域文字', type:1,
4086
+ Draw:
4087
+ {
4088
+ DrawType:'JS_CHART_AREA_TEXT',
4089
+ DrawData:
4090
+ {
4091
+ AryData:[], //[ { Start:{ }, End:{ }, AreaColor:, Text:"", BarColor:, TextColor:, ID: }]
4092
+ },
4093
+
4094
+ Config:{ },
4095
+ }
4096
+ };
4097
+
4098
+ var markItem=null;
4099
+ for(var i=0;i<kData.Data.length;++i)
4100
+ {
4101
+ var kItem=kData.Data[i];
4102
+ if (!markItem)
4103
+ {
4104
+ markItem=
4105
+ {
4106
+ Start:{ Date:kItem.Date, Time:kItem.Time },
4107
+ End:{ Date:kItem.Date, Time:kItem.Time },
4108
+ BGColor:"rgba(186,85,211,0.5)",
4109
+ TextColor:"rgb(255,215,0)",
4110
+ ID:i,
4111
+ Count:1,
4112
+ AryText:
4113
+ [
4114
+ {
4115
+ AryText:
4116
+ [
4117
+ { Text:`日期: ${kItem.Date} `, Color:"rgb(220,220,220)"},
4118
+ { Text:`ID: ${i} `, Color:"rgb(255,165,0)" }
4119
+ ],
4120
+ },
4121
+ {
4122
+ AryText:
4123
+ [
4124
+ { Text:`数据1: -- `, Color:"rgb(30,144,255)"},
4125
+ { Text:`数据2: -- `, Color:"rgb(255,0,255)" }
4126
+ ],
4127
+ }
4128
+ ]
4129
+ }
4130
+ }
4131
+ else
4132
+ {
4133
+ markItem.End.Date=kItem.Date;
4134
+ markItem.End.Time=kItem.Time;
4135
+ markItem.Count++;
4136
+
4137
+ if (markItem.Count>150)
4138
+ {
4139
+ markData.Draw.DrawData.AryData.push(markItem);
4140
+ markItem=null;
4141
+ }
4142
+ }
4143
+
4144
+ }
4145
+
4146
+ var apiData=
4147
+ {
4148
+ code:0,
4149
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
4150
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[markData] }
4151
+ };
4152
+
4153
+ console.log('[HQData.API_CHART_AREA_TEXT] apiData ', apiData);
4154
+ callback(apiData);
4155
+ }
4156
+
4157
+
@@ -12386,18 +12386,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12386
12386
  }
12387
12387
  else
12388
12388
  {
12389
- var pt={X:null, Y:null};
12389
+ var pt={ X:null, Y:null };
12390
12390
  pt.X=this.Frame.GetXFromIndex(this.CursorIndex);
12391
12391
  var index=this.CursorIndex;
12392
12392
  var data=this.GetKData();
12393
- if (data.DataOffset+index<data.Data.length)
12393
+ if (IFrameSplitOperator.IsGTEZero(index) && data.DataOffset+index<data.Data.length)
12394
12394
  {
12395
12395
  var close=data.Data[data.DataOffset+index].Close;
12396
12396
  pt.Y=this.Frame.GetYFromData(close);
12397
+ this.LastPoint.FrameID=0;
12397
12398
  }
12398
12399
  this.LastPoint.X=pt.X;
12399
12400
  this.LastPoint.Y=pt.Y;
12400
- this.LastPoint.FrameID=0;
12401
12401
  }
12402
12402
  }
12403
12403
 
@@ -58391,6 +58391,12 @@ IFrameSplitOperator.FormatDateTimeStringV2=function(datetime, format, languageID
58391
58391
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58392
58392
  case "HH:MM:SS.fff":
58393
58393
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}.${IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds())}`;
58394
+
58395
+ case "YYYY-MM-DD HH:MM":
58396
+ return `${datetime.getFullYear()}-${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58397
+ case "MM-DD HH:MM":
58398
+ return `${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58399
+
58394
58400
  default:
58395
58401
  return null;
58396
58402
  }
@@ -58446,6 +58452,15 @@ IFrameSplitOperator.IsPlusNumber=function(value)
58446
58452
  return value>0;
58447
58453
  }
58448
58454
 
58455
+ //>=0
58456
+ IFrameSplitOperator.IsGTEZero=function(value)
58457
+ {
58458
+ if (value==null) return false;
58459
+ if (isNaN(value)) return false;
58460
+
58461
+ return value>=0;
58462
+ }
58463
+
58449
58464
  //是否是整形
58450
58465
  IFrameSplitOperator.IsInteger=function(x)
58451
58466
  {
@@ -140482,6 +140497,16 @@ function JSReportChartContainer(uielement)
140482
140497
  if (IFrameSplitOperator.IsString(item[208]) || IFrameSplitOperator.IsObject(item[208])) stock.ReserveString8=item[208];
140483
140498
  if (IFrameSplitOperator.IsString(item[209]) || IFrameSplitOperator.IsObject(item[209])) stock.ReserveString9=item[209];
140484
140499
  if (IFrameSplitOperator.IsString(item[210]) || IFrameSplitOperator.IsObject(item[210])) stock.ReserveString10=item[210];
140500
+ if (IFrameSplitOperator.IsString(item[211]) || IFrameSplitOperator.IsObject(item[211])) stock.ReserveString11=item[211];
140501
+ if (IFrameSplitOperator.IsString(item[212]) || IFrameSplitOperator.IsObject(item[212])) stock.ReserveString12=item[212];
140502
+ if (IFrameSplitOperator.IsString(item[213]) || IFrameSplitOperator.IsObject(item[213])) stock.ReserveString13=item[213];
140503
+ if (IFrameSplitOperator.IsString(item[214]) || IFrameSplitOperator.IsObject(item[214])) stock.ReserveString14=item[214];
140504
+ if (IFrameSplitOperator.IsString(item[215]) || IFrameSplitOperator.IsObject(item[215])) stock.ReserveString15=item[215];
140505
+ if (IFrameSplitOperator.IsString(item[216]) || IFrameSplitOperator.IsObject(item[216])) stock.ReserveString16=item[216];
140506
+ if (IFrameSplitOperator.IsString(item[217]) || IFrameSplitOperator.IsObject(item[217])) stock.ReserveString17=item[217];
140507
+ if (IFrameSplitOperator.IsString(item[218]) || IFrameSplitOperator.IsObject(item[218])) stock.ReserveString18=item[218];
140508
+ if (IFrameSplitOperator.IsString(item[219]) || IFrameSplitOperator.IsObject(item[219])) stock.ReserveString19=item[219];
140509
+ if (IFrameSplitOperator.IsString(item[220]) || IFrameSplitOperator.IsObject(item[220])) stock.ReserveString20=item[220];
140485
140510
 
140486
140511
  //10个进度条 301-350 { Value:, BGColor: }
140487
140512
  if (IFrameSplitOperator.IsNumber(item[301]) || IFrameSplitOperator.IsObject(item[301])) stock.ReserveProgressBar1=item[301];
@@ -142899,6 +142924,16 @@ function JSReportChartContainer(uielement)
142899
142924
  case REPORT_COLUMN_ID.RESERVE_STRING8_ID:
142900
142925
  case REPORT_COLUMN_ID.RESERVE_STRING9_ID:
142901
142926
  case REPORT_COLUMN_ID.RESERVE_STRING10_ID:
142927
+ case REPORT_COLUMN_ID.RESERVE_STRING11_ID:
142928
+ case REPORT_COLUMN_ID.RESERVE_STRING12_ID:
142929
+ case REPORT_COLUMN_ID.RESERVE_STRING13_ID:
142930
+ case REPORT_COLUMN_ID.RESERVE_STRING14_ID:
142931
+ case REPORT_COLUMN_ID.RESERVE_STRING15_ID:
142932
+ case REPORT_COLUMN_ID.RESERVE_STRING16_ID:
142933
+ case REPORT_COLUMN_ID.RESERVE_STRING17_ID:
142934
+ case REPORT_COLUMN_ID.RESERVE_STRING18_ID:
142935
+ case REPORT_COLUMN_ID.RESERVE_STRING19_ID:
142936
+ case REPORT_COLUMN_ID.RESERVE_STRING20_ID:
142902
142937
  return this.LocalReserveStringSort(left, right, column, sortType);
142903
142938
 
142904
142939
 
@@ -143570,6 +143605,16 @@ var REPORT_COLUMN_ID=
143570
143605
  RESERVE_STRING8_ID:308,
143571
143606
  RESERVE_STRING9_ID:309,
143572
143607
  RESERVE_STRING10_ID:310,
143608
+ RESERVE_STRING11_ID:311,
143609
+ RESERVE_STRING12_ID:312,
143610
+ RESERVE_STRING13_ID:313,
143611
+ RESERVE_STRING14_ID:314,
143612
+ RESERVE_STRING15_ID:315,
143613
+ RESERVE_STRING16_ID:316,
143614
+ RESERVE_STRING17_ID:317,
143615
+ RESERVE_STRING18_ID:318,
143616
+ RESERVE_STRING19_ID:319,
143617
+ RESERVE_STRING20_ID:320,
143573
143618
 
143574
143619
  //预留进度条类型 10个 401-450
143575
143620
  RESERVE_PROGRESS_BAR1_ID:401, //ReserveProgressBar1:
@@ -143690,6 +143735,16 @@ var MAP_COLUMN_FIELD=new Map([
143690
143735
  [REPORT_COLUMN_ID.RESERVE_STRING8_ID,"ReserveString8"],
143691
143736
  [REPORT_COLUMN_ID.RESERVE_STRING9_ID,"ReserveString9"],
143692
143737
  [REPORT_COLUMN_ID.RESERVE_STRING10_ID,"ReserveString10"],
143738
+ [REPORT_COLUMN_ID.RESERVE_STRING11_ID,"ReserveString11"],
143739
+ [REPORT_COLUMN_ID.RESERVE_STRING12_ID,"ReserveString12"],
143740
+ [REPORT_COLUMN_ID.RESERVE_STRING13_ID,"ReserveString13"],
143741
+ [REPORT_COLUMN_ID.RESERVE_STRING14_ID,"ReserveString14"],
143742
+ [REPORT_COLUMN_ID.RESERVE_STRING15_ID,"ReserveString15"],
143743
+ [REPORT_COLUMN_ID.RESERVE_STRING16_ID,"ReserveString16"],
143744
+ [REPORT_COLUMN_ID.RESERVE_STRING17_ID,"ReserveString17"],
143745
+ [REPORT_COLUMN_ID.RESERVE_STRING18_ID,"ReserveString18"],
143746
+ [REPORT_COLUMN_ID.RESERVE_STRING19_ID,"ReserveString19"],
143747
+ [REPORT_COLUMN_ID.RESERVE_STRING20_ID,"ReserveString20"],
143693
143748
 
143694
143749
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID,"ReserveProgressBar1"],
143695
143750
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR2_ID,"ReserveProgressBar2"],
@@ -143923,6 +143978,9 @@ function ChartReport()
143923
143978
 
143924
143979
  this.LastMouseStatus;
143925
143980
 
143981
+ //绘图过程中的缓存数据 绘制完清空的
143982
+ this.TempCache=null; //
143983
+
143926
143984
  this.ReloadResource=function(resource)
143927
143985
  {
143928
143986
  this.DevicePixelRatio=GetDevicePixelRatio()
@@ -144036,6 +144094,7 @@ function ChartReport()
144036
144094
  if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
144037
144095
  if (item.MaxText) colItem.MaxText=item.MaxText;
144038
144096
  if (item.MaxText2) colItem.MaxText=item.MaxText2;
144097
+ if (item.TitleAlign) colItem.TitleAlign=item.TitleAlign;
144039
144098
  if (IFrameSplitOperator.IsNumber(item.Space)) colItem.Space=item.Space;
144040
144099
  if (item.ID) colItem.ID=item.ID;
144041
144100
  if (item.FullColBGColor) colItem.FullColBGColor=item.FullColBGColor; //整列背景色
@@ -144124,6 +144183,7 @@ function ChartReport()
144124
144183
  else if (this.IsReserveDateTime(item.Type))
144125
144184
  {
144126
144185
  if (item.DateTimeFormat) colItem.DateTimeFormat=item.DateTimeFormat; //日期格式化
144186
+ if (item.SubDateTimeFormat) colItem.SubDateTimeFormat=item.SubDateTimeFormat;
144127
144187
  }
144128
144188
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
144129
144189
  {
@@ -144355,6 +144415,16 @@ function ChartReport()
144355
144415
  { Type:REPORT_COLUMN_ID.RESERVE_STRING8_ID, Title:"文字8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144356
144416
  { Type:REPORT_COLUMN_ID.RESERVE_STRING9_ID, Title:"文字9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144357
144417
  { Type:REPORT_COLUMN_ID.RESERVE_STRING10_ID, Title:"文字10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144418
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING11_ID, Title:"文字11", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144419
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING12_ID, Title:"文字12", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144420
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING13_ID, Title:"文字13", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144421
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING14_ID, Title:"文字14", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144422
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING15_ID, Title:"文字15", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144423
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING16_ID, Title:"文字16", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144424
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING17_ID, Title:"文字17", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144425
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING18_ID, Title:"文字18", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144426
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING19_ID, Title:"文字19", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144427
+ { Type:REPORT_COLUMN_ID.RESERVE_STRING20_ID, Title:"文字20", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
144358
144428
 
144359
144429
 
144360
144430
  { Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID, Title:"进度条1", TextAlign:"center", FixedWidth:100*GetDevicePixelRatio() },
@@ -144411,6 +144481,11 @@ function ChartReport()
144411
144481
  this.Canvas.clip();
144412
144482
  }
144413
144483
 
144484
+ this.CreateTempCache=function()
144485
+ {
144486
+ this.TempCache={ MapReserveDateTime:new Map() }; //MapReserveDateTime:key=colindex, Value:{ PreDate }
144487
+ }
144488
+
144414
144489
  this.Draw=function(lastMouseStatus)
144415
144490
  {
144416
144491
  this.ShowSymbol=[];
@@ -144419,6 +144494,7 @@ function ChartReport()
144419
144494
  this.AryFullSelectedRow=[];
144420
144495
  this.DevicePixelRatio=GetDevicePixelRatio()
144421
144496
  this.LastMouseStatus=lastMouseStatus;
144497
+ this.CreateTempCache();
144422
144498
 
144423
144499
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
144424
144500
 
@@ -144457,6 +144533,7 @@ function ChartReport()
144457
144533
  this.LastMouseStatus=null;
144458
144534
  this.SizeChange=false;
144459
144535
  this.AryFullSelectedRow=[];
144536
+ this.TempCache=null;
144460
144537
  }
144461
144538
 
144462
144539
  this.DrawDragHeaderBG=function()
@@ -144822,8 +144899,12 @@ function ChartReport()
144822
144899
  textWidth=this.Canvas.measureText(item.Text).width;
144823
144900
  }
144824
144901
 
144825
- if (column.TextAlign=='center') x=x+(cellWidth-textWidth)/2;
144826
- else if (column.TextAlign=='right') x=x+textSize.TextMaxWidth-textWidth;
144902
+ var textAlign=column.TextAlign;
144903
+ if (column.TitleAlign) textAlign=column.TitleAlign;
144904
+
144905
+ if (textAlign=='center') x=x+(cellWidth-textWidth)/2;
144906
+ else if (textAlign=='right') x=x+textSize.TextMaxWidth-textWidth;
144907
+
144827
144908
 
144828
144909
  if (item.Text) //文字
144829
144910
  {
@@ -145887,7 +145968,11 @@ function ChartReport()
145887
145968
  [
145888
145969
  REPORT_COLUMN_ID.RESERVE_STRING1_ID,REPORT_COLUMN_ID.RESERVE_STRING2_ID,REPORT_COLUMN_ID.RESERVE_STRING3_ID,REPORT_COLUMN_ID.RESERVE_STRING4_ID,
145889
145970
  REPORT_COLUMN_ID.RESERVE_STRING5_ID,REPORT_COLUMN_ID.RESERVE_STRING6_ID,REPORT_COLUMN_ID.RESERVE_STRING7_ID,REPORT_COLUMN_ID.RESERVE_STRING8_ID,
145890
- REPORT_COLUMN_ID.RESERVE_STRING9_ID,REPORT_COLUMN_ID.RESERVE_STRING10_ID
145971
+ REPORT_COLUMN_ID.RESERVE_STRING9_ID,REPORT_COLUMN_ID.RESERVE_STRING10_ID,
145972
+
145973
+ REPORT_COLUMN_ID.RESERVE_STRING11_ID,REPORT_COLUMN_ID.RESERVE_STRING12_ID,REPORT_COLUMN_ID.RESERVE_STRING13_ID,REPORT_COLUMN_ID.RESERVE_STRING14_ID,
145974
+ REPORT_COLUMN_ID.RESERVE_STRING15_ID,REPORT_COLUMN_ID.RESERVE_STRING16_ID,REPORT_COLUMN_ID.RESERVE_STRING17_ID,REPORT_COLUMN_ID.RESERVE_STRING18_ID,
145975
+ REPORT_COLUMN_ID.RESERVE_STRING19_ID,REPORT_COLUMN_ID.RESERVE_STRING20_ID
145891
145976
  ];
145892
145977
 
145893
145978
  return ARARY_TYPE.includes(value);
@@ -146349,6 +146434,36 @@ function ChartReport()
146349
146434
  }
146350
146435
  }
146351
146436
 
146437
+ this.GetReserveDateTimePreItem=function(colIndex)
146438
+ {
146439
+ if (!this.CreateTempCache) return null;
146440
+ if (!this.TempCache.MapReserveDateTime) return null;
146441
+
146442
+ var mapData=this.TempCache.MapReserveDateTime;
146443
+ if (!mapData.has(colIndex)) return null;
146444
+
146445
+ return mapData.get(colIndex);
146446
+ }
146447
+
146448
+ this.SetReserveDateTimePreItem=function(colIndex,data)
146449
+ {
146450
+ if (!this.CreateTempCache) return false;
146451
+ if (!this.TempCache.MapReserveDateTime) return false;
146452
+
146453
+ var mapData=this.TempCache.MapReserveDateTime;
146454
+ if (mapData.has(colIndex))
146455
+ {
146456
+ var item=mapData.get(colIndex);
146457
+ item.PreItem.Date=data.Date;
146458
+ }
146459
+ else
146460
+ {
146461
+ mapData.set(colIndex, { PreItem:{ Date:data.Date } })
146462
+ }
146463
+
146464
+ return true;
146465
+ }
146466
+
146352
146467
  this.FormatReserveDateTime=function(column, data, drawInfo)
146353
146468
  {
146354
146469
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -146359,7 +146474,24 @@ function ChartReport()
146359
146474
  var item=data[fieldName];
146360
146475
  if (!IFrameSplitOperator.IsObject(item)) return;
146361
146476
 
146362
- if (item.DateTime) drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);
146477
+ var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);
146478
+ if (item.DateTime)
146479
+ {
146480
+ var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();
146481
+ var format=column.DateTimeFormat;
146482
+ if (cacheItem && cacheItem.PreItem && date==cacheItem.PreItem.Date)
146483
+ {
146484
+ if (column.SubDateTimeFormat) format=column.SubDateTimeFormat
146485
+ }
146486
+ else
146487
+ {
146488
+
146489
+ this.SetReserveDateTimePreItem(drawInfo.ColumnIndex, {Date:date});
146490
+ }
146491
+
146492
+ drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime, format);
146493
+ }
146494
+
146363
146495
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
146364
146496
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
146365
146497
  }
@@ -152227,7 +152359,7 @@ function ScrollBarBGChart()
152227
152359
 
152228
152360
 
152229
152361
 
152230
- var HQCHART_VERSION="1.1.14981";
152362
+ var HQCHART_VERSION="1.1.14990";
152231
152363
 
152232
152364
  function PrintHQChartVersion()
152233
152365
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14981";
8
+ var HQCHART_VERSION="1.1.14990";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {