hqchart 1.1.15225 → 1.1.15235

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.
@@ -2364,9 +2364,10 @@ for(var i=0;i<data.length;++i){var item=data[i];strRow+='"'+item.Name+'"';if(i==
2364
2364
  this.ResetFrameXYSplit();this.Frame.SetSizeChage(true);this.Draw();if(this.PopMinuteChart)this.PopMinuteChart.SetLanguage(language);};this.ReloadTiltePaintResource=function(resource)//重新加载配置
2365
2365
  {for(var i in this.TitlePaint){var item=this.TitlePaint[i];if(item.ReloadResource)item.ReloadResource(resource);}};this.ReloadExtendChartPaintResource=function(resource)//扩展画法重新加载配置
2366
2366
  {for(var i=0;i<this.ExtendChartPaint.length;++i){var item=this.ExtendChartPaint[i];if(item.ReloadResource)item.ReloadResource(resource);}if(this.ChartDragSelectRect&&this.ChartDragSelectRect.ReloadResource)this.ChartDragSelectRect.ReloadResource(resource);};this.ReloadChartDrawPictureResource=function(resource){if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartDrawPicture))return;for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.ReloadResource)item.ReloadResource(resource);}};this.ReloadResource=function(option){this.ReloadBorder(option);this.ReloadTiltePaintResource(option.Resource);this.ReloadChartPaint(option.Resource);this.ReloadFrame(option.Resource);this.ReloadExtendChartPaintResource(option.Resource);this.ReloadChartCorssCursor(option,option.Resource);this.ReloadChartDrawPictureResource(option.Resource);var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_RELOAD_RESOURCE);//配色重新加载
2367
- if(event&&event.Callback){var sendData={Option:option};event.Callback(event,sendData,this);}if(option.Update&&this.Update)this.Update({UpdateCursorIndexType:2});//是否立即更新并重绘
2368
- else if(option.Draw==true||option.Redraw==true)this.Draw();//是否立即重绘
2369
- if(this.PopMinuteChart)this.PopMinuteChart.ReloadResource(option);if(this.DialogTooltip)this.DialogTooltip.ReloadResource(option);if(this.FloatTooltip)this.FloatTooltip.ReloadResource(option);if(this.DialogSelectRect)this.DialogSelectRect.ReloadResource(option);if(this.DialogSearchIndex)this.DialogSearchIndex.ReloadResource(option);};this.ReloadBorder=function(option)//根据页面缩放调整对应边框的尺长
2367
+ if(event&&event.Callback){var sendData={Option:option};event.Callback(event,sendData,this);}if(option.Update&&this.Update){this.Update({UpdateCursorIndexType:2});//是否立即更新并重绘
2368
+ }else if(option.Draw==true||option.Redraw==true){this.ResetFrameXYSplit();//重新计算分割线
2369
+ this.Draw();//是否立即重绘
2370
+ }if(this.PopMinuteChart)this.PopMinuteChart.ReloadResource(option);if(this.DialogTooltip)this.DialogTooltip.ReloadResource(option);if(this.FloatTooltip)this.FloatTooltip.ReloadResource(option);if(this.DialogSelectRect)this.DialogSelectRect.ReloadResource(option);if(this.DialogSearchIndex)this.DialogSearchIndex.ReloadResource(option);};this.ReloadBorder=function(option)//根据页面缩放调整对应边框的尺长
2370
2371
  {if(!option)return;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
2371
2372
  if(option.Border){var item=option.Border;if(IFrameSplitOperator.IsNumber(item.Left))this.Frame.ChartBorder.Left=item.Left*pixelTatio;if(IFrameSplitOperator.IsNumber(item.Right))this.Frame.ChartBorder.Right=item.Right*pixelTatio;if(IFrameSplitOperator.IsNumber(item.Top))this.Frame.ChartBorder.Top=item.Top*pixelTatio;if(IFrameSplitOperator.IsNumber(item.Bottom))this.Frame.ChartBorder.Bottom=item.Bottom*pixelTatio;}for(var i in option.Windows){var item=option.Windows[i];if(i>=this.Frame.SubFrame.length)continue;var subFrame=this.Frame.SubFrame[i];var border=subFrame.Frame.ChartBorder;if(IFrameSplitOperator.IsNumber(item.TitleHeight))border.TitleHeight=item.TitleHeight*pixelTatio;}for(var i in option.Frame){var item=option.Frame[i];if(i>=this.Frame.SubFrame.length)continue;var subFrame=this.Frame.SubFrame[i];var border=subFrame.Frame.ChartBorder;if(item.TopSpace>=0)border.TopSpace=item.TopSpace*pixelTatio;if(item.BottomSpace>=0)border.BottomSpace=item.BottomSpace*pixelTatio;}};this.ReloadFrame=function(resource){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];var subFrame=item.Frame;if(subFrame&&subFrame.ReloadResource)subFrame.ReloadResource(resource);for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(overlayItem.Frame&&overlayItem.Frame.ReloadResource)overlayItem.Frame.ReloadResource(resource);}}if(this.JSToolbarTooltip)this.JSToolbarTooltip.ReloadResource(resource);//工具栏提示框
2372
2373
  };this.ReloadChartPaint=function(resource){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item&&item.ReloadResource)item.ReloadResource(resource);}};this.ReloadChartCorssCursor=function(option,resource){var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -4415,8 +4416,8 @@ this.AfterCloseData;//盘后数据
4415
4416
  this.BeforeVolColor=g_JSChartResource.Minute.Before.VolColor;this.ShareAfterVol=0;this.MultiDayBeforeOpenData;//多日分时图 盘前数据 数组 1天一个
4416
4417
  this.MultiDayAfterCloseData;//多日分时图 盘后数据 数组 1天一个
4417
4418
  this.PtInChart=function(x,y){var option={MinuteVolBar:true,VolUnit:this.GetVolUnit()};return this.PtInBar(x,y,option);};this.DrawSelectedStatus=function(){return this.DrawLinePoint({MinuteVolBar:true});};this.GetVolUnit=function(){var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);return unit;};this.Draw=function(){var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var chartright=border.RightEx;}this.DrawBeforeOpen();this.DrawMultiDayBeforeOpen();var xPointCount=this.ChartFrame.XPointCount;var yBottom=this.ChartFrame.GetYFromData(0);var yPrice=this.YClose;//上一分钟的价格
4418
- var data=this.Data;var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);if(bShowColorBar)this.Canvas.strokeStyle=this.CustomColor;var unit=this.GetVolUnit();for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var item=data.Data[i];var vol=null;if(!item)continue;var price=null;vol=item.Vol/unit;price=item.Close;if(!vol)continue;var y=this.ChartFrame.GetYFromData(vol);var x=this.ChartFrame.GetXFromIndex(j);if(x>chartright)break;//价格>=上一分钟价格 红色 否则绿色
4419
- if(!bShowColorBar)this.Canvas.strokeStyle=this.GetMinuteBarColor(price,yPrice);this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(price)yPrice=price;}this.DrawAfterClose();this.DrawMultiDayAfterClose();};//连续交易成交量柱子颜色
4419
+ var data=this.Data;var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);if(bShowColorBar)this.Canvas.strokeStyle=this.CustomColor;var unit=this.GetVolUnit();if(data&&IFrameSplitOperator.IsNonEmptyArray(data.Data)){for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var item=data.Data[i];var vol=null;if(!item)continue;var price=null;vol=item.Vol/unit;price=item.Close;if(!vol)continue;var y=this.ChartFrame.GetYFromData(vol);var x=this.ChartFrame.GetXFromIndex(j);if(x>chartright)break;//价格>=上一分钟价格 红色 否则绿色
4420
+ if(!bShowColorBar)this.Canvas.strokeStyle=this.GetMinuteBarColor(price,yPrice);this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(price)yPrice=price;}}this.DrawAfterClose();this.DrawMultiDayAfterClose();};//连续交易成交量柱子颜色
4420
4421
  this.GetMinuteBarColor=function(price,yPrice){if(this.BarColorType==1)//通达信模式
4421
4422
  {if(price>yPrice)return this.UpColor;else if(price<yPrice)return this.DownColor;else return this.UnchangeColor;}else//东方财富模式
4422
4423
  {return price>=yPrice?this.UpColor:this.DownColor;}};this.DrawBeforeOpen=function(){if(this.ChartBorder.LeftExtendWidth<10)return;if(!this.BeforeOpenData)return;this.DrawCallAuction(-1,this.BeforeOpenData,true);};this.DrawAfterClose=function(){if(this.ChartBorder.RightExtendWidth<10)return;if(!this.AfterCloseData)return;this.DrawCallAuction(-1,this.AfterCloseData,false);};this.DrawMultiDayBeforeOpen=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Left<=0)return;if(!this.MultiDayBeforeOpenData)return;var offset=0,showDayCount=this.MultiDayBeforeOpenData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayBeforeOpenData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayBeforeOpenData[i];this.DrawCallAuction(j,dayItem,true);}};this.DrawMultiDayAfterClose=function(){if(this.ChartBorder.MultiDayMinute.Count<=1||this.ChartBorder.MultiDayMinute.Right<=0)return;if(!this.MultiDayAfterCloseData)return;var offset=0,showDayCount=this.MultiDayAfterCloseData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.MultiDayAfterCloseData.length&&j<showDayCount;++i,++j){var dayItem=this.MultiDayAfterCloseData[i];this.DrawCallAuction(j,dayItem,false);}};this.DrawCallAuction=function(indexDay,callAutionData,isBeforeOpen){if(!callAutionData)return;callAutionData.Index=indexDay;var border=this.GetBorder();var isHScreen=this.ChartFrame.IsHScreen===true;var yPrice=this.YClose;//上一分钟的价格
@@ -6853,7 +6854,7 @@ this.LineWidth=1;this.Precision=2;//小数位数
6853
6854
  this.ValueTextColor='rgb(250,250,250)';this.IsShowCorssCursor=true;//画的时候是否显示十字光标
6854
6855
  this.GetLabelCallback;//绘制标题回调函数
6855
6856
  this.PointCount=1;this.ClassName='ChartDrawHLine';this.Font=14*GetDevicePixelRatio()+"px 微软雅黑";this.TextFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.RightSpaceWidth=50;this.PriceBGColor;this.ButtonPosition=0;//按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
6856
- this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TopOffset=3;this.TextMargin={Left:0,Right:0,Top:0,Bottom:0,YOffset:4*GetDevicePixelRatio()};this.AlwaysShowLab=false;//总是显示标签
6857
+ this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TopOffset=3;this.TextMargin={Left:0,Right:0,Top:0,Bottom:0,YOffset:-1*GetDevicePixelRatio()};this.AlwaysShowLab=false;//总是显示标签
6857
6858
  this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null,Margin:{Left:2,Right:2}},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null,Margin:{Left:2,Right:2}//修改ID, Text , TooltipText 可以外部定制按钮
