天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 648|回复: 2

[已解决] 关于统计图的使用请教和数值反映异常

[复制链接]
网络菜菜 发表于 2026-1-2 17:02:17 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1- F社区免费版
【浏览器类型】:Chrome/其他
【联系方式-QQ】:260217944
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:工程师,您好!我想用统计图直观反映近5年的费用使用情况。通过应用样例修改,1:但按年份查出来的sql的金额合计差额巨大,统计不全;2:如果我要用5个sql分别查5年的金额请问要在哪里归整5个柱状图;3:抄过来的代码其中一句(var datas = service.queryDataSourceSQL("机施OA_MsSQL",sql,"        __L57ucdLl0mNUOTNRoyl");)中的参数想请教是哪来的,前都我用了数据源,后者用了视图的id?

如下是我抄的代码
  1. (function(){
  2. //定义一个数组
  3. var amountList = [];
  4. //var clazzList = [];
  5. //var chineseList = [];
  6. //var mathsList = [];
  7. try{
  8.   var sql = "select * from  `mssql`.`费用管理2025`";
  9.   println(sql);
  10.   var service = Packages.cn.myapps.designtime.common.service.DesignTimeServiceFactory.resolve("cn.myapps.designtime.datasource.service.DataSourceDesignTimeService");
  11. var datas = queryByDSName("机施OA_MsSQL",sql);
  12. //  var datas = service.queryDataSourceSQL("机施OA_MsSQL",sql,"        __L57ucdLl0mNUOTNRoyl");
  13.   println(datas);
  14.   
  15.   if(datas!=null){
  16.      for(var iterator = datas.iterator();iterator.hasNext();){
  17.          var map1 = iterator.next();//取值
  18.          var amount= map1.get("金额合计");
  19. //         var clazz = map1.get("item_班级");
  20. //         var chinese = map1.get("item_语文");
  21. //         var maths = map1.get("item_数学");
  22.        //往数组里塞值
  23.         amountList.push(new String(amount));
  24. //         clazzList.push(new String(clazz));
  25. //         chineseList.push(new String(chinese));
  26. //         mathsList.push(new String(maths));
  27.       }
  28.   }
  29. }catch(e){}

  30. println("金额合计:" + amountList);
  31. //println("chineseList:" + chineseList);
  32. var option =  {
  33.     title : {
  34.         text: '年度费用使用',
  35.         subtext: '近5年费用比较'
  36.     },
  37.     tooltip : {
  38.         trigger: 'axis'
  39.     },
  40.     legend: {
  41.         data: 'amountList'
  42.     },
  43.     toolbox: {
  44.         show : true,
  45.         feature : {
  46.             mark : {show: true},
  47.             dataView : {show: true, readOnly: false},
  48.             magicType : {show: true, type: ['line', 'bar']},
  49.             restore : {show: true},
  50.             saveAsImage : {show: true}
  51.         }
  52.     },
  53.     calculable : true,
  54.     xAxis : [
  55.         {
  56.             type : 'category',
  57. //            boundaryGap : false,
  58.             data : ['2025年','2024年','2023年','2022年','2021年']
  59.         }
  60.     ],
  61.     yAxis : [
  62.         {
  63.             type : 'value',
  64. //            axisLabel : {
  65. //                formatter: '{value}'
  66. //            }
  67.         }
  68.     ],
  69.     series : [
  70.         {
  71.             name:'合计',
  72.             type:'bar',
  73. //            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
  74.             data:amountList,
  75.             markPoint : {
  76.                 data : [
  77.                     {type : 'max', name: '最大值'},
  78.                     {type : 'min', name: '最小值'}
  79.                 ]
  80.             },
  81.             markLine : {
  82.                 data : [
  83.                     {type : 'average', name: '平均值'}
  84.                 ]
  85.             }
  86.         }
  87.     ]
  88. };
  89. return option;
  90. })()
复制代码












1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\\\\\\\"已解决可结帖\\\\\\\"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
 楼主| 网络菜菜 发表于 2026-1-13 10:51:43 | 显示全部楼层
在论坛抄了个代码,求总值的,如下
  1.   var sql2025 = "select sum(金额合计) as item_金额合计 from `mssql`.`费用管理2025`";
  2.   println(sql2025);
  3.   var datas = queryByDSName("机施OA_MsSQL",sql2025);
  4.   println(datas);
  5.   var value2025 = sumBySQL(sql2025);
  6.   value2025= round(value2025,2);
  7.   println("金额合计:" + parseDouble(value2025));
复制代码


代码最尾尝试用转换格式,但没有成功,想变成不是用科学计数法输出



