Thanks for raising this question. Power Apps doesn't allow dynamic column names like {ThisItem.Col: "Yes"} in Patch records, so use Switch statements on your config table's Col field to explicitly map labels to Task1-Task6 columns—this handles both checkbox Defaults (to load "Yes"/"No" states) and updates (via OnChange or external button) perfectly for your instrument-specific tasks.​
Your gallery Items Switch table is spot-on; just tweak "Map" to "Col" and add a Label control per item for dynamic names (e.g., Label.Text = ThisItem.Label). For the checkbox Default, use this formula (replacing "YourSPList" with your data source and assuming a DatePicker1 for the row filter):
Switch(
ThisItem.Col,
"Task1", LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value, Task1) = "Yes",
"Task2", LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value, Task2) = "Yes",
"Task3", LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value, Task3) = "Yes",
"Task4", LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value, Task4) = "Yes",
"Task5", LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value, Task5) = "Yes",
"Task6", LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value, Task6) = "Yes",
false
)
This pulls the current row's value dynamically without delegation issues for small lists.​
For real-time updates, drop this into each checkbox's OnChange (sets a row var first for reuse):
Set(varRow, LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value));
Patch(
YourSPList,
varRow,
Switch(
ThisItem.Col,
"Task1", {Task1: If(Self.Value, "Yes", "No")},
"Task2", {Task2: If(Self.Value, "Yes", "No")},
"Task3", {Task3: If(Self.Value, "Yes", "No")},
"Task4", {Task4: If(Self.Value, "Yes", "No")},
"Task5", {Task5: If(Self.Value, "Yes", "No")},
"Task6", {Task6: If(Self.Value, "Yes", "No")}
)
)
Pro tip: On instrument/date change, Reset the gallery and checkboxes to refresh states.​
Finally, for your external "Submit" button's OnSelect (bulk-safe, idempotent):
ForAll(
Gallery1.AllItems,
Patch(
LookUp(YourSPList, Date = DatePicker1.SelectedDate && Instrument = TabList3_2.Selected.Value),
Switch(
ThisItem.Col,
"Task1", {Task1: If(ThisItem.Checkbox1.Value, "Yes", "No")}, // Checkbox1 = gallery template name
"Task2", {Task2: If(ThisItem.Checkbox1.Value, "Yes", "No")},
// ...repeat for Task3-6
"Task6", {Task6: If(ThisItem.Checkbox1.Value, "Yes", "No")}
)
)
);
Notify("Daily tasks updated for " & TabList3_2.Selected.Value, NotificationType.Success)
This setup scales to your other instruments just expand the Switch tables/cases. For bigger lists, collect pending changes into a temp collection and Patch once at submit to avoid multiples. Test delegation with >500 rows via a varRow Set.​
If helpful, please accept the answer and help the community.
Best Regards,
Jerald Felix