找回密码
 立即注册

QQ登录

只需一步,快速开始

rjy2631279

初级会员

38

主题

132

帖子

476

积分

初级会员

积分
476
rjy2631279
初级会员   /  发表于:2020-5-13 15:44  /   查看:7264  /  回复:10
1金币
在很多业务场景中都需要有一个可以输入计算公式自动计算结果的需求,研究了很久以后做了一个demo,应该可以帮助到大家,效果详见动图。工程案例文件已上传。需要6.0版本可打开。

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

评分

参与人数 1金币 +66 收起 理由
Erik.Xue + 66 很给力!

查看全部评分

10 个回复

倒序浏览
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2020-5-13 16:09:42
沙发
感谢大佬的支持~
回复 使用道具 举报
LukeLiu
超级版主   /  发表于:2020-5-13 16:17:33
板凳
本帖最后由 LukeLiu 于 2020-6-3 15:34 编辑

预计又一篇爆款贴诞生


如果路过的看客们在苦苦寻觅:如何在页面表格中实现通过输入的加减乘除表达式自动计算得出结果。此贴简直就是楼主给咱们的福利。

下一步,咱们可以考虑再完善完善,让它更好,比如:



比如:
  1. // 配置部分
  2. const TABLENAME = "表格1"
  3. const INPUT_COLUMNNMAE = "计算公式"
  4. const OUTPUT_COLUMNNAME = "COLUMN"
  5. const ERR_INFO = "输入错误"

  6. // 正则验证组
  7. const VERIFYURULES = [/^[+*/-]?\d+(\.*\d{0,2})/i]

  8. function getEvaluateResult(inputStr, verifyRules, errStr) {
  9.     let verifyResults = verifyRules && verifyRules.map(rule => rule.test(inputStr))
  10.     return verifyResults && verifyResults.every(i => i) ? eval(inputStr) : errStr
  11. }

  12. function getCurrentRowInput(listview, inputColumnName) {
  13.     let currentRowindex = listview.getSelectedRowIndex()
  14.     let cellStr = listview.getValue(currentRowindex, inputColumnName)
  15.     return {currentRowindex, cellStr}
  16. }


  17. let listview = Forguncy.Page.getListView(TABLENAME)

  18. let  {currentRowindex, cellStr} = listview && getCurrentRowInput(listview, INPUT_COLUMNNMAE)
  19. listview.setValue(currentRowindex, OUTPUT_COLUMNNAME, getEvaluateResult(cellStr, VERIFYURULES, ERR_INFO))
复制代码


效果展示:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
hubei333
高级会员   /  发表于:2020-5-13 22:08:24
地板
好东西啊,下载收藏来学习了!谢谢分享!
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-5-14 09:16:00
5#
感谢分享~
回复 使用道具 举报
rjy2631279
初级会员   /  发表于:2020-5-15 10:09:09
6#
更新后的版本来了,不用担心恶意代码的执行。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
LukeLiu
超级版主   /  发表于:2020-5-15 10:11:11
7#
rjy2631279 发表于 2020-5-15 10:09
更新后的版本来了,不用担心恶意代码的执行。

暴击键盘只为回复俩字:优秀!

感谢楼主的分享~!
回复 使用道具 举报
Freya.Li
中级会员   /  发表于:2022-2-8 14:30:49
8#
再提供一种思路,可以使用自定义函数来实现
我们自己实现一个EVALVALUE函数,用来计算




工程文件见附件



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
13794930121活字格认证
银牌会员   /  发表于:2022-6-16 11:43:01
9#
rjy2631279 发表于 2020-5-15 10:09
更新后的版本来了,不用担心恶意代码的执行。

出了一个问题,如果表格点回车会报NULL,原因是表格操作,改为回车后,单元格横移。。
回复 使用道具 举报
13794930121活字格认证
银牌会员   /  发表于:2022-6-16 11:43:25
10#
感谢大佬,,我又学习到一个新的知识;;;;
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部