开发者社区> 问答> 正文

宜搭在同一个流程表单内,怎么实现根据条件,去搜索表单内符合条件的实例数量

宜搭在同一个流程表单内,怎么实现根据条件,去搜索表单内符合条件的实例数量

展开
收起
游客qscyxjemkvyxc 2023-06-05 11:18:12 340 0
3 条回答
写回答
取消 提交回答
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    宜搭内根据条件搜索流程实例ID,您可以参考宜搭数据源接口,详细操作参考文档:根据条件搜索流程实例 ID。

    2023-06-05 16:20:44
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在宜搭(YiDa)流程表单中,您可以通过以下步骤实现根据条件搜索表单内符合条件的实例ID数量:

    1. 在流程表单中添加一个数字控件,用于显示符合条件的实例ID数量。
    2. 添加一个按钮控件,在按钮的单击事件中编写JavaScript代码,用于搜索表单内符合条件的实例ID数量。
    3. 在JavaScript代码中,使用API请求获取符合条件的实例ID列表,并计算该列表的长度,最后将结果赋值给数字控件。

    具体而言,您可以利用表单JS API的 jQuery.ajax() 方法向后端发起请求获取实例ID列表,并在请求成功后计算实例ID数组的长度,并将其设置为数字控件的值。示例代码如下:

    // 获取表单JS API,此处省略获取过程
    var api = kintone.app.record.get();
    
    api.record.get().then(function(resp) {
      // 根据条件构造查询参数
      var queryParam = '...';
    
      // 发起API请求获取符合条件的实例ID列表
      return $.ajax({
        url: '/k/v1/records.json',
        type: 'GET',
        data: {
          app: kintone.app.getId(),
          query: queryParam,
          fields: '实例ID'
        },
        dataType: 'json'
      });
    }).then(function(resp) {
      // 计算实例ID数组的长度并更新数字控件的值
      var instanceIds = resp.records.map(function(record) {
        return record['实例ID']['value'];
      });
      var instanceCount = instanceIds.length;
      api.record.set({
        '数值控件': {
          value: instanceCount
        }
      });
    }).catch(function(err) {
      console.log('Error:', err);
    });
    

    上述代码仅作为实现示例,具体实现可能会受到您的具体业务需求和系统架构的影响。建议您在根据条件搜索表单内符合条件的实例ID数量时,谨慎处理数据安全性、逻辑正确性等问题。

    2023-06-05 15:10:50
    赞同 展开评论 打赏
  • 在同一个流程表单内,需要搜索符合条件的实例 ID 的数量,可以通过以下步骤实现:

    1. 在表单中添加一个搜索框,输入搜索条件。例如,假设需要搜索“审批状态=已通过”的实例。

    2. 在表单的后台添加一个 JavaScript 脚本,请参考以下代码:

    // 获取审批状态的下拉框选项的值
    var approvalStatus = document.querySelector('.approval-status').value;
    
    // 使用 Rest API 中的 /api/v1/forms/{formId}/instances 接口获取所有的实例列表
    fetch(`/api/v1/forms/${formId}/instances`)
      .then(response => response.json())
      .then(data => {
        // 筛选出符合条件的实例
        var filteredInstances = data.filter(instance => instance.fields.approvalStatus === approvalStatus);
    
        // 根据符合条件的实例数量,更新页面上的提示信息
        var count = filteredInstances.length;
        document.querySelector('.instance-count').textContent = count;
      });
    
    1. 在表单中添加一个提示信息框,用来显示符合条件的实例数量。例如,可以在表单顶部添加一个类似“符合条件的实例数量为:X”这样的提示信息。

    这样,当用户在搜索框中输入审批状态为“已通过”时,JavaScript 脚本就会根据 Rest API 获取表单中所有的实例列表,筛选出符合条件的实例,并更新页面上的提示信息。

    需要注意的是,获取实例列表的 Rest API 接口需要一定的权限控制,因此需要确保当前登陆用户拥有权限访问该接口。另外,为了优化性能,可以考虑将搜索结果进行缓存,避免重复搜索。

    2023-06-05 13:53:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
宜搭 - 企业智能化应用搭建平台 立即下载
《云市场-宜搭解决方案》 立即下载
《宜搭开发手册》 立即下载