6858
6859
  }};this.CustomButton=[];//自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null, Data:null }
6859
6860
  this.AryShowButton=[];//需要显示的按钮 { Data:, Width }
@@ -6889,7 +6890,7 @@ if(labelInfo.BGColor){this.Canvas.fillStyle=labelInfo.BGColor;this.Canvas.fillRe
6889
6890
  {yBottom=border.Bottom;yTop=yBottom-totalHeight;if(yTop<this.TopOffset){yTop=this.TopOffset;yBottom=yTop+totalHeight;}option.Top=yTop;}this.DrawValueText(y,rtDraw,option);var drawLeft=rtDraw.Right-labSize.Width;if(drawLeft<rtDraw.Left)drawLeft=rtDraw.Left;var drawRight=drawLeft+labSize.Width;var drawTop=rtDraw.Bottom;var rtLabel={Left:drawLeft,Right:drawRight,Top:drawTop,Width:labSize.Width,Height:labSize.Height};rtLabel.Bottom=rtLabel.Top+rtLabel.Height;this.DrawLabel(this.LableInfo,labSize,rtLabel);this.DrawVerticalButton(rtLabel);};this.DrawCustomHLine=function(yLine){if(!this.LableInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.LableInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<this.LableInfo.AryLine.length;++i){var item=this.LableInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(item.Width<0)continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.IsPlusNumber(item.Width)){if(item.Width<1)xRight=left+item.Width*(right-left);//0.3 百分比
6890
6891
  else xRight=left+item.Width*pixelRatio;//>1 实际数值就是长度
6891
6892
  }if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(xRight,yFixed);this.Canvas.stroke();if(yMax<yFixed)yMax=yFixed;if(yMin>yFixed)yMin=yFixed;}if(yMax!=yMin&&this.LableInfo.VLine){var item=this.LableInfo.VLine;var x=left+20*pixelRatio;if(IFrameSplitOperator.IsNumber(item.XOffset))x=left+item.XOffset*pixelRatio;x=ToFixedPoint(x);if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,yMax);this.Canvas.lineTo(x,yMin);this.Canvas.stroke();}};this.DrawValueText=function(y,rtDraw,option){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottomEx();var pixelTatio=GetDevicePixelRatio();var labInfo=this.LabelInfo;if(labInfo&&IFrameSplitOperator.IsNumber(labInfo.TopOffset))top-=labInfo.TopOffset;if(labInfo&&IFrameSplitOperator.IsNumber(labInfo.BottomOffset))bottom+=labInfo.BottomOffset;var yValue=this.Frame.GetYData(y,false);var strValue=yValue.toFixed(this.Precision);if(labInfo&&labInfo.PriceSuffixText)strValue+=labInfo.PriceSuffixText;var bVisibleRange=true;if(y<top){y=top;bVisibleRange=false;}else if(y>bottom){y=bottom;bVisibleRange=false;}if(this.RightSpaceWidth>0){if(!bVisibleRange)this.Canvas.setLineDash([2*pixelTatio,3*pixelTatio]);//虚线
6892
- this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();if(!bVisibleRange)this.Canvas.setLineDash([]);}if(this.PriceBGColor)this.Canvas.fillStyle=this.PriceBGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,YCenter:y,Width:textWidth,Height:lineHeight};rtBG.Height+=this.TextMargin.Top+this.TextMargin.Bottom;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;if(option&&IFrameSplitOperator.IsNumber(option.Top)){rtBG.Top=option.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;}var xText=rtBG.Left+this.TextMargin.Left;var yText=rtBG.Top+this.TextMargin.Top+this.TextMargin.YOffset;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.fillText(strValue,xText,yText);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};//计算右侧价格标签大小
6893
+ this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();if(!bVisibleRange)this.Canvas.setLineDash([]);}if(this.PriceBGColor)this.Canvas.fillStyle=this.PriceBGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,YCenter:y,Width:textWidth,Height:lineHeight};rtBG.Height+=this.TextMargin.Top+this.TextMargin.Bottom;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;if(option&&IFrameSplitOperator.IsNumber(option.Top)){rtBG.Top=option.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;}var xText=rtBG.Left+this.TextMargin.Left;var yText=rtBG.Bottom-this.TextMargin.Bottom+this.TextMargin.YOffset;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillText(strValue,xText,yText);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};//计算右侧价格标签大小
6893
6894
  this.CalculateValueText=function(y){var yValue=this.Frame.GetYData(y,false);var strValue=yValue.toFixed(this.Precision);if(this.LableInfo&&this.LableInfo.PriceSuffixText)strValue+=this.LableInfo.PriceSuffixText;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var size={Width:textWidth,Height:lineHeight};size.Height+=this.TextMargin.Top+this.TextMargin.Bottom;size.Width+=this.TextMargin.Left+this.TextMargin.Right;return size;};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;var totalWidth=0;for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;item.Width=this.Canvas.measureText(icon.Text).width+2;item.Height=item.Width;if(icon.Margin){var margin=icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))item.Width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))item.Width+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))item.Height+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))item.Height+=margin.Bottom;}if(this.VerticalButtonInfo.Width<item.Width)this.VerticalButtonInfo.Width=item.Width;this.VerticalButtonInfo.Height+=item.Height;totalWidth+=item.Width;}this.ButtonBGWidth=totalWidth;};//垂直排列按钮
6894
6895
  this.DrawVerticalButton=function(rtLab){if(this.ButtonPosition!=3)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;if(this.VerticalButtonInfo.Height<=0)return;var rtBG={Left:rtLab.Right,Top:rtLab.Top,Width:this.VerticalButtonInfo.Width,Height:this.VerticalButtonInfo.Height};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.ButtonBGColor;this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));var pixelRatio=GetDevicePixelRatio();var yTop=rtLab.Top;for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var rtButton={Left:rtBG.Left,Top:yTop,Width:this.VerticalButtonInfo.Width,Height:item.Height};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(icon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText,Data:icon.Data});yTop=rtButton.Bottom;}};this.DrawButton=function(drawTop,drawLeft,drawHeight,rtDraw){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;if(this.ButtonPosition==3)return;//垂直按钮在DrawVerticalButton()调用
6895
6896
  if(this.ButtonPosition==1){drawTop-=drawHeight;var chartWidth=this.Frame.ChartBorder.GetChartWidth();var chartLeft=this.Frame.ChartBorder.GetRight()+this.RightSpaceWidth;if(drawLeft+this.ButtonBGWidth>chartWidth)//右边不够了 往左移动
@@ -13619,7 +13620,7 @@ var _iteratorNormalCompletion23=true;var _didIteratorError23=false;var _iterator
13619
13620
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
13620
13621
  if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(option.KLineChartTooltip&&option.KLineChartTooltip.Enable)chart.InitalKLineChartTooltip(option.KLineChartTooltip);if(option.Symbol)chart.Symbol=option.Symbol;if(option.Name)chart.Name=option.Name;var requestOption={Callback:null};if(chart.Symbol)requestOption.Callback=function(){chart.RequestMemberListData();};if(option.LoadStockList===false){chart.ChartSplashPaint.IsEnableSplash=false;chart.Draw();}else{chart.RequestStockListData(requestOption);//下载码表
13621
13622
  }};this.CreateJSReportChartContainer=function(option){var _this60=this;var chart=new JSReportChartContainer(this.CanvasElement);chart.GetExtraCanvas=function(name){return _this60.GetExtraCanvas(name);};chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.Tab))chart.SetTab(option.Tab);if(IFrameSplitOperator.IsNumber(option.TabSelected))chart.SetSelectedTab(option.TabSelected);if(IFrameSplitOperator.IsBool(option.EnableDragRow))chart.EnableDragRow=option.EnableDragRow;if(IFrameSplitOperator.IsNumber(option.DragRowType))chart.DragRowType=option.DragRowType;if(IFrameSplitOperator.IsBool(option.EnableDragHeader))chart.EnableDragHeader=option.EnableDragHeader;if(IFrameSplitOperator.IsNumber(option.WheelPageType))chart.WheelPageConfig.Type=option.WheelPageType;if(IFrameSplitOperator.IsBool(option.PageUpDownCycle))chart.PageUpDownCycle=option.PageUpDownCycle;if(IFrameSplitOperator.IsBool(option.EnablePageUpdate))chart.EnablePageUpdate=option.EnablePageUpdate;if(option.WheelPage){var item=option.WheelPage;if(IFrameSplitOperator.IsNumber(item.Type))chart.WheelPageConfig.Type=item.Type;if(IFrameSplitOperator.IsPlusNumber(item.RowStep))chart.WheelPageConfig.RowStep=item.RowStep;if(IFrameSplitOperator.IsBool(item.EnableCtrlTurn))chart.WheelPageConfig.EnableCtrlTurn=item.EnableCtrlTurn;}//数据下载提示信息
13622
- if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(item.Search)chart.SortInfo.Field=chart.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;}this.SetChartBorder(chart,option);//是否自动更新
13623
+ if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(item.Search)chart.SortInfo.Field=chart.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;if(option.BottomTab){var item=option.BottomTab;if(IFrameSplitOperator.IsBool(item.IsShow))reportChart.Tab.IsShow=item.IsShow;}}this.SetChartBorder(chart,option);//是否自动更新
13623
13624
  if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//数据筛选
13624
13625
  if(option.DataFilter){var item=option.DataFilter;if(IFrameSplitOperator.IsBool(item.Enable))chart.DataFilterConfig.Enable=item.Enable;}//注册事件
