`
fengzhizi715
  • 浏览: 159760 次
  • 性别: Icon_minigender_1
  • 来自: 上海 苏州
社区版块
存档分类
最新评论

使用grails ui实现柱状图

阅读更多
grails ui的插件功能众多,可以完成很多效果比如bar图、柱状图、拖拽、菜单、richEditor文本编辑等等。
我的目的是使用该插件实现柱状图,hql语句如下:
def hql ="select p.sellTime,sum(p.pureProfits) from Profit p where p.sellTime >= current_date()-7 and p.sellTime <= current_date() group by p.sellTime"

然后得到resultList:def resultList = Profit.executeQuery(hql)
我要在action中将resultList直接传到页面上:[profitChartList: resultList]
这样的做法导致,页面读取不到数据。
因为<gui:columnChart>标签中data属性存放的是一个二维数组。我们需要将resultList的结果改造成二维数组。做法如下:
        def dataList = []
        resultList.each { s->
            SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd")
            def dateStr = sdf.format(s[0])
            def bar = ['date': dateStr, 'pureProfit':s[1]]
            dataList << bar
        }

这里有必要贴出领域模型Profit类的代码:
class Profit {
    BigDecimal pureProfits //每次卖出商品的纯利润
    Date sellTime
}

我们看到sellTime是Date型的,但是在<gui:columnChart>标签中显示不出Date型的值,因此我把它转成String类型存放到数组中。

至此,该action已经完成,完整代码如下:
    def weekColumnChar ={
        def hql ="select p.sellTime,sum(p.pureProfits) from Profit p where p.sellTime >= current_date()-7 and p.sellTime <= current_date() group by p.sellTime"
        def resultList = Profit.executeQuery(hql)
        def dataList = []
        resultList.each { s->
            SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd")
            def dateStr = sdf.format(s[0])
            def bar = ['date':dateStr, 'pureProfit':s[1]]
            dataList << bar
        }
        [profitChartList: dataList]
    }


前台gsp页面如下:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <meta name="layout" content="main" />
        <title>最近七天利润柱状图</title>
    <gui:resources components="['chart']" mode='debug'/>
</head>

<body class='yui-skin-sam'>
    <div class="nav">
        <span class="menuButton"><g:link class="home" controller="management" action="main">返回主菜单</g:link></span>
    </div>

    <div class="body">

        <h1>最近七天利润柱状图</h1>
        <div id='columnChart' style="width:600px; height: 300px"></div>

        <gui:columnChart
            id='myColChart'
            renderTo="columnChart"
            data="${profitChartList}"
            seriesDefs="[
            [
            pureProfit:'The pure profit',
            style:[
            image: 'images/tube.png',
            mode: 'no-repeat',
            color: 0xc2d81e,
            size: 40
            ]
            ]
            ]"
            style="[
            border: [color: 0x96acb4, size: 12],
            font: [name: 'Arial Black', size: 14, color: 0x586b71],
            dataTip:
            [
            border: [color: 0x2e434d, size: 2],
            font: [name: 'Arial Black', size: 13, color: 0x586b71]
            ],
            xAxis:
            [
            color: 0x2e434d
            ],
            yAxis:
            [
            color: 0x2e434d,
            majorTicks: [color: 0x2e434d, length: 4],
            minorTicks: [color: 0x2e434d, length: 2],
            majorGridLines: [size: 0]
            ]
            ]"
            />
    </div>
</body>
</html>


效果图如下:



实现bar状图也是同样的道理,我实现的效果图如下:




  • 大小: 29.5 KB
  • 大小: 25.9 KB
分享到:
评论
2 楼 copoplar 2009-09-24  
好贴,支持,希望继续!
1 楼 supersnake 2009-08-02  
有图有真相
代码也详细
不错的

相关推荐

    使用 Grails 快速开发 Web 应用程序

    Grails入门好资料

    grails实现分页技术

    供初学者使用,在grails中只有list(自动生成)中有分页实现,而自己新增的页面中需自己实现分页,该文档中描述了如何实现分页以及注意点

    Grails Grails Grails

    Grails Grails Grails Grails Grails

    使用Grails快速开发Web应用

    Grails开发Web应用的入门建立兴趣的最佳教程。

    使用Grails快速开发Web应用.rar

    易于使用的基于Hibernate的对象-关系映射(ORM)层称为Groovy Server Pages (GSP)的表现层技术基于Spring MVC的控制器层构建于Gant 上的命令行脚本运行环境内置Jetty服务器,不用重新启动服务器就可以进行重新加载利用...

    Java程序员使用Grails的十大优势

    Web开发方面没有王者,PHP市场很大,但RoR,Python,Java,及至Asp.net都占据着一方市场.那么作为Java程序员,当你不想使用SSH做网站的时候,尝试一下Grails吧,这里是Java程序员使用Grails的十大优势

    Eclipse下搭建Grails项目

    Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。

    在Eclipse里使用Grails类创建工具.pdf

    我们知道,在 Grails 项目中使用Grails类创建工具如“grails create-domain-class”等,能 帮我们创建domain、service 和controller等类及它们的测试类及其他。因此,我们在Grails 项目 中常常是使用这些工具帮我们...

    grails-shiro-ui:Grails Shiro UI 插件

    Grails Shiro UI 插件 请参阅。

    使用GORM构建Spring Boot应用程序 Grails指南_ Grails框架.pdf

    使用GORM构建Spring Boot应用程序 Grails指南_ Grails框架.pdf

    grails-开源框架使用指南

    如今的Java Web开发对于需求来说已经变得过于复杂。当今众多Java领域的Web开发框架不仅使用复杂,而且并没有很好的遵循Don’t Repeat Yourself(DRY)原则...这篇文档会向你介绍如何使用Grails框架来搭建Web应用程序。

    Grails权威指南 Grails权威指南

    Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南

    grails框架

    实际上,一个grails插件和一个grails应用基本是完全一样的,同样可以使用grails run-app命令来运行。区别仅在于一个插件的根目录下需要提供一个fooplugin.groovy文件,提供插件的一些描述信息。

    Grails 教程

    如今的Java Web开发对于需求来说已经变得过于复杂。当今众多Java领域的Web开发框架不仅使用复杂,而且并没有很好的遵循Don’t Repeat Yourself(DRY)原则...这篇文档会向你介绍如何使用Grails框架来搭建Web应用程序。

    grails使用freemarker.rar

    freemarker是一个比较好用的java模板引擎,grails也对它有很好的支持,该资源大有用处。

    Grails权威指南

     1.5 使用grails的原因  1.6 grails入门  1.6.1 运行grails命令  1.6.2 义不容辞的“hellocworld!”  1.7 单元测试  1.8 本章小结 第2章 groovy动态语言  2.1 groovy和java的异同  ...

    Grails开源框架 - 使用指南

    自己制作的《Grails开源框架 - 使用指南》CHM电子书

    Grails 3.X开发实战

    grails开发实践,欢迎下载使用 grails开发实践,欢迎下载使用 grails开发实践,欢迎下载使用

    Grails 和 jQuery开发实例

    使用 Grails 和 jQuery 快速开发一个 Web Calendar 程序。

    grails3-rest-sample:使用 Grails 3 实现的简单 REST API。SpringIO15 中使用的代码

    grails3-rest-sample 使用 Grails 3 实现的简单 REST API。SpringIO15 中使用的代码

Global site tag (gtag.js) - Google Analytics