I have a powerapps sharepoint form. I have created "buckets" to group datacards into.
Each bucket is assigned a variable. IE: Engineering standards has the variable engineeringStandardSelected. This variable stores a boolean value based on if the bucket should be expanded or collapsed. I have set the variables in the "OnStart" portion of the app.
Set(egineeringStandardsSelected, false);
Set(standardDrawingSelected, false);
Set(placeholder, false);
Each chevron on the left hand side of the bucket datacard has a toggleable feature to either expand or collapse the corresponding bucket. (I know there is a typo in the variable. I haven't gotten around to changing it yet)
Switch(
egineeringStandardsSelected,
true,
UpdateContext({egineeringStandardsSelected: false}),
false,
UpdateContext({egineeringStandardsSelected: true})
)
This works good! Everything is as it should be. However, when the user opens the form, I want to have the buckets start collapsed(works good!), but then I want to check a combobox and if "engineering standards" is selected in that combo box, the engineering standards bucket should start expanded while all the others are still collapsed. This is where I am running into issues. My code for this logic is as follows;
Switch(
DataCardValue15.Selected.Value,
"placeholder",
Switch(
placeholder,
true,
Set(placeholder, false),
false,
Set(placeholder, true)
),
"Standard Drawing",
Switch(
standardDrawingSelected,
true,
Set(standardDrawingSelected, false),
false,
Set(standardDrawingSelected, true)
),
"Engineering Standard",
Switch(
egineeringStandardsSelected,
true,
Set(egineeringStandardsSelected, false),
false,
Set(egineeringStandardsSelected, true)
)
);
I have this snippit of code in the sharepoint integration on "OnView". I have tried everywhich way to do this but have been running into issues left and right.
Solved! Go to Solution.
@Anonymous
It's very "code-y"!!
I would suggest the following instead to be more like a PowerApps app (no-code).
Add a checkbox on top of your Up and Down chevron. Make the checkbox size 0 and blank text. Make focused border colors, etc, as transparent.
Now, focusing on the Engineering Standard section, set the Default on the new checkbox (let's call it chkEngStandards) to DataCardValue15.Selected.Value = "Engineering Standard"
Change the chevron Icon property to: If(chkEngStandards.Value, Icon.ChevronDown, Icon.ChevronUp)
For visibility on the datacards in that "bucket", set the Visible property to: chkEngStandards.Value
Repeat the above for the other buckets.
You are done! No variables needed and your bucket should appear open now based on the combobox value.
I hope this is helpful for you.
@Anonymous Cool idea!
First just a few simple things. In the 2nd code snippet, you inside the Switch you are setting a ContextVariable with the same name as the Global Variable. Is that intentional? If so please add a gbl to all your Global variables ctx to your context variables this will make life easy in the long run.
Also I've noticed that to switch a boolean variable from true to false and vice-versa you are using a Switch, Set etc., You could rather do Set(gblVariable, !gblVariable).
Hope this helps!
Smart! I am still in the learning phase so I don't know "best practices", thank you for the tips, I will definitely utilize them! And no that was not intentional, I didn't realize I was setting a contextVariable with the same name as a global variable. I will fix that up
@Anonymous
It's very "code-y"!!
I would suggest the following instead to be more like a PowerApps app (no-code).
Add a checkbox on top of your Up and Down chevron. Make the checkbox size 0 and blank text. Make focused border colors, etc, as transparent.
Now, focusing on the Engineering Standard section, set the Default on the new checkbox (let's call it chkEngStandards) to DataCardValue15.Selected.Value = "Engineering Standard"
Change the chevron Icon property to: If(chkEngStandards.Value, Icon.ChevronDown, Icon.ChevronUp)
For visibility on the datacards in that "bucket", set the Visible property to: chkEngStandards.Value
Repeat the above for the other buckets.
You are done! No variables needed and your bucket should appear open now based on the combobox value.
I hope this is helpful for you.
@Anonymous Please refactor your code a bit and then we can easily fix the remaining issues. Let me know when u'r ready!
@Anonymous
Or just get rid of all of the code-like variables and use a standard control - that will give you a clean and easy solution without the complexity.
I come from a programming background so my immediate reaction to anything is "how can I program this" instead of using the tools available to me from powerapps. But your method works flawlessly! Now the only thing is that I want to have the option to also click the chevron to expand the bucket.
@CNT I decided to go with the less "code-y" way to help cut down on how convoluted I made it
@Anonymous
Number one rule in PowerApps - Keep it SUPER Simple! The more "dev" you put in, the hard it becomes.
So as for the chevron - the point was to put the (more-or-less) invisible checkbox over top of the chevron. When you have a control on top of the other, it is the topmost that will get the click. So, in a sense, you are just intercepting the chevron all together. It is only there to be "seen", it will never respond to clicks.
User | Count |
---|---|
252 | |
107 | |
88 | |
51 | |
44 |