13625
13626
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -13713,8 +13714,7 @@ if(option&&option.PageInfo===true){var pageInfoChart=new ChartReportPageInfo();p
13713
13714
  if(IFrameSplitOperator.IsNumber(option.FixedColumn))chart.FixedColumn=option.FixedColumn;//固定列
13714
13715
  if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
13715
13716
  if(IFrameSplitOperator.IsBool(option.TabShow))chart.Tab.IsShow=option.TabShow;if(IFrameSplitOperator.IsNumber(option.FixedRowCount))chart.FixedRowCount=option.FixedRowCount;//固定行
13716
- if(IFrameSplitOperator.IsBool(option.ItemBorder))chart.IsDrawBorder=option.ItemBorder;//单元格边框
13717
- if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;if(IFrameSplitOperator.IsNumber(option.HeaderRowCount))chart.HeaderRowCount=option.HeaderRowCount;if(IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol)){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}}}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this63.OnKeyDown(e);},true);//键盘消息
13717
+ if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;if(IFrameSplitOperator.IsNumber(option.HeaderRowCount))chart.HeaderRowCount=option.HeaderRowCount;if(IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol)){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}}if(option.CellBorder){var item=option.CellBorder;if(IFrameSplitOperator.IsBool(item.IsShowVLine))chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;if(IFrameSplitOperator.IsBool(item.IsShowHLine))chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;if(IFrameSplitOperator.IsBool(item.IsFullLine))chart.CellBorderConfig.IsFullLine=item.IsFullLine;}}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this63.OnKeyDown(e);},true);//键盘消息
13718
13718
  if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this63.OnWheel(e);},true);//上下滚动消息
13719
13719
  this.UIElement.ondblclick=function(e){_this63.UIOnDblClick(e);};this.UIElement.onmousedown=function(e){_this63.UIOnMouseDown(e);};this.UIElement.onmouseup=function(e){_this63.UIOnMounseUp(e);};this.UIElement.oncontextmenu=function(e){_this63.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this63.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this63.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this63.UIOnMouseleave(e);};//手机拖拽
13720
13720
  this.UIElement.ontouchstart=function(e){_this63.OnTouchStart(e);};this.UIElement.ontouchmove=function(e){_this63.OnTouchMove(e);};this.UIElement.ontouchend=function(e){_this63.OnTouchEnd(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -14083,8 +14083,8 @@ this.SizeChange=true;this.SelectedModel=0;//选中模式 0=SelectedRow表示当
14083
14083
  this.SelectedRowData;//{ DataIndex:, Index:, Symbol: }
14084
14084
  this.SelectedFixedRow=-1;//选中固定行ID
14085
14085
  this.SelectedStyle=1;//选中行样式 1=整行填充 2=底部绘制直线
14086
- this.IsDrawBorder=1;//是否绘制单元格边框
14087
14086
  this.HeaderRowCount=1;//表头行数
14087
+ this.CellBorderConfig={IsShowVLine:true,IsShowHLine:true,IsFullLine:true};//单元格边框 IsShowHLine=横线 IsShowVLine=竖向
14088
14088
  //多选模式
14089
14089
  this.MultiSelectModel=0;//0=禁用 1=开启
14090
14090
  this.MultiSelectedRow=[];//选中行
@@ -14164,7 +14164,7 @@ if(IFrameSplitOperator.IsNumber(item.BlockIndex))colItem.BlockIndex=item.BlockIn
14164
14164
  {Type:REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99"},{Type:REPORT_COLUMN_ID.CUSTOM_ICON_ID,Title:" ",TextAlign:"left",FixedWidth:20,TextColor:g_JSChartResource.Report.FieldColor.Text},{Type:REPORT_COLUMN_ID.KLINE_ID,Title:"K线",TextAlign:"left",FixedWidth:50,TextColor:g_JSChartResource.Report.FieldColor.Text},{Type:REPORT_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"left",ValueType:0,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"99:99:99.999"},{Type:REPORT_COLUMN_ID.DATE_ID,Title:"日期",TextAlign:"left",FormatType:0,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99"},{Type:REPORT_COLUMN_ID.CHECKBOX_ID,Title:"",TextAlign:"center",FixedWidth:20*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID,Title:"",TextAlign:"center",FixedWidth:20*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_BUTTON_ID,Title:"",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID,Title:"进度条",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_LINK_ID,Title:"链接地址",TextAlign:"center",MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.FUTURES_POSITION_ID,Title:"持仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Vol,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_CLOSE_ID,Title:"结算价",TextAlign:"right",Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_YCLOSE_ID,Title:"昨结算价",TextAlign:"right",Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_OPEN_POSITION_ID,Title:"开仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_CLOSE_POSITION_ID,Title:"平仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.RISING_SPEED_1M_ID,Title:"涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_3M_ID,Title:"3分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_5M_ID,Title:"5分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_10M_ID,Title:"10分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_15M_ID,Title:"15分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},//组合多行字段
14165
14165
  {Type:REPORT_COLUMN_ID.MULTI_LINE_CONTAINER,Title:"涨幅",TextAlign:"right",MaxText:"1000.00%",AryField:[{Type:REPORT_COLUMN_ID.PRICE_ID},{Type:REPORT_COLUMN_ID.INCREASE_ID,DynamicFormat:"{Value}%"}]},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER1_ID,Title:"数值1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER2_ID,Title:"数值2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER3_ID,Title:"数值3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER4_ID,Title:"数值4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER5_ID,Title:"数值5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER6_ID,Title:"数值6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER7_ID,Title:"数值7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER8_ID,Title:"数值8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER9_ID,Title:"数值9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER10_ID,Title:"数值10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER11_ID,Title:"数值11",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER12_ID,Title:"数值12",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER13_ID,Title:"数值13",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER14_ID,Title:"数值14",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER15_ID,Title:"数值15",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER16_ID,Title:"数值16",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER17_ID,Title:"数值17",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER18_ID,Title:"数值18",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER19_ID,Title:"数值19",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER20_ID,Title:"数值20",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_STRING1_ID,Title:"文字1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING2_ID,Title:"文字2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING3_ID,Title:"文字3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING4_ID,Title:"文字4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING5_ID,Title:"文字5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING6_ID,Title:"文字6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING7_ID,Title:"文字7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING8_ID,Title:"文字8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING9_ID,Title:"文字9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING10_ID,Title:"文字10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING11_ID,Title:"文字11",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING12_ID,Title:"文字12",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING13_ID,Title:"文字13",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING14_ID,Title:"文字14",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING15_ID,Title:"文字15",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING16_ID,Title:"文字16",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING17_ID,Title:"文字17",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING18_ID,Title:"文字18",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING19_ID,Title:"文字19",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING20_ID,Title:"文字20",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID,Title:"进度条1",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR2_ID,Title:"进度条2",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR3_ID,Title:"进度条3",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR4_ID,Title:"进度条4",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR5_ID,Title:"进度条5",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR6_ID,Title:"进度条6",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR7_ID,Title:"进度条7",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR8_ID,Title:"进度条8",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR9_ID,Title:"进度条9",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR10_ID,Title:"进度条10",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON1_ID,Title:"按钮1",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON2_ID,Title:"按钮2",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON3_ID,Title:"按钮3",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON4_ID,Title:"按钮4",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON5_ID,Title:"按钮5",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON6_ID,Title:"按钮6",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON7_ID,Title:"按钮7",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON8_ID,Title:"按钮8",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON9_ID,Title:"按钮9",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON10_ID,Title:"按钮10",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME1_ID,Title:"日期1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME2_ID,Title:"日期2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME3_ID,Title:"日期3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME4_ID,Title:"日期4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME5_ID,Title:"日期5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME6_ID,Title:"日期6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME7_ID,Title:"日期7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME8_ID,Title:"日期8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME9_ID,Title:"日期9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME10_ID,Title:"日期10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"}];for(var i=0;i<DEFAULT_COLUMN.length;++i){var item=DEFAULT_COLUMN[i];if(item.Type==id)return item;}return null;};this.ClipClient=function(){this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(this.RectClient.Left,this.RectClient.Top,this.RectClient.Right-this.RectClient.Left,this.RectClient.Bottom-this.RectClient.Top);//this.Canvas.stroke(); //调试用
14166
14166
  this.Canvas.clip();};this.CreateTempCache=function(){this.TempCache={MapReserveDateTime:new _map2.default()};//MapReserveDateTime:key=colindex, Value:{ PreDate }
14167
- };this.Draw=function(lastMouseStatus){this.ShowSymbol=[];this.TooltipRect=[];this.ButtonRect=[];this.AryFullSelectedRow=[];this.DevicePixelRatio=GetDevicePixelRatio();this.LastMouseStatus=lastMouseStatus;this.CreateTempCache();if(this.GlobalOption)this.GlobalOption.FlashBGCount=0;if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.ClipClient();this.DrawDragHeaderBG();this.DrawHeader();this.DrawBody();this.Canvas.restore();if(this.Tab&&this.BottomToolbarHeight>0){var bottom=this.ChartBorder.GetBottom();this.Tab.DrawTab(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);this.Tab.DrawScrollbar(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);}this.ClipClient();this.DrawBorder();this.DrawSelectedRow();this.Canvas.restore();this.DrawDragRow();this.DrawDragHeader();if(this.VScrollbar){var bottom=this.ChartBorder.GetBottom();this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight,this.RectClient.Right,bottom-this.BottomToolbarHeight-4);}this.LastMouseStatus=null;this.SizeChange=false;this.AryFullSelectedRow=[];this.TempCache=null;};this.DrawDragHeaderBG=function(){if(!this.DragHeader)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;//竖线
14167
+ };this.Draw=function(lastMouseStatus){this.ShowSymbol=[];this.TooltipRect=[];this.ButtonRect=[];this.AryFullSelectedRow=[];this.DevicePixelRatio=GetDevicePixelRatio();this.LastMouseStatus=lastMouseStatus;this.DrawRowCount=0;this.CreateTempCache();if(this.GlobalOption)this.GlobalOption.FlashBGCount=0;if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.ClipClient();this.DrawDragHeaderBG();this.DrawHeader();this.DrawBody();this.Canvas.restore();if(this.Tab&&this.BottomToolbarHeight>0){var bottom=this.ChartBorder.GetBottom();this.Tab.DrawTab(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);this.Tab.DrawScrollbar(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);}this.ClipClient();this.DrawBorder();this.DrawSelectedRow();this.Canvas.restore();this.DrawDragRow();this.DrawDragHeader();if(this.VScrollbar){var bottom=this.ChartBorder.GetBottom();this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight,this.RectClient.Right,bottom-this.BottomToolbarHeight-4);}this.LastMouseStatus=null;this.SizeChange=false;this.AryFullSelectedRow=[];this.TempCache=null;};this.DrawDragHeaderBG=function(){if(!this.DragHeader)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;//竖线
14168
14168
  var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(this.DragHeader){if(this.DragHeader.ClickData){var clickData=this.DragHeader.ClickData;if(clickData.Header.Index==i){var rtBG={Left:columnLeft,Top:top,Bottom:bottom,Right:columnLeft+item.Width};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}if(this.DragHeader.MoveToData){var moveToData=this.DragHeader.MoveToData;if(moveToData.Header.Index==i){var rtBG={Left:columnLeft,Top:top,Bottom:bottom,Right:columnLeft+item.Width};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}}columnLeft+=item.Width;}};//更新缓存变量
14169
14169
  this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();this.RectClient.Right=this.ChartBorder.GetRight();this.RectClient.Top=this.ChartBorder.GetTop();this.RectClient.Bottom=this.ChartBorder.GetBottom()-this.BottomToolbarHeight;};this.GetPageSize=function(recalculate)//recalculate 是否重新计算
