List of Features in Windward

Designer

Template Debugger

The designer has a full-featured debugger that you can use to debug the processing of a template, including viewing all variables, the result of each tag being processed, etc. This includes the ability to single step and place breakpoints.

List Imported Templates

Lists all templates imported in the generation of a report.

Data Count

When you run a template and it is using way too much data, generating a gigantic report, this makes it easy to discover why. This tool provides a quick summation of the number of rows of data each forEach tag in the template will return. And it provides how much time it took for the datasource to return that data.

This provides a quick verification that the amount of data returned is what is expected. It also quickly shows which queries are pulling down more data than you expected.

Datasource Connection Debugger

When the connection to your datasource is failing (sometimes SQL connection strings can be very difficult to get right), this provides a powerful tool to show all issues with a failing connection. It also provides a set of all properties that can be set for the connection with the ability to adjust all of them. On failure, it provides all information from the underlying connector about why the connection failed.

Select Debugger

When you create a query (select) that fails, the select debugger provides you full information on why the select is considered invalid by the underlying datasource. This makes it easy to determine what is wrong and then correct it. And on success, the debugger displays the data returned by the select, so you can verify it is not only valid, but also correct.

Error & Warning Handler

You can set specific handling for errors & warnings, either on a per-tag basis, or on the report in full. This provides you a way to continue generating a document if an error or warning is not fatal for the generation.

Generate Code

The Generate Code tool in the designer allows you to open an existing template and, with a click of a button, automatically create a window with the code needed to run your current template with all data sources and variables. Simply copy this code and paste into your application's code in the appropriate place. You now have Windward integrated into your application.

You only need to do this once. You do not do this for each template. Instead, where it has explicit files for the template and output, change that to parameters you pass to this code. Same for the parameters passed to Windward. This example uses explicit values to show you what to substitute in where.

Tag Tree

Displays of all the tags in the template, structured as they are placed in the template. This provides a simple & intuitive way to see the structure of your template. Also provides the capability to go to any tag and/or see the properties of any tag.

Engine

Verify Template

The verify tool scans the template and reports any problems with the tags. Provides a way to easily go to and fix any problem tag.

Designer

Processes Embedded DOCX, PPTX, & XLSX Objects

If a DOCX, PPTX, or XLSX file is embedded as an object in a DOCX, PPTX, or XLSX template (any combination), that embedded template will be processed as a sub-template, applying the same datasources and passing in all tag vars in scope. That is then included in the generated report.

Engine

Footnotes & Endnotes can Have Tags

You can place tags in pretty much any part of a template, including in footnotes & endnotes.

Document Locking Supported in DOCX & XLSX

Any parts of a DOCX or XLSX (PowerPoint does not support this) file that are locked in the template, will be locked the same in the output.

Processes Embedded DOCX, PPTX, & XLSX Objects

If a DOCX, PPTX, or XLSX file is embedded as an object in a DOCX, PPTX, or XLSX template (any combination), that embedded template will be processed as a sub-template, applying the same datasources and passing in all tag vars in scope. That is then included in the generated report.

Pixel Perfect PDF Output

Office does not fully specify how it lays out a page, which makes it impossible for any product to render PDF identical to Office. Windward has a mode where the engine will call Microsoft Office or SharePoint (for running on Java) to perform the PDF layout.

Word Form Fields are Form Fields in PDF Output

Any form fields in a Word template are written as form fields in PDF & DOCX output. In addition, the value in the form can be populated from your data.

PDF 401 Supported

PDF 401 output is fully supported. This requires you use the option where Windward calls Office to generate the PDF file.

PDF/A Output Supported

Generated PDF output can be set to be PDF/A.

Designer

Access Providers for all File Based Datasources

All URL & file operations, including reading a file based datasource (XML, JSON, OData, etc.) use a Windward access provider. Access providers exist for all the common protocols (file servers, basic, digest, OAuth2, etc.). And if you need something different, you can write your own access provider - once. And it then handles any access of files using that protocol. (ref: Ohana)

