cancel
Showing results for 
Search instead for 
Did you mean: 

Crosstab disappears while removing the selection, when it's hidden.

Former Member
0 Kudos

Hi All,

I have a design studio 1.5 application  where I use four crosstabs as selector component for a hierarchy tree, for four different views. I do this because I want to retain the changes done in each view. Hence the four crosstabs. I have a reset button that removes the selection on the crosstab. When I do this, I removeSelection() for all crosstabs at the same time. So when a crosstab is hidden, and when I do a removeSelection() for a hidden crosstab, the hidden crosstab does not appear when I go to that view. My design studio version is 1.5 in BW query on 7.3

I have recreated the same scenario with sample data in below.


Following is the initial view of the application:


There are four different Crosstabs for four different selections in the Dropdown. All the crosstabs are enabled with the “Single select” option. For the first time when any of the selections is made in the dropdown, the corresponding crosstabs appear and the selections can be made on the crosstabs as below.

  1.Select a region in the crosstab while the dropdown is in Fuel Oil -S

2.Select a region in the crosstab while the dropdown is in Light distillates -ST

3. Select a region in the crosstab while the dropdown is in Medium distillates –ST

4. Select a region in the crosstab while the dropdown is in Others –ST

5. Click on the reset button present in the application:

When “Reset” button is clicked, all the selections in all the crosstabs get deselected. And the crosstab that is visible in that particular view shows that the selection is removed.

6. Now click on light distillates- ST in the dropdown. The crosstab disappears

The charts disappear for the immediate first selections of all the values in the dropdown, after Reset Button is clicked .During the second time of the selections, there is no problem with the Visibility of the charts.

The same problem arises every time the RESET button is clicked.

Thanks & Regards,

-Veera

Accepted Solutions (1)

Accepted Solutions (1)

Karol-K
Advisor
Advisor
0 Kudos

Hi,

can you upload somewhere the biapp file of your app? the question is, what are the scripts behind the scenes...

Karol

Former Member
0 Kudos

This is my code used for the dropdown

and following is the code I used for ther button where I reset the crosstab. I do this using removeSelection() api on the crosstab as shown below.

Former Member
0 Kudos

Hi Karol,

I get this issue not only when the crosstab is hidden using script(SetVisible(true)) but also when the crosstab is not seen on the screen. I don't have to hide it. But when I have another component over the crosstab, I get the same issue.

Thanks in Advance,

Veera

Former Member
0 Kudos

Hello Veera

I'm also facing the exact same problem!!!

Running on DS 1.506 the crosstab has the same behavior.

If I use CROSSTAB_1.removeSelection(); to remove the selections made by the user, after we hide the CROSSTAB_1 afterwards it’s NOT possible to see the same crosstab because it simply disappears!!!

Even if we force to make the table visible (CROSSTAB_1.setVisible(true);) it doesn’t work. The only way to get this table again is to reload the application.

Steps:

     a)     User selects some rows

              

     b)     User removes the selections by clicking on “Remove selections” button.

Code: CROSSTAB_1.removeSelection();

               

     c)     User makes the table not visible by clicking on “make invisible” button

Code: CROSSTAB_1.setVisible(false);

                        (CROSSTAB DISAPPEARS -> CORRECT BEHAVIOR)

     d)     User wants the table visible again by clicking on “make visible” button

Code: Code: CROSSTAB_1.setVisible(true);

   THE CROSSTAB NEVER SHOWS AGAIN.

               ONLY IF WE RELOAD THE APPLICATION WE GET THE TABLE VISIBLE AGAIN.


Note: If we don’t use CROSSTAB_1.removeSelection(); we can always make a crosstab visible or invisible, but after we use this command + make this table invisible afterwards it cannot be visible again.

Any progress on this issue? Any workaround?

Regards

A. Santos

Karol-K
Advisor
Advisor
0 Kudos

Hi,

it looks like a bug. can someone open customer ticket on this?

Karol

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi everyone,

In my case the following workaround helped to solve the issue:

