世界!我最近开始了一个新职位,并且一直在努力找出为什么下面的代码在 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,
但是这些都没有达到预期的效果。
预先感谢您的帮助!
我假设有一个名为 student_groups 的集合,它有一列指定组 0、1 或 2。
我将使用源 student_groups 创建一个画廊,并在模板中添加一个下拉列表。在项目 [0,1,2] 的下拉列表中,我可以在 onchange 触发器上放置一个 patch 函数来更改组值,例如 Patch(student_groups,ThisItem,{GroupColumn:Self.Selected.Value})