I want to create a report (.RDLC) in Visual Studio 2010. The report should show parent record initially when the user clicks the expand button it should load the child records in the same report.
I have employee records which has to be shown as parent record and when the user expands then the detail report should be shown with the list of projects the employee has worked on.
I tried with sub reports, but it showed me the parent records initially and when I select any record then it shows the details records in another report. but I want both Parent and Child records should be shown in same report. There is no grouping between the Parent and Child records. Employee id is the matching column.
Thanks,
Prakash.
The easiest way to group anything in an RDLC Report is by using the List component. Which you can nest as many times as you want. You can even fetch the data from multiple tables, as long as you group on a column which both data-sources have in common (FK).
Adding functionality like collapsing and expanding views comes after you grouped everything nicely.
You could start the list by grouping on employees and adding textboxes with the the data you wish to display. Inside the same rectangle you could then add a new list and group it on projects, inside this second rectangle you can then add a table, matrix or even add another list to group on something else.
You can find a good tutorial here. Option 2 is recommended, which is what I tried to describe in words and option 1 is probably what you initially tried, using subreports.
Related
I am grouping the data in my table by person and term. I am trying to separate term groupings but keep them on the same page and have only one person per page. This image shows how it looks in Crystal Reports. The only issue I am having with SSRS is that it is putting each term group on a new page.
Crystal Reports output
Design View
Without seeing the report design it's hard to say but I would guess you have a row group that groups by both person and term with a page break set between the group.
You need two separate row groups, the inner one by term and the outer one by person, then only have page breaks on the outer group.
If this does not help, show your report design including row groups and their properties
I have a schema with two tables: a parent table and a child table. The parent table has an ID and a varchar column. The child table has an ID, parentID, and varchar column.
I want a page that displays all the varchar's in the parent table as a navigation list. When a link is clicked, it displays a page with a navigation list containing all the child items under that parent id. I'd like to be able to do this for 'n' levels of parent-child, hopefully by defining a total of 'n' pages.
I've successfully created the first list of links on a single page, but I am not sure how to proceed with giving them the appropriate URL to the child page, or how to create a child page that accepts a parameter and uses it in the definition of the subsequent list query.
In Oracle APEX, every page is defined at design time. This means that the developer chooses how many pages exist while he is developing. What it sounds like you are trying to do, is create pages dynamically, i.e. generate new page numbers on the fly. This is not possible.
However, I do not think that it is necessary to create new pages. It will probably suffice to have a limited number of pages, which simply pass the ID of the record your page is based on as a parameter. If you create a page item on a page, you can set the value of that item by specifying it in the URL you are directing to. You can find more information about APEX URLs here: Understanding URL Syntax.
After you've got that down, you can use the value of the page item on the page you landed on to generate the sub-list by fetching all the child records from the database and creating links for them. To generate the navigation list, I recommend using Lists in your shared components. Go to shared components > Lists > Create > From scratch and then choose to create a dynamic list. In the query you provide here, you can simply reference the page item id (e.g. :P1_RECORD_ID), to get the children of that ID and generate the list items accordingly.
I hope this gets you started. Of course this is just the beginning. If you have any more questions, please expand on your original question.
I was able to add a report record for object purchase.order. It shows up when I select and open a specific PO.
How do I print a report over multiple purchase orders, or multiple stock moves, or multiple sales orders etc.?
What do I specify in "object" (model) for the report record and where would this print menu show up?
(I am using aeroo reports engine and I was able to specify a
<for each..> ... </for>
loop but it only prints one record (which is the currently selected PO).
Thanks
at report template level you have two variables o and objects. the 1st one is present if you have only one item. the second one should be always available and must contains all the selected objects (or the objects that has been filtered trough a custom parser).
TIP: when you have doubt on how to do things... just look at how other modules do.
I. Create your report as it was intended for one object only.
<for each="o in objects"></for> as you define
II. On your OpenERP, go to Settings->Customization->Aeroo Reports->Reports and open the report you've previously created. On the report, click the Advanced tab and enable Process separately then save.
Hope this help to you.
Regard,
Having some trouble getting this to work... I basically want the report to look similar to:
The way I remember doing this in the past was by creating "page groups" in the report wizard. However, I believe that was in VS05, and now the report wizard is very different in VS10. It now has column groups and row groups but no page groups, and I can't see how to get this to work without the wizard either. If tried looking for a tutorial or example but haven't had much luck. Also, the site 'gotreportviewer.com' is pretty terrible and has not been much help.
To create the effect of one record per page means you need to set a group element to the report. For instance assume you have a database table called "Login" and you wanted to group by a person's login name. Here is what you do:
First add a table to the report like so:
The table can be found in the "Toolbox" on the left hand side of VS2010. Once the table is added you will want to add a group to this table:
After this you will want to go to the properties of the group:
Here you simply can set a page break between each instance of a group, in addition, this will give you a "one record per page".
I'm trying to build a FileMaker Pro 11 layout that excludes records containing a certain value. The relevant data is in table Invoice. I want to filter so that Invoice records whose "Invoice Check Grouping" field is blank are not displayed on the layout.
I've added a global field to the invoice table called "Blank Invoice Check Grouping" to use as my filter criteria. I've created a self-join relationship to the Invoice table, joining "Invoice ID" to "Invoice ID" and joining "Invoice Check Grouping" to "Blank Invoice Check Grouping". The resulting table is named "Invoice Check Groupings".
The layout which I build based on table "Invoice Check Groupings" shows all records in Invoice--it does not filter out those with blank values. What am I doing incorrectly?
Thanks,
Ben
Layouts show records in a table (or more accurately, a table occurrence) and don't directly deal with related data. As mentioned by #pft221, you can use relationships for filtering, but only when viewing data through a portal.
If you always want a particular layout to show data based on a particular find, you can do so with a script and a script trigger. First set up a script to do the following:
Enter Find Mode[]
Set Field["Invoice Check Grouping"; "*" // Find all records with any data in this field
Perform Find[]
Note that you can also embed the find request within the Perform Find script step, but I tend to script finds in the above manner as it's easier to see what the find request is in the script and variables can be used in the find request.
Now you need to set your layout to execute this script whenever it's loaded. Go to the layout and enter Layout Mode. Select Layouts>Layout Setup from the menu bar. Click the Script Triggers tab and check the box for OnLayoutEnter and select the script you wrote above. Now whenever the layout is entered, that script will run and exclude the records that have that particular field being empty.
There are many ways to filter records, depending on what you are trying to do and what you are trying to display for your users.
The most common and simple way you can filter records is through a simple Find in a list view. I'm unclear from your question, but my best guess is that you're already using a list view and misunderstanding how FileMaker's relationships and Table Occurrences (TO's) work.
To Filter with the "Find Records" method:
Create a new List View layout of any Table Occurrence of your Invoice Table -- most likely you will want to use the default Table Occurrence that FileMaker created for you when you created the table.
Place the fields that you would like to display on that layout, including the "Invoice Check Grouping" field.
Switch into Find Mode
Put a '*' character into the "Invoice Check Grouping" field
Perform the Find
You should now see a list of all Invoices where the "Invoice Check Grouping" field is not blank. (You can find additional interesting search criteria in the "Insert: Operators" drop down of the title bar.)
Now you may actually be looking to filter related records through a portal but, given that you've set up a self-join on the Invoice index on the Invoice table my guess is that, at best, this would show either 0 or 1 record for each Invoice record you display in your main layout.
To Filter Records with the "Portal Filter" method:
Let's assume, though, that you have a Client table where you'd like to see only the records with a non-blank "Invoice Check Grouping" value. The table set-up would be as follows:
Client
Client ID
[... other client info ...]
Invoice
Invoice ID
Client ID
Invoice Check Grouping
[... other invoice info ...]
With a relationship in the relationships graph:
Client::Client ID ------< Invoice::Client ID
From there you would set up a Form layout on the Client TO and create a portal showing records from the Invoice TO. From the options for the portal you would select "Filter Portal Records" and use a formula similar to:
not IsEmpty(Invoice::Invoice Check Grouping)
Finally, it's worth noting that a portal filter isn't appropriate for all display situations or calculations. You can set up a similar filter completely through your relationships graph (as I believe you have already tried to do.) This will work, once again, for viewing records through a portal but not for the records displayed by a layout itself.
The answers above don't actually help Ben with his question. They are workarounds.
I have the same problem as Ben, and I don't think there is a solution, even now in Filemaker 12. There is I think no way to define a relationship that will omit the related records where the match fields are empty.
Two options come to mind:
On a specific layout, you have more fine-grained control in the portal definition itself, and can use this to exclude the records
You can now use SQL queries to achieve this result within Filemkaer.