润乾报表使用DIV层实现坐标差值的算法
在润乾报表统计图中,其X轴坐标并不是从展示页面的最右方0像素开始的,而是有一个偏移量像素数。这个偏移量像素数包括四个部分:
1、纵轴标题、纵轴标签、图例(如果图例在右方)、横轴起始点和横轴数据起始点之间的间隔。
在这4个影响偏移量的部分中,只有两个部分可以通过报表设计器控制:第一个是纵轴标题,可以保留其为空直接去除;第二个是图例,可以选择不显示图例去除,而纵轴标签和数据起始点间隔两个因素不能通过报表设计器来控制。
使用DIV层来控制,其基本思路是在上层的DIV层中,通过JS编程,监听鼠标拖拽事件,从而获得当前鼠标所在的X轴坐标点像素。然后通过一定的算法,转换为下层DIV中该点在统计图中对应的横轴统计图坐标。
其算法为:
(统计图中指定点对应的横轴统计图坐标值*相邻坐标值间隔像素)+ 偏移量像素数 = 上层DIV中当前坐标的横向像素数
在这个算法中,需要细化的部分是:相邻坐标值间隔像素,需要固化的部分是:偏移量像素数。
首先细化相邻坐标值间隔像素数,其值等于(数据终止点像素-数据起始点像素)/数据间隔数。
然后固化偏移量像素数,包括:
1、去除纵轴标题
2、不显示图例
3、固定纵轴标签
3、固定横轴数据点的个数
然后根据算法,解一个1元1次方程即可倒推出横轴统计图的坐标值,然后可将该值传入其他报表做进一步的分析和运算。