14170
14170
  {if(recalculate)this.CalculateSize();var size=this.RowCount;return size;};this.GetCurrentPageStatus=function()//{ Start:起始索引, End:结束索引(数据), PageSize:页面可以显示几条记录, IsEnd:是否是最后一页, IsSinglePage:是否只有一页数据}
@@ -14187,13 +14187,14 @@ if(item.Sort&&this.SortConfig&&IFrameSplitOperator.IsPlusNumber(this.SortConfig.
14187
14187
  for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;//var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
14188
14188
  var rtCell={Left:textLeft,Width:itemWidth,Top:top,Height:this.HeaderHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;this.DrawHeaderItem(item,rtCell,i);textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;//var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
14189
14189
  var rtCell={Left:textLeft,Width:itemWidth,Top:top,Height:this.HeaderHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;this.DrawHeaderItem(item,rtCell,i);textLeft+=item.Width;}};//是否绘制排序背景图标
14190
- this.IsDrawSortBGIcon=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Arrow))return false;if(!this.SortConfig.Arrow[0])return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Color))return false;if(!this.SortConfig.Color[0])return false;return true;};this.DrawBorder=function(){if(!this.IsDrawBorder)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=this.RectClient.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));var rowTop=top+this.HeaderHeight+this.RowHeight;var rotBottom=rowTop;for(var i=0;i<this.FixedRowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.FixedRowHeight;}var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;var rotBottom=rowTop;//横线
14191
- for(var i=0;i<this.RowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.RowHeight;}//竖线
14192
- var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}this.Canvas.stroke();};//获取一共多少行
14190
+ this.IsDrawSortBGIcon=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Arrow))return false;if(!this.SortConfig.Arrow[0])return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Color))return false;if(!this.SortConfig.Color[0])return false;return true;};this.DrawBorder=function(){if(!this.CellBorderConfig.IsShowHLine&&!this.CellBorderConfig.IsShowVLine)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=this.RectClient.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();var rowCount=this.RowCount;if(!this.CellBorderConfig.IsFullLine)rowCount=this.DrawRowCount;if(this.CellBorderConfig.IsShowHLine)//横线
14191
+ {this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));var rowTop=top+this.HeaderHeight+this.RowHeight;var rotBottom=rowTop;for(var i=0;i<this.FixedRowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.FixedRowHeight;}var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;var rotBottom=rowTop;//横线
14192
+ for(var i=0;i<rowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.RowHeight;}}if(this.CellBorderConfig.IsShowVLine)//竖线
14193
+ {var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}}this.Canvas.stroke();};//获取一共多少行
14193
14194
  this.GetAllRowCount=function(){var count=this.Data.Data.length;if(this.Data.Virtual&&this.Data.Virtual.Enable)count=this.Data.Virtual.Count;return count;};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)&&!this.Data.Virtual.Enable)return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var rowWidth=this.RectClient.Right-this.RectClient.Left;var arySelectedRow=[];//固定行
14194
14195
  var textTop=top;this.Canvas.font=this.ItemFixedFont;for(var i=0;i<this.FixedRowCount;++i){if(this.SelectedFixedRow==i){this.Canvas.fillStyle=this.SelectedColor;;this.Canvas.fillRect(left,textTop,rowWidth,this.FixedRowHeight);}if(this.FixedRowData.Type==1)this.DrawFixedSymbolRow(textTop,i);else this.DrawFixedRow(textTop,i);textTop+=this.FixedRowHeight;}textTop=top+this.FixedRowHeight*this.FixedRowCount;this.Canvas.font=this.ItemFont;var eventDrawBG=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAW_REPORT_ROW_BG);var selectedSymbol=this.GetSelectedSymbol();var setSelected;if(this.MultiSelectModel==1)setSelected=new _set2.default(this.MultiSelectedRow);var dataCount=this.GetAllRowCount();for(var i=this.Data.YOffset,j=0;i<dataCount&&j<this.RowCount;++i,++j){var symbol=this.Data.Data[i];var rtRowBG={Left:left,Top:textTop,Width:rowWidth,Height:this.RowHeight};rtRowBG.Right=rtRowBG.Left+rtRowBG.Width;rtRowBG.Bottom=rtRowBG.Top+rtRowBG.Height;var bFillRow=false;if(this.MultiSelectModel==1){if(setSelected.has(i))bFillRow=true;}else{if(this.SelectedModel==0){if(this.SelectedRowData&&this.SelectedRowData.Index==j&&this.SelectedRowData.Symbol==symbol)bFillRow=true;//选中行
14195
14196
  }else{if(this.SelectedRowData&&this.SelectedRowData.DataIndex==i&&this.SelectedRowData.Symbol==symbol)bFillRow=true;//选中行
14196
- }}if(this.DragRow){if(this.DragRow.Data){var dataIndex=this.DragRow.Data.Row.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}if(this.DragRow.MoveRow){var dataIndex=this.DragRow.MoveRow.Data.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}bFillRow=false;}this.DrawFullRowBGColor(symbol,eventDrawBG,i,rtRowBG,{Selected:selectedSymbol});this.DrawFlashFullRowBGColor(symbol,rtRowBG);if(bFillRow){this.AryFullSelectedRow.push(rtRowBG);if(this.SelectedStyle===1){this.Canvas.fillStyle=this.SelectedColor;this.Canvas.fillRect(rtRowBG.Left,rtRowBG.Top,rtRowBG.Width,rtRowBG.Height);}}this.DrawRow(symbol,textTop,i);this.ShowSymbol.push({Index:i,Symbol:symbol});textTop+=this.RowHeight;}};//绘制整行背景色
14197
+ }}if(this.DragRow){if(this.DragRow.Data){var dataIndex=this.DragRow.Data.Row.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}if(this.DragRow.MoveRow){var dataIndex=this.DragRow.MoveRow.Data.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}bFillRow=false;}this.DrawFullRowBGColor(symbol,eventDrawBG,i,rtRowBG,{Selected:selectedSymbol});this.DrawFlashFullRowBGColor(symbol,rtRowBG);if(bFillRow){this.AryFullSelectedRow.push(rtRowBG);if(this.SelectedStyle===1){this.Canvas.fillStyle=this.SelectedColor;this.Canvas.fillRect(rtRowBG.Left,rtRowBG.Top,rtRowBG.Width,rtRowBG.Height);}}this.DrawRow(symbol,textTop,i);this.ShowSymbol.push({Index:i,Symbol:symbol});textTop+=this.RowHeight;++this.DrawRowCount;}};//绘制整行背景色
14197
14198
  this.DrawFullRowBGColor=function(symbol,event,index,rtBG,option){var data={Symbol:symbol,Stock:null};if(this.GetStockDataCallback)data.Stock=this.GetStockDataCallback(symbol);if(data.Stock&&data.Stock.BGColor){this.Canvas.fillStyle=data.Stock.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(event&&event.Callback){//Out:{ BGColor: }
14198
14199
  var sendData={RowIndex:index,Symbol:symbol,Out:null,MultiSelectModel:this.MultiSelectModel};if(option){if(option.Selected)sendData.Selected=option.Selected;}event.Callback(event,sendData,this);if(sendData.Out&&sendData.Out.BGColor){this.Canvas.fillStyle=sendData.Out.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}};this.DrawFlashFullRowBGColor=function(symbol,rtBG){var data={Symbol:symbol,FlashBG:null};if(this.GetFlashBGDataCallback)data.FlashBG=this.GetFlashBGDataCallback(symbol,Date.now());if(!data.FlashBG)return;var id=-1;if(!data.FlashBG.Data.has(id))return;var flashItem=data.FlashBG.Data.get(id);if(flashItem&&flashItem.Count){this.Canvas.fillStyle=flashItem.Color;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}--flashItem.Count;if(this.GlobalOption)++this.GlobalOption.FlashBGCount;};this.DrawSelectedRow=function(){if(this.SelectedStyle===2&&IFrameSplitOperator.IsNonEmptyArray(this.AryFullSelectedRow)){this.Canvas.fillStyle=this.SelectedLineConfig.Color;var lineWidth=this.SelectedLineConfig.Width;for(var i=0;i<this.AryFullSelectedRow.length;++i){var rtBG=this.AryFullSelectedRow[i];this.Canvas.fillRect(rtBG.Left,rtBG.Bottom-lineWidth,rtBG.Width,lineWidth);}}};this.GetSelectedSymbol=function(){if(this.MultiSelectModel==1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiSelectedRow))return null;var aryData=[];for(var i=0;i<this.MultiSelectedRow.length;++i){var item=this.Data.Data[this.MultiSelectedRow[i]];if(!item)continue;aryData.push(item);}return aryData;}else{if(!this.SelectedRowData)return null;if(!this.SelectedRowData.Symbol)return null;return[this.SelectedRowData.Symbol];}};//单行选中模式选中股票
