hqchart 1.1.13100 → 1.1.13107

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.
@@ -8334,6 +8334,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8334
8334
  drag.LastMove.Y=touches[0].clientY;
8335
8335
 
8336
8336
  this.MouseDrag=drag;
8337
+ var drawPictureActive=this.GetActiveDrawPicture(); //上一次选中的
8338
+ var selectedChart={ Chart:this.SelectedChart.Selected.Chart, Identify:this.SelectedChart.Selected.Identify }; //上一次选中的图形
8337
8339
  this.PhoneTouchInfo={ Start:{X:touches[0].clientX, Y:touches[0].clientY }, End:{ X:touches[0].clientX, Y:touches[0].clientY } };
8338
8340
  if (this.SelectChartDrawPicture) this.SelectChartDrawPicture.IsSelected=false;
8339
8341
  this.SelectChartDrawPicture=null;
@@ -8347,7 +8349,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8347
8349
  {
8348
8350
  this.SetChartDrawPictureFirstPoint(drag.Click.X,drag.Click.Y,true);
8349
8351
  //只有1个点 直接完成
8350
- if (this.FinishChartDrawPicturePoint()) this.DrawDynamicInfo({Corss:false, Tooltip:false});
8352
+ if (this.FinishChartDrawPicturePoint())
8353
+ {
8354
+ if (drawPicture.IsDrawMain) this.Draw();
8355
+ else this.DrawDynamicInfo( {Corss:false, Tooltip:false} );
8356
+ }
8351
8357
  }
8352
8358
 
8353
8359
  if (e.cancelable) e.preventDefault();
@@ -8373,6 +8379,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8373
8379
  event.Callback(event,sendData,this);
8374
8380
  }
8375
8381
 
8382
+ var drawType=0;
8383
+ if (drawPictrueData.ChartDrawPicture.IsDrawMain) drawType=1;
8384
+ else if (drawPictureActive.Select.Guid && drawPictureActive.Select.Chart && drawPictureActive.Select.Chart.IsDrawMain) drawType=1;
8385
+
8386
+ if (drawType==1) this.Draw();
8387
+
8376
8388
  if (e.cancelable) e.preventDefault();
8377
8389
  return;
8378
8390
  }
@@ -8429,6 +8441,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8429
8441
  }
8430
8442
 
8431
8443
  this.TouchEvent({ EventID:JSCHART_EVENT_ID.ON_PHONE_TOUCH, FunctionName:"OnTouchStart"}, e);
8444
+
8445
+ var drawType=0;
8446
+ if (drawPictureActive.Select.Guid!=null)
8447
+ {
8448
+ if (drawPictureActive.Select.Guid && drawPictureActive.Select.Chart) drawType=1;
8449
+ }
8450
+
8451
+ if (drawType==1) this.Draw();
8432
8452
  }
8433
8453
  else if (this.IsPhonePinching(e))
8434
8454
  {
@@ -55272,6 +55292,7 @@ function DynamicChartTitlePainting()
55272
55292
  this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
55273
55293
  this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
55274
55294
  this.BorderRoundRadius=2; //圆角矩形角度
55295
+ this.NameButtonStyle=g_JSChartResource.IndexTitleBorderStyle,
55275
55296
 
55276
55297
  this.OnDrawEvent;
55277
55298
  this.ParamSpace=2; //参数显示的间距
@@ -56567,7 +56588,6 @@ function DynamicChartTitlePainting()
56567
56588
  var roundRadius=this.BorderRoundRadius*pixelRatio;
56568
56589
  var bgWidth=textWidth+4*pixelRatio+roundRadius*2;
56569
56590
 
56570
-
56571
56591
  rtButton.Top=rtButton.YCenter-bgHeight/2-1,
56572
56592
  rtButton.Width=bgWidth;
56573
56593
  rtButton.Height=bgHeight;
@@ -56585,19 +56605,33 @@ function DynamicChartTitlePainting()
56585
56605
  }
56586
56606
  }
56587
56607
 
56588
- this.Canvas.beginPath();
56589
- this.Canvas.roundRect( ToFixedPoint(rtButton.Left), ToFixedPoint(rtButton.Top), ToFixedRect(rtButton.Width), ToFixedRect(rtButton.Height), [roundRadius]);
56590
- this.Canvas.closePath();
56608
+ if (this.NameButtonStyle==1)
56609
+ {
56610
+ this.Canvas.beginPath();
56611
+ this.Canvas.roundRect(ToFixedPoint(rtButton.Left), ToFixedPoint(rtButton.Top), ToFixedRect(rtButton.Width), ToFixedRect(rtButton.Height), [roundRadius]);
56612
+ this.Canvas.closePath();
56591
56613
 
56592
- this.Canvas.fillStyle=this.BGColor;
56593
- this.Canvas.fill();
56614
+ this.Canvas.fillStyle=this.BGColor;
56615
+ this.Canvas.fill();
56594
56616
 
56595
- if (borderColor)
56617
+ if (borderColor)
56618
+ {
56619
+ this.Canvas.strokeStyle=borderColor;
56620
+ this.Canvas.stroke();
56621
+ }
56622
+ }
56623
+ else
56596
56624
  {
56597
- this.Canvas.strokeStyle=borderColor;
56598
- this.Canvas.stroke();
56625
+ this.Canvas.fillStyle=this.BGColor;
56626
+ this.Canvas.fillRect(rtButton.Left, rtButton.Top, rtButton.Width, rtButton.Height);
56627
+
56628
+ if (borderColor)
56629
+ {
56630
+ this.Canvas.strokeStyle=borderColor;
56631
+ this.Canvas.strokeRect(ToFixedPoint(rtButton.Left), ToFixedPoint(rtButton.Top), ToFixedRect(rtButton.Width), ToFixedRect(rtButton.Height), [roundRadius]);
56632
+ }
56599
56633
  }
56600
-
56634
+
56601
56635
  this.Canvas.fillStyle=this.TitleColor;
56602
56636
  this.Canvas.fillText(title,rtButton.Left+roundRadius+2*pixelRatio,rtButton.YCenter,textWidth);
56603
56637
  }
@@ -58919,6 +58953,15 @@ function ChartDrawHLine()
58919
58953
 
58920
58954
  this.AryButton=[];
58921
58955
  this.ExtendData; //扩展数据
58956
+ this.ShowPriceTextConfig=
58957
+ {
58958
+ IsShow:[false, false, true], //[0]=left内 [1]=right内 [2]=right外
58959
+ Font:
58960
+ [
58961
+ `${12*GetDevicePixelRatio()}px 微软雅黑`,
58962
+ `${12*GetDevicePixelRatio()}px 微软雅黑`,
58963
+ ],
58964
+ };
58922
58965
 
58923
58966
  //内部变量
58924
58967
  this.ColseButtonSize=0;
@@ -58950,6 +58993,15 @@ function ChartDrawHLine()
58950
58993
  if (item.SettingIcon) this.Button.SettingIcon=CloneData(item.SettingIcon);
58951
58994
  }
58952
58995
  if (option.ExtendData) this.ExtendData=option.ExtendData;
58996
+
58997
+ if (IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText))
58998
+ {
58999
+ for(var i=0;i<option.IsShowPriceText.length && i<3;++i)
59000
+ {
59001
+ var value=option.IsShowPriceText[i]
59002
+ if (IFrameSplitOperator.IsBool(value)) this.ShowPriceTextConfig.IsShow[i]=value;
59003
+ }
59004
+ }
58953
59005
  }
58954
59006
  }
58955
59007
 
@@ -59038,6 +59090,7 @@ function ChartDrawHLine()
59038
59090
  this.Canvas.stroke();
59039
59091
  this.RestoreLineWidth();
59040
59092
 
59093
+ //画水平线段
59041
59094
  var line={Start:new Point(), End:new Point()};
59042
59095
  if (isHScreen)