After removing the selection you have to hide the crosstab and show it again:

CROSSTAB.removeSelection();

CROSSTAB.setVisible(false);

CROSSTAB.setVisible(true);

I hope this will help you too!

Regards,

Matti

Former Member
0 Kudos

Hello Veera

Could you please update us if you have raised a ticket and got some answers from SAP?

Thank you

0 Kudos

Hi everyone,

is there a fix for this bug already available?

Could anyone provide me with the ticket-id?

Thanks in advance and best regards,

Heiko

David_Nicolay
Explorer
0 Kudos

Hello Veera,


i'm facing the same issue with DS 1.5 and found a small workaround to remove the selection on a Crosstab. You just have to assign a new DataSource to the Crosstab before assigning the old one again.


CROSSTAB_1.setDataSource(DS_ANY);

CROSSTAB_1.setDataSource(DS_TO_SHOW);

After calling this script the selection on the Crosstab should be removed.

Regards

David

Former Member
0 Kudos

Thanks David.

I've tried your suggestion in DS 1.5 and it doesn't seem to work.

CROSSTAB_1.setDataSource(DS_2); //new DS

CROSSTAB_1.setDataSource(DS_1); //DS to be displayed

After this the selections made by the users still remains.

Any other workaround/idea?

Regards

A. Santos

Former Member
0 Kudos

Hi David

Good news!!!

I believe that I've founded a small workaround that seems to be working.

Instead of using CROSSTAB_1.removeSelection();  - that makes the table disappear - follow the below steps:

After user selection of rows on the crosstab:

1 - Click on "Swap DS" button 

          CROSSTAB_1.setDataSource(DS_1); //new DS

          CROSSTAB_1.setDataSource(DS_1); //DS to be displayed

          CROSSTAB_1.setVisible(false);

          CROSSTAB_1.setVisible(true);

2 - User clicks on "make invisible" button

          CROSSTAB_1.setVisible(false);

3 - User clicks on  "make visible" button

          CROSSTAB_1.setVisible(true);

If I follow these steps the selection disappear!!!

Try it? Does it work for you also?

A. Santos.

PS. This is a poor workaround so I think SAP should provide a fix for this "bug".

David_Nicolay
Explorer
0 Kudos

Hi Santos,

you're right  - my workaround is in a diffrent context which seems to bee important for the functioning:

I called the script while the crosstab is on a diffrent page of a pagebook. Same effect happens when the crosstab is not visible. But only if you seperate this in two single calls.

So this script is not working:

CROSSTAB_1.setVisible(false);

CROSSTAB_1.setDataSource(DS_2); //new DS

CROSSTAB_1setDataSource(DS_1); //DS to be displayed

CROSSTAB_1.setVisible(true);

But if you first call this:

CROSSTAB_1.setVisible(false);

...and then this:

CROSSTAB_1.setDataSource(DS_2); //new DS

CROSSTAB_1setDataSource(DS_1); //DS to be displayed

CROSSTAB_1.setVisible(true);

it works!

Well, it is a messy workaround because you need two single calls. Maybe someone else finds a better solution.

Best

David

Former Member
0 Kudos

Hi David,

Setting datasource to a crosstab has an overload on the component, doing it twice causes a performance impact on the dashboard. Our customers are pretty strict about the performance of the dashboard and do not want the dashboard to become slower.

Is there no other workarounds that would not involve assigning data sources to crosstab?

We tried setting visibility to the crosstab as well and that did not help. We actually do not have crosstabs hidden in my client dashboard.

I will keep working on this..

Regards,

-Veera

Karol-K
Advisor
Advisor
0 Kudos

Hi,

once again - it seems to be a bug, if one of you could open the ticket it can be checked by support and development.

if the issue is with visibility change, I can imagine one workaround for now. instead setting to invisible, use the left margin and set it to 0 - width (in the negative area). then you will have "visible" technically crosstab but not visible for the user.

eg. CROSSTAB.setLeftMargin(-2000);

then, switch visible means, set it to some real margin.

Perhaps someone can check this.

Karol