5 Replies Latest reply on Oct 18, 2018 1:54 AM by Mark Miedema

    Dynamic sheet movement on dashboard

    Mark Miedema

      Hi Experts,

       

      I looked throught the forum but I couldn't find an answer (or searched for the wrong terms).

       

      Situation:

      I am creating a web application for our customers containing a dashboard with a weekly overview containing 7 sheets, one sheet per day.

       

      Because the workweek for every costumer (company) is different, the customer can set his working days as a filter to hide the days that their company is not open for business.

       

      Currently I have two rows. Monday till Wednesday on the top row and Thursday till Sunday on the bottom row. If the company is closed on Saturday and Sunday the last two sheet are not showing and everything looks ok. But if the company is closed on Monday the first sheet location is empty but still taking space. I would like that every sheet is than placed one "to the left" horizontally.

       

      Does anyone know how this could work?

       

      Thanks in advance.

       

      Download workbook:

      https://public.tableau.com/workbooks/WorkWeekProblem.twb

      Tableau version: 2018.1.3

       

      ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Normal view

      ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Unwanted view

       

      ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Wanted view

      ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        • 1. Re: Dynamic sheet movement on dashboard
          Shinichiro Murakami

          HI Mark,

           

          Cold you please attach sample data(mocked-up) as twbx?

          Also,closed day is two days per week or one day per week , or having more cases?

           

           

           

          Thanks,

          Shin

          • 2. Re: Dynamic sheet movement on dashboard
            Mark Miedema

            Hi Shin,

             

            TWBX file here and in my original post:

            https://public.tableau.com/workbooks/WorkWeekProblem.twb

             

            The two days is an example, all options and combinations of days should be possible. That's why I do not want to make multiple dashboards because there are an endless amount of possibilities.

             

            Thanks for the fast reply,

            Mark

            • 3. Re: Dynamic sheet movement on dashboard
              Mark Miedema

              Hi Shin,

               

              Did you maybe already had time to take a look at it ?


              Thanks in advance,

               

               

              Mark

              • 4. Re: Dynamic sheet movement on dashboard
                Thomas Rones

                Mark,

                 

                A few ideas:

                 

                Simplest (~20 minutes work):

                Do you really need to remove/move the days, or would a simple "Not Open on this day" label suffice?

                 

                 

                More Complex / Somewhat Complete (1-3 hours work + unknown for the titles):

                "Swapping sheets" with parameter/layout container trick.

                Pros: All done in Tableau, by the User (1 workbook)

                Cons: Will not be able to move Thursday, Friday, etc. up to the first row, only to the left. Need a workaround for the titles (this part might not be so simple).

                https://onlinehelp.tableau.com/current/pro/desktop/en-us/help.htm#dashboards_sheet_selector.html

                https://www.thedataschool.co.uk/hashu-shenkar/tableau-tip-switch-between-views-dynamically-on-a-dashboard/

                I have also gotten this to work via a datasource rather than a parameter.

                 

                 

                Different Dashboards / ?Potential? JS Solution (If it works, I think this is the best solution):

                I'm not sure if this would work (I don't have much experience with the javascript api) but I would think that you could split these into 8 different dashboards(7 for the days and one for the top part) and insert them into your html as separate visualizations.

                This would allow you to keep the logic in your web application, so the viz positions could be handled by you.

                 

                 

                Most Complex / Completely Fulfills Technical Requirements:  (Days of Work+)

                (Probably not what you want considering you are building a web application, not delivering workbooks, but I already wrote it out before reading that so I'll just leave it)

                Lots of things are possible with the XML .

                Do you have a database (or just .csv) of customers and the days they are open? If so, then you could write a script that will create copies of the workbook and make modifications based on the values in the database.

                So what you would do is remove the xml nodes that correspond to the "not open" days and then change the x and y attributes of the other nodes.

                Pros: Can create exact behavior you want.

                Cons: Need to manage having a workbook for each customer. (Not just creation, but also sending, maintenance etc.)

                • 5. Re: Dynamic sheet movement on dashboard
                  Mark Miedema

                  Hi Thomas,

                   

                  Thanks for the extended answer.

                   

                  I thought of the first two options, but UX will be an important part of this application. So this is unfortunately not an option. The fourth options is with our amount of customers unmanageable.

                   

                  Then the JS solution. I was already thinking about this but I thought (and hoped) that everything was doable in Tableau because now I have to request time from developers (joy).

                   

                  Thanks again for your anwer,

                   

                  Mark