Query - Ability to programatically configure Jump to Another Report


https://www.nevron.com/Forum/Topic8269.aspx
Print Topic | Close Window

By Zeljka Mikulic - 11 Years Ago

Hi Support,

We have an existing Reporting Services 2005 Report with an embedded Nevron floating bar chart.  The user is able to jump to another report by clicking on the corresponding bar they would like to see more detailed data for.   However, not all the bars should be able to jump to another report.  We want to amend the report to either enable or disable the ‘Action –> Jump to another report’ based on the value of a particular data item in the underlying dataset.
Is it possible to do this in a programmatic manner?  If so, how could this be achieved?
Attached is a word document with more details, as well as the chart configuration file.

Regards,

Zeljka.

By Nevron Support - 11 Years Ago

Hi Zeljka,

Yes you can alter the generated interactivity using custom source code. In general each object that supports interactivity exposes an interactivity object. In the case of series data points those interactivity objects are stored in the interactivity styles collection of the series - the following snippet shows how to iterate trough them:

   int count = bar.Values.Count;

   for (int i = 0; i < count; i++)
   {
    NInteractivityStyle interactivity = bar.InteractivityStyles[i] as NInteractivityStyle;

    if (interactivity != null)
    {
     NInteractivityAttributeCollection interactivityAttribytes = interactivity.InteractivityAttributes;

     // do something with the interactivity attributes
    }
   }

Where bar is an instance of bar series. When the control generates interactivity attributes it will place one of the following attributes in the attributes collection per data point:

NRSBookmarkInteractivityAttribute
NRSDrillthroughInteractivityAttribute
NRSHyperlinkInteractivityAttribute

If you wish to disable the interactivity per data point you can simply erase the interactivity style for a particular data point:

bar.InteractivityStyles.Remove(dataPointIndex);

Hope this helps - let us know if you meet any problems.

By Brian Dalwood - 11 Years Ago
Hi Support,

I have been able to disable the "Jump to Report" action on certain bars by specifying hard coded numbers for (dataPointIndex) using bar.InteractivityStyles.Remove(dataPointIndex); however, I would like to be able to use this remove method conditionally on bars based on either the value of the bar or another data series.

e.g. Please refer to the attached Word document description in Zeljka's original post.
I need to conditionally remove the InteractivityStyle from the respective data bars in the Value series based on the value of the corresponding item from the BarType series. I also need to remove the same if the value of the bar (in the Value series) equals 0.
This means I need to monitor the corresponding values in 2 different data series to set a property (call the remove method) on one of them.

Can you please provide some direction (or code structure) for achieving this.

An additional requirement would also be to show a tooltip when the mouse is hovered over a data bar where the Interactive action is enabled. I can't seem to find any good examples of how to achieve this functionality either.

Any help you can provide would be appreciated.
Thanks

Brian. (work collegue of Zeljka)


By Nevron Support - 11 Years Ago

Hi Brian,

You can access the value of individual bars using something like:

double barValueAtIndex = (double)bar.Values[someIndex];

which gives you the value of the bar at index "someIndex".

Regarding the tooltip - all of the above interactivity attributes have a property called "Tooltip" which allows you to specify a tooltip for the object the interactivity is attached to.