The key value here is if you need to write your own access provider. If so, you write it once and it is then used anywhere Windward needs to access your datasource using your protocol. And of course, if you use one of the standard protocols, we have it covered.

Engine

Access Providers for all File Based Datasources

All URL & file operations, including reading a file based datasource (XML, JSON, OData, etc.) use a Windward access provider. Access providers exist for all the common protocols (file servers, basic, digest, OAuth2, etc.). And if you need something different, you can write your own access provider - once. And it then handles any access of files using that protocol. (ref: Ohana)

The key value here is if you need to write your own access provider. If so, you write it once and it is then used anywhere Windward needs to access your datasource using your protocol. And of course, if you use one of the standard protocols, we have it covered.

All Data Placed in Report can also be Written to data.xml File

If set, when a report is generated, all data placed in the generated report is also written to a data.xml file. That file is then included in the generated DOCX, PPTX, or XLSX report.

Ad-hoc Filters can be Applied to Tag Selects

Windward provides a simple mechanism to run Ad-hoc reports. If you have a template designed to generate a sales summary for a location, you can use this API to then set it to a rangle of locations, change the date range, etc. When generating a report, lists of values or select criteria can be passed to the engine to have it apply that ad-hoc query in the select for the identified tag.

This does not require designing the template to handle any combination of Ad-hoc queries. The Windward Engine will adjust the queries on the fly as you specify.

Designer

SQL Schema

SQL Schema is a method to reduce the schema of a database to just the tables/columns of interest. It also speeds up loading the database. Only needed for databases with a large schema - and a life saver for gigantic schemas.

Color Coding in the Select Editor

The query editor has color coding and type ahead to help in writing queries for advanced queries that the wizards cannot do. Or if you just prefer writing queries direct.

Define Variables to use in the Template

Define all variables that will be passed in when run in production. With the defined variables, they can then be used in a drag/drop manner when crafting queries in the wizards.

SQL Select Wizard - Automatic Joins

The SQL Wizard will automatically determine the joins between tables in the select (if the database metadata has the foreign key - primary key relationships).

Designer

Data Bin

The data bin is a tree of your datasource's schema (metadata). This is the elements in your data. From it you can drag & drop elements onto the template creating either an out tag(specific element) or a table (multiple elements). This is a very quick way to place tags in your template.

Designer

Tags are Color Coded

Tags are color coded in the template by type, making it easy to visually identify them.

Bitmap Tags are Bitmaps

Out and Import tags, when they are rendering bitmaps, display in the template as an Office picture (bitmap). And as it's a picture, you see in the template exactly what you will get in the output.

Engine

Chart Tags are Charts

Chart tags are Office charts. The data is populated from selects. All properties of the chart you set directly in Office as you would for any other chart. And as it's a chart, you see in the template exactly what you will get in the output.

ForEach Tags can be Row or Column Major

A forEach tag (repeat once for each row of data) can be row or column major. Use column major when you have a variable number of columns based on your data.

Pass in any Number of Parameters

There is no limit to the number of parameters you can pass in to generate a report. There is no limit to the number of parameters you can use in any select.

Designer

Access Provider is Used for Importing Any File

All file operations, including reading an imported file, use a Windward access provider. Access providers exist for all the common protocols (file servers, basic, digest, OAuth2, etc.). And if you need something different, you can write your own access provider - once. And it then handles any access of files using that protocol. (ref: Ohana)

The key value here is if you need to write your own access provider. If so, you write it once and it is then used anywhere Windward needs to read files using your protocol. And of course, if you use one of the standard protocols, we have it covered.

Engine

Can Read Imported Files from a .zip File

You can specify a file to import using  "filename.zip!data.xml" where it will then read the file data.xml from the filename.zip.

Imported Template Can be Set to Match the Parent Styles

In an imported sub-template, if its properties for a style (ex. Normal) differ from the parent template's properties for the style, the use in the sub-template can be set to either use the properties in the sub-template, or the properties in the parent.

