习题4:图表  (请大佬帮忙文字描述一下具体思路和过程)

实现功能:

可以选择数据库中存在的所有年份

根据选择的年份统计出该年下每个月的订单总数、已付订单数量、月销量

根据统计的数据制作混合图表,其中已付订单数量使用折线图,月销量坐标轴在右侧

分类轴日期倾斜显示

统计表中日期从小到大排列

动态显示标题:xx年各月份销售业绩表

使用数据:

   FRDemo中的订单表与订单明细


模板效果:

习题4-效果图.png

FineReport zhaolei1209 发布于 2019-6-10 21:50
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
firegunzxLv6高级互助
发布于2019-6-11 08:30

1.设置下拉框的数据字典为年分的数据库表,显示值和实际值都取年份字段。

2.新建数据集,sql里添加where 年份=${下拉框控件名}

3.插入组合图,数据设成刚才的数据集,分类设成日期字段

4.图表-》样式-》坐标轴-》文本旋转,调整倾斜角度

5.数据集sql里 order by 日期

6.标题单元格用公式,填入 =${下拉框控件名}+"年各月份销售业绩表"

最佳回答
1
zsh331Lv8专家互助
发布于2019-6-11 09:33
最佳回答
1
誓言无悔Lv6初级互助
发布于2020-5-21 08:47


习题4:图表.cpt

select strftime('%Y-%m',订购日期) as 日期,strftime('%Y',订购日期) as 年份,
    count(订单.订单ID) as 订单数量,
    sum(case when 是否已付="true" then 1 else 0 end) as 已付订单数量,
    sum(单价*数量) as 月销量
from 订单 join 订单明细 on 订单.订单ID=订单明细.订单ID  
where 1=1 ${if(len(年份) == 0,"","and strftime('%Y',订购日期) = '" + 年份 + "'")}
group by 2,1 order by 1

按照题目的要求先建立数据集,把需要得到的数据求出来,最后设置一个年份的参数,此参数对应下拉框中的年份,建立表格,把该拖入的都拖进去,随后插入组合图(柱形-折线图),这里省略下步骤,如果不熟悉可以参看说明文档!

  • weichen009 weichen009 组合图与要求不一样
    2021-08-18 13:42 
最佳回答
0
Doctor_WeiLv7中级互助
发布于2019-6-11 08:30

功能里面描述的挺详细了呀,按照他的一步一步来就行了呀

最佳回答
0
杨春鑫Lv3见习互助
发布于2020-5-20 22:52

感觉这个题目最难的地方在与不知道如何计数吧。

我写了下边这个代码,得出了题目要求的数据:

-------------------------------------------------------------------------------

自学习题4:图表.cpt

SELECT 

strftime('%Y',c1.订购日期) as 年份,

strftime('%Y-%m',c1.订购日期) as 年月,

count(c1.订单ID) AS 订单数量,

sum(case when c1.是否已付='true' then 1 else 0 end) AS 是否已付,

sum(c2.单价*c2.数量*(1-折扣)) as 销售金额

FROM 订单 as c1 inner join 订单明细 as c2 ON c1.订单ID=c2.订单ID

group by 年月

--------------------------------------------------------------------------------

  • 7关注人数
  • 1751浏览人数
  • 最后回答于:2020-5-21 08:47
    请选择关闭问题的原因
    确定 取消
    返回顶部