14199
14200
  this.GetSelectedSingleSymbol=function(){if(this.MultiSelectModel==1)return null;//多选
@@ -15644,7 +15645,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15644
15645
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
15645
15646
  * 版本信息输出
15646
15647
  *
15647
- */var HQCHART_VERSION="1.1.15224";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
15648
+ */var HQCHART_VERSION="1.1.15234";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
15648
15649
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15649
15650
  // BaseIndex:BaseIndex,
15650
15651
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15225",
3
+ "version": "1.1.15235",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -9845,8 +9845,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9845
9845
  event.Callback(event, sendData, this);
9846
9846
  }
9847
9847
 
9848
- if (option.Update && this.Update) this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
9849
- else if (option.Draw==true || option.Redraw==true) this.Draw(); //是否立即重绘
9848
+ if (option.Update && this.Update)
9849
+ {
9850
+ this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
9851
+ }
9852
+ else if (option.Draw==true || option.Redraw==true)
9853
+ {
9854
+ this.ResetFrameXYSplit(); //重新计算分割线
9855
+ this.Draw(); //是否立即重绘
9856
+ }
9850
9857
 
9851
9858
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
9852
9859
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
@@ -35634,38 +35641,41 @@ function ChartMinuteVolumBar()
35634
35641
  if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
35635
35642
  var unit=this.GetVolUnit();
35636
35643
 
35637
- for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
35644
+ if (data && IFrameSplitOperator.IsNonEmptyArray(data.Data))
35638
35645
  {
35639
- var item = data.Data[i];
35640
- var vol=null;
35641
- if (!item) continue;
35642
- var price=null;
35646
+ for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
35647
+ {
35648
+ var item = data.Data[i];
35649
+ var vol=null;
35650
+ if (!item) continue;
35651
+ var price=null;
35643
35652
 
35644
- vol=item.Vol/unit;
35645
- price=item.Close;
35646
-
35647
- if (!vol) continue;
35653
+ vol=item.Vol/unit;
35654
+ price=item.Close;
35655
+
35656
+ if (!vol) continue;
35648
35657
 
35649
- var y=this.ChartFrame.GetYFromData(vol);
35650
- var x=this.ChartFrame.GetXFromIndex(j);
35651
- if (x>chartright) break;
35658
+ var y=this.ChartFrame.GetYFromData(vol);
35659
+ var x=this.ChartFrame.GetXFromIndex(j);
35660
+ if (x>chartright) break;
35652
35661
 
35653
- //价格>=上一分钟价格 红色 否则绿色
35654
- if (!bShowColorBar) this.Canvas.strokeStyle = this.GetMinuteBarColor(price, yPrice);
35662
+ //价格>=上一分钟价格 红色 否则绿色
35663
+ if (!bShowColorBar) this.Canvas.strokeStyle = this.GetMinuteBarColor(price, yPrice);
35655
35664
 
35656
- this.Canvas.beginPath();
35657
- if (isHScreen)
35658
- {
35659
- this.Canvas.moveTo(y,ToFixedPoint(x));
35660
- this.Canvas.lineTo(yBottom,ToFixedPoint(x));
35661
- }
35662
- else
35663
- {
35664
- this.Canvas.moveTo(ToFixedPoint(x),y);
35665
- this.Canvas.lineTo(ToFixedPoint(x),yBottom);
35665
+ this.Canvas.beginPath();
35666
+ if (isHScreen)
35667
+ {
35668
+ this.Canvas.moveTo(y,ToFixedPoint(x));
35669
+ this.Canvas.lineTo(yBottom,ToFixedPoint(x));
35670
+ }
35671
+ else
35672
+ {
35673
+ this.Canvas.moveTo(ToFixedPoint(x),y);
35674
+ this.Canvas.lineTo(ToFixedPoint(x),yBottom);
35675
+ }
35676
+ this.Canvas.stroke();
35677
+ if (price) yPrice=price;
35666
35678
  }
35667
- this.Canvas.stroke();
35668
- if (price) yPrice=price;
35669
35679
  }
35670
35680
 
35671
35681
  this.DrawAfterClose();
@@ -67611,7 +67621,7 @@ function ChartDrawHLine()
67611
67621
  this.ButtonSpace=3;
67612
67622
  this.TopOffset=3;
67613
67623
 
67614
- this.TextMargin={ Left:0, Right:0, Top:0, Bottom:0, YOffset:4*GetDevicePixelRatio() };
67624
+ this.TextMargin={ Left:0, Right:0, Top:0, Bottom:0, YOffset:-1*GetDevicePixelRatio() };
67615
67625
 
67616
67626
  this.AlwaysShowLab=false; //总是显示标签
67617
67627
 
@@ -68185,7 +68195,7 @@ function ChartDrawHLine()
68185
68195
  }
68186
68196
 
68187
68197
  var xText=rtBG.Left+this.TextMargin.Left;
68188
- var yText=rtBG.Top+this.TextMargin.Top+this.TextMargin.YOffset;
68198
+ var yText=rtBG.Bottom-this.TextMargin.Bottom+this.TextMargin.YOffset;
68189
68199
 
68190
68200
  if (this.ButtonPosition==1)
68191
68201
  {
@@ -68198,7 +68208,7 @@ function ChartDrawHLine()
68198
68208
 
68199
68209
  this.Canvas.fillStyle=this.ValueTextColor
68200
68210
  this.Canvas.textAlign="left";
68201
- this.Canvas.textBaseline="top";
68211
+ this.Canvas.textBaseline="bottom";
68202
68212
  this.Canvas.fillText(strValue,xText,yText);
68203
68213
 
68204
68214
  rtDraw.Left=rtBG.Left;
@@ -232,6 +232,12 @@ function JSReportChart(divElement)
232
232
  if (IFrameSplitOperator.IsNumber(option.TextOverflowStyle)) reportChart.TextOverflowStyle=option.TextOverflowStyle;
233
233
  if (IFrameSplitOperator.IsNumber(option.MultiSelectModel)) reportChart.MultiSelectModel=option.MultiSelectModel;
234
234
  if (IFrameSplitOperator.IsNumber(option.SelectedStyle)) reportChart.SelectedStyle=option.SelectedStyle;
235
+
236
+ if (option.BottomTab)
237
+ {
238
+ var item=option.BottomTab;
239
+ if (IFrameSplitOperator.IsBool(item.IsShow)) reportChart.Tab.IsShow=item.IsShow;
240
+ }
235
241
  }
236
242
 
237
243
  this.SetChartBorder(chart, option);
@@ -828,7 +834,7 @@ function JSReportChartContainer(uielement)
828
834
  if (IFrameSplitOperator.IsNumber(option.BorderLine)) this.Frame.BorderLine=option.BorderLine; //边框
829
835
  if (IFrameSplitOperator.IsBool(option.TabShow)) chart.Tab.IsShow=option.TabShow;
830
836
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
831
- if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
837
+
832
838
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
833
839
  if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
834
840
 
@@ -845,6 +851,14 @@ function JSReportChartContainer(uielement)
845
851
  ++chart.FixedRowCount;
846
852
  }
847
853
  }
854
+
855
+ if (option.CellBorder)
856
+ {
857
+ var item=option.CellBorder;
858
+ if (IFrameSplitOperator.IsBool(item.IsShowVLine)) chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;
859
+ if (IFrameSplitOperator.IsBool(item.IsShowHLine)) chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;
860
+ if (IFrameSplitOperator.IsBool(item.IsFullLine)) chart.CellBorderConfig.IsFullLine=item.IsFullLine;
861
+ }
848
862
  }
849
863
 
850
864
  var bRegisterKeydown=true;
@@ -5185,9 +5199,10 @@ function ChartReport()
5185
5199
  this.SelectedRowData; //{ DataIndex:, Index:, Symbol: }
5186
5200
  this.SelectedFixedRow=-1; //选中固定行ID
5187
5201
  this.SelectedStyle=1; //选中行样式 1=整行填充 2=底部绘制直线
5188
- this.IsDrawBorder=1; //是否绘制单元格边框
5189
5202
  this.HeaderRowCount=1; //表头行数
5190
5203
 
5204
+ this.CellBorderConfig={ IsShowVLine:true, IsShowHLine:true, IsFullLine:true }; //单元格边框 IsShowHLine=横线 IsShowVLine=竖向
5205
+
5191
5206
  //多选模式
5192
5207
  this.MultiSelectModel=0; //0=禁用 1=开启
5193
5208
  this.MultiSelectedRow=[]; //选中行
@@ -5873,6 +5888,7 @@ function ChartReport()
5873
5888
  this.AryFullSelectedRow=[];
5874
5889
  this.DevicePixelRatio=GetDevicePixelRatio()
5875
5890
  this.LastMouseStatus=lastMouseStatus;
5891
+ this.DrawRowCount=0;
5876
5892
  this.CreateTempCache();
5877
5893
 
5878
5894
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
@@ -6392,7 +6408,7 @@ function ChartReport()
6392
6408
 
6393
6409
  this.DrawBorder=function()
