How to show a Default Message if Cross Tab contains no data - birt

I am very new to Birt Tool
If Data cube contains no data, I am able to hide Cross tab, but my problem is i am unable to show default Message like "No Records Found"
please give me some suggestion on it.
Advanced Thanks.......

Add a new table to the report under the crosstab, bound to the same datasource as the crosstab, and add your desired message ("No Records Found") as a Text item to the report footing. Set the Visibility property of the Text item to be hidden for all outputs, conditional on the expression:
row.__rownum > 0
Ensure that your new table has the same filters set up as the crosstab.

Related

Tableau checkbox filter to suppress zero rows

I'm pretty new to Tableau, and am unsure how to implement a feature that's been requested by business users.
We have a report where each row has
Owner - grouping text field
Scenario - text field
Functional Area - text field
A graph of values over time
Each of these rows (i.e. Scenario) has a dimension named Latest Occurrences, which has the latest integer value from the graph.
I want to have a checkbox filter on the side of the report named "Show empty scenarios" where if it is checked it shows the scenarios where Latest Occurrences >= 0, and if unchecked shows the rows where Latest Occurrences > 0. I'm entirely unsure how to implement this in Tableau, does anyone know how?
I've come up with an answer that allows suppression of non-zero rows, but it's not a checkbox by itself, rather a dropdown with multiple checkboxes. I'll leave this question open in case someone comes up with a way to do that.
My solution, currently, is to create a calculated field called Scenario Issue Status with the following definition:
IF([Latest Occurrences] > 0)
THEN 'Current issues'
ELSE 'No current issues'
END
Then add that as a Filter with "Current Issues" checked and "No current issues" unchecked, make that filter visible, and change the filter type to "Multiple Values (dropdown)". That's about as aesthetic as I can make it, though it's not a simple suppression checkbox.

Oracle Forms Builder: Cannot Execute Query

I am using this code fragment:
BEGIN
GO_BLOCK('COMPANY_PRODUCTS');
EXECUTE_QUERY;
END;
in WHEN-NEW-FORM-INSTANCE of my form module.
I also changed the text items of my data block into display items.
The problem is that when I start running my form module, it displays an error stating:
FRM-40106: No navigable items in destination block.
It doesn't have "Enabled" and "Keyboard Navigable" property.
The reason I changed it to display items is because I don't want the user to click and edit the text on the item.
Is there any way can I get through this problem? or should I just stick with text items?
Screenshot: Form Module on Web Browser
make your destination block's all item Display Item, except leave one of them as Text Item ( preferably the first one in the physical sequence of items [topmost or leftmost]). And then, set that text item's Update Allowed and Insert Allowed property to No from Database section of Property Palette.

Spotfire DropDown list to filter entire page?

I have been desperately trying to figure out how to take a column, customer name, and be able make a drop down list that filters the entire pages visualizations so that when you have a specif customer selected it filters everything.
I think I'm going down the right path my creating a property type string and setting it to unique values in that customer name column, but cant seem to figure out what to do next. Even if i have to set it individually for each visualization that would be fine, but i cant seem to get this to work.
Can someone help me figure this out?
I'm on spotfire 7.0 if that matters. Thanks
Thank you in advance.
#TPLEE - In order to apply filter to the visualization from the selected drop down, you have to insert the below case statement in 'Limit data using expression' section of the visualization properties as shown below.
Right click on the visualization and go to properties.
Click on edit as shown in the picture and insert the below case
statement and click 'Ok'.
Note: 'YourCOLUMNName' will be your column name from the data table that you are using and ${CustomerName} is your property control name
case
when "${CustomerName}"=[YourCOLUMNName] then true
when "${CustomerName}"="" then true
else false end

Adding tables at run time in Telerik Reporting

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.

Properly Aggregate datas in RDLC

I have this Data from the DataSet which I then display in the tablix on an rdlc report viewer. This datas have redundant CUSTOMER NM(which is group by 2's) that is why I want it to be blank display on the 2nd display.
I am using this expression to hide the even rows that are displayed in the tablix which is under the column of CUSTOMER NM:
=IIF(RunningValue(Fields!CUSTOM_NM.Value,CountDistinct,Nothing) Mod 2, Fields!CUSTOM_NM.Value, "")
But the result is not what I am expecting.
As you can see on the image below, it seems that the data's are being grouped as per same CUSTOM NM. and the CUSTOM NM that is set to "" are the next same rows of CUSTOM NM. I color the groups so you can see them properly.
My expected result would look like this image below
Anyone knows where I am doing wrong or miss something. Any help would be appreciated..
You may use hideDuplicate Property under properly list for that particular textbox in tablix.
for that you need to set textbox's HideDuplicates property to the containing group name.

Resources