59043
59096
  {
@@ -59055,6 +59108,18 @@ function ChartDrawHLine()
59055
59108
  }
59056
59109
  this.LinePoint.push(line);
59057
59110
 
59111
+ var yValue=this.Frame.GetYData(drawPoint[0].Y);
59112
+ var strPrice=yValue.toFixed(this.Precision);
59113
+ if (this.ShowPriceTextConfig.IsShow[0])
59114
+ {
59115
+ this.DrawPriceText(strPrice, line.Start, line.End, 0);
59116
+ }
59117
+
59118
+ if (this.ShowPriceTextConfig.IsShow[1])
59119
+ {
59120
+ this.DrawPriceText(strPrice, line.Start, line.End, 1);
59121
+ }
59122
+
59058
59123
  var labInfo;
59059
59124
  if (this.GetLabelCallback) labInfo=this.GetLabelCallback(this);
59060
59125
 
@@ -59069,14 +59134,17 @@ function ChartDrawHLine()
59069
59134
 
59070
59135
  this.Canvas.restore();
59071
59136
 
59072
- var rtDraw={ };
59073
59137
 
59074
- //显示价格
59075
- this.CalculateButtonSize();
59076
- this.DrawValueText(drawPoint[0].Y, rtDraw, labInfo);
59077
- if (labInfo)
59078
- this.DrawRightLab(labInfo, rtDraw);
59138
+ //外部右侧显示价格
59139
+ if (this.ShowPriceTextConfig.IsShow[2])
59140
+ {
59141
+ var rtDraw={ };
59142
+ this.CalculateButtonSize();
59143
+ this.DrawValueText(drawPoint[0].Y, rtDraw, labInfo);
59144
+ if (labInfo) this.DrawRightLab(labInfo, rtDraw);
59145
+ }
59079
59146
 
59147
+
59080
59148
  //鼠标是否在按钮上
59081
59149
  if (moveonPoint && mouseStatus)
59082
59150
  {
@@ -59256,6 +59324,39 @@ function ChartDrawHLine()
59256
59324
  this.DrawButton(rtBG.Top, rtBG.Right, lineHeight, rtDraw);
59257
59325
  }
59258
59326
 
59327
+ this.DrawPriceText=function(text, ptStart, ptEnd, position)
59328
+ {
59329
+ if (position!=1 && position!=0) return;
59330
+
59331
+ var font=this.ShowPriceTextConfig.Font[position];
59332
+ this.Canvas.fillStyle=this.LineColor;
59333
+ this.Canvas.font=font;
59334
+ var textWidth=this.Canvas.measureText(text).width;
59335
+ var lineHeight=this.GetFontHeight();
59336
+
59337
+ var rtBG=null;
59338
+ if (position==1)
59339
+ {
59340
+ var rtBG={ Left:ptStart.X, Top:ptStart.Y-lineHeight/2, Width:textWidth+4, Height:lineHeight };
59341
+ rtBG.Right=rtBG.Left+rtBG.Width;
59342
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
59343
+ }
59344
+ else if (position==0)
59345
+ {
59346
+ var rtBG={ Right:ptEnd.X, Top:ptEnd.Y-lineHeight/2, Width:textWidth+4, Height:lineHeight };
59347
+ rtBG.Left=rtBG.Right-rtBG.Width;
59348
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
59349
+ }
59350
+
59351
+ this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));
59352
+
59353
+ this.Canvas.fillStyle=this.ValueTextColor
59354
+ this.Canvas.textAlign="left";
59355
+ this.Canvas.textBaseline="middle";
59356
+ this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);
59357
+
59358
+ }
59359
+
59259
59360
  this.CalculateButtonSize=function()
59260
59361
  {
59261
59362
  var pixelRatio=GetDevicePixelRatio();
@@ -59309,7 +59410,7 @@ function ChartDrawHLine()
59309
59410
 
59310
59411
  left+=1;
59311
59412
  var pixelRatio=GetDevicePixelRatio();
59312
- if (this.Button.SettingIcon)
59413
+ if (this.Button.SettingIcon && this.Button.SettingIcon.Text)
59313
59414
  {
59314
59415
  var rtButton={Left:left, Top:drawTop, Width:this.SettingButtonSize, Height:drawHeight };
59315
59416
  rtButton.Right=rtButton.Left+rtButton.Width;
@@ -59342,7 +59443,7 @@ function ChartDrawHLine()
59342
59443
  left=rtButton.Right+this.ButtonSpace;
59343
59444
  }
59344
59445
 
59345
- if (this.Button.CloseIcon)
59446
+ if (this.Button.CloseIcon && this.Button.CloseIcon.Text)
59346
59447
  {
59347
59448
  var rtButton={Left:left, Top:drawTop, Width:this.ColseButtonSize, Height:drawHeight };
59348
59449
  rtButton.Right=rtButton.Left+rtButton.Width;
@@ -66946,7 +67047,8 @@ function JSChartResource()
66946
67047
  this.TitleFont=13*GetDevicePixelRatio() +'px 微软雅黑'; //指标显示,tooltip显示字体
66947
67048
  this.IndexTitleBGColor='rgb(250,250,250)'; //指标名字背景色
66948
67049
  this.IndexTitleBorderColor='rgb(180,180,180)'; //指标名字边框颜色
66949
- this.IndexTitleBorderMoveOnColor='rgb(0,0,0)'; //指标名字边框颜色(鼠标在上面)
67050
+ this.IndexTitleBorderMoveOnColor='rgb(0,0,0)'; //指标名字边框颜色(鼠标在上面)
67051
+ this.IndexTitleBorderStyle=1, //0=直角边框 1=圆角边框
66950
67052
  this.IndexTitleColor="rgb(43,54,69)"; //指标名字颜色
66951
67053
  this.IndexTitleSelectedColor="rgb(65,105,225)";
66952
67054
  this.OverlayIndexTitleBGColor='rgba(255,255,255,0.7)';
@@ -67920,6 +68022,16 @@ function JSChartResource()
67920
68022
 
67921
68023
  MoveRowColor:'rgb(240,128,128)',
67922
68024
  SrcRowColor:'rgb(180,240,240)',
68025
+ },
68026
+
68027
+ VScrollbar:
68028
+ {
68029
+ ScrollBarHeight:60,
68030
+ ButtonColor:"rgba(252,252,252,0.8)",
68031
+ BarColor:"rgba(168,168,168,0.9)",
68032
+ BorderColor:'rgba(180,180,180,0.9)',
68033
+ BGColor:"rgba(234,239,248,0.9)",
68034
+ BarWidth:{ Size:12 }
67923
68035
  }
67924
68036
  },
67925
68037
 
@@ -68110,6 +68222,7 @@ function JSChartResource()
68110
68222
  if (style.IndexTitleBGColor) this.IndexTitleBGColor=style.IndexTitleBGColor;
68111
68223
  if (style.IndexTitleBorderColor) this.IndexTitleBorderColor=style.IndexTitleBorderColor;
68112
68224
  if (style.IndexTitleBorderMoveOnColor) this.IndexTitleBorderMoveOnColor=style.IndexTitleBorderMoveOnColor;
68225
+ if (IFrameSplitOperator.IsNumber(style.IndexTitleBorderStyle)) this.IndexTitleBorderStyle=style.IndexTitleBorderStyle;
68113
68226
  if (style.IndexTitleColor) this.IndexTitleColor=style.IndexTitleColor;
68114
68227
  if (style.IndexTitleSelectedColor) this.IndexTitleSelectedColor=style.IndexTitleSelectedColor;
68115
68228
  if (style.OverlayIndexTitleBGColor) this.OverlayIndexTitleBGColor=style.OverlayIndexTitleBGColor;
@@ -68557,205 +68670,8 @@ function JSChartResource()
68557
68670
  }
68558
68671
  }
68559
68672
 
