hqchart 1.1.14219 → 1.1.14223

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.
@@ -1992,25 +1992,31 @@ function JSReportChartContainer(uielement)
1992
1992
  this.PopupRightMenu(x,y,e);
1993
1993
  }
1994
1994
 
1995
- this.PopupRightMenu=function(x,y, e)
1995
+
1996
+ this.PtInReportChart=function(x,y) //Type: 2=行 3=表头 4=固定行
1996
1997
  {
1997
1998
  var chart=this.GetReportChart();
1998
- if (!chart) return;
1999
+ if (!chart) return null;
1999
2000
 
2000
- var row=chart.PtInFixedBody(x,y);
2001
- if (row)
2002
- {
2003
- row.Type=1;
2004
- }
2005
- else
2006
- {
2007
- row=chart.PtInBody(x,y);
2008
- if (row) row.Type=2;
2009
- }
2001
+ var row=chart.PtInHeader(x,y);
2002
+ if (row) return { Type:3, Row:row, X:x, Y:y };
2003
+
2004
+ row=chart.PtInFixedBody(x,y);
2005
+ if (row) return { Type:4, Row:row , X:x, Y:y };
2006
+
2007
+ row=chart.PtInBody(x,y);
2008
+ if (row) return { Type:2, Row:row , X:x, Y:y };
2009
+
2010
+ return { Type:-1, Row:null, X:x, Y:y };
2011
+ }
2010
2012
 
2013
+ this.PopupRightMenu=function(x,y, e)
2014
+ {
2015
+ var data=this.PtInReportChart(x,y);
2016
+ if (!data) return;
2011
2017
  if (!this.JSPopMenu) return;
2012
2018
 
2013
- var data={ Row:row, X:x, Y:y };
2019
+ data.e=e;
2014
2020
  var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
2015
2021
  menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
2016
2022
 
@@ -3675,6 +3681,36 @@ function JSReportChartContainer(uielement)
3675
3681
  if (IFrameSplitOperator.IsNumber(param))
3676
3682
  this.DeleteColumn(param, {Redraw:true});
3677
3683
  break;
3684
+ case JSCHART_MENU_ID.CMD_REPORT_CHANGE_COLUMN_ID:
3685
+ if (param!=null && aryArgs[1]) this.ChangeColumn(param, aryArgs[1], { Redraw:true})
3686
+ break;
3687
+ }
3688
+ }
3689
+
3690
+
3691
+ this.ChangeColumn=function(index, newColumn, option)
3692
+ {
3693
+ if (index<0) return;
3694
+ if (!newColumn) return;
3695
+
3696
+ var reportChart=this.GetReportChart();
3697
+ if (!reportChart) return;
3698
+
3699
+ if (!reportChart.ChangeColumn(index, newColumn)) return;
3700
+
3701
+ if (this.SortInfo && this.SortInfo.Field==index && this.SortInfo.Sort>0) //去掉排序
3702
+ {
3703
+ this.SortInfo.Field=-1;
3704
+ this.SortInfo.Sort=0;
3705
+ this.Data.Data=[];
3706
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
3707
+ this.Data.Data=this.SourceData.Data.slice();
3708
+ }
3709
+
3710
+ if (option && option.Redraw)
3711
+ {
3712
+ this.SetSizeChange(true);
3713
+ this.Draw();
3678
3714
  }
3679
3715
  }
3680
3716
 
@@ -4757,6 +4793,134 @@ function ChartReport()
4757
4793
  this.ProgressBarConfig=CloneData(g_JSChartResource.Report.ProgressBar);
4758
4794
  }
4759
4795
 
