how to hide cross tab columns runtimely based on user selection in birt Tool
See the attached image...
Rows and columns can be removed from visibility in BIRT cross tabs by filtering the cross tab.
To do this:
Select the crosstab object in the Layout window.
In the Property Editor for the cross tab, select the Filters tab.
Click the Add... button to the right of the Filter by: list.
In the New Filter Condition dialog, select the desired column from the Target: section and the relevant conditions in the Filter Condition: section. Remember that filter conditions are conditions for showing the data, not hiding it, so your condition will need to be the converse of a condition for hiding it (such as would be used in a table column visibility condition).
Use cross-tab to tabulate dynamic columned data. Follow this tutorial to create dynamic columned cross-tab report
Related
I need to have a BI Dashboard where the columns(eg, Brand) or group of columns ( eg, Company, Company site) have to hide/show in all analysis of dashboard based on check box selections with Brand and Company respectively. I am able to pass the column header and formula based on selection through Presentation Variable in Prompts, but stuck with hiding columns when the respective check box in unchecked. Note than I'm using OACv5.8.
Thanks in advance for any help on how to achieve/proceed further.
Why don't you use standard, out-of-the-box functionality like column selectors or show/hide sections?
Instead pf playing with presentation variables and trying to fiddle around.
I am wondering if you can have other tables show based on the value selected in the main table. I am not opposed to drill-down either.
My main table is the summary and was hoping to show additional data when the user clicks on a Type. When clicked another table would be visible. For example, in the screenshot, the Pool table would be visible when the Pool type is clicked in the main report. As mentioned if this is easier as a drill-down then I will do that, but not sure how. The report currently has a dataset for each table. Do I need to combine the datasets to do a drill-down?
Main and child tables
The best way to accomplish what you described is with a drill down and you would need to combine the datasets into one.
Combine your datasets
Add a table to your report and reference the single dataset
Add your detail row group to the table - from your child table (Area, Average)
Add a parent group to your details row, group your detail row group by Type, it should add a Type column to your table. Delete this column and it will ask you to delete the associated group as well. Select the option to delete only the column.
Recreate your table by adding rows, be sure to match the grouping indicators (brackets) on the left side
Right-Click on the bottom row in the box where the bracket is to highlight the entire row, click Row Visibility. For the option "when the report is initially run:", select Hide. Check "Display can be toggled by this report item" and select the name of the textbox that contains [Type]. If you don't know what this is, exit out of the dialogue box and right-click on the cell [Type] and click Textbox properties, the Name will be in there
Repeat step 6 for the label row for your details row (second row from the bottom)
I've been reading Telerik's documentation and I'm not sure if this is possible: I'm being asked to add tables to a report at run time, without doing so programmatically. A query is run that fetches hierarchical data, and the report owner would like to add a new table to the report for each member of the topmost parent, so that each topmost parent has their own table, with a text box title on top of the table containing the parent's name, in the following pattern:
TopParent1
[Parent1's table]
TopParent2
[Parent2's table]
...
Does anyone know how I could go about doing that without doing so programmatically? Every example and/or bit of documentation I've seen pertains to programmatically adding tables.
It is possible to add tables to a report at run time, without doing
so programmatically?
R: It's not possible to add table with out saying programmatically : the size of each element , the exact position , etc .. .. ..
HowTo create a 'hierachical' report with conditional display ?
1/. Hierachical Report.
Read the telerik official tutorial on How to: Create a Master-Detail Report Using a SubReport Item
Using the SubReport report item you can display one report within another report. The data for each SubReport can be completely different.
But You can achiev Parent/chield relation by Passing Parameters to a SubReport.
/!\ Caution /!\
Page sections are not related to the report itself, but are relative to the paper or screen. Thus page sections of nested/detail reports are ignored and only the page sections of the main report are visible.
In order to have sections that repeat on every page similar to page sections, consider using an unbound group (no grouping criteria specified) and set the PrintOnEveryPage property of its sections to True. Be aware that you cannot use PageCount and PageNumber global objects in group sections.
2/. Conditional Display
You will need to hide Report if subreport have no result.
If you want the user to choose if he want some sub report.
You can do it by passing parameter from your calling application to your report constructor.
And use Something like a Bitfield or an enum to choose what to display.
And What about a C# controler in the master report code behind ?
public myReportConstructor(int SubreportToDisplay)
{
InitializeComponent();
Hiden_Display(SubreportToDisplay);
}
private void Hiden_Display(int _code)
{
if ((_code & (int)myEnum.InfoClient) != (int)myEnum.InfoClient)
HideNShrink(SUBREPORT_CLIENT);
if ((_code & (int)myEnum.Item) != (int)myEnum.Item)
{
HideNShrink(SUBREPORT_Product.Item1);
HideNShrink(SUBREPORT_Product.ItemTWO);
}
}
private void HideNShrink(ReportItem target)
{// http://www.telerik.com/support/kb/reporting/details/collapse-the-container-when-hiding-child-report-items-
target.Visible = false;
target.Height = Telerik.Reporting.Drawing.Unit.Pixel(1);
}
I use a little trick here in my designer every subreport item is set to public:
private Telerik.Reporting.TextBox textBox17;
public Telerik.Reporting.SubReport SubReport_Client;
public Sub_Client sub_CLI1;
When hidding Client I will use the SubReport_Client.
That is the SubReport item, the container of my SubReport Sub_Client ;
(Yes they name the container and the containt are the same name, thats confusing at First, but it's Vs/Telerik choice)
When hidding a Sub Report That is in an other Sub Report.
I use the ContaintSubReport, Container of the nested-nested SubReport.
like: sub_CLI1.nested-nested_SubReport
I was able to answer my own question as follows:
Create two blank reports.
On the report chosen to use for the detail report, remove the report header and footer.
Add data source and parameter/s to the detail report (in my case, an SQL data source) and set report data source to the data source created here.
Add group to report with the value of groupings set to the top-most result in query bound to report. (Groupings = Fields.Parent)
Create text box with the value set to the field for the top result (textbox1.Value = Fields.Parent) or use data explorer to drag and drop Fields.Parent into the group header.
Create text boxes to mimic table column heads (one text box for each title of the columns) and place them into the group header with the text box containing the topmost result (or Fields.Parent).
Drag or create text fields for the rest of the fields in the query (Fields.Child1, Fields.Child2, Fields.Child3, etc) in the detail section of the report, aligned vertically with their column header. Preview the report--it should contain a table-like structure that repeats on each top result.
Switch to other report.
Add same parameter/s to that report.
Add subreport item to the detail section of that report.
Set subreport report source to Type and report document, then select the name of the detail report (the first one created here).
Set parameter/s for subreport to the same parameter/s used in the subreport.
Using that, I was able to essentially add a table per item in the first column of the query. The report created first serves as a wrapper for the query, and because it's being placed in the other report as a subreport item with the grouping I created, it is allowed to repeat as much as it needs to in order to display all the rows in the query.
I used the Telerik documentation for master-detail reports and report structures for this.
I am looking for a way to filter a table based on clicking a dynamic value in a Textarea in Spotfire 7.0.
I have a Textarea with an image and a bunch of calculated values over the top of that image (essentially a non geographic "map" of values). I would like to filter a table to show the rows which contribute to that dynamic value.
How can I filter the table based on the value clicked in the Textarea?
You can use Spotfire bookmarks. Create bookmarks and then configure images as a buttons and apply click action on them to redirect user to the particular bookmark.
You can also apply marking on Calculated values in a way that you can set your child visualizations to be limited by your dynamic value marking.
currenetly, I am using the telerik Radgrid control to build a grid. my grid have two levels ( mastertableview and detailtables). In detailtables, there is a gridclientselectcolumn to show a checkbox.
What i want to do is to make only one row selected at each time. That means, when I select a row in a detail table, the other one selected previously need to be deselected.
The allowrowselecting and muliplerowselect are only used to control the mastertableview. Now i need a way to control the detail tables.
Thanks
Recently I bumped into a How-to topic from the Telerik AJAX docs that may match your case or become the core of your logic, too - check it out.