MS Power Apps 生成不需要的重复记录

问题描述 投票:0回答:1

世界!我最近开始了一个新职位,并且一直在努力找出为什么下面的代码在 popMode =“Move”部分中创建重复记录。 它是用 MS Power Apps 编写的,代码是将学生分配到特定的组。最初添加时,学生组设置为 0。然后我可以将学生移动到另一个组 1 或 2。学生将从组 0 中删除,并在组 1 或 2 中创建新记录。 问题是,当我尝试将学生从第 1 组移动到第 2 组时,例如代码似乎在第 1 组和第 2 组中创建新记录,从而导致不需要的重复记录。 我想删除原始记录或将其更新到新组。

If(
    popMode = "Add",
    RemoveIf(
        tt_tgroup_membership,
        student_id = popListStu_1.Text && tgroup_id = popListGroup_1.Selected.tgroup_id
    );
    Patch(
        tt_tgroup_membership,
        Defaults(tt_tgroup_membership),
        {
            student_id: popListStu_1.Text,
            tgroup_id: popListGroup_1.Selected.tgroup_id
        }
    ),
    popMode = "Copy",
    ForAll(
        check_stu,
        Patch(
            tt_tgroup_membership,
            Defaults(tt_tgroup_membership),
            {
                student_id: ThisRecord.student_id,
                tgroup_id: popListGroup_1.Selected.tgroup_id
            }
        )
    ),
    popMode = "Move",
    ForAll(
        check_stu,
        Patch(
            tt_tgroup_membership,
            If(
                ThisRecord.tgroup_id = 0,
                Defaults(tt_tgroup_membership),
                LookUp(
                    tt_tgroup_membership,
                    student_id = ThisRecord.student_id && tgroup_id = ThisRecord.tgroup_id
                )
            ),
            {
                student_id: ThisRecord.student_id,
                tgroup_id: popListGroup_1.Selected.tgroup_id 
            }
        )
    )
);

Refresh(v_tt_student_enrols);
ClearCollect(
    student_groups,
    Filter(
        v_tt_student_enrols,
        cost_id = current_cost.cost_id
    )
); Clear(check_stu);
UpdateContext({popVis: false});

我尝试添加:

RemoveIf( tt_tgroup_membership, student_id = ThisRecord.student_id && tgroup_id = ThisRecord.tgroup_id );

并且:

Remove( Filter( tt_tgroup_membership, student_id = ThisRecord.student_id && tgroup_id = ThisRecord.tgroup_id ),
之后
check_stu,

但是这些都没有达到预期的效果。

预先感谢您的帮助!

database powerapps
1个回答
0
投票

我假设有一个名为 student_groups 的集合,它有一列指定组 0、1 或 2。

我将使用源 student_groups 创建一个画廊,并在模板中添加一个下拉列表。在项目 [0,1,2] 的下拉列表中,我可以在 onchange 触发器上放置一个 patch 函数来更改组值,例如 Patch(student_groups,ThisItem,{GroupColumn:Self.Selected.Value})

© www.soinside.com 2019 - 2024. All rights reserved.