4796
+ this.CreateColumnItem=function(item)
4797
+ {
4798
+ var colItem=this.GetDefaultColunm(item.Type);
4799
+ if (!colItem) return null;
4800
+
4801
+ if (item.Title) colItem.Title=item.Title;
4802
+ if (item.TextAlign) colItem.TextAlign=item.TextAlign;
4803
+ if (item.TextColor) colItem.TextColor=item.TextColor;
4804
+ if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
4805
+ if (item.MaxText) colItem.MaxText=item.MaxText;
4806
+ if (item.MaxText2) colItem.MaxText=item.MaxText2;
4807
+ if (IFrameSplitOperator.IsNumber(item.Space)) colItem.Space=item.Space;
4808
+ if (item.ID) colItem.ID=item.ID;
4809
+ if (item.FullColBGColor) colItem.FullColBGColor=item.FullColBGColor; //整列背景色
4810
+ if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
4811
+ if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
4812
+ if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
4813
+ if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
4814
+ if (IFrameSplitOperator.IsBool(item.IsDrawCallback)) colItem.IsDrawCallback=item.IsDrawCallback;
4815
+ else colItem.IsDrawCallback=false;
4816
+
4817
+ if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) colItem.FloatPrecision=item.FloatPrecision; //小数位数
4818
+ if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
4819
+ if (item.Icon) colItem.Icon=item.Icon;
4820
+ if (IFrameSplitOperator.IsBool(item.EnableChartTooltip)) colItem.EnableChartTooltip=item.EnableChartTooltip;
4821
+
4822
+ //点击表头弹出菜单
4823
+ if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
4824
+
4825
+ if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
4826
+ {
4827
+ colItem.SortType=[1,2]; //默认 降序 ,升序
4828
+ if (IFrameSplitOperator.IsNonEmptyArray(item.SortType)) colItem.SortType=item.SortType.slice();
4829
+ }
4830
+
4831
+ if (item.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID)
4832
+ {
4833
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4834
+ colItem.FormatType=0; //0=默认格式 1=长度不够使用...
4835
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4836
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4837
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4838
+ }
4839
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID)
4840
+ {
4841
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4842
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4843
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4844
+ colItem.Decimal=2;
4845
+ colItem.FormatType=0; //0=默认格式化 1=原始输出 2=科学计数 3=成交量格式化
4846
+ colItem.ColorType=0; //0=默认使用TextColor, 1=(>0涨,<0跌)2=(>昨收涨,<昨收跌)
4847
+ if (IFrameSplitOperator.IsNumber(item.Decimal)) colItem.Decimal=item.Decimal; //小数位数
4848
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4849
+ if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //颜色属性
4850
+ }
4851
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID)
4852
+ {
4853
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4854
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4855
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4856
+ colItem.FormatType=0; //0=yyyy-mm-dd 1=YYYY/MM/DD
4857
+ colItem.ValueType=0; //0=yyyymmdd 1=hhmmss
4858
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4859
+ if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.FormatType=item.ValueType; //输出样式
4860
+
4861
+ }
4862
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID)
4863
+ {
4864
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4865
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4866
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4867
+ if (item.CheckBox) colItem.CheckBox=CloneData(item.CheckBox);
4868
+ else colItem.CheckBox=this.CheckBoxConfig;
4869
+ }
4870
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_BUTTON_ID)
4871
+ {
4872
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4873
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4874
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4875
+ if (item.Button) colItem.Button=CloneData(item.Button);
4876
+ else colItem.Button=this.ButtonConfig;
4877
+ }
4878
+ else if (this.IsReserveButtonColumn(item.Type))
4879
+ {
4880
+ if (item.Button) colItem.Button=CloneData(item.Button);
4881
+ else colItem.Button=this.ButtonConfig;
4882
+ }
4883
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
4884
+ {
4885
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4886
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4887
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4888
+ if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4889
+ else colItem.ProgressBar=this.ProgressBarConfig;
4890
+ }
4891
+ else if (this.IsReserveProgressBarColumn(item.Type))
4892
+ {
4893
+ if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4894
+ else colItem.ProgressBar=this.ProgressBarConfig;
4895
+ }
4896
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_LINK_ID)
4897
+ {
4898
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4899
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4900
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4901
+ if (item.Link) colItem.Link=CloneData(item.Link);
4902
+ else colItem.Link=this.LinkConfig;
4903
+ }
4904
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_ICON_ID)
4905
+ {
4906
+
4907
+ }
4908
+ else if (item.Type==REPORT_COLUMN_ID.CLOSE_LINE_ID)
4909
+ {
4910
+ if (IFrameSplitOperator.IsBool(item.IsDrawArea)) colItem.IsDrawArea=item.IsDrawArea;
4911
+ }
4912
+ else if(item.Type==REPORT_COLUMN_ID.TIME_ID)
4913
+ {
4914
+ if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.ValueType=item.ValueType;
4915
+ }
4916
+ else if (item.Type==REPORT_COLUMN_ID.DATE_ID)
4917
+ {
4918
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType;
4919
+ }
4920
+
4921
+ return colItem;
4922
+ }
4923
+
4760
4924
  this.SetColumn=function(aryColumn)
