发新话题
打印

chart集成完成,功能强大,堪比商业报表工具!

chart集成完成,功能强大,堪比商业报表工具!

经过一星期的工作,杰表.2008中的统计图功能,已经完全移植到简表中,此次移植,没有任何保留,功能与杰表.2008的完全一致,欢迎大家下载试用。这里要强调的是,简表的统计图功能没有开源,但可以免费使用。

简表统计图具体功能有:

  • 统计图支持多达31种统计图类型,六十多种可视化选项;
  • 支持flash、gif 、 png 、 jpeg四种导出方式;
  • 支持统计图  tooltip;
  • 支持统计图上的超链接;
  • 支持用户动态更换统计图类型;
  • 支持辅助线绘制,支持双座标,支持基线设定等等;



此次更新因为加了一些第三方包,所以建议大家到到jor官网首页上下载新版本,http://www.jatools.com/jor
当然,最新的源码也同时check到googlecode上了。

支持的统计图类型:
附件: 您所在的用户组无法下载或查看附件

TOP

简表统计图除支持自定义的数据集外,也可以支持引用本报表中的数据集节点,这样,使得多个统计图共享一个数据集成为可能,也就是说,多个统计图只需要查询一次数据库,所以,这不仅数据集定义方便,也使报表在运行时提高了效率。

此功能由本坛网友 tommy提议,深表感谢!  具体参见: http://bbs.jatools.com/viewthread.php?tid=568&extra=page%3D1

设置界面如下:
附件: 您所在的用户组无法下载或查看附件

TOP

此次更新,同时增加可视化的脚本调试功能,你只要任何在可写脚本的地方,写入 debug();
则可进行可视化调试,界面如下,具体用法以后再进行详细介绍:
附件: 您所在的用户组无法下载或查看附件

TOP

更新jor后统计图功能出错

操作过程如下:双击图表,选择数据集,选择显示数据


exception occurred during event dispatching:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at jatools.component.chart.chart.Dataset.minY(Dataset.java:700)
        at jatools.component.chart.chart.Axis.getMinValsFromData(Axis.java:1334)
        at jatools.component.chart.chart.Axis.linearScale(Axis.java:1536)
        at jatools.component.chart.chart.Axis.scale(Axis.java:1705)
        at jatools.component.chart.chart.Axis.draw(Axis.java:375)
        at jatools.component.chart.chart.BarChart.drawGraph(BarChart.java:86)
        at jatools.component.chart.chart._Chart.paint(_Chart.java:762)
        at jatools.component.chart.ChartCanvas.paintComponent(ChartCanvas.java:34)
        at jatools.component.painter.ChartPainter.paintComponent(ChartPainter.java:48)
        at jatools.component.painter.SimplePainter.paint(SimplePainter.java:100)
        at jatools.component.painter.SimplePainter.paintChild(SimplePainter.java:69)
        at jatools.component.painter.SimplePainter.paintChildren(SimplePainter.java:61)
        at jatools.component.painter.SimplePainter.paint(SimplePainter.java:101)
        at jatools.component.painter.SimplePainter.paintChild(SimplePainter.java:69)
        at jatools.component.painter.SimplePainter.paintChildren(SimplePainter.java:61)
        at jatools.component.painter.SimplePainter.paint(SimplePainter.java:101)
        at jatools.designer.layer.painter.ComponentPaintLayer.paint(ComponentPaintLayer.java:79)
        at jatools.designer.layer.painter.TopmostPaintLayer.paintComponent(TopmostPaintLayer.java:57)
        at javax.swing.JComponent.paint(JComponent.java:1006)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:559)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JViewport.paint(JViewport.java:728)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972)
        at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925)
        at javax.swing.JComponent._paintImmediately(JComponent.java:4868)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4675)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
        at java.awt.Dialog$1.run(Dialog.java:535)
        at java.awt.Dialog$2.run(Dialog.java:563)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Dialog.show(Dialog.java:561)
        at jatools.designer.componenteditor.ChartEditor.show(ChartEditor.java:61)
        at jatools.designer.layer.dbclick.DoubleClickLayer.tryWake(DoubleClickLayer.java:64)
        at jatools.designer.layer.LayerContainer.doWake(LayerContainer.java:459)
        at jatools.designer.layer.LayerContainer.mouseDoublePressed(LayerContainer.java:435)
        at jatools.designer.layer.LayerContainer._processMouseEvent(LayerContainer.java:260)
        at jatools.designer.layer.LayerContainer.processMouseEvent(LayerContainer.java:344)
        at java.awt.Component.processEvent(Component.java:5282)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3984)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3819)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3889)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:1791)
        at java.awt.Component.dispatchEvent(Component.java:3819)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

TOP

发新话题