6394
6410
  {
6395
- if (!this.IsDrawBorder) return;
6411
+ if (!this.CellBorderConfig.IsShowHLine && !this.CellBorderConfig.IsShowVLine) return;
6396
6412
 
6397
6413
  var left=this.RectClient.Left;
6398
6414
  var right=this.RectClient.Right;
@@ -6401,53 +6417,60 @@ function ChartReport()
6401
6417
 
6402
6418
  this.Canvas.strokeStyle=this.BorderColor;
6403
6419
  this.Canvas.beginPath();
6404
-
6405
- this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
6406
- this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
6420
+ var rowCount=this.RowCount;
6421
+ if (!this.CellBorderConfig.IsFullLine) rowCount=this.DrawRowCount;
6407
6422
 
6408
- var rowTop=top+this.HeaderHeight+this.RowHeight;
6409
- var rotBottom=rowTop;
6410
- for(var i=0;i<this.FixedRowCount;++i)
6423
+ if (this.CellBorderConfig.IsShowHLine) //横线
6411
6424
  {
6412
- var drawTop=ToFixedPoint(rowTop);
6413
- this.Canvas.moveTo(left,drawTop);
6414
- this.Canvas.lineTo(right,drawTop);
6415
- rotBottom=rowTop;
6416
- rowTop+=this.FixedRowHeight;
6417
- }
6425
+ this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
6426
+ this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
6418
6427
 
6419
- var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
6420
- var rotBottom=rowTop;
6421
- //横线
6422
- for(var i=0;i<this.RowCount;++i)
6423
- {
6424
- var drawTop=ToFixedPoint(rowTop);
6425
- this.Canvas.moveTo(left,drawTop);
6426
- this.Canvas.lineTo(right,drawTop);
6427
- rotBottom=rowTop;
6428
- rowTop+=this.RowHeight;
6428
+ var rowTop=top+this.HeaderHeight+this.RowHeight;
6429
+ var rotBottom=rowTop;
6430
+ for(var i=0;i<this.FixedRowCount;++i)
6431
+ {
6432
+ var drawTop=ToFixedPoint(rowTop);
6433
+ this.Canvas.moveTo(left,drawTop);
6434
+ this.Canvas.lineTo(right,drawTop);
6435
+ rotBottom=rowTop;
6436
+ rowTop+=this.FixedRowHeight;
6437
+ }
6438
+
6439
+ var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
6440
+ var rotBottom=rowTop;
6441
+ //横线
6442
+ for(var i=0;i<rowCount;++i)
6443
+ {
6444
+ var drawTop=ToFixedPoint(rowTop);
6445
+ this.Canvas.moveTo(left,drawTop);
6446
+ this.Canvas.lineTo(right,drawTop);
6447
+ rotBottom=rowTop;
6448
+ rowTop+=this.RowHeight;
6449
+ }
6429
6450
  }
6430
6451
 
6431
- //竖线
6432
- var columnLeft=left;
6433
- for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
6452
+ if (this.CellBorderConfig.IsShowVLine) //竖线
6434
6453
  {
6435
- var item=this.Column[i];
6436
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
6437
- this.Canvas.moveTo(drawLeft,top);
6438
- this.Canvas.lineTo(drawLeft,rotBottom);
6454
+ var columnLeft=left;
6455
+ for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
6456
+ {
6457
+ var item=this.Column[i];
6458
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
6459
+ this.Canvas.moveTo(drawLeft,top);
6460
+ this.Canvas.lineTo(drawLeft,rotBottom);
6439
6461
 
6440
- columnLeft+=item.Width;
6441
- }
6462
+ columnLeft+=item.Width;
6463
+ }
6442
6464
 
6443
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
6444
- {
6445
- var item=this.Column[i];
6446
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
6447
- this.Canvas.moveTo(drawLeft,top);
6448
- this.Canvas.lineTo(drawLeft,rotBottom);
6465
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
6466
+ {
6467
+ var item=this.Column[i];
6468
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
6469
+ this.Canvas.moveTo(drawLeft,top);
6470
+ this.Canvas.lineTo(drawLeft,rotBottom);
6449
6471
 
6450
- columnLeft+=item.Width;
6472
+ columnLeft+=item.Width;
6473
+ }
6451
6474
  }
6452
6475
 
6453
6476
  this.Canvas.stroke();
@@ -6574,6 +6597,7 @@ function ChartReport()
6574
6597
  this.ShowSymbol.push( { Index:i, Symbol:symbol } );
6575
6598
 
6576
6599
  textTop+=this.RowHeight;
6600
+ ++this.DrawRowCount;
6577
6601
  }
6578
6602
  }
6579
6603
 
@@ -13941,8 +13941,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13941
13941
  event.Callback(event, sendData, this);
13942
13942
  }
13943
13943
 
13944
- if (option.Update && this.Update) this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13945
- else if (option.Draw==true || option.Redraw==true) this.Draw(); //是否立即重绘
13944
+ if (option.Update && this.Update)
13945
+ {
13946
+ this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13947
+ }
13948
+ else if (option.Draw==true || option.Redraw==true)
13949
+ {
13950
+ this.ResetFrameXYSplit(); //重新计算分割线
13951
+ this.Draw(); //是否立即重绘
13952
+ }
13946
13953
 
13947
13954
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
13948
13955
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
@@ -39730,38 +39737,41 @@ function ChartMinuteVolumBar()
39730
39737
  if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
39731
39738
  var unit=this.GetVolUnit();
39732
39739
 
39733
- for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
39740
+ if (data && IFrameSplitOperator.IsNonEmptyArray(data.Data))
39734
39741
  {
39735
- var item = data.Data[i];
39736
- var vol=null;
39737
- if (!item) continue;
39738
- var price=null;
39742
+ for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
39743
+ {
39744
+ var item = data.Data[i];
39745
+ var vol=null;
39746
+ if (!item) continue;
39747
+ var price=null;
39739
39748
 
39740
- vol=item.Vol/unit;
39741
- price=item.Close;
39742
-
39743
- if (!vol) continue;
39749
+ vol=item.Vol/unit;
39750
+ price=item.Close;
39751
+
39752
+ if (!vol) continue;
39744
39753
 
39745
- var y=this.ChartFrame.GetYFromData(vol);
39746
- var x=this.ChartFrame.GetXFromIndex(j);
39747
- if (x>chartright) break;
39754
+ var y=this.ChartFrame.GetYFromData(vol);
39755
+ var x=this.ChartFrame.GetXFromIndex(j);
39756
+ if (x>chartright) break;
39748
39757
 
39749
- //价格>=上一分钟价格 红色 否则绿色
39750
- if (!bShowColorBar) this.Canvas.strokeStyle = this.GetMinuteBarColor(price, yPrice);
39758
+ //价格>=上一分钟价格 红色 否则绿色
39759
+ if (!bShowColorBar) this.Canvas.strokeStyle = this.GetMinuteBarColor(price, yPrice);
39751
39760
 
39752
- this.Canvas.beginPath();
39753
- if (isHScreen)
39754
- {
39755
- this.Canvas.moveTo(y,ToFixedPoint(x));
39756
- this.Canvas.lineTo(yBottom,ToFixedPoint(x));
39757
- }
39758
- else
39759
- {
39760
- this.Canvas.moveTo(ToFixedPoint(x),y);
39761
- this.Canvas.lineTo(ToFixedPoint(x),yBottom);
39761
+ this.Canvas.beginPath();
39762
+ if (isHScreen)
39763
+ {
39764
+ this.Canvas.moveTo(y,ToFixedPoint(x));
39765
+ this.Canvas.lineTo(yBottom,ToFixedPoint(x));
39766
+ }
39767
+ else
39768
+ {
39769
+ this.Canvas.moveTo(ToFixedPoint(x),y);
39770
+ this.Canvas.lineTo(ToFixedPoint(x),yBottom);
39771
+ }
39772
+ this.Canvas.stroke();
39773
+ if (price) yPrice=price;
39762
39774
  }
39763
- this.Canvas.stroke();
39764
- if (price) yPrice=price;
39765
39775
  }
39766
39776
 
39767
39777
  this.DrawAfterClose();
@@ -71707,7 +71717,7 @@ function ChartDrawHLine()
71707
71717
  this.ButtonSpace=3;
71708
71718
  this.TopOffset=3;
71709
71719
 
71710
- this.TextMargin={ Left:0, Right:0, Top:0, Bottom:0, YOffset:4*GetDevicePixelRatio() };
71720
+ this.TextMargin={ Left:0, Right:0, Top:0, Bottom:0, YOffset:-1*GetDevicePixelRatio() };
71711
71721
 
71712
71722
  this.AlwaysShowLab=false; //总是显示标签
71713
71723
 
@@ -72281,7 +72291,7 @@ function ChartDrawHLine()
72281
72291
  }
72282
72292
 
72283
72293
  var xText=rtBG.Left+this.TextMargin.Left;
72284
- var yText=rtBG.Top+this.TextMargin.Top+this.TextMargin.YOffset;
72294
+ var yText=rtBG.Bottom-this.TextMargin.Bottom+this.TextMargin.YOffset;
72285
72295
 
72286
72296
  if (this.ButtonPosition==1)
72287
72297
  {
@@ -72294,7 +72304,7 @@ function ChartDrawHLine()
72294
72304
 
72295
72305
  this.Canvas.fillStyle=this.ValueTextColor
72296
72306
  this.Canvas.textAlign="left";
72297
- this.Canvas.textBaseline="top";
72307
+ this.Canvas.textBaseline="bottom";
72298
72308
  this.Canvas.fillText(strValue,xText,yText);
72299
72309
 
72300
72310
  rtDraw.Left=rtBG.Left;
@@ -140612,6 +140622,12 @@ function JSReportChart(divElement)
140612
140622
  if (IFrameSplitOperator.IsNumber(option.TextOverflowStyle)) reportChart.TextOverflowStyle=option.TextOverflowStyle;
140613
140623
  if (IFrameSplitOperator.IsNumber(option.MultiSelectModel)) reportChart.MultiSelectModel=option.MultiSelectModel;
140614
140624
  if (IFrameSplitOperator.IsNumber(option.SelectedStyle)) reportChart.SelectedStyle=option.SelectedStyle;
140625
+
140626
+ if (option.BottomTab)
140627
+ {
140628
+ var item=option.BottomTab;
140629
+ if (IFrameSplitOperator.IsBool(item.IsShow)) reportChart.Tab.IsShow=item.IsShow;
140630
+ }
140615
140631
  }
140616
140632
 
140617
140633
  this.SetChartBorder(chart, option);
@@ -141208,7 +141224,7 @@ function JSReportChartContainer(uielement)
141208
141224
  if (IFrameSplitOperator.IsNumber(option.BorderLine)) this.Frame.BorderLine=option.BorderLine; //边框
141209
141225
  if (IFrameSplitOperator.IsBool(option.TabShow)) chart.Tab.IsShow=option.TabShow;
141210
141226
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
141211
- if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
141227
+
141212
141228
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
141213
141229
  if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
141214
141230
 
@@ -141225,6 +141241,14 @@ function JSReportChartContainer(uielement)
141225
141241
  ++chart.FixedRowCount;
141226
141242
  }
141227
141243
  }