68560
- if (style.Report)
68561
- {
68562
- var item=style.Report;
68563
- if (item.BorderColor) this.Report.BorderColor=item.BorderColor;
68564
- if (item.UpTextColor) this.Report.UpTextColor=item.UpTextColor;
68565
- if (item.DownTextColor) this.Report.DownTextColor=item.DownTextColor;
68566
- if (item.UnchagneTextColor) this.Report.UnchagneTextColor=item.UnchagneTextColor;
68567
- if (item.BorderColor) this.Report.SelectedColor=item.SelectedColor;
68568
-
68569
-
68570
- if (item.CloseLine)
68571
- {
68572
- var closeLine=item.CloseLine;
68573
- if (closeLine.CloseColor) this.Report.CloseLine.CloseColor=closeLine.CloseColor;
68574
- if (closeLine.YCloseColor) this.Report.CloseLine.YCloseColor=closeLine.YCloseColor;
68575
- if (closeLine.AreaColor) this.Report.CloseLine.AreaColor=closeLine.AreaColor;
68576
- }
68577
-
68578
- if (item.KLine)
68579
- {
68580
- var kline=item.KLine;
68581
- if (kline.UpColor) this.Report.KLine.UpColor=kline.UpColor;
68582
- if (kline.DownColor) this.Report.KLine.DownColor=kline.DownColor;
68583
- if (kline.UnchagneColor) this.Report.KLine.UnchagneColor=kline.UnchagneColor;
68584
-
68585
- if (IFrameSplitOperator.IsNumber(kline.DataWidth)) this.Report.KLine.DataWidth=kline.DataWidth;
68586
- if (IFrameSplitOperator.IsNumber(kline.DistanceWidth)) this.Report.KLine.DistanceWidth=kline.DistanceWidth;
68587
- }
68588
-
68589
- if (item.Header)
68590
- {
68591
- var header=item.Header;
68592
- if (header.Color) this.Report.Header.Color=header.Color;
68593
- if (header.SortColor) this.Report.Header.SortColor=header.SortColor;
68594
- if (header.Mergin)
68595
- {
68596
- var mergin=header.Mergin;
68597
- if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.Header.Mergin.Left=mergin.Left;
68598
- if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.Header.Mergin.Left=mergin.Right;
68599
- if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.Header.Mergin.Top=mergin.Top;
68600
- if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.Header.Mergin.Bottom=mergin.Bottom;
68601
- }
68602
- if (header.Font)
68603
- {
68604
- var font=header.Font;
68605
- if (font.Name) this.Report.Header.Font.Name=font.Name;
68606
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Header.Font.Size=font.Size;
68607
- }
68608
- }
68609
-
68610
- if (item.Item)
68611
- {
68612
- var row=item.Item;
68613
- if (row.Mergin)
68614
- {
68615
- var mergin=row.Mergin;
68616
- if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.Item.Mergin.Left=mergin.Left;
68617
- if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.Item.Mergin.Right=mergin.Right;
68618
- if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.Item.Mergin.Top=mergin.Top;
68619
- if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.Item.Mergin.Bottom=mergin.Bottom;
68620
- }
68621
-
68622
- if (row.Font)
68623
- {
68624
- var font=row.Font;
68625
- if (font.Name) this.Report.Item.Font.Name=font.Name;
68626
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Item.Font.Size=font.Size;
68627
- }
68628
-
68629
- if (row.BarMergin)
68630
- {
68631
- var mergin=row.BarMergin;
68632
- if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.Item.BarMergin.Left=mergin.Left;
68633
- if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.Item.BarMergin.Top=mergin.Top;
68634
- if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.Item.BarMergin.Right=mergin.Right;
68635
- if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.Item.BarMergin.Bottom=mergin.Bottom;
68636
- }
68637
-
68638
- if (row.NameFont)
68639
- {
68640
- var font=row.NameFont;
68641
- if (font.Name) this.Report.Item.NameFont.Name=font.Name;
68642
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Item.NameFont.Size=font.Size;
68643
- }
68644
-
68645
- if (row.SymbolFont)
68646
- {
68647
- var font=row.SymbolFont;
68648
- if (font.Name) this.Report.Item.SymbolFont.Name=font.Name;
68649
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Item.SymbolFont.Size=font.Size;
68650
- }
68651
- }
68652
-
68653
- if (item.FixedItem)
68654
- {
68655
- var row=item.FixedItem;
68656
- if (row.Font)
68657
- {
68658
- var font=row.Font;
68659
- if (font.Name) this.Report.FixedItem.Font.Name=font.Name;
68660
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.FixedItem.Font.Size=font.Size;
68661
- }
68662
- }
68663
-
68664
- if (item.LimitBorder)
68665
- {
68666
- var limit=item.LimitBorder;
68667
- if (limit.Color) this.Report.LimitBorder.Color=limit.Color;
68668
- if (limit.Mergin)
68669
- {
68670
- var mergin=limit.Mergin;
68671
- if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.LimitBorder.Mergin.Left=mergin.Left;
68672
- if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.LimitBorder.Mergin.Top=mergin.Top;
68673
- if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.LimitBorder.Mergin.Right=mergin.Right;
68674
- if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.LimitBorder.Mergin.Bottom=mergin.Bottom;
68675
- }
68676
- }
68677
-
68678
- if (item.LimitColor)
68679
- {
68680
- var limit=item.LimitColor;
68681
- if (limit.UpColor) this.Report.LimitColor.UpColor=limit.UpColor;
68682
- if (limit.DownColor) this.Report.LimitColor.DownColor=limit.DownColor;
68683
- if (limit.TextColor) this.Report.LimitColor.UpColor=limit.TextColor;
68684
- }
68685
-
68686
- if (item.FieldColor)
68687
- {
68688
- var filed=item.FieldColor;
68689
- if (filed.Name) this.Report.FieldColor.Name=filed.Name;
68690
- if (filed.Symbol) this.Report.FieldColor.Symbol=filed.Symbol;
68691
- if (filed.Vol) this.Report.FieldColor.Vol=filed.Vol;
68692
- if (filed.Amount) this.Report.FieldColor.Amount=filed.Amount;
68693
- if (filed.Index) this.Report.FieldColor.Index=filed.Index;
68694
- if (filed.BarTitle) this.Report.FieldColor.BarTitle=filed.BarTitle;
68695
- if (filed.Text) this.Report.FieldColor.Text=filed.Text;
68696
-
68697
- if (IFrameSplitOperator.IsNonEmptyArray(filed.Bar))
68698
- {
68699
- for(var i=0;i<filed.Bar.length;++i)
68700
- this.Report.FieldColor.Bar[i]=filed.Bar[i];
68701
- }
68702
- }
68703
-
68704
- if (item.Tab)
68705
- {
68706
- var tab=item.Tab;
68707
- if (tab.Font)
68708
- {
68709
- var font=tab.Font;
68710
- if (font.Name) this.Report.Tab.Font.Name=font.Name;
68711
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Tab.Font.Size=font.Size;
68712
- }
68713
-
68714
- if (IFrameSplitOperator.IsNumber(tab.ScrollBarWidth)) this.Report.Tab.ScrollBarWidth=tab.ScrollBarWidth;
68715
- if (tab.ButtonColor) this.Report.Tab.ButtonColor=tab.ButtonColor;
68716
- if (tab.BarColor) this.Report.Tab.BarColor=tab.BarColor;
68717
- if (tab.BorderColor) this.Report.Tab.BorderColor=tab.BorderColor;
68718
-
68719
- if (tab.TabTitleColor) this.Report.Tab.TabTitleColor=tab.TabTitleColor;
68720
- if (tab.TabSelectedTitleColor) this.Report.Tab.TabSelectedTitleColor=tab.TabSelectedTitleColor;
68721
- if (tab.TabSelectedBGColor) this.Report.Tab.TabSelectedBGColor=tab.TabSelectedBGColor;
68722
- if (tab.TabMoveOnTitleColor) this.Report.Tab.TabMoveOnTitleColor=tab.TabMoveOnTitleColor;
68723
- if (tab.TabBGColor) this.Report.Tab.TabBGColor=tab.TabBGColor;
68724
- }
68725
-
68726
- if (item.PageInfo)
68727
- {
68728
- var pageinfo=item.PageInfo;
68729
- if (pageinfo.Font)
68730
- {
68731
- var font=pageinfo.Font;
68732
- if (font.Name) this.Report.PageInfo.Font.Name=font.Name;
68733
- if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.PageInfo.Font.Size=font.Size;
68734
- }
68735
-
68736
- if (pageinfo.TextColor) this.Report.PageInfo.TextColor=pageinfo.TextColor;
68737
- if (pageinfo.BGColor) this.Report.PageInfo.BGColor=pageinfo.BGColor;
68738
-
68739
- if (pageinfo.Mergin)
68740
- {
68741
- var mergin=pageinfo.Mergin;
68742
- if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.PageInfo.Mergin.Left=mergin.Left;
68743
- if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.PageInfo.Mergin.Top=mergin.Top;
68744
- if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.PageInfo.Mergin.Right=mergin.Right;
68745
- if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.PageInfo.Mergin.Bottom=mergin.Bottom;
68746
- }
68747
- }
68748
-
68749
- if (item.DragRow)
68750
- {
68751
- var dragRow=item.DragRow;
68752
- if (dragRow.Color) this.Report.DragRow.Color=dragRow.Color;
68753
- if (dragRow.TextColor) this.Report.DragRow.TextColor=dragRow.TextColor;
68754
- if (dragRow.MoveRowColor) this.Report.DragRow.MoveRowColor=dragRow.MoveRowColor;
68755
- if (dragRow.SrcRowColor) this.Report.DragRow.SrcRowColor=dragRow.SrcRowColor;
68756
- }
68757
- }
68758
-
68673
+ if (style.Report) this.SetReportStyle(style.Report);
68674
+
68759
68675
  if (style.TReport) this.SetTReportStyle(style.TReport);