补充内容 (2026-1-13 17:04):
还有,不知为何,代码中04.  这行println(datas); 如果注释掉,后续就无法统计金额合计出来?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
 楼主| 网络菜菜 发表于 2026-1-14 11:20:32 | 显示全部楼层
\\\\\\\"已解决可结帖\\\\\\\  用了一些笨方法,不过可以实现到,如果群友有更优解,可以分享下。打印输出为科学计数法无所谓,在后面推入数组时,自己变回友好的数字显示。

  1. (function(){
  2. //定义一个数组
  3. var amountList = [];

  4. try{
  5.   var sql2025 = "select sum(金额合计) as item_金额合计 from `mssql`.`费用管理2025`";
  6.   var datas2025 = queryByDSName("机施OA_MsSQL",sql2025);
  7.   println(datas2025);
  8.   for(var itor = datas2025.iterator();itor.hasNext();){
  9.       var item = itor.next();
  10.       var aa = item.get('item_金额合计');
  11.   }
  12.   println(aa);
  13.   amountList.push(new String(aa));            //往数组里塞值
  14.   
  15.   var sql2024 = "select sum(金额合计) as item_金额合计 from `mssql`.`费用管理2024`";
  16.   var datas2024 = queryByDSName("机施OA_MsSQL",sql2024);
  17.   println(datas2024);
  18.     for(var itor = datas2024.iterator();itor.hasNext();){
  19.       var item = itor.next();
  20.       var bb = item.get('item_金额合计');
  21.   }
  22.   println(bb);
  23.   amountList.push(new String(bb));
  24.   
  25.   var sql2023 = "select sum(金额合计) as item_金额合计 from `mssql`.`费用管理2023`";
  26.   var datas2023 = queryByDSName("机施OA_MsSQL",sql2023);
  27.   println(datas2023);
  28.     for(var itor = datas2023.iterator();itor.hasNext();){
  29.       var item = itor.next();
  30.       var cc = item.get('item_金额合计');
  31.   }
  32.   println(cc);
  33.   amountList.push(new String(cc));
  34.   
  35.   var sql2022 = "select sum(金额合计) as item_金额合计 from `mssql`.`费用管理2022`";
  36.   var datas2022 = queryByDSName("机施OA_MsSQL",sql2022);
  37.   println(datas2022);
  38.     for(var itor = datas2022.iterator();itor.hasNext();){
  39.       var item = itor.next();
  40.       var dd = item.get('item_金额合计');
  41.   }
  42.   println(dd);
  43.   amountList.push(new String(dd));
  44.   
  45.   var sql2021 = "select sum(金额合计) as item_金额合计 from `mssql`.`费用管理2021`";
  46.   var datas2021 = queryByDSName("机施OA_MsSQL",sql2021);
  47.   println(datas2021);
  48.     for(var itor = datas2021.iterator();itor.hasNext();){
  49.       var item = itor.next();
  50.       var ee = item.get('item_金额合计');
  51.   }
  52.   println(ee);
  53.   amountList.push(new String(ee));

  54. }catch(e){}

  55. //println("金额合计:" + amountList);
  56. //println("chineseList:" + chineseList);
  57. var option =  {
  58.     title : {
  59.         text: '年度费用使用',
  60.         subtext: '近5年费用比较'
  61.     },
  62.     tooltip : {
  63.         trigger: 'axis'
  64.     },
  65.     legend: {
  66.         data: 'amountList'
  67.     },
  68.     toolbox: {
  69.         show : true,
  70.         feature : {
  71.             mark : {show: true},
  72.             dataView : {show: true, readOnly: false},
  73.             magicType : {show: true, type: ['line', 'bar']},
  74.             restore : {show: true},
  75.             saveAsImage : {show: true}
  76.         }
  77.     },
  78.     calculable : true,
  79.     xAxis : [
  80.         {
  81.             type : 'category',
  82. //            boundaryGap : false,
  83.             data : ['2025年','2024年','2023年','2022年','2021年']
  84.         }
  85.     ],
  86.     yAxis : [
  87.         {
  88.             type : 'value',
  89.             axisLabel : {
  90.                 formatter: '{value}'
  91.             }
  92.         }
  93.     ],
  94.     series : [
  95.         {
  96.             name : '合计',
  97.             type : 'bar',
  98. //            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
  99.             data : amountList,
  100.             markPoint : {
  101.                 data : [
  102.                     {type : 'max', name: '最大值'},
  103.                     {type : 'min', name: '最小值'}
  104.                 ]
  105.             },
  106.             markLine : {
  107.                 data : [
  108.                     {type : 'average', name: '平均值'}
  109.                 ]
  110.             }
  111.         }
  112.     ]
  113. };
  114. return option;
  115. })()
复制代码

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 07:38

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表