I need to build a report (in Visual Studio) that takes an ObjectDataSource, and groups the data into separate pages. Each page needs to contain 2 graphs and a table that deal with that particular group of data.
How can I approach this? There is some documentation on page breaks on groups in a table, but my pages need to contain charts as well. Is there a demo that shows how to build what I need?
Eventually I will also need to add this report into a ReportBook, but first things first.
If I understand your question correctly this should be straightforward:
Create a new report
Add a group definition to group the data into the two distinct groups that you want to display. [Careful here because if you don't define your groups correctly, you could end up with more than 2 pages] Use a Boolean or "greater than" and "less than or equal" (or vice versa) are your best bets.
Size the Group Details section to be the size of the page you want (8.5"x11" or whatever fits on "one page")
Insert a Panel into the Group Details section and expand it to be the same size as the Group Details section
Anchor the panel to all sides, and set the CanGrow and CanShrink properties to "false"
Inside the Panel add your Graphs and Table and bind to the grouped data
Set the Page Break property of the Group Footer to: "After" to separate the data into two pages
Related
I have a problem with a rdlc page breaking and table with multiple detail rows. Tried everything that crossed my mind, none works.
As you can see on the picture below, the table has 7 detail rows.
Now, when report is rendered, the page gets spitted between, for example, rows 2 and 3 which is bad.
I wish to keep all of detail rows (that belong to one record) on the same page. How can I accomplish this?
I think you should create a group based on whatever joins the one record together, let's call it PlaceID. So right click, Add Group, choose what to group by.
Then, under the row groups you should have a group by PlaceID, and underneath that, a row marked "Details". Highlight Details in the lower section, which should highlight in the report the rows involved. Set the KeepTogether property of that section to True, should keep details on the same page.
If you don't want to use the Group option mentioned by Jerry, this option in the Table Properties may help...
I'm trying to create a report with some controls "anchored" to the very end. The difficulty is that I can't add this to the page footer because the report could span multiple pages leaving a giant white space at the end of each report if I decide to toggle visibility. The items I have should only appear on the very last page and be positioned just above the footer.
For example, in this scenario, I need the letter's closing signature, titles, etc. positioned at the very end of the last page the report spans.
As an alternative to adding a sub report you could try the suggestion below.
It all depends on how you data is laid out in your report whether it could work for you.
If all the data required to populate the controls exists in the report dataset why not add an outer lever of grouping that encompasses the entire dataset. You could do this using a dummy column containing 1 for example.
Just add a footer to this group and put your data in the group footer.
You can additional rows as necessary to the group footer.
This footer will always appear as the last row(s) in the tablix
I have a view in OBIEE that is sectioned and returning groups as intended. My question though, is can I make the sections return in more than 1 column? Right now there are 8 sections all in a long line. I would prefer to split them into two columns of 4 sections each, in the same view.
Is this possible?
THanks
*It will be used in a dashboard at some point.
Since this will be used on a dashboard, you could consider using a compound layout.
The compound layout button is on the results page in the toolbar. Click on it, name it to something that will help you identify it later, then break your data apart into two sections (using filters, creating two different tables within the same report, or some other means. This is the part where I don't know your data or its format so it makes it difficult to answer). One section of data will go on one compound layout, and another section will go on the other compound layout. So in the report, the data will be on two tabs, but since it is intended for a dashboard, this is not a problem.
Make two side by side columns on the dashboard, and drag the same report into both. In the properties, select "show View", and select the different compound views (one for each column).
Now when you run the dash, the results will display in different columns at the same time.
in our admin we use the color option set as "dropdown"
we break down our colors very detail. For example in the "admin option values" we have
blue
blue lace
blue-green
blue-green
but on the front end "store view" we want the filter to just have 1 option "blue"
so in the "Manage Options (values of your attribute)" > "Default Store View" we put for all of those "blue"
but on our web site there ends up being 4 separate blue filters.
is there a way on the front end to only see 1 option "blue" with all the products added up?
Exploratory solution:
You need do some custom coding in a class with a name something like the Mage_Catalog_Model_Layer_Filter , there should be a function there called getItems().
The function itself just calls another function which creates a Zend query which grabs the information from the database.
You should explore until you find that Zend query builder and add a group by to the query.
Alternatively you could just take the array of items and modify it before returning it.
Counter argument:
Removing the second, third etc. links from the getItems list should be fairly simple and you'll basically leave only the first link.
But when the user will click on the link the URL will be filtering by the first attribute the results of filtering by the second, third etc. attributes will not be shown.
You'll have to manipulate that logic as well.
Counter proposal:
You can create an additional attribute such as "color_detail" which you can setup to not be visible in the front end or filterable or sortable etc. so none of the users can see it. BAM! Mission completed.
Another approach -- less intuitive -- if you're not already using and displaying product tags you could use those to tag the object with that particular color detail.
Another approach -- more intuitive especially if you want to keep track of stocks and/or allow the user to choose from the list of color details -- is using product options which can be configured to have their own SKU as well as their own stock inventory and can affect the product price and weight.
I currently have a detailed report to design:
A report which has different header-footer-detail for the first and rest of the pages. I tried to overcome the challange by using 2 Master Pages (not quite achieved anything yet) but I am stuck at the point which row count of 1st and rest of the pages... 1st page has 20 rest of the pages have 35 rows. Namely the question is:
"How can I set different pagebreak intervals for the table for each page?"
PS: BIRT version: 3.7
Edit: I've tried to create a group on row number and put a filter on row number to maintain flow between 2 different tables but no luck. (It didnt make real sense to put row filter but tried anyway :))
What you may need to do in the body section of your report is create a grid of one column and two rows. In the advanced properties for the upper cell, look under the section property for the Master Page setting, set that value equal to the name of your first master page. Place your report contents in that cell and set the master page references to your first master page as well. Repeat this for the second cell and references to the second page. Your table(s) have an advanced property for page break interval that you can adjust to control how many rows go on a page.
However if you want your table data to flow continuously from the first page into the second page and onward, I am not sure if this is possible but will update my answer if I find a way.