场景问题求助:不同条件下的关联数据怎样设计

场景描述:

有若干活动方案,都有对应的 主题 作为分类,都由 S1、S2、S3、S4 这四部分组成。

在填表选择活动方案时,有两种选择方式:固定组合模式、自由组合模式。

当为 固定组合模式 时,选定 主题 之后,只需要从其关联出来的方案之中选择一个,S1 S2 S3 S4 的具体内容都关联填写到相应字段。

当为 自由组合模式 时,选定主题 之后,需要对 S1 S2 S3 S4 分别从关联出来的选项里选择一个并填写到对应位置。

两种模式的效果,最终 S1 S2 S3 S4 分别填写到相同的字段里。

S1 S2 S3 S4 不知道放在主表还是子表里能实现?

CAHTGPT 给的答案是这样:

可以通过简道云的表单关联和字段计算功能来实现这个功能。

具体步骤如下:

1. 在简道云中创建两个表单,一个是方案表单,包含字段:主题、S1、S2、S3、S4,另一个是主题表单,包含字段:主题名称、关联方案。

2. 关联设置:在主题表单中对主题名称字段启用下拉框功能,将下拉框选项设置为所有可选的主题名称。同时,在主题表单中创建与方案表单的双向关联字段,关联所有可选的方案。

3. 字段计算:在方案表单中对 S1、S2、S3、S4 字段进行字段计算,根据主题字段的选择情况,自动填充相应的方案内容。

- 对于固定组合模式,可以使用以下公式:

```

IF(ISBLANK({主题}), "", 

    IF({主题.关联方案}="", "", 

       IF({主题.关联方案[0].S1}=BLANK(), "无内容", {主题.关联方案[0].S1})))

```

其中, `{主题}` 为主题下拉框字段,`{主题.关联方案}` 为关联的方案,`{主题.关联方案[0].S1}` 为主题关联的第一个方案的 S1 字段,其他字段类似。

- 对于自由组合模式,可以使用以下公式:

```

IF(ISBLANK({主题}), "",

    CONCATENATE(

        IF({主题.关联方案}="", "", 

           CONCATENATE("S1选项:", {主题.关联方案[0].S1}, ";")),

        IF({主题.关联方案}="", "", 

           CONCATENATE("S2选项:", {主题.关联方案[0].S2}, ";")),

        IF({主题.关联方案}="", "", 

           CONCATENATE("S3选项:", {主题.关联方案[0].S3}, ";")),

        IF({主题.关联方案}="", "", 

           CONCATENATE("S4选项:", {主题.关联方案[0].S4}, ";"))

    )

)

```

其中, `{主题}` 和 `{主题.关联方案}` 的含义同上,其他计算公式使用 CONCATENATE 函数将相关字段拼接成字符串。

4. 在表单中添加主题字段,并根据需要添加 S1、S2、S3、S4 字段。

5. 设置表单的视图,通过视图来实现固定组合模式和自由组合模式的切换。

例如,可以创建一个视图「固定组合模式」,只显示主题和对应的下拉框字段,隐藏 S1、S2、S3、S4 字段;再创建一个视图「自由组合模式」,显示主题和 S1、S2、S3、S4 字段,而隐藏下拉框字段。

这样,在填写表单时,通过切换不同的视图来实现选择不同的组合方式。

如果固定组合模式和自由组合模式最终都需要将 S1 的内容填写到同一个字段,可以在方案表单中创建一个 S1 统一字段,并根据选择的组合方式自动填充。

具体来说,可以按照以下步骤进行操作:

1. 在方案表单中删除 S1 字段,并创建一个新的 S1 统一字段。

2. 对于固定组合模式,可以使用下面的公式来进行自动填充:

```

IF(ISBLANK({主题}), "", 

    IF({主题.关联方案}="", "", 

       CONCATENATE({主题.关联方案[0].S1})))

```

其中,`{主题}` 为主题下拉框字段,`{主题.关联方案}` 为关联的方案,`{主题.关联方案[0].S1}` 为主题关联的第一个方案的 S1 字段。

3. 对于自由组合模式,可以使用以下公式自动拼接填充:

```

IF(ISBLANK({主题}), "",

    CONCATENATE(

        "S1选项:", IF({主题.关联方案}="", "", {主题.关联方案[0].S1}), ";",

        "S2选项:", IF({主题.关联方案}="", "", {主题.关联方案[0].S2}), ";",

        "S3选项:", IF({主题.关联方案}="", "", {主题.关联方案[0].S3}), ";",

        "S4选项:", IF({主题.关联方案}="", "", {主题.关联方案[0].S4}), ";"

    )

)

```

其中, `{主题}` 和 `{主题.关联方案}` 的含义同上,其他计算公式使用 CONCATENATE 函数将相关字段拼接成字符串。

4. 然后在表单中添加主题字段和 S1 统一字段。

5. 最后,在视图中根据选择的组合方式来显示相关字段。

简道云 帆薯仔 发布于 2023-3-6 21:05 (编辑于 2023-3-6 21:18)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
帆薯仔Lv4见习互助
发布于2023-3-7 19:22(编辑于 2023-3-9 17:19)

把字段都放在主表单中,用多个 关联数据 高级字段。

  • 0关注人数
  • 382浏览人数
  • 最后回答于:2023-3-9 17:19
    请选择关闭问题的原因
    确定 取消
    返回顶部