Windward Studios takes a unique approach to reporting. Our Report Designer sits directly inside Microsoft Office which means you get to use a familiar and powerful tool without having to learn a new designer. If you’ve ever used one of our competitors’ products, you may be familiar with their modular designers that require you to build reports using bits and pieces, where every bit of text or every piece of data is a distinct object in your template. Windward changes all of that. With Windward in Microsoft Office, you design report templates just like you design any other document, utilizing Tags to insert your data wherever you need it seamlessly in-line with your other text and content.
How Does Windward Work?
Before we jump into template design, let’s talk about the philosophy of Windward. Let’s consider the example of a local energy company. Every month they need to send out bills to all their customers. Their data might look something like this:
Using Windward, you design a single template in Word or Excel that allows you to generate a unique bill for every one of your customers. The example template below uses Tags as placeholders for data. Every piece of text contained in brackets ([ ]) is a Tag and will be replaced with data when the bill is generated. Windward does the heavy lifting – we pull in all the relevant information from your Data Source and format it as specified in the original template.
See the example template and output below:
Output for Mary Sue
Output for John Smith
Output for Bob Johnson
Now let’s look at one of our sample templates, the “VariableInvoice Sample – Template.docx”:
This template was created from scratch in Microsoft Word. Everything you see in the template, from the text to the header to the color formatting, functions just like it normally would in Word… with one major exception. All the colored text you see contained in Brackets [ ] are Tags. Windward uses Tags as placeholders for your data. Every Tag corresponds to an item in your Data Source. In this example, the Tags are used to fill in the data for any given Order Number and its subsequent information.
All the Tags are replaced with the corresponding data from the Data Source. Once you have Report Designer installed, you can open this template and play around with it to help get an idea of how Windward lets you design templates in a familiar environment where you can use all the tools available to you to build unique templates.
2. Enter the License Key when prompted provided from the Windward Sales team or from the trial download email. If you did not receive a License Key within 10 minutes of signing up for a trial,, please contact our Sales team.
3. Start Microsoft Word or Excel.
4. When Word or Excel first starts, it may indicate that you do not have a valid license. Click Yes. At the prompt, copy and paste your license key into the license key field.
5. Verify that the Windward menu is available by opening Microsoft Word or Excel. If Report Designer is not present, please reboot your system.
Please note: A critical element of successful template design with Windward is knowing your data. If you are unfamiliar with your data or how it’s structured, you may want to spend a few minutes reviewing the data or ask your database administrator for an overview before beginning this training.
Step 2 - Connect To Data
In this training guide we are connecting to a sample JSON Data Source provided by Windward.
1. Open Microsoft Word. Now that you’ve installed Windward Studios Report Designer, you will see two new tabs in the Microsoft Office Ribbon – the Windward tab and the Windward Tools tab.
2. Click on the Windward Tab and click on the Data Sources button located on the left-hand side of the ribbon.
3. In the Connection Editor window, in the New tab, click on JSON under Web/File. The Details pane will change to prompt you for your data source details.
4.Enter a Nickname for your data source connection. It is best practice to always assign a nickname to your Data Source in the Nickname field. This will make your life much easier down the road when working with templates or tracking down issues.
5. Fill in the following fields:
6. Click Test, and then click Add to add your connection. If all parameters and credentials are correct and a connection is made, you will receive a successful notification. Click Close to close the window.
Download this Sample Template to follow along with the training.
In this Training Guide we’re going to build a very basic order receipt that is generated anytime an order is completed. Connect to Windward's public database in step 2- Connect to Data to follow along.
1. Open the Sales Receipt Template and check that it is connected to the database provided from Step 2- Connect to Data.
Now we’re going to insert a Tag that gives your template the ability to incrementally pull in as much connected data as you need – the ForEach Tag.
The ForEach Tag is used to step through your Data Source and insert individual pieces of data for each entry in the Data Source.Almost all templates you create will utilize ForEach Tags.
2. First place your cursor at the very beginning ofthe document, before the ‘Dear’ text. Navigate to the Windward tab, click theTags drop-down menu, and click on the ForEach Tag to insert a ForEach Tag at the start of your document.
3. Now we’re going to set up the ForEach Tag so it knows what data we want to insert into this template. Click on the Tag to select it and then click on the Wizard button in the Windward tab to open the SQLWizard.
The Wizard is used to create a Query for the data. A query tells Report Designer exactly what data to pull from your data source for your report. This can seem technical your first time through, but the Query uses common language and you should be able to understand what we’re pulling from the Data Source as we build the statement. Since the CompanyName is in a different table than the Order information we’re going to make sure we’re pulling the correct CompanyName based off the OrderID.
4. In the JsonPath Wizard click on the link click here to add a node. In the Select the node to return dialog that appears,expand the Root Node($) and select Orders. Then click OK. Click OK in the JsonPath Wizard to save your query.
The ForEach Tag we made above will store information we willuse later in a variable name associated with the tag.
5. In the template this creates a tag labeled withonly a ‘*’, so let’s change this by entering a nickname for the Tag in theNickname section of the ForEach Tag Properties in the Windward tab. Place yourcursor on the ForEach Tag in the template to reveal the ForEach Tag Properties.
6. Now that we’ve specified that we want to use the Order table set of data in our template, it’s time to insert our data Tags.
7. Now that we’ve specified that we want to use theOrderDetails table set of data in our template, it’s time to insert our dataTags.
a. Let’s start by inserting a Tag for the Company Name in place of our COMPANYNAME placeholder text. Begin by selecting and deleting the COMPANYNAME text.
b. Now use the Tags dropdown to insert an Out Tag.
c. Click on the Tag to select it and then click on the Wizard button in the Windward tab to open the JsonPath Wizard.
d. In the JsonPath Wizard click on the link click here to add a node. In the Select the node to return dialog that appears select Customers. Then click OK.
e. Click on the link click here to add a condition.
f. Click on the link click here to add a group.
f. Click on the link click here to select a node.In the Select the node to return dialog that appears, expand the Customers nodeand select CustomerID. Then click OK.
e. Click on the link click here to set the value.Expand the drop down on the right side of the field, and under the variablename you set before double click the CustomerID node.
e. Click on the link click here to add a node. Inthe Select tshe node to return dialog that appears select CompanyName. Thenclick OK. Click OK in the JsonPath Wizard to save your query.
We just created the CompanyName Tag for our template. Next we need to query the data we will use in our table.
7. Just as we did for the CompanyName Tag, replace your placeholder text with an Out Tag.
8. Double-click the Out Tag to open the Tag Editor.
9. Then select the matching node from the ForEach dropdown for our replacement text.
10. Click Save Tag
11. The final step is to add an EndForEach Tag so the document knows where to stop filling in data.Place the cursor after the Thank you! text and insert an End ForEach Tag from the Tagsdropdown
Our final template now looks like this:
Step 4 – Refine Your Output
On the Windward Tab you can use the Output dropdown to generate this template into a report in any supported format. Let’s start by generating it in DOCX format.
As you can see, we need to make a few revisions to our template to get it looking right.
1. The first easy fix is to move the End ForEach Tag to a new page so that we’re only generating one receipt per page. Place the cursor in front of the End ForEach Tag, and use the Insert tab to insert a Page Break before this Tag. This moves the End ForEach Tag to a new page.
2. Now let’s change the Data Type of the OrderDate, Price, and Discount Tags so they look better.
a. Double-click on the OrderDate Tag to open the Tag Editor.
b. Switch the main pane to the Properties pane, click in the entry field to the right of Format, and open the formatting window by clicking the button on the right of the entry box. The formatting window allows us to select a format for the Tag. This is very similar to Excel, where you are presented with options to standardize how this data is displayed in the output report. Since we’re formatting OrderDate, click on the Date option and then select the most appealing format for you. Once you have your format click Apply and then click Close. Finally click Save Tag to close the Tag Editor window. Your Tag doesn’t look any different, but when generated it will appear in the format you selected.
d. Repeat this process for the UnitPrice and Discount Tags, making sure that you select Currency instead of Date in the Formatting window.
4. Now let’s do some basic Word formatting on the rest of the document. Let’s bold the OrderDate and OrderID Tags as well as the first row of our table. Feel free to format the rest of the template in any way you wish - any formatting you define here will carry over to your generated document.
When you’re done, generate another DOCX output of the template to see the changes.
This output looks MUCH better. Receipts are now on individual pages and we’re bolding parts of thetemplate to draw attention to it. The Price and Discount columns are also now in commonly acceptedcurrency format.
Most customers find it very useful to make formatting changes and output their document frequently tosee how those changes appear. As you build more complex templates and use elements such as imagesand charts you’ll find that it moves the rest of your content around as data is inserted.
Step 5 – Output Your Template
Once you have completed formatting your output, you’re ready to complete the final output of your template. To test your template you may output using the Designer, but in production you’ll probably use one of our Windward Studios Report Engines. Most users use one of two methods for outputting from an Engine. The first option it to copy the DOCX or XLSX template to your Engine server and provide that template to the Engine as needed. The second option is to use the Generate Code button in Office which gives you the backend code you the Engine needs to output documents. The Generate Code button is found in the Windward Tools tab.
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.