开发者社区> 问答> 正文

如何实现子表中根据文本内容控制另一组件状态

目前遇到的问题是:通过子表内“细分状态”这个文本来变更“工序类型”的状态,但是通过数据联动或者数据填充都不能触发,是能手动输入才能触发,请问该如何优化
Dingtalk_20240311110827.jpg
Dingtalk_20240311111102.jpg

export function didMount1() {
this.$("radioField_lt2nbmox").setBehavior(this.$("textField_ltmc5qxl").getValue() === "是" ? "NORMAL" : "READONLY");
}

展开
收起
游客rclz3zswftjzg 2024-03-11 11:53:04 101 0
来自:钉钉宜搭
2 条回答
写回答
取消 提交回答
  • 阿里云大降价~

    要实现在子表中根据“细分状态”文本内容来控制“工序类型”组件的状态,您可以考虑以下几种方法:

    1. 使用数据验证:在Excel中,您可以使用数据验证功能来根据“细分状态”列的内容限制“工序类型”列的输入。您需要先选择“工序类型”列的单元格,然后通过“数据”菜单下的“数据验证”选项,设置允许的值取决于“细分状态”列的内容。
    2. 利用VLOOKUP或INDEX-MATCH函数:您可以使用VLOOKUP或INDEX-MATCH函数来实现根据“细分状态”列的内容自动填充“工序类型”列。这种方法可以在“细分状态”发生变化时,自动更新“工序类型”列的内容。
    3. 编写宏代码:如果以上方法不能满足您的需求,您可以考虑编写VBA宏代码来实现更复杂的逻辑控制。通过宏代码,您可以监听“细分状态”列的变化,并根据变化内容来调整“工序类型”列的状态。
    4. 使用条件格式:如果您的目的是根据“细分状态”列的内容来改变“工序类型”列的格式(如颜色、字体加粗等),可以使用条件格式功能。通过设置特定的条件,当“细分状态”列的内容符合这些条件时,“工序类型”列的格式会自动改变。
    5. 动态更新链接:如果您希望“工序类型”列能够随着“细分状态”列的增加而自动扩展,可以使用选择性粘贴中的“粘贴链接”功能,或者使用外部数据加载的方法来实现两个表之间的数据同步。
    6. 下拉菜单联动:如果您希望用户通过选择下拉菜单中的“细分状态”来控制“工序类型”的显示,可以使用Excel的数据验证功能结合公式来实现动态变化的内容块。

    请注意,不同的方法适用于不同的场景,您可能需要根据自己的具体需求和Excel版本来选择合适的方法。如果您不熟悉某些功能的使用,建议查阅相关的教程或寻求专业人士的帮助。

    2024-03-11 14:33:14
    赞同 展开评论 打赏
  • 如果问题得到了解决,辛苦点下采纳回答哦~

    你好,可以参考以下实现(注意替换组件唯一标识):
    表单页面
    image.png
    1.给细分状态文本框绑定 onChange 事件并添加如下代码
    image.png
    image.png

    export function onChange({ value }) {
          this.$("工序类型组件唯一标识").setBehavior(value === "是" ? "NORMAL" : "READONLY");
    }
    

    2.给子表单绑定 onChange 事件并添加如下代码
    image.png
    image.png

    export function onChange2({ value }) {
      const subFormInst2 = this.$('子表单唯一标识');
      value.forEach(item => {
        // 根据 value 值设置工序类型组件状态
        subFormInst2.setComponentProps(item, '工序类型组件唯一标识', { behavior: value.细分状态组件唯一标识 === "是" ? "NORMAL" : "READONLY" });
      });
    }
    

    3.在 didMount 函数中添加如下代码
    image.png

    setTimeout(() => {
        const subFormInst = this.$('子表单唯一标识');
        // 获取行标识
        const items = subFormInst.getItems();
        items.forEach(item => {
          const fieldInst = subFormInst.getComponent(item, '细分状态组件唯一标识');
          const value = fieldInst.getValue();
          subFormInst.setComponentProps(item, '工序类型组件唯一标识', { behavior: value === "是" ? "NORMAL" : "READONLY" });
        });
      }, 0);
    

    4.实现效果
    image.png

    2024-03-11 13:56:51
    赞同 展开评论 打赏
问答分类:
问答地址:
关联地址:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载