Tutorials

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Tutorials
Saturday, December 15, 2012PrintSubscribe
Order Form Sample–Part 31

An alternative method for creating the denormalized data set is to create a database view.

Start SQL Server Management Studio. Connect to the database server. Right-click on Databases / Northwind node, and press New Query.

Creating a new query for the 'Northwind' database.

Paste in the following script:

CREATE VIEW [dbo].[OrderFormReport]
AS
SELECT dbo.[Order Details].UnitPrice, dbo.[Order Details].Quantity, 
        dbo.[Order Details].Discount, dbo.Orders.OrderDate, dbo.Orders.RequiredDate, 
        dbo.Orders.ShippedDate, dbo.Orders.Freight, dbo.Orders.ShipName, 
        dbo.Orders.ShipAddress, dbo.Orders.ShipCity, dbo.Orders.ShipRegion, 
        dbo.Orders.ShipPostalCode, dbo.Orders.ShipCountry, 
        dbo.Employees.LastName AS EmployeeLastName, 
        dbo.Employees.FirstName AS EmployeeFirstName, 
        dbo.Shippers.CompanyName AS ShipperCompanyName, 
        dbo.Customers.CompanyName AS CustomerCompanyName
FROM   dbo.[Order Details] INNER JOIN
        dbo.Orders ON dbo.[Order Details].OrderID = dbo.Orders.OrderID INNER JOIN
        dbo.Employees ON dbo.Orders.EmployeeID = dbo.Employees.EmployeeID INNER JOIN
        dbo.Customers ON dbo.Orders.CustomerID = dbo.Customers.CustomerID INNER JOIN
        dbo.Shippers ON dbo.Orders.ShipVia = dbo.Shippers.ShipperID

GO

Execute the script to create the database view.

Switch back to the web application generator. Refresh the project, and include the new view in the configuration.

Refreshing the project and including the new view.

Click Design and explore the new data controller.

Newly added 'OrderReport' data controller in the Project Explorer.

Saturday, December 15, 2012PrintSubscribe
Order Form Sample–Part 30

The automatically configured OrderDetails data controller has the following field set.

Default OrderDetails controller field set.

The report requires an extended field set in OrderDetails controller. The Denormalization Field Map will prompt the web application generator to create additional fields in data controllers.

Start Code On Time generator and click on the project name. Select Settings on the Project Action screen. Proceed to Business Logic Layer.

Activate Denormalization Map options and enter the following:

dbo.Order Details => dbo.Orders
OrderDate
RequiredDate
ShippedDate
ShipVia
Freight
ShipName
ShipAddress
ShipCity
ShipRegion
ShipPostalCode
ShipCountry

dbo.Orders => dbo.Employees
FirstName

Press the Finish button and refresh the OrderDetails controller.

Refreshing the 'OrderDetails' controller.

Click Design, and explore the fields of OrderDetails controller. The controller “borrows” additional fields from Employees and Orders controllers.

OrderDetails controller with new fields added by the denormalization field map.

Tuesday, December 11, 2012PrintSubscribe
“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.