cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Anonymous
Not applicable

Have DataCards in a group show up as visible/invisible based on combobox, but also toggleable with a button.

I have a powerapps sharepoint form. I have created "buckets" to group datacards into.

buckets.jpg

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. 

1 ACCEPTED SOLUTION

Accepted Solutions
RandyHayes
Super User
Super User

@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.

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

7 REPLIES 7
CNT
Super User
Super User

@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!

Anonymous
Not applicable

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

RandyHayes
Super User
Super User

@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.

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

@Anonymous Please refactor your code a bit and then we can easily fix the remaining issues. Let me know when u'r ready!

RandyHayes
Super User
Super User

@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.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!
Anonymous
Not applicable

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

RandyHayes
Super User
Super User

@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.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Helpful resources

Announcements
Ignite 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Super User 2 - 2022 Congratulations

Welcome Super Users

The Super User program for 2022 - Season 2 has kicked off!

September Events 2022

Check out all of these events

Attend in person or online, there are incredible conferences and events happening all throughout the month of September.

Users online (3,843)