68760
68676
 
68761
68677
  if (style.SelectedChart)
@@ -68858,6 +68774,218 @@ function JSChartResource()
68858
68774
  }
68859
68775
  }
68860
68776
 
68777
+ this.SetReportStyle=function(style)
68778
+ {
68779
+ var item=style;
68780
+ var dest=this.Report;
68781
+
68782
+ if (item.BorderColor) this.Report.BorderColor=item.BorderColor;
68783
+ if (item.UpTextColor) this.Report.UpTextColor=item.UpTextColor;
68784
+ if (item.DownTextColor) this.Report.DownTextColor=item.DownTextColor;
68785
+ if (item.UnchagneTextColor) this.Report.UnchagneTextColor=item.UnchagneTextColor;
68786
+ if (item.BorderColor) this.Report.SelectedColor=item.SelectedColor;
68787
+
68788
+
68789
+ if (item.CloseLine)
68790
+ {
68791
+ var closeLine=item.CloseLine;
68792
+ if (closeLine.CloseColor) this.Report.CloseLine.CloseColor=closeLine.CloseColor;
68793
+ if (closeLine.YCloseColor) this.Report.CloseLine.YCloseColor=closeLine.YCloseColor;
68794
+ if (closeLine.AreaColor) this.Report.CloseLine.AreaColor=closeLine.AreaColor;
68795
+ }
68796
+
68797
+ if (item.KLine)
68798
+ {
68799
+ var kline=item.KLine;
68800
+ if (kline.UpColor) this.Report.KLine.UpColor=kline.UpColor;
68801
+ if (kline.DownColor) this.Report.KLine.DownColor=kline.DownColor;
68802
+ if (kline.UnchagneColor) this.Report.KLine.UnchagneColor=kline.UnchagneColor;
68803
+
68804
+ if (IFrameSplitOperator.IsNumber(kline.DataWidth)) this.Report.KLine.DataWidth=kline.DataWidth;
68805
+ if (IFrameSplitOperator.IsNumber(kline.DistanceWidth)) this.Report.KLine.DistanceWidth=kline.DistanceWidth;
68806
+ }
68807
+
68808
+ if (item.Header)
68809
+ {
68810
+ var header=item.Header;
68811
+ if (header.Color) this.Report.Header.Color=header.Color;
68812
+ if (header.SortColor) this.Report.Header.SortColor=header.SortColor;
68813
+ if (header.Mergin)
68814
+ {
68815
+ var mergin=header.Mergin;
68816
+ if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.Header.Mergin.Left=mergin.Left;
68817
+ if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.Header.Mergin.Left=mergin.Right;
68818
+ if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.Header.Mergin.Top=mergin.Top;
68819
+ if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.Header.Mergin.Bottom=mergin.Bottom;
68820
+ }
68821
+ if (header.Font)
68822
+ {
68823
+ var font=header.Font;
68824
+ if (font.Name) this.Report.Header.Font.Name=font.Name;
68825
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Header.Font.Size=font.Size;
68826
+ }
68827
+ }
68828
+
68829
+ if (item.Item)
68830
+ {
68831
+ var row=item.Item;
68832
+ if (row.Mergin)
68833
+ {
68834
+ var mergin=row.Mergin;
68835
+ if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.Item.Mergin.Left=mergin.Left;
68836
+ if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.Item.Mergin.Right=mergin.Right;
68837
+ if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.Item.Mergin.Top=mergin.Top;
68838
+ if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.Item.Mergin.Bottom=mergin.Bottom;
68839
+ }
68840
+
68841
+ if (row.Font)
68842
+ {
68843
+ var font=row.Font;
68844
+ if (font.Name) this.Report.Item.Font.Name=font.Name;
68845
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Item.Font.Size=font.Size;
68846
+ }
68847
+
68848
+ if (row.BarMergin)
68849
+ {
68850
+ var mergin=row.BarMergin;
68851
+ if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.Item.BarMergin.Left=mergin.Left;
68852
+ if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.Item.BarMergin.Top=mergin.Top;
68853
+ if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.Item.BarMergin.Right=mergin.Right;
68854
+ if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.Item.BarMergin.Bottom=mergin.Bottom;
68855
+ }
68856
+
68857
+ if (row.NameFont)
68858
+ {
68859
+ var font=row.NameFont;
68860
+ if (font.Name) this.Report.Item.NameFont.Name=font.Name;
68861
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Item.NameFont.Size=font.Size;
68862
+ }
68863
+
68864
+ if (row.SymbolFont)
68865
+ {
68866
+ var font=row.SymbolFont;
68867
+ if (font.Name) this.Report.Item.SymbolFont.Name=font.Name;
68868
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Item.SymbolFont.Size=font.Size;
68869
+ }
68870
+ }
68871
+
68872
+ if (item.FixedItem)
68873
+ {
68874
+ var row=item.FixedItem;
68875
+ if (row.Font)
68876
+ {
68877
+ var font=row.Font;
68878
+ if (font.Name) this.Report.FixedItem.Font.Name=font.Name;
68879
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.FixedItem.Font.Size=font.Size;
68880
+ }
68881
+ }
68882
+
68883
+ if (item.LimitBorder)
68884
+ {
68885
+ var limit=item.LimitBorder;
68886
+ if (limit.Color) this.Report.LimitBorder.Color=limit.Color;
68887
+ if (limit.Mergin)
68888
+ {
68889
+ var mergin=limit.Mergin;
68890
+ if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.LimitBorder.Mergin.Left=mergin.Left;
68891
+ if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.LimitBorder.Mergin.Top=mergin.Top;
68892
+ if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.LimitBorder.Mergin.Right=mergin.Right;
68893
+ if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.LimitBorder.Mergin.Bottom=mergin.Bottom;
68894
+ }
68895
+ }
68896
+
68897
+ if (item.LimitColor)
68898
+ {
68899
+ var limit=item.LimitColor;
68900
+ if (limit.UpColor) this.Report.LimitColor.UpColor=limit.UpColor;
68901
+ if (limit.DownColor) this.Report.LimitColor.DownColor=limit.DownColor;
68902
+ if (limit.TextColor) this.Report.LimitColor.UpColor=limit.TextColor;
68903
+ }
68904
+
68905
+ if (item.FieldColor)
68906
+ {
68907
+ var filed=item.FieldColor;
68908
+ if (filed.Name) this.Report.FieldColor.Name=filed.Name;
68909
+ if (filed.Symbol) this.Report.FieldColor.Symbol=filed.Symbol;
68910
+ if (filed.Vol) this.Report.FieldColor.Vol=filed.Vol;
68911
+ if (filed.Amount) this.Report.FieldColor.Amount=filed.Amount;
68912
+ if (filed.Index) this.Report.FieldColor.Index=filed.Index;
68913
+ if (filed.BarTitle) this.Report.FieldColor.BarTitle=filed.BarTitle;
68914
+ if (filed.Text) this.Report.FieldColor.Text=filed.Text;
68915
+
68916
+ if (IFrameSplitOperator.IsNonEmptyArray(filed.Bar))
68917
+ {
68918
+ for(var i=0;i<filed.Bar.length;++i)
68919
+ this.Report.FieldColor.Bar[i]=filed.Bar[i];
68920
+ }
68921
+ }
68922
+
68923
+ if (item.Tab)
68924
+ {
68925
+ var tab=item.Tab;
68926
+ if (tab.Font)
68927
+ {
68928
+ var font=tab.Font;
68929
+ if (font.Name) this.Report.Tab.Font.Name=font.Name;
68930
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.Tab.Font.Size=font.Size;
68931
+ }
68932
+
68933
+ if (IFrameSplitOperator.IsNumber(tab.ScrollBarWidth)) this.Report.Tab.ScrollBarWidth=tab.ScrollBarWidth;
68934
+ if (tab.ButtonColor) this.Report.Tab.ButtonColor=tab.ButtonColor;
68935
+ if (tab.BarColor) this.Report.Tab.BarColor=tab.BarColor;
68936
+ if (tab.BorderColor) this.Report.Tab.BorderColor=tab.BorderColor;
68937
+
68938
+ if (tab.TabTitleColor) this.Report.Tab.TabTitleColor=tab.TabTitleColor;
68939
+ if (tab.TabSelectedTitleColor) this.Report.Tab.TabSelectedTitleColor=tab.TabSelectedTitleColor;
68940
+ if (tab.TabSelectedBGColor) this.Report.Tab.TabSelectedBGColor=tab.TabSelectedBGColor;
68941
+ if (tab.TabMoveOnTitleColor) this.Report.Tab.TabMoveOnTitleColor=tab.TabMoveOnTitleColor;
68942
+ if (tab.TabBGColor) this.Report.Tab.TabBGColor=tab.TabBGColor;
68943
+ }
68944
+
68945
+ if (item.PageInfo)
68946
+ {
68947
+ var pageinfo=item.PageInfo;
68948
+ if (pageinfo.Font)
68949
+ {
68950
+ var font=pageinfo.Font;
68951
+ if (font.Name) this.Report.PageInfo.Font.Name=font.Name;
68952
+ if (IFrameSplitOperator.IsNumber(font.Size)) this.Report.PageInfo.Font.Size=font.Size;
68953
+ }
68954
+
68955
+ if (pageinfo.TextColor) this.Report.PageInfo.TextColor=pageinfo.TextColor;
68956
+ if (pageinfo.BGColor) this.Report.PageInfo.BGColor=pageinfo.BGColor;
68957
+
68958
+ if (pageinfo.Mergin)
68959
+ {
68960
+ var mergin=pageinfo.Mergin;
68961
+ if (IFrameSplitOperator.IsNumber(mergin.Left)) this.Report.PageInfo.Mergin.Left=mergin.Left;
68962
+ if (IFrameSplitOperator.IsNumber(mergin.Top)) this.Report.PageInfo.Mergin.Top=mergin.Top;
68963
+ if (IFrameSplitOperator.IsNumber(mergin.Right)) this.Report.PageInfo.Mergin.Right=mergin.Right;
68964
+ if (IFrameSplitOperator.IsNumber(mergin.Bottom)) this.Report.PageInfo.Mergin.Bottom=mergin.Bottom;
68965
+ }
68966
+ }
68967
+
68968
+ if (item.DragRow)
68969
+ {
68970
+ var dragRow=item.DragRow;
68971
+ if (dragRow.Color) this.Report.DragRow.Color=dragRow.Color;
68972
+ if (dragRow.TextColor) this.Report.DragRow.TextColor=dragRow.TextColor;
68973
+ if (dragRow.MoveRowColor) this.Report.DragRow.MoveRowColor=dragRow.MoveRowColor;
68974
+ if (dragRow.SrcRowColor) this.Report.DragRow.SrcRowColor=dragRow.SrcRowColor;
68975
+ }
68976
+
68977
+ if (item.VScrollbar)
68978
+ {
68979
+ var subItem=item.VScrollbar;
68980
+ if (IFrameSplitOperator.IsNumber(subItem.ScrollBarHeight)) dest.VScrollbar.ScrollBarHeight=subItem.ScrollBarHeight;
68981
+ if (subItem.ButtonColor) dest.VScrollbar.ButtonColor=subItem.ButtonColor;
68982
+ if (subItem.BarColor) dest.VScrollbar.BarColor=subItem.BarColor;
68983
+ if (subItem.BorderColor) dest.VScrollbar.BorderColor=subItem.BorderColor;
68984
+ if (subItem.BGColor) dest.VScrollbar.BGColor=subItem.BGColor;
68985
+ }
68986
+
68987
+ }
68988
+
68861
68989
  this.SetTReportStyle=function(style)