141244
+
141245
+ if (option.CellBorder)
141246
+ {
141247
+ var item=option.CellBorder;
141248
+ if (IFrameSplitOperator.IsBool(item.IsShowVLine)) chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;
141249
+ if (IFrameSplitOperator.IsBool(item.IsShowHLine)) chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;
141250
+ if (IFrameSplitOperator.IsBool(item.IsFullLine)) chart.CellBorderConfig.IsFullLine=item.IsFullLine;
141251
+ }
141228
141252
  }
141229
141253
 
141230
141254
  var bRegisterKeydown=true;
@@ -145565,9 +145589,10 @@ function ChartReport()
145565
145589
  this.SelectedRowData; //{ DataIndex:, Index:, Symbol: }
145566
145590
  this.SelectedFixedRow=-1; //选中固定行ID
145567
145591
  this.SelectedStyle=1; //选中行样式 1=整行填充 2=底部绘制直线
145568
- this.IsDrawBorder=1; //是否绘制单元格边框
145569
145592
  this.HeaderRowCount=1; //表头行数
145570
145593
 
145594
+ this.CellBorderConfig={ IsShowVLine:true, IsShowHLine:true, IsFullLine:true }; //单元格边框 IsShowHLine=横线 IsShowVLine=竖向
145595
+
145571
145596
  //多选模式
145572
145597
  this.MultiSelectModel=0; //0=禁用 1=开启
145573
145598
  this.MultiSelectedRow=[]; //选中行
@@ -146253,6 +146278,7 @@ function ChartReport()
146253
146278
  this.AryFullSelectedRow=[];
146254
146279
  this.DevicePixelRatio=GetDevicePixelRatio()
146255
146280
  this.LastMouseStatus=lastMouseStatus;
146281
+ this.DrawRowCount=0;
146256
146282
  this.CreateTempCache();
146257
146283
 
146258
146284
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
@@ -146772,7 +146798,7 @@ function ChartReport()
146772
146798
 
146773
146799
  this.DrawBorder=function()
146774
146800
  {
146775
- if (!this.IsDrawBorder) return;
146801
+ if (!this.CellBorderConfig.IsShowHLine && !this.CellBorderConfig.IsShowVLine) return;
146776
146802
 
146777
146803
  var left=this.RectClient.Left;
146778
146804
  var right=this.RectClient.Right;
@@ -146781,53 +146807,60 @@ function ChartReport()
146781
146807
 
146782
146808
  this.Canvas.strokeStyle=this.BorderColor;
146783
146809
  this.Canvas.beginPath();
146784
-
146785
- this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146786
- this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146810
+ var rowCount=this.RowCount;
146811
+ if (!this.CellBorderConfig.IsFullLine) rowCount=this.DrawRowCount;
146787
146812
 
146788
- var rowTop=top+this.HeaderHeight+this.RowHeight;
146789
- var rotBottom=rowTop;
146790
- for(var i=0;i<this.FixedRowCount;++i)
146813
+ if (this.CellBorderConfig.IsShowHLine) //横线
146791
146814
  {
146792
- var drawTop=ToFixedPoint(rowTop);
146793
- this.Canvas.moveTo(left,drawTop);
146794
- this.Canvas.lineTo(right,drawTop);
146795
- rotBottom=rowTop;
146796
- rowTop+=this.FixedRowHeight;
146797
- }
146815
+ this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146816
+ this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146798
146817
 
146799
- var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146800
- var rotBottom=rowTop;
146801
- //横线
146802
- for(var i=0;i<this.RowCount;++i)
146803
- {
146804
- var drawTop=ToFixedPoint(rowTop);
146805
- this.Canvas.moveTo(left,drawTop);
146806
- this.Canvas.lineTo(right,drawTop);
146807
- rotBottom=rowTop;
146808
- rowTop+=this.RowHeight;
146818
+ var rowTop=top+this.HeaderHeight+this.RowHeight;
146819
+ var rotBottom=rowTop;
146820
+ for(var i=0;i<this.FixedRowCount;++i)
146821
+ {
146822
+ var drawTop=ToFixedPoint(rowTop);
146823
+ this.Canvas.moveTo(left,drawTop);
146824
+ this.Canvas.lineTo(right,drawTop);
146825
+ rotBottom=rowTop;
146826
+ rowTop+=this.FixedRowHeight;
146827
+ }
146828
+
146829
+ var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146830
+ var rotBottom=rowTop;
146831
+ //横线
146832
+ for(var i=0;i<rowCount;++i)
146833
+ {
146834
+ var drawTop=ToFixedPoint(rowTop);
146835
+ this.Canvas.moveTo(left,drawTop);
146836
+ this.Canvas.lineTo(right,drawTop);
146837
+ rotBottom=rowTop;
146838
+ rowTop+=this.RowHeight;
146839
+ }
146809
146840
  }
146810
146841
 
146811
- //竖线
146812
- var columnLeft=left;
146813
- for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146842
+ if (this.CellBorderConfig.IsShowVLine) //竖线
146814
146843
  {
146815
- var item=this.Column[i];
146816
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146817
- this.Canvas.moveTo(drawLeft,top);
146818
- this.Canvas.lineTo(drawLeft,rotBottom);
146844
+ var columnLeft=left;
146845
+ for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146846
+ {
146847
+ var item=this.Column[i];
146848
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146849
+ this.Canvas.moveTo(drawLeft,top);
146850
+ this.Canvas.lineTo(drawLeft,rotBottom);
146819
146851
 
146820
- columnLeft+=item.Width;
146821
- }
146852
+ columnLeft+=item.Width;
146853
+ }
146822
146854
 
146823
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146824
- {
146825
- var item=this.Column[i];
146826
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146827
- this.Canvas.moveTo(drawLeft,top);
146828
- this.Canvas.lineTo(drawLeft,rotBottom);
146855
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146856
+ {
146857
+ var item=this.Column[i];
146858
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146859
+ this.Canvas.moveTo(drawLeft,top);
146860
+ this.Canvas.lineTo(drawLeft,rotBottom);
146829
146861
 
146830
- columnLeft+=item.Width;
146862
+ columnLeft+=item.Width;
146863
+ }
146831
146864
  }
146832
146865
 
146833
146866
  this.Canvas.stroke();
@@ -146954,6 +146987,7 @@ function ChartReport()
146954
146987
  this.ShowSymbol.push( { Index:i, Symbol:symbol } );
146955
146988
 
146956
146989
  textTop+=this.RowHeight;
146990
+ ++this.DrawRowCount;
146957
146991
  }
146958
146992
  }
146959
146993
 
@@ -154209,7 +154243,7 @@ function ScrollBarBGChart()
154209
154243
 
154210
154244
 
154211
154245
 
154212
- var HQCHART_VERSION="1.1.15224";
154246
+ var HQCHART_VERSION="1.1.15234";
154213
154247
 
154214
154248
  function PrintHQChartVersion()
154215
154249
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15224";
8
+ var HQCHART_VERSION="1.1.15234";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -13985,8 +13985,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13985
13985
  event.Callback(event, sendData, this);
13986
13986
  }
13987
13987
 
13988
- if (option.Update && this.Update) this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13989
- else if (option.Draw==true || option.Redraw==true) this.Draw(); //是否立即重绘
13988
+ if (option.Update && this.Update)
13989
+ {
13990
+ this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13991
+ }
13992
+ else if (option.Draw==true || option.Redraw==true)
13993
+ {
13994
+ this.ResetFrameXYSplit(); //重新计算分割线
13995
+ this.Draw(); //是否立即重绘
13996
+ }
13990
13997
 
13991
13998
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
13992
13999
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
@@ -39774,38 +39781,41 @@ function ChartMinuteVolumBar()
39774
39781
  if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
39775
39782
  var unit=this.GetVolUnit();
39776
39783
 
39777
- for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
39784
+ if (data && IFrameSplitOperator.IsNonEmptyArray(data.Data))
39778
39785
  {
39779
- var item = data.Data[i];
39780
- var vol=null;
39781
- if (!item) continue;
39782
- var price=null;
39786
+ for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
39787
+ {
39788
+ var item = data.Data[i];
39789
+ var vol=null;
39790
+ if (!item) continue;
39791
+ var price=null;
39783
39792
 
39784
- vol=item.Vol/unit;
39785
- price=item.Close;
39786
-
39787
- if (!vol) continue;
39793
+ vol=item.Vol/unit;
39794
+ price=item.Close;
39795
+
39796
+ if (!vol) continue;
39788
39797
 
39789
- var y=this.ChartFrame.GetYFromData(vol);
39790
- var x=this.ChartFrame.GetXFromIndex(j);
39791
- if (x>chartright) break;
39798
+ var y=this.ChartFrame.GetYFromData(vol);
39799
+ var x=this.ChartFrame.GetXFromIndex(j);
39800
+ if (x>chartright) break;
39792
39801
 
39793
- //价格>=上一分钟价格 红色 否则绿色
39794
- if (!bShowColorBar) this.Canvas.strokeStyle = this.GetMinuteBarColor(price, yPrice);
39802
+ //价格>=上一分钟价格 红色 否则绿色
39803
+ if (!bShowColorBar) this.Canvas.strokeStyle = this.GetMinuteBarColor(price, yPrice);
39795
39804
 
39796
- this.Canvas.beginPath();
39797
- if (isHScreen)
39798
- {
39799
- this.Canvas.moveTo(y,ToFixedPoint(x));
39800
- this.Canvas.lineTo(yBottom,ToFixedPoint(x));
39801
- }
39802
- else
39803
- {
39804
- this.Canvas.moveTo(ToFixedPoint(x),y);
39805
- this.Canvas.lineTo(ToFixedPoint(x),yBottom);
39805
+ this.Canvas.beginPath();
39806
+ if (isHScreen)
39807
+ {
39808
+ this.Canvas.moveTo(y,ToFixedPoint(x));
39809
+ this.Canvas.lineTo(yBottom,ToFixedPoint(x));
39810
+ }
39811
+ else
39812
+ {
39813
+ this.Canvas.moveTo(ToFixedPoint(x),y);
39814
+ this.Canvas.lineTo(ToFixedPoint(x),yBottom);
39815
+ }
39816
+ this.Canvas.stroke();
39817
+ if (price) yPrice=price;
39806
39818
  }
39807
- this.Canvas.stroke();
39808
- if (price) yPrice=price;
39809
39819
  }
39810
39820
 
39811
39821
  this.DrawAfterClose();
@@ -71751,7 +71761,7 @@ function ChartDrawHLine()
71751
71761
  this.ButtonSpace=3;
71752
71762
  this.TopOffset=3;
71753
71763
 
71754
- this.TextMargin={ Left:0, Right:0, Top:0, Bottom:0, YOffset:4*GetDevicePixelRatio() };
71764
+ this.TextMargin={ Left:0, Right:0, Top:0, Bottom:0, YOffset:-1*GetDevicePixelRatio() };
71755
71765
 
71756
71766
  this.AlwaysShowLab=false; //总是显示标签
71757
71767
 
@@ -72325,7 +72335,7 @@ function ChartDrawHLine()
72325
72335
  }
