Tuesday, December 11, 2012

“Report” Action

Application framework uses Microsoft Report Viewer to create data reports in Tiff, Adobe PDF, Microsoft Word and Microsoft Excel formats.

Action “Report” is a shortcut for “ReportAsPdf” action.

Report action on Orders controller.

When no parameters are specified in the Command Argument or Data property of “Report” action, a PDF report will be generated from the current view.

The application framework applies a standard XSLT report template to the data controller XML file to create a report definition in RDLC format.  Then it uses the report definition to produce an output with a help of Report Viewer. The report is rendered on the web server using Local Processing mode of Report Viewer. The report document is streamed out to the client web browser.

Default report created from Orders view 'grid1'.

Parameters can be used to specify the controller, view, template, and various other factors that the application framework will take into account when creating a report. The parameters must be configured in the Data property of action.  The table below shows the available parameters.

Parameter Description
_controller Specifies the data controller to create a report from.
_view Specifies the view to create a report from.
_sortExpession Specifies an expression that will be used to sort data.
 
Example: OrderDate desc
_count Specifies a limit on the number of records in the report.
_template Specifies the name of a custom RDLC template file to use.
[Report Controller Field Filter] Multiple field filters can be specified in one of the following formats:  
1)  ReportControllerFieldName=ClientControllerFieldName

2) ReportControllerFieldName="Static Value"
3) ReportControllerFieldName=@Arguments_SelectedValues
 

If the “_controller” parameter is not specified, then the ReportControllerFieldName refers to the data controller presented to the user on the client. If the parameter is configured, then the filter references the specified data controller.

The ClientControllerFieldName is replaced with an actual value of the specified field in a data row selected on the client at runtime.

The static value must be enclosed in “single” or “double”quotes.

The @Arguments_SelectedValues parameter will pass a list of all selected primary keys.

Examples:
OrderCustomerID=CustomerID
CustomerID='ANTON'
CategoryID="7"

Note that when the Data property is used, user-specified filters will be overridden. Instead, use the Command Argument property. Specify the custom report template, controller, and view.

Example: Employees_grid1.rdlc,Employees,grid1

Passing a Field Value

Let’s create a Report action in the Orders controller to print a subset of order details. The action will be configured to use OrderDetails data controller with rows filters by an OrderID selected on the client at the time the action is triggered.

Start the Project Designer. In the Project Explorer, switch to the Controllers tab and right-click on Orders / Actions / ag4 (ActionBar) – Edit/Delete node. Press New Action.

Creating a new action in action group 'ag4' of Orders controller.

Assign the following properties:

Property Value
Command Name Report
Header Text Print Report of Order Details
Data

_controller=OrderDetails
_view=grid1
OrderID=OrderID

When Key Selected Yes

The highlighted value of OrderID parameter references the OrderID data field of Orders controller. The parameter itself is referencing the field in OrderDetails data controller.

Press OK to save the action. On the toolbar, press Browse.

Navigate to the Orders page, and select an order. On the action bar, press Print Report of Order Details.

Clicking on the action 'Print Report of Order Details'.

Open the PDF document that was downloaded to your hard drive. The report will contain order details filtered by the selected order.

Report of order detail records filtered according to the selected order.

Passing Multiple Field Values

If the data view allows multiple selection, every selected record should be passed to the report filter. The report action above will only pass the first one. Let’s customize the action in order to pass all selected primary keys.

In the Project Explorer, switch to the Pages tab. Double-click on Customers / Orders / container1 / view1 (Orders, grid1) node.

'View1' on Orders page.

Enable multi-selection for the view:

Property New Value
Selection Mode Multiple

Save the view. Switch to the Controllers tab, and double-click on Orders / Actions / ag4 (ActionBar) – Edit/Delete / a100 – Report | Print Report of Order Details node.

Action 'a100' of action group 'ag4' in Orders controller.

Make the following highlighted changes:

Property New Value
Data

_controller=OrderDetails
_view=grid1
OrderID=@Arguments_SelectedValues

Save the action. On the toolbar, press Browse. Navigate to the Orders page, and check boxes next to several orders. On the toolbar, press Print Report of Order Details.

Multiple orders selected.

Open the file. Notice that order details from all selected orders are printed in the report.

Order details from multiple orders are included in the report.

No comments:

You can find more about Code OnTime Generator, Data Aquarium Framework, and other great products here.


© 2010 Code OnTime LLC. Intelligent code generation software for ASP.NET. Visit us at http://codeontime.com