I want to have a counter that decreases by one whenever a radio button is selected in the gallery. Currently the one I have works, but it resets whenever the app is closed. My app brings in previous responses with a lookup. How can I get the counter to stay at what it was previously at? If I reopened the app and submitted 10 radio buttons last time it would still say 46. Also, instead of me saying their are 46 radio buttons is there a way it could countRows of blank radio buttons. In my onselect for my counter I have Set(varRadioButtonSelectedCounter, 46); In the onchange for the radiobutton I have Set(varRadioButtonSelectedCounter, varRadioButtonSelectedCounter - 1); The default of the radio button is If(var,"",
LookUp(GUATResponses, Title=vUserMail && GUATListID=ThisItem.ID, RadioValue) . The text label of the counter is varRadioButtonSelectedCounter
) .
Solved! Go to Solution.
@powerapps890 I'd recommend to go with a collection...then you can see what's going on better than with filtering on the data source.
ClearCollect(
myCollection:),
SortByColumns(...),
Filter(...),
AddColumns(...),
DropColumns(...),
GroupBy(...),
)
)
I am not really sure what to do with that... Isn't there a way I can use countRows? to count how many were previously selected @TJO
@powerapps890 If the previous user entries are overwritten/updated the date is not relevant anymore for this. Could you try with a simple CountIf(GUATResponses, Title = vUserMail)
Well I actually came up with a solution but I need help tweaking it. I have a text label that says this varRadioButtonSelectedCounter - CountRows(collSelOptions). In my onvisible I set it to whatever number there is and then I use collSelOptions which is ClearCollect(collPrevUserVoting,Filter(GUATResponses,'Created By'.Email = varUser.Email));
Clear(collSelOptions);
ForAll(collPrevUserVoting,Collect(collSelOptions,{selName:Title})); so it pulls it from GUATResponses and will still decrease when a new is selected. The issue is if someone chooses a radio button for an item and then they switch their response for that item. The counter will go down even though all they did was change the item. @TJO
Set(varRadioButtonSelectedCounter, varRadioButtonSelectedCounter - 1) is also in the onchange which is why it keeps taking away from the counter, so how can I do it based on a new item and not just a different selection within the same item. @TJO
@powerapps890 I'm thinking of a quite cumbersome solution, but it might do the trick:
How about you set a variable for each radio (yes, a bit cumbersome) in the OnVisible property of the screen in question, and store the current status in each variable. Assuming your radio can have 4 values (0/Blank?, 1, 2, 3), you could then test if there was a relevant change, e.g.:
If(
And(
IsBlank(varRadio1), //varRadio1 has been set with screen OnVisible
!(IsBlank(Radio1.Value)) //Check if an option has been selected with Radio OnChange
),
Set(varRadioButtonSelectedCounter, varRadioButtonSelectedCounter - 1);
Set(varRadio1, Radio1.Value) //Adjusting the Counter and store new status in variable
)
your solution actually works well in the label I just said it to subtract from the amount of items! However I manually have to input the amount of items is there a way for powerapps to just count the total amount of radio buttons selected or unselected maybe something like CountIfs(Radio4) @TJO
@powerapps890 Maybe I'm stupid right now...How about you submit each radio value to your connected table, even if it hasn't been selected at all (e.g. Set Radio Value to "Not selected"). And then retrieve the initial value from your connected table?
CountIf(
myDataSource,
Mail = User().Email,
)
-
CountIf(
myDataSource,
And(
Mail = User().Email,
RadioValue <> "Not selected"
)
)
Try this one, you won't depend on set a variable:
CountIf(YourGallery.AllItems,!IsBlank(YourRadioButton.SelectedText.Value))
Regards!