68862
68990
  {
68863
68991
  var item=style;
@@ -120631,6 +120759,16 @@ function GetBlackStyle()
120631
120759
 
120632
120760
  MoveRowColor:'rgb(135,206,250)',
120633
120761
  SrcRowColor:'rgb(49,48,56)',
120762
+ },
120763
+
120764
+ VScrollbar:
120765
+ {
120766
+ BarWidth:40,
120767
+ ScrollBarHeight:60,
120768
+ ButtonColor:"rgba(13,12,15,0.8)",
120769
+ BarColor:"rgba(48,48,48,0.9)",
120770
+ BorderColor:'rgba(48,48,48,0.9)',
120771
+ BGColor:"rgba(211,211,211,0.5)",
120634
120772
  }
120635
120773
  },
120636
120774
 
@@ -122276,6 +122414,7 @@ function JSReportChart(divElement)
122276
122414
  if (IFrameSplitOperator.IsBool(option.EnableDragRow)) chart.EnableDragRow=option.EnableDragRow;
122277
122415
  if (IFrameSplitOperator.IsNumber(option.DragRowType)) chart.DragRowType=option.DragRowType;
122278
122416
  if (IFrameSplitOperator.IsBool(option.EnableDragHeader)) chart.EnableDragHeader=option.EnableDragHeader;
122417
+ if (option.VScrollbar) chart.SetVScrollbar(option.VScrollbar);
122279
122418
  if (option.SortInfo)