4761
4925
  {
4762
4926
  if (!IFrameSplitOperator.IsNonEmptyArray(aryColumn)) return;
@@ -4765,130 +4929,9 @@ function ChartReport()
4765
4929
  for(var i=0;i<aryColumn.length;++i)
4766
4930
  {
4767
4931
  var item=aryColumn[i];
4768
- var colItem=this.GetDefaultColunm(item.Type);
4932
+ var colItem=this.CreateColumnItem(item);
4769
4933
  if (!colItem) continue;
4770
4934
 
4771
- if (item.Title) colItem.Title=item.Title;
4772
- if (item.TextAlign) colItem.TextAlign=item.TextAlign;
4773
- if (item.TextColor) colItem.TextColor=item.TextColor;
4774
- if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
4775
- if (item.MaxText) colItem.MaxText=item.MaxText;
4776
- if (item.MaxText2) colItem.MaxText=item.MaxText2;
4777
- if (IFrameSplitOperator.IsNumber(item.Space)) colItem.Space=item.Space;
4778
- if (item.ID) colItem.ID=item.ID;
4779
- if (item.FullColBGColor) colItem.FullColBGColor=item.FullColBGColor; //整列背景色
4780
- if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
4781
- if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
4782
- if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
4783
- if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
4784
- if (IFrameSplitOperator.IsBool(item.IsDrawCallback)) colItem.IsDrawCallback=item.IsDrawCallback;
4785
- else colItem.IsDrawCallback=false;
4786
-
4787
- if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) colItem.FloatPrecision=item.FloatPrecision; //小数位数
4788
- if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
4789
- if (item.Icon) colItem.Icon=item.Icon;
4790
- if (IFrameSplitOperator.IsBool(item.EnableChartTooltip)) colItem.EnableChartTooltip=item.EnableChartTooltip;
4791
-
4792
- //点击表头弹出菜单
4793
- if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
4794
-
4795
- if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
4796
- {
4797
- colItem.SortType=[1,2]; //默认 降序 ,升序
4798
- if (IFrameSplitOperator.IsNonEmptyArray(item.SortType)) colItem.SortType=item.SortType.slice();
4799
- }
4800
-
4801
- if (item.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID)
4802
- {
4803
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4804
- colItem.FormatType=0; //0=默认格式 1=长度不够使用...
4805
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4806
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4807
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4808
- }
4809
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID)
4810
- {
4811
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4812
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4813
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4814
- colItem.Decimal=2;
4815
- colItem.FormatType=0; //0=默认格式化 1=原始输出 2=科学计数 3=成交量格式化
4816
- colItem.ColorType=0; //0=默认使用TextColor, 1=(>0涨,<0跌)2=(>昨收涨,<昨收跌)
4817
- if (IFrameSplitOperator.IsNumber(item.Decimal)) colItem.Decimal=item.Decimal; //小数位数
4818
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4819
- if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //颜色属性
4820
- }
4821
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID)
4822
- {
4823
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4824
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4825
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4826
- colItem.FormatType=0; //0=yyyy-mm-dd 1=YYYY/MM/DD
4827
- colItem.ValueType=0; //0=yyyymmdd 1=hhmmss
4828
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4829
- if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.FormatType=item.ValueType; //输出样式
4830
-
4831
- }
4832
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID)
4833
- {
4834
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4835
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4836
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4837
- if (item.CheckBox) colItem.CheckBox=CloneData(item.CheckBox);
4838
- else colItem.CheckBox=this.CheckBoxConfig;
4839
- }
4840
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_BUTTON_ID)
4841
- {
4842
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4843
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4844
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4845
- if (item.Button) colItem.Button=CloneData(item.Button);
4846
- else colItem.Button=this.ButtonConfig;
4847
- }
4848
- else if (this.IsReserveButtonColumn(item.Type))
4849
- {
4850
- if (item.Button) colItem.Button=CloneData(item.Button);
4851
- else colItem.Button=this.ButtonConfig;
4852
- }
4853
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
4854
- {
4855
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4856
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4857
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4858
- if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4859
- else colItem.ProgressBar=this.ProgressBarConfig;
4860
- }
4861
- else if (this.IsReserveProgressBarColumn(item.Type))
4862
- {
4863
- if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4864
- else colItem.ProgressBar=this.ProgressBarConfig;
4865
- }
4866
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_LINK_ID)
4867
- {
4868
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4869
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4870
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4871
- if (item.Link) colItem.Link=CloneData(item.Link);
4872
- else colItem.Link=this.LinkConfig;
4873
- }
4874
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_ICON_ID)
4875
- {
4876
-
4877
- }
4878
- else if (item.Type==REPORT_COLUMN_ID.CLOSE_LINE_ID)
4879
- {
4880
- if (IFrameSplitOperator.IsBool(item.IsDrawArea)) colItem.IsDrawArea=item.IsDrawArea;
4881
- }
4882
- else if(item.Type==REPORT_COLUMN_ID.TIME_ID)
4883
- {
4884
- if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.ValueType=item.ValueType;
4885
- }
4886
- else if (item.Type==REPORT_COLUMN_ID.DATE_ID)
4887
- {
4888
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType;
4889
- }
4890
-
4891
-
4892
4935
  this.Column.push(colItem);