You set to retain when you don't want the child template's styling to change when imported. You set to use the parent when you want the styling of the imported template to match the styling in the parent.

Any explicit styling is always retained. This only impacts styling set by styles.

Access Provider is Used for Importing Any File

All file operations, including reading an imported file, use a Windward access provider. Access providers exist for all the common protocols (file servers, basic, digest, OAuth2, etc.). And if you need something different, you can write your own access provider - once. And it then handles any access of files using that protocol. (ref: Ohana)

The key value here is if you need to write your own access provider. If so, you write it once and it is then used anywhere Windward needs to read files using your protocol. And of course, if you use one of the standard protocols, we have it covered.

Designer

Bitmap Tags are Bitmaps

Out and Import tags, when they are rendering bitmaps, display in the template as an Office picture (bitmap). And as it's a picture, you see in the template exactly what you will get in the output.

Change Tracking

OK, this is another case of it's all Office. We're just along for the ride. You can turn on change tracking, add comments, etc. to the template providing a record of who changed what in the template.

Access Providers for all File Based Datasources

All URL & file operations, including reading a file based datasource (XML, JSON, OData, etc.) use a Windward access provider. Access providers exist for all the common protocols (file servers, basic, digest, OAuth2, etc.). And if you need something different, you can write your own access provider - once. And it then handles any access of files using that protocol. (ref: Ohana)

The key value here is if you need to write your own access provider. If so, you write it once and it is then used anywhere Windward needs to access your datasource using your protocol. And of course, if you use one of the standard protocols, we have it covered.

Engine

Access Providers for all File Based Datasources

All URL & file operations, including reading a file based datasource (XML, JSON, OData, etc.) use a Windward access provider. Access providers exist for all the common protocols (file servers, basic, digest, OAuth2, etc.). And if you need something different, you can write your own access provider - once. And it then handles any access of files using that protocol. (ref: Ohana)

The key value here is if you need to write your own access provider. If so, you write it once and it is then used anywhere Windward needs to access your datasource using your protocol. And of course, if you use one of the standard protocols, we have it covered.

Engine

Create your own Macros

When you need a macro with functionality other than what exists in the 150 standard macros, you can write your own. You can create a macro to do anything with the data.

Conditional Formatting

You can set conditional formatting on the content of any out tag. This is similar to the conditional formatting in Excel but this works for all output (DOCX, PPTX, & HTML as well as XLSX). And it can be applied to the added data anywhere, not just in a cell.

130 Macros (Functions)

Windward includes over 130 macros (including 95% of the macros in Excel). You can also include your own custom macros.

Engine

Excel References are Adjusted to Match Output

Any references (A1:D6) are adjusted in the generated XLSX output to now be the new range based on the inserted data. This includes the case of a range inside a forEach loop, where the range will be adjusted for each set in each iteration of the forEach.

What does this mean? Say you have =SUM(C4:C4) in a cell. And when you generate the template the row 4 has become the rows 4 ... 15 when the data is inserted. Then that cell will now have =SUM(C4:C15). This is important because if you then change the value in cell C7, the SUM() will adjust to match this change. In short, this give you live worksheets.

Pivot Tables Adjusted in Output

Any pivot tables in an XLSX template are carried over to the XLSX output. The ranges in the pivot ranges are adjusted to match the generated output. So your final XLSX will have pivot tables set as expected in the generated file.

This makes creating an XLSX workbook with pivot tables trivial.

Download the free trial or contact us

Want to learn more? Need a demo? Why not start a free trial?
With no hidden implementation fees, it's a breeze to start with Windward.
Contact our friendly Sales Team at sales@windward.net or call 1-303-499-2544.
We can’t wait to help you with your document automation needs!

For over 10 years, Windward has lead the industry with our world-class document generation platform that creates visually stunning, data-powered documents designed exactly the way users want and are created in a fraction of the time and cost compared to existing solutions. Proudly located in Boulder, Colorado, Windward Studios is the premier solution for developers and business users adding reporting and document generation capabilities to their applications in over 70 countries around the world.

© 2019 Windward Studios Inc.