FineReport生成钉钉链接并携带参数

前提是FineReport需要接入钉钉集成,关于FineReport的钉钉集成,官方有完整的文档说明,如下:

钉钉集成- FineReport帮助文档 – 全面的报表使用教程和学习资料 (fanruan.com)

这里主要介绍另一个相关性的问题,主要场景如下,

一个填报报表,当填写人提交后,会通过钉钉推送一条消息,以工作通知的形式发送,点击通知可以访问报表,且显示的数据就填写人提交的数据,这个时候就需要携带参数,且需要在钉钉里访问,而非跳转到浏览器访问,操作步骤如下。

1、两个报表需要先开发好,一个是填报报表,提交人填写用的。一个是查看报表,点击推送消息后访问的报表,设置好参数,通过参数能查询出对应的提交数据,参数名需要用全英文形式。

举例,填报报表是一个采购申请,每个申请单会有一个唯一的单号,这里我用的UUID,另一个是查看报表,用于查看申请,这时候可以将单号设置为参数,这里我用英文num。这样每一个申请单填报完成,都会将对应的num拼接在连接中,直接访问链接就能看到对应申请单的数据。

2、转成钉钉链接,在FineReport后台钉钉管理–应用快捷配置中,可以将自定义链接转成钉钉链接,转换后的钉钉链接,后面会带corpId,如下图:

继续阅读

宜搭中使用js语句设置事件响应动作和校验

宜搭作为低代码平台,有很多现成的组件和功能,但是仍然有一些功能的实现没那么方便。

根据选项控制文本组件是否必填:

例如一个选项组件和文本组件,选择A时设置文本组件必填,否则不是必填。

首先设置文本组件默认状态为非必填,然后记住文本组件的唯一标识,例如:textareaField_xxx

然后在单选组件中新建动作,onchange值发生变化时,将这段代码填入:

export function onChange({ value }) {
  console.log('onChange', value);

  if (value == "A") {
    this.$('textareaField_xxx').setValidation([{ type: 'required' }])
  }
  else {
    this.$('textareaField_xxx').setValidation()
  }
}

即可实现选择A时,文本组件为必填,否则为非必填。

继续阅读