4893
4936
  }
4894
4937
  }
@@ -4918,6 +4961,17 @@ function ChartReport()
4918
4961
  return true;
4919
4962
  }
4920
4963
 
4964
+ this.ChangeColumn=function(index, newColumn)
4965
+ {
4966
+ if (index<0 || index>=this.Column.length) return false;
4967
+
4968
+ var colItem=this.CreateColumnItem(newColumn);
4969
+ if (!colItem) return false;
4970
+ this.Column[index]=colItem;
4971
+
4972
+ return true;
4973
+ }
4974
+
4921
4975
  this.GetXScrollPos=function()
4922
4976
  {
4923
4977
  return this.Data.XOffset;
@@ -7502,7 +7556,9 @@ function ChartReport()
7502
7556
  this.Canvas.lineTo(x,yCenter);
7503
7557
  this.Canvas.lineTo(ptFirst.X,yCenter);
7504
7558
  this.Canvas.closePath();
7505
- this.SetFillStyle(this.CloseLineConfig.AreaColor,left,top, left,bottom);
7559
+ var areaColor=this.CloseLineConfig.AreaColor;
7560
+ if (lineData.AreaColor) areaColor=lineData.AreaColor;
7561
+ this.SetFillStyle(areaColor,left,top, left,bottom);
7506
7562
  this.Canvas.fill();
7507
7563
  }
7508
7564
  }
@@ -151,6 +151,10 @@ HQData.NetworkFilter=function(data, callback)
151
151
  HQData.FinOne_RequestData(data,callback);
152
152
  break;
153
153
 
154
+ case "JSSymbolData::GetIndexData":
155
+ HQData.INDEX_RequestData(data,callback);
156
+ break;
157
+
154
158
  //////////////////////////////////////////////////////
155
159
  //报价列表数据
156
160
  case "JSReportChartContainer::RequestStockListData":
