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
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Top Solution Authors
Top Kudoed Authors
Users online (1,547)