Reports

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
Reports
Sunday, December 23, 2012PrintSubscribe
“Report (PDF)” Action

The Report (PDF) action functions exactly like the Report action. It produces a report using Microsoft Report Viewer in PDF format.

This is the standard Report (PDF) action available by default in all data controllers.

Default Report PDF action on the action bar.

The picture below shows a default PDF report created from Products data controller.

Default PDF report using the standard report template.

Sunday, December 23, 2012PrintSubscribe
Multi-Purpose Reports

The Order Report with multi-level grouping no longer requires filtering by OrderID. It will correctly render order details if multiple orders are included in the data set. Let’s add an action to Customers data controller that will print all orders of a specific customer.

Start the Project Designer. In the Project Explorer, switch to the Controllers tab. Right-click on Customers / Actions / ag2 (Form) node, and select New Action.

Creating a new action for Customers controller.

Assign the following values:

Property Value
Command Name Report
Header Text Print All Customer Orders
Data

_controller=OrderDetails
_view=editForm1
_template=OrderDetails_report1.rdlc
_sortExpression=OrderID,ProductProductName
OrderCustomerID=CustomerID

When Key Selected Yes

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

Navigate to the Customers page, and select a record. Click on Print All Customer Orders to download the report.

Printing a report of orders filtered by the current customer.

The report will include orders of the selected customer.

PDF report displaying orders of the specific customer.

Sunday, December 23, 2012PrintSubscribe
Changing Report Template

The Report action is interpreted by the application framework as a request to produce a report document in Adobe PDF, Microsoft Word, Microsoft Excel, or TIFF format. The framework uses Microsoft Report Viewer for that purpose. The Viewer requires a report definition in RDLC format and a dataset to produce the output.

The application framework includes a standard report template file written in XSLT. This report template is applied to a data controller file to produce a report definition in RDLC format when the Report action is handled by the framework. By default, the report template will be generated at run-time using report font, label, and orientation specified for the view.

The picture below shows a report created from Orders controller using the default report template.

Report created with the default report template of Orders controller.

The default report template file can be changed – the customizations will be applied to all non-custom reports.

Let’s add a copyright message at the bottom of all reports.

Start the web application generator, click on the project name, and press Develop to open the project in Visual Studio.

In the Solution Explorer, double-click on ~\Reports\Template.xslt to open the file.

Report template file selected in Visual Studio's 'Solution Explorer'.

Press Ctrl+I and type “PageFooter” to find the footer section. Make the highlighted changes:

<PageFooter>
  <PrintOnFirstPage>true</PrintOnFirstPage>
  <ReportItems>
    <Textbox Name="FooterPrintedInfoTextBox">
      <rd:DefaultName>textbox7</rd:DefaultName>
      <Width>4.125in</Width>
      <Top>0in</Top>
      <Style>
        <VerticalAlign>Bottom</VerticalAlign>
        <PaddingLeft>2pt</PaddingLeft>
        <PaddingRight>2pt</PaddingRight>
        <PaddingTop>2pt</PaddingTop>
        <PaddingBottom>2pt</PaddingBottom>
      </Style>
      <ZIndex>1</ZIndex>
      <CanGrow>true</CanGrow>
      <Paragraphs>
        <Paragraph>
          <TextRuns>
            <TextRun>
              <Value>
                <xsl:text>="© 2012 Code On Time LLC. ^PrintedOn^Printed on^PrintedOn^ " 
                  &amp; CStr(Now())</xsl:text>
                <xsl:text> &amp; IIf(CountRows("</xsl:text>
                <xsl:value-of select="@name"/>
                <xsl:text>") > 1, " (" &amp; CountRows("</xsl:text>
                <xsl:value-of select="@name"/>
                <xsl:text>") &amp; " ^Items^items^Items^)", "")</xsl:text>
              </Value>

Save the file and switch to the web browser. Navigate to any page that has a controller on it, and activate the Report | PDF Document action on the action bar. The copyright information is now displayed on the left side of the page footer.

Report created from default report template now has copyright information displayed in the bottom left corner.

Multiple XSLT report templates can be created. The name of a custom report template with full extension can be specified as the command argument of a Report action or as a value of _template option in the Data property of the action.