72326
72336
 
72327
72337
  var xText=rtBG.Left+this.TextMargin.Left;
72328
- var yText=rtBG.Top+this.TextMargin.Top+this.TextMargin.YOffset;
72338
+ var yText=rtBG.Bottom-this.TextMargin.Bottom+this.TextMargin.YOffset;
72329
72339
 
72330
72340
  if (this.ButtonPosition==1)
72331
72341
  {
@@ -72338,7 +72348,7 @@ function ChartDrawHLine()
72338
72348
 
72339
72349
  this.Canvas.fillStyle=this.ValueTextColor
72340
72350
  this.Canvas.textAlign="left";
72341
- this.Canvas.textBaseline="top";
72351
+ this.Canvas.textBaseline="bottom";
72342
72352
  this.Canvas.fillText(strValue,xText,yText);
72343
72353
 
72344
72354
  rtDraw.Left=rtBG.Left;
@@ -140656,6 +140666,12 @@ function JSReportChart(divElement)
140656
140666
  if (IFrameSplitOperator.IsNumber(option.TextOverflowStyle)) reportChart.TextOverflowStyle=option.TextOverflowStyle;
140657
140667
  if (IFrameSplitOperator.IsNumber(option.MultiSelectModel)) reportChart.MultiSelectModel=option.MultiSelectModel;
140658
140668
  if (IFrameSplitOperator.IsNumber(option.SelectedStyle)) reportChart.SelectedStyle=option.SelectedStyle;
140669
+
140670
+ if (option.BottomTab)
140671
+ {
140672
+ var item=option.BottomTab;
140673
+ if (IFrameSplitOperator.IsBool(item.IsShow)) reportChart.Tab.IsShow=item.IsShow;
140674
+ }
140659
140675
  }
140660
140676
 
140661
140677
  this.SetChartBorder(chart, option);
@@ -141252,7 +141268,7 @@ function JSReportChartContainer(uielement)
141252
141268
  if (IFrameSplitOperator.IsNumber(option.BorderLine)) this.Frame.BorderLine=option.BorderLine; //边框
141253
141269
  if (IFrameSplitOperator.IsBool(option.TabShow)) chart.Tab.IsShow=option.TabShow;
141254
141270
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
141255
- if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
141271
+
141256
141272
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
141257
141273
  if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
141258
141274
 
@@ -141269,6 +141285,14 @@ function JSReportChartContainer(uielement)
141269
141285
  ++chart.FixedRowCount;
141270
141286
  }
141271
141287
  }
141288
+
141289
+ if (option.CellBorder)
141290
+ {
141291
+ var item=option.CellBorder;
141292
+ if (IFrameSplitOperator.IsBool(item.IsShowVLine)) chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;
141293
+ if (IFrameSplitOperator.IsBool(item.IsShowHLine)) chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;
141294
+ if (IFrameSplitOperator.IsBool(item.IsFullLine)) chart.CellBorderConfig.IsFullLine=item.IsFullLine;
141295
+ }
141272
141296
  }
141273
141297
 
141274
141298
  var bRegisterKeydown=true;
@@ -145609,9 +145633,10 @@ function ChartReport()
145609
145633
  this.SelectedRowData; //{ DataIndex:, Index:, Symbol: }
145610
145634
  this.SelectedFixedRow=-1; //选中固定行ID
145611
145635
  this.SelectedStyle=1; //选中行样式 1=整行填充 2=底部绘制直线
145612
- this.IsDrawBorder=1; //是否绘制单元格边框
145613
145636
  this.HeaderRowCount=1; //表头行数
145614
145637
 
145638
+ this.CellBorderConfig={ IsShowVLine:true, IsShowHLine:true, IsFullLine:true }; //单元格边框 IsShowHLine=横线 IsShowVLine=竖向
145639
+
145615
145640
  //多选模式
145616
145641
  this.MultiSelectModel=0; //0=禁用 1=开启
145617
145642
  this.MultiSelectedRow=[]; //选中行
@@ -146297,6 +146322,7 @@ function ChartReport()
146297
146322
  this.AryFullSelectedRow=[];
146298
146323
  this.DevicePixelRatio=GetDevicePixelRatio()
146299
146324
  this.LastMouseStatus=lastMouseStatus;
146325
+ this.DrawRowCount=0;
146300
146326
  this.CreateTempCache();
146301
146327
 
146302
146328
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
@@ -146816,7 +146842,7 @@ function ChartReport()
146816
146842
 
146817
146843
  this.DrawBorder=function()
146818
146844
  {
146819
- if (!this.IsDrawBorder) return;
146845
+ if (!this.CellBorderConfig.IsShowHLine && !this.CellBorderConfig.IsShowVLine) return;
146820
146846
 
146821
146847
  var left=this.RectClient.Left;
146822
146848
  var right=this.RectClient.Right;
@@ -146825,53 +146851,60 @@ function ChartReport()
146825
146851
 
146826
146852
  this.Canvas.strokeStyle=this.BorderColor;
146827
146853
  this.Canvas.beginPath();
146828
-
146829
- this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146830
- this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146854
+ var rowCount=this.RowCount;
146855
+ if (!this.CellBorderConfig.IsFullLine) rowCount=this.DrawRowCount;
146831
146856
 
146832
- var rowTop=top+this.HeaderHeight+this.RowHeight;
146833
- var rotBottom=rowTop;
146834
- for(var i=0;i<this.FixedRowCount;++i)
146857
+ if (this.CellBorderConfig.IsShowHLine) //横线
146835
146858
  {
146836
- var drawTop=ToFixedPoint(rowTop);
146837
- this.Canvas.moveTo(left,drawTop);
146838
- this.Canvas.lineTo(right,drawTop);
146839
- rotBottom=rowTop;
146840
- rowTop+=this.FixedRowHeight;
146841
- }
146859
+ this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146860
+ this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146842
146861
 
146843
- var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146844
- var rotBottom=rowTop;
146845
- //横线
146846
- for(var i=0;i<this.RowCount;++i)
146847
- {
146848
- var drawTop=ToFixedPoint(rowTop);
146849
- this.Canvas.moveTo(left,drawTop);
146850
- this.Canvas.lineTo(right,drawTop);
146851
- rotBottom=rowTop;
146852
- rowTop+=this.RowHeight;
146862
+ var rowTop=top+this.HeaderHeight+this.RowHeight;
146863
+ var rotBottom=rowTop;
146864
+ for(var i=0;i<this.FixedRowCount;++i)
146865
+ {
146866
+ var drawTop=ToFixedPoint(rowTop);
146867
+ this.Canvas.moveTo(left,drawTop);
146868
+ this.Canvas.lineTo(right,drawTop);
146869
+ rotBottom=rowTop;
146870
+ rowTop+=this.FixedRowHeight;
146871
+ }
146872
+
146873
+ var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146874
+ var rotBottom=rowTop;
146875
+ //横线
146876
+ for(var i=0;i<rowCount;++i)
146877
+ {
146878
+ var drawTop=ToFixedPoint(rowTop);
146879
+ this.Canvas.moveTo(left,drawTop);
146880
+ this.Canvas.lineTo(right,drawTop);
146881
+ rotBottom=rowTop;
146882
+ rowTop+=this.RowHeight;
146883
+ }
146853
146884
  }
146854
146885
 
146855
- //竖线
146856
- var columnLeft=left;
146857
- for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146886
+ if (this.CellBorderConfig.IsShowVLine) //竖线
146858
146887
  {
146859
- var item=this.Column[i];
146860
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146861
- this.Canvas.moveTo(drawLeft,top);
146862
- this.Canvas.lineTo(drawLeft,rotBottom);
146888
+ var columnLeft=left;
146889
+ for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146890
+ {
146891
+ var item=this.Column[i];
146892
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146893
+ this.Canvas.moveTo(drawLeft,top);
146894
+ this.Canvas.lineTo(drawLeft,rotBottom);
146863
146895
 
146864
- columnLeft+=item.Width;
146865
- }
146896
+ columnLeft+=item.Width;
146897
+ }
146866
146898
 
146867
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146868
- {
146869
- var item=this.Column[i];
146870
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146871
- this.Canvas.moveTo(drawLeft,top);
146872
- this.Canvas.lineTo(drawLeft,rotBottom);
146899
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146900
+ {
146901
+ var item=this.Column[i];
146902
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146903
+ this.Canvas.moveTo(drawLeft,top);
146904
+ this.Canvas.lineTo(drawLeft,rotBottom);
146873
146905
 
146874
- columnLeft+=item.Width;
146906
+ columnLeft+=item.Width;
146907
+ }
146875
146908
  }
146876
146909
 
146877
146910
  this.Canvas.stroke();
@@ -146998,6 +147031,7 @@ function ChartReport()
146998
147031
  this.ShowSymbol.push( { Index:i, Symbol:symbol } );
146999
147032
 
147000
147033
  textTop+=this.RowHeight;
147034
+ ++this.DrawRowCount;
147001
147035
  }
147002
147036
  }
147003
147037
 
@@ -166266,7 +166300,7 @@ function HQChartScriptWorker()
166266
166300
 
166267
166301
 
166268
166302
 
166269
- var HQCHART_VERSION="1.1.15224";
166303
+ var HQCHART_VERSION="1.1.15234";
166270
166304
 
166271
166305
  function PrintHQChartVersion()
166272
166306
  {