122280
122419
  {
122281
122420
  var item=option.SortInfo;
@@ -122472,7 +122611,7 @@ function JSReportChartContainer(uielement)
122472
122611
 
122473
122612
  this.FlashBG=new Map();
122474
122613
  this.FlashBGTimer=null; //闪烁背景 Value:{ LastTime:数据最后的时间, Data: { Key:ID, BGColor:, Time: , Count: 次数 } };
122475
- this.GlobalOption={ FlashBGCount:0 }
122614
+ this.GlobalOption={ FlashBGCount:0 };
122476
122615
 
122477
122616
  //this.FixedRowData.Data=[ [null, {Value:11, Text:"11" }], [null, null, null, {Value:12, Text:"ddddd", Color:"rgb(45,200,4)"}]];
122478
122617
 
@@ -122514,6 +122653,8 @@ function JSReportChartContainer(uielement)
122514
122653
 
122515
122654
  //拖拽滚动条
122516
122655
  this.DragXScroll=null; //{Start:{x,y}, End:{x, y}}
122656
+ this.DragYScroll=null;
122657
+ this.IsShowVScrollbar=false;
122517
122658
 
122518
122659
  this.IsDestroy=false; //是否已经销毁了
122519
122660
 
@@ -122630,11 +122771,24 @@ function JSReportChartContainer(uielement)
122630
122771
  chart.GlobalOption=this.GlobalOption;
122631
122772
  chart.FixedRowData=this.FixedRowData;
122632
122773
  chart.SortInfo=this.SortInfo;
122774
+
122633
122775
  chart.Tab=new ChartReportTab();
122634
122776
  chart.Tab.Frame=this.Frame;
122635
122777
  chart.Tab.Canvas=this.Canvas;
122636
122778
  chart.Tab.ChartBorder=this.Frame.ChartBorder;
122637
122779
  chart.Tab.Report=chart;
122780
+
122781
+ chart.VScrollbar=new ChartVScrollbar();
122782
+ chart.VScrollbar.Frame=this.Frame;
122783
+ chart.VScrollbar.Canvas=this.Canvas;
122784
+ chart.VScrollbar.ChartBorder=this.Frame.ChartBorder;
122785
+ chart.VScrollbar.Report=chart;
122786
+ chart.VScrollbar.IsShowCallback=()=>
122787
+ {
122788
+ if (this.DragYScroll) return true;
122789
+ return this.IsShowVScrollbar;
122790
+ }
122791
+
122638
122792
  this.ChartPaint[0]=chart;
122639
122793
 
122640
122794
  //页脚
@@ -123536,6 +123690,7 @@ function JSReportChartContainer(uielement)
123536
123690
  this.UIOnMouseDown=function(e)
123537
123691
  {
123538
123692
  this.DragXScroll=null;
123693
+ this.DragYScroll=null;
123539
123694
  this.DragHeader=null;
123540
123695
  this.DragColumnWidth=null;
123541
123696
  this.DragMove={ Click:{ X:e.clientX, Y:e.clientY }, Move:{X:e.clientX, Y:e.clientY}, PreMove:{X:e.clientX, Y:e.clientY } };
@@ -123612,6 +123767,38 @@ function JSReportChartContainer(uielement)
123612
123767
  this.OnClickTab(tabData, e);
123613
123768
  }
123614
123769
  }
123770
+ else if (clickData.Type==5 && e.button==0) //右侧滚动条
123771
+ {
123772
+ var scroll=clickData.VScrollbar;
123773
+ if (scroll.Type==1) //顶部按钮
123774
+ {
123775
+ if (this.MoveYOffset(-1))
123776
+ {
123777
+ this.Draw();
123778
+ this.DelayUpdateStockData();
123779
+ }
123780
+ }
123781
+ else if (scroll.Type==2) //底部按钮
123782
+ {
123783
+ if (this.MoveYOffset(1))
123784
+ {
123785
+ this.Draw();
123786
+ this.DelayUpdateStockData();
123787
+ }
123788
+ }
123789
+ else if (scroll.Type==3) //滚动条
123790
+ {
123791
+ this.DragYScroll={ Click:{X:x, Y:y}, LastMove:{X:x, Y:y} };
123792
+ }
123793
+ else if (scroll.Type==4) //滚动条内部
123794
+ {
123795
+ if (this.SetYOffset(scroll.Pos))
123796
+ {
123797
+ this.Draw();
123798
+ this.DelayUpdateStockData();
123799
+ }
123800
+ }
123801
+ }
123615
123802
  }
123616
123803
  }
123617
123804
 
@@ -123658,6 +123845,7 @@ function JSReportChartContainer(uielement)
123658
123845
  var mouseStatus={ Cursor:"default", Name:"Default"};; //鼠标状态
123659
123846
  var report=this.GetReportChart();
123660
123847
  var cell=null;
123848
+ var bDraw=false;
123661
123849
  if (report)
123662
123850
  {
123663
123851
  var dragHeaderWidth=report.PtInHeaderDragBorder(x,y);
@@ -123670,6 +123858,18 @@ function JSReportChartContainer(uielement)
123670
123858
  {
123671
123859
  cell=report.PtInCell(x,y); //是否在单元格(EnableTooltip)
123672
123860
  }
123861
+
123862
+ var scrollbar=report.VScrollbar;
123863
+ if (scrollbar.Enable)
123864
+ {
123865
+ var bShowScrollbar=report.PtInClient(x,y);
123866
+ this.IsShowVScrollbar=bShowScrollbar;
123867
+ if (!this.DragYScroll)
123868
+ {
123869
+ if (bShowScrollbar && !scrollbar.LastStatus.Draw) bDraw=true;
123870
+ else if (!bShowScrollbar && scrollbar.LastStatus.Draw) bDraw=true;
123871
+ }
123872
+ }
123673
123873
  }
123674
123874
 
123675
123875
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_MOUSE_MOVE);
@@ -123680,16 +123880,32 @@ function JSReportChartContainer(uielement)
123680
123880
  }
123681
123881
 
123682
123882
  if (mouseStatus) this.UIElement.style.cursor=mouseStatus.Cursor;
123883
+
123884
+ if (bDraw) this.Draw();
123683
123885
  }
123684
123886
 
123685
123887
  this.UIOnMounseOut=function(e)
123686
123888
  {
123889
+ var bDraw=false;
123687
123890
  var tabChart=this.GetTabChart();
123688
123891
  if (tabChart && tabChart.MoveOnTabIndex>=0)
123689
123892
  {
123690
123893
  tabChart.MoveOnTabIndex=-1;
123894
+ bDraw=true;
123691
123895
  this.Draw();
123692
123896
  }
123897
+
123898
+ var scrollbar=this.GetVScrollbarChart();
123899
+ if (scrollbar.Enable)
123900
+ {
123901
+ this.IsShowVScrollbar=false;
123902
+ if (!this.DragYScroll)
123903
+ {
123904
+ if (scrollbar.LastStatus.Draw) bDraw=true;
123905
+ }
123906
+ }
123907
+
123908
+ if (bDraw) this.Draw();
123693
123909
  }
123694
123910
 
123695
123911
  this.UIOnMouseleave=function(e)
@@ -123781,6 +123997,21 @@ function JSReportChartContainer(uielement)
123781
123997
  var pos=chart.Tab.GetScrollPostionByPoint(x,y);
123782
123998
  if (this.SetXOffset(pos)) this.Draw();
123783
123999
  }
124000
+ else if (this.DragYScroll)
124001
+ {
124002
+ var chart=this.ChartPaint[0];
124003
+ if (!chart || !chart.VScrollbar) return;
124004
+
124005
+ this.DragYScroll.LastMove.X=x;
124006
+ this.DragYScroll.LastMove.Y=y;
124007
+
124008
+ var pos=chart.VScrollbar.GetScrollPostionByPoint(x,y);
124009
+ if (this.SetYOffset(pos))
124010
+ {
124011
+ this.Draw();
124012
+ this.DelayUpdateStockData();
124013
+ }
124014
+ }
123784
124015
  else if (this.DragHeader && this.DragHeader.ClickData) //表头拖拽
