Dynamic adjustment of table column width(indirect use in charts)

Requirement: Display additional measure details in the Category Axis of the Webi chart.

Challenge:

    1. Webi charts does not allow to include more than 1 measure in the category axis.

    2. The number of Sales persons for the category axis dimension will vary from 1 to 10.

    3. Also it is not possible to adjust/input fixed value for the Chart Bar width. We can adjust only gap between the bars.

Solution Provided:

1.  Hide the Axis label and values in the category axis.Create a table below the chart for the new fields to be displayed.

2. Create a variable to get the count of distinct Sales persons in the chart.

3. In the Sales person field, add an Alerter for adjust the column width size dynamically based on the number of Sales persons in category axis.

4. The Alerter adjust the column width based on the some characters like “Char(9650)’.

5. Then hide the “Sales Person” field by reducing the cell height. Do not hide it. Then it won’t work.

6. Also enable the Auto column width property.

7. Create one more row for “Sales Person” field to display the Sales person id.

Please find the below screen shots and formula used.

The complete formula list for Alerter is given below. Thanks,

For 1 Sales person:
=Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 ) + Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+[Sales_Person_ID]

For 2 Sales persons:
=Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 ) + Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+[Sales_Person_ID]

For 3 Sales persons:
=Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 )+Char(9650 )+ Char(9650 ) + Char(9650 ) +  [Sales_Person_ID]

For 4 Sales persons:
=Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+ Char(9650 )+[Sales_Person_ID]

For 5 Sales persons:
=Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+ Char(9650 )+ Char(9650 )+[Sales_Person_ID]

For 6 Sales persons:
=Char(9650 )+Char(9650 )+Char(9650 )+Char(9650 )+[Sales_Person_ID]

For 7 Sales persons:
=Char(9650 )+Char(9650 )+Char(9650 )+[Sales_Person_ID]

For 8 Sales persons:
=Char(9650 )+Char(9650 )+[Sales_Person_ID]

For 9 and 10 not needed.

Thanks & Regards,

Shanmuga Sundaram


New NetWeaver Information at SAP.com

Very Helpfull

User Rating: Be the first one !
Comments (0)
Add Comment