@@ -1026,6 +1030,30 @@ HQData.FinOne_RequestData=function(data,callback)
1026
1030
  }
1027
1031
 
1028
1032
 
1033
+ HQData.INDEX_RequestData=function(data,callback)
1034
+ {
1035
+ data.PreventDefault=true;
1036
+ var period=data.Period;
1037
+ var symbol=data.Request.Data.symbol;
1038
+ var indexSymbol="000001.sh";
1039
+ var dateRange=data.Request.Data.dateRange;
1040
+ var aryData=[];
1041
+ if (ChartData.IsMinutePeriod(period, true))
1042
+ {
1043
+ var fullData=HQData.GetM1KLineDataBySymbol(symbol);
1044
+ if (fullData) aryData=HQData.GetKLineDataByDateTime(fullData, dateRange.Start.Date, dateRange.Start.Time, dateRange.End.Date, dateRange.End.Time);
1045
+ }
1046
+ else if (ChartData.IsDayPeriod(period,true))
1047
+ {
1048
+ var fullData=HQData.GetDayKLineDataBySymbol(indexSymbol);
1049
+ if (fullData) aryData=HQData.GetKLineDataByDate(fullData, dateRange.Start.Date, dateRange.End.Date);
1050
+ }
1051
+
1052
+ var hqchartData={ name:indexSymbol, symbol:indexSymbol, data:aryData, ver:2.0 };
1053
+
1054
+ callback(hqchartData);
1055
+ }
1056
+
1029
1057
  //////////////////////////////////////////////////////////////////////////////////////
1030
1058
  // 报价列表
1031
1059
  //
@@ -1207,6 +1235,13 @@ HQData.Report_RequestStockData=function(data, callback)
1207
1235
  extendData[8]=(Math.round(Math.random()*60))/100;
1208
1236
 
1209
1237
 
1238
+ newItem[32]=HQData.Report_CreateMinuteData(newItem[2]);
1239
+
1240
+ //K线
1241
+ var kData={ Data:[newItem[3], newItem[4], newItem[5], newItem[6]] };
1242
+ newItem[33]=kData;
1243
+
1244
+
1210
1245
  newItem[101]=105.0;
1211
1246
  newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`;
1212
1247
 
@@ -1233,6 +1268,36 @@ HQData.Report_RequestStockData=function(data, callback)
1233
1268
  }, 500);
1234
1269
  }
1235
1270
 
1271
+ HQData.Report_CreateMinuteData=function(yClose)
1272
+ {
1273
+ var minuteData={ Data:[], Max:null, Min:null, Count:242, YClose:yClose };
1274
+ var TEST_DATA=[0.01, -0.02, 0.03, -0.05, -0.01, 0.02, 0.05, 0.01, 0.04, -0.04];
1275
+ var value=yClose;
1276
+ for(var i=0;i<minuteData.Count;++i)
1277
+ {
1278
+ var index=Math.ceil(Math.random()*10);
1279
+
1280
+ value+=(yClose*TEST_DATA[index%TEST_DATA.length]); //生成模拟的数据
1281
+ minuteData.Data[i]=value;
1282
+
1283
+ if (minuteData.Max==null || minuteData.Max<value) minuteData.Max=value;
1284
+ if (minuteData.Min==null || minuteData.Min>value) minuteData.Min=value;
1285
+ }
1286
+
1287
+ if (value>yClose)
1288
+ {
1289
+ minuteData.Color="rgb(255,0,0)";
1290
+ minuteData.AreaColor="rgba(255,0,0,0.2)";
1291
+ }
1292
+ else if (value<yClose)
1293
+ {
1294
+ minuteData.Color="rgb(4,139,34)";
1295
+ minuteData.AreaColor="rgba(4,139,34,0.2)";
1296
+ }
1297
+
1298
+ return minuteData;
1299
+ }
1300
+
1236
1301
  HQData.Report_RequestStockSortData=function(data, callback)
1237
1302
  {
1238
1303
  var blockID=data.Request.Data.symbol; //板块代码