123785
124016
  {
123786
124017
  if (this.DragHeader.ClickData.Header.IsFixed) return;
@@ -123923,6 +124154,11 @@ function JSReportChartContainer(uielement)
123923
124154
 
123924
124155
  this.DragHeader=null;
123925
124156
  this.DragXScroll=null;
124157
+ if (this.DragYScroll)
124158
+ {
124159
+ bRedraw=true;
124160
+ this.DragYScroll=null;
124161
+ }
123926
124162
  this.DragRow=null;
123927
124163
  this.DragMove=null;
123928
124164
  this.DragColumnWidth=null;
@@ -124231,6 +124467,14 @@ function JSReportChartContainer(uielement)
124231
124467
  return chart.Tab;
124232
124468
  }
124233
124469
 
124470
+ this.GetVScrollbarChart=function()
124471
+ {
124472
+ var chart=this.ChartPaint[0];
124473
+ if (!chart) return null;
124474
+
124475
+ return chart.VScrollbar;
124476
+ }
124477
+
124234
124478
  this.GetReportChart=function()
124235
124479
  {
124236
124480
  var chart=this.ChartPaint[0];
@@ -124522,6 +124766,21 @@ function JSReportChartContainer(uielement)
124522
124766
  return true;
124523
124767
  }
124524
124768
 
124769
+ this.SetYOffset=function(pos)
124770
+ {
124771
+ if (!IFrameSplitOperator.IsNumber(pos)) return false;
124772
+ var chart=this.ChartPaint[0];
124773
+ if (!chart) return false;
124774
+
124775
+ var maxOffset=chart.GetYScrollRange();
124776
+ if (pos<0) pos=0;
124777
+ if (pos>maxOffset) pos=maxOffset;
124778
+
124779
+ this.Data.YOffset=pos;
124780
+
124781
+ return true;
124782
+ }
124783
+
124525
124784
  this.GotoLastPage=function()
124526
124785
  {
124527
124786
  var chart=this.ChartPaint[0];
@@ -124558,6 +124817,17 @@ function JSReportChartContainer(uielement)
124558
124817
  if (option && option.Redraw) this.Draw();
124559
124818
  }
124560
124819
 
124820
+ this.SetVScrollbar=function(option)
124821
+ {
124822
+ var chart=this.GetReportChart();
124823
+ if (!chart) return;
124824
+
124825
+ var scrollbar=chart.VScrollbar;
124826
+ if (!scrollbar) return;
124827
+
124828
+ if (IFrameSplitOperator.IsBool(option.Enable)) scrollbar.Enable=option.Enable;
124829
+ }
124830
+
124561
124831
  this.SetSelectedTab=function(index, opiton)
124562
124832
  {
124563
124833
  var chart=this.ChartPaint[0];;
@@ -125251,6 +125521,7 @@ function ChartReport()
125251
125521
  this.DragRow; //拖拽行
125252
125522
 
125253
125523
  this.Tab;
125524
+ this.VScrollbar;
125254
125525
 
125255
125526
  this.GlobalOption;
125256
125527
 
@@ -125433,6 +125704,7 @@ function ChartReport()
125433
125704
  }
125434
125705
 
125435
125706
  if (this.Tab) this.Tab.ReloadResource(resource);
125707
+ if (this.VScrollbar) this.VScrollbar.ReloadResource(resource);
125436
125708
  }
125437
125709
 
125438
125710
  this.SetColumn=function(aryColumn)
@@ -125532,6 +125804,15 @@ function ChartReport()
125532
125804
  var maxOffset=this.Column.length-this.FixedColumn-3;
125533
125805
  if (maxOffset<0) return 0;
125534
125806
 
125807
+ return maxOffset;
125808
+ }
125809
+
125810
+ this.GetYScrollRange=function()
125811
+ {
125812
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return 0;
125813
+
125814
+ var maxOffset=this.Data.Data.length-this.RowCount;
125815
+
125535
125816
  return maxOffset;
125536
125817
  }
125537
125818
 
@@ -125628,6 +125909,12 @@ function ChartReport()
125628
125909
 
125629
125910
  this.DrawDragRow();
125630
125911
 
125912
+ if (this.VScrollbar)
125913
+ {
125914
+ var bottom=this.ChartBorder.GetBottom();
125915
+ this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight, this.RectClient.Right, bottom-this.BottomToolbarHeight-4);
125916
+ }
125917
+
125631
125918
  this.SizeChange=false;
125632
125919
  }
125633
125920
 
@@ -125681,6 +125968,8 @@ function ChartReport()
125681
125968
  this.BottomToolbarHeight=0;
125682
125969
  }
125683
125970
 
125971
+ if (this.VScrollbar && this.VScrollbar.Enable) this.VScrollbar.CalculateSize();
125972
+
125684
125973
  this.UpdateCacheData();
125685
125974
 
125686
125975
  var pixelRatio=GetDevicePixelRatio();
@@ -127241,7 +127530,7 @@ function ChartReport()
127241
127530
  return GetFontHeight(this.Canvas, font, word);
127242
127531
  }
127243
127532
 
127244
- this.OnMouseDown=function(x,y,e) //Type: 1=tab 4=固定行 2=行 3=表头
127533
+ this.OnMouseDown=function(x,y,e) //Type: 1=tab 4=固定行 2=行 3=表头 5=右侧滚动条
127245
127534
  {
127246
127535
  if (!this.Data) return null;
127247
127536
 
@@ -127251,6 +127540,12 @@ function ChartReport()
127251
127540
  if (tab) return { Type:1, Tab: tab }; //底部工具栏
127252
127541
  }
127253
127542
 
127543
+ if (this.VScrollbar)
127544
+ {
127545
+ var item=this.VScrollbar.OnMouseDown(x,y,e);
127546
+ if (item) return { Type:5, VScrollbar:item }; //右侧滚动条
127547
+ }
127548
+
127254
127549
  var pixelTatio = GetDevicePixelRatio();
127255
127550
  var insidePoint={X:x/pixelTatio, Y:y/pixelTatio};
127256
127551
 
@@ -127375,6 +127670,13 @@ function ChartReport()
127375
127670
  return false;
127376
127671
  }
127377
127672
 
127673
+ this.PtInClient=function(x,y)
127674
+ {
127675
+ if (x>this.RectClient.Left && x<this.RectClient.Right && y>this.RectClient.Top && y<this.RectClient.Bottom) return true;
127676
+
127677
+ return false;
127678
+ }
127679
+
127378
127680
  this.PtInBody=function(x,y)
127379
127681
  {
127380
127682
  if (!this.Data) return null;
@@ -128005,6 +128307,164 @@ function ChartReportPageInfo()
128005
128307
  this.SizeChange=false;
128006
128308
  }
128007
128309
  }
