In all my Dashboarding projects, I always try to use as less number of components as possible and also try to make the components do most of the work rather than using complex Excel formulae. However, due to tool limitations, this is not always possible. One such example is to use a single label (text) component and to make it float around the canvas based on the mouse input/position from the user. Starting Dashboards SP05, this is possible.
The “Position” Property
Starting SP05, the Label component in SAP Dashboards comes with a new property called “Position”. It is on the General tab of the Property Sheet. You will see 2 fields, one each for the X and Y coordinates. The fact that you can bind these to the underlying Excel sheet is what makes this trick possible.
The trick is to create a data-set which contains the corresponding values for X and Y coordinates for each item. Using a label based menu (or any selector component) insert the “Row” including the XY coordinates in to the destination cells. Now map the label text to the Tooltip Text field and the X and Y fields to the inserted cell values for X and Y to make it dynamic. Finally make the label based menu insert on “Mouse Over”.
You must be wondering, how to exactly find the coordinates of an area on the dashboard? Although there is no straight forward method to do this (Like pointing your mouse on the dashboard and it shows the coordinates), it is fairly easy to get these values using the Label component itself. Without binding the XY coordinate values, simply move the Label component to any place on the canvas. The XY values automatically update. Pick those values and use it in your source data-set.
We can achieve a lot more with a lot less components if this property is available universally for all components, just like the Dynamic Visibility property. Also, it would be great if we can play with the dimensions of the component dynamically. Combining both these properties zooming in and out of any component will be a possibility.
Source File Download Link