128310
+
128311
+
128312
+ function ChartVScrollbar()
128313
+ {
128314
+ this.Canvas; //画布
128315
+ this.ChartBorder; //边框信息
128316
+ this.ChartFrame; //框架画法
128317
+ this.Name; //名称
128318
+ this.ClassName='ChartReportTab'; //类名
128319
+ this.IsDrawFirst=false;
128320
+ this.GetEventCallback; //获取事件
128321
+ this.Report;
128322
+
128323
+ this.MaxPos=15; //滚动条可移动长度
128324
+ this.CurrentPos=15; //当前滚动条移动位置
128325
+ this.Step=1; //滚动条移动步长
128326
+ this.ButtonSize=25;
128327
+ this.Enable=false;
128328
+ this.LastStatus={ Draw:false, };
128329
+ this.GlobalOption;
128330
+
128331
+ this.ScrollBarHeight=g_JSChartResource.Report.VScrollbar.ScrollBarHeight;
128332
+ this.ButtonColor=g_JSChartResource.Report.VScrollbar.ButtonColor;
128333
+ this.BarColor=g_JSChartResource.Report.VScrollbar.BarColor;
128334
+ this.BorderColor=g_JSChartResource.Report.VScrollbar.BorderColor;
128335
+ this.BGColor=g_JSChartResource.Report.VScrollbar.BGColor;
128336
+ this.Mergin={ Left:2, Right:2, Top:2, Bottom:2 };
128337
+ this.BarWithConfig={ Size:g_JSChartResource.Report.VScrollbar.BarWidth.Size };
128338
+
128339
+ this.RectScroll={ Top:null, Bottom:null, Bar:null, Client:null }; //滚动条区域
128340
+
128341
+ this.ReloadResource=function(resource)
128342
+ {
128343
+ this.ScrollBarHeight=g_JSChartResource.Report.VScrollbar.ScrollBarHeight;
128344
+ this.ButtonColor=g_JSChartResource.Report.VScrollbar.ButtonColor;
128345
+ this.BarColor=g_JSChartResource.Report.VScrollbar.BarColor;
128346
+ this.BorderColor=g_JSChartResource.Report.VScrollbar.BorderColor;
128347
+ this.BGColor=g_JSChartResource.Report.VScrollbar.BGColor;
128348
+ this.BarWithConfig={ Size:g_JSChartResource.Report.VScrollbar.BarWidth.Size };
128349
+ }
128350
+
128351
+ this.CalculateSize=function()
128352
+ {
128353
+ var pixelRatio=GetDevicePixelRatio();
128354
+
128355
+ var width=this.BarWithConfig.Size*pixelRatio+this.Mergin.Left+this.Mergin.Right;
128356
+ this.ButtonSize=Math.min(25, width);
128357
+ }
128358
+
128359
+ this.DrawScrollbar=function(left, top, right, bottom)
128360
+ {
128361
+ this.LastStatus.Draw=false;
128362
+ this.RectScroll={ Left:null, Right:null, Bar:null, Client:null };
128363
+ if (!this.Enable) return;
128364
+
128365
+ var isShow=this.IsShowCallback();
128366
+ if (!isShow) return;
128367
+
128368
+ var pageInfo=this.Report.GetCurrentPageStatus();
128369
+ if (pageInfo.IsSinglePage) return;
128370
+
128371
+ var xOffset=pageInfo.Start;
128372
+ var dataCount=pageInfo.DataCount-pageInfo.PageSize;
128373
+ var buttonSize=this.ButtonSize;
128374
+
128375
+ this.MaxPos=dataCount;
128376
+ this.CurrentPos=xOffset;
128377
+
128378
+ var rtTop={ Right:right-this.Mergin.Right, Top:top+this.Mergin.Top, Width:buttonSize, Height:buttonSize };
128379
+ rtTop.Left=rtTop.Right-buttonSize;
128380
+ rtTop.Bottom=rtTop.Top+buttonSize;
128381
+
128382
+ var rtBottom={ Right:right-this.Mergin.Right, Bottom:bottom-this.Mergin.Bottom, Width:buttonSize, Height:buttonSize };
128383
+ rtBottom.Left=rtBottom.Right-buttonSize;
128384
+ rtBottom.Top=rtBottom.Bottom-buttonSize;
128385
+
128386
+ var centerHeight=(rtBottom.Top-2)-(rtTop.Bottom+2);
128387
+ var value = centerHeight - this.ScrollBarHeight;
128388
+ var yOffset = (value * this.CurrentPos) / this.MaxPos;
128389
+ var y = rtTop.Bottom + 2 + yOffset;
128390
+
128391
+ var rtBar = {Right:right-this.Mergin.Right, Top:y, Width:buttonSize, Height: this.ScrollBarHeight };
128392
+ rtBar.Left=rtBar.Right-buttonSize;
128393
+ rtBar.Bottom=rtBar.Top+rtBar.Height;
128394
+
128395
+ this.RectScroll.Top=rtTop;
128396
+ this.RectScroll.Bottom=rtBottom;
128397
+ this.RectScroll.Bar=rtBar;
128398
+ this.RectScroll.Client={ Left:rtTop.Left, Right: rtTop.Right, Top:rtTop.Bottom, Bottom:rtBottom.Top };
128399
+
128400
+ var rtBG={ Right:right, Top:top, Bottom:bottom, Width:buttonSize+this.Mergin.Right+this.Mergin.Left };
128401
+ rtBG.Left=rtBG.Right-rtBG.Width;
128402
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
128403
+ this.Canvas.fillStyle=this.BGColor;
128404
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
128405
+
128406
+ this.Canvas.fillStyle=this.ButtonColor;
128407
+ this.Canvas.fillRect(rtTop.Left,rtTop.Top,rtTop.Width,rtTop.Height);
128408
+ this.Canvas.fillRect(rtBottom.Left,rtBottom.Top,rtBottom.Width,rtBottom.Height);
128409
+
128410
+ this.Canvas.strokeStyle=this.BorderColor;
128411
+ this.Canvas.strokeRect(rtTop.Left,rtTop.Top,rtTop.Width,rtTop.Height);
128412
+ this.Canvas.strokeRect(rtBottom.Left,rtBottom.Top,rtBottom.Width,rtBottom.Height);
128413
+
128414
+ this.Canvas.fillStyle=this.BarColor;
128415
+ this.Canvas.fillRect(rtBar.Left,rtBar.Top,rtBar.Width,rtBar.Height);
128416
+
128417
+ this.LastStatus.Draw=true;
128418
+ }
128419
+
128420
+ this.OnMouseDown=function(x,y, e)
128421
+ {
128422
+ return this.PtInScroll(x,y);
128423
+ }
128424
+
128425
+ // Type 1-4 滚动条
128426
+ this.PtInScroll=function(x,y)
128427
+ {
128428
+ if (!this.RectScroll) return null;
128429
+
128430
+ if (this.RectScroll.Top)
128431
+ {
128432
+ var rtItem=this.RectScroll.Top;
128433
+ if (x>=rtItem.Left && x<=rtItem.Right && y>=rtItem.Top && y<=rtItem.Bottom) return { Type: 1, Rect: rtItem };
128434
+ }
128435
+
128436
+ if (this.RectScroll.Bottom)
128437
+ {
128438
+ var rtItem=this.RectScroll.Bottom;
128439
+ if (x>=rtItem.Left && x<=rtItem.Right && y>=rtItem.Top && y<=rtItem.Bottom) return { Type: 2, Rect: rtItem };
128440
+ }
128441
+
128442
+ if (this.RectScroll.Bar)
128443
+ {
128444
+ var rtItem=this.RectScroll.Bar;
128445
+ if (x>=rtItem.Left && x<=rtItem.Right && y>=rtItem.Top && y<=rtItem.Bottom) return { Type: 3, Rect: rtItem };
128446
+ }
128447
+
128448
+ if (this.RectScroll.Client)
128449
+ {
128450
+ var rtItem=this.RectScroll.Client;
128451
+ if (x>=rtItem.Left && x<=rtItem.Right && y>=rtItem.Top && y<=rtItem.Bottom)
128452
+ {
128453
+ return { Type: 4, Rect: rtItem , Pos: this.GetScrollPostionByPoint(x,y) };
128454
+ }
128455
+ }
128456
+
128457
+ return null;
128458
+ }
128459
+
128460
+ this.GetScrollPostionByPoint=function(x,y)
128461
+ {
128462
+ var rtItem=this.RectScroll.Client;
128463
+ var value=rtItem.Bottom-rtItem.Top-this.ScrollBarHeight;
128464
+ var pos =parseInt((this.MaxPos * (y - rtItem.Top)) / value);
128465
+ return pos;
128466
+ }
128467
+ }
128008
128468
  /*
128009
128469
  Copyright (c) 2018 jones
128010
128470
 
@@ -133543,7 +134003,7 @@ function HQChartScriptWorker()
133543
134003
 
133544
134004
 
133545
134005
 
133546
- var HQCHART_VERSION="1.1.13099";
134006
+ var HQCHART_VERSION="1.1.13106";
133547
134007
 
133548
134008
  function PrintHQChartVersion()
133549
134009
  {