Advanced Reports Writing Guide
With the Advanced Report Writer (ARW), you can create customized reports from the ground up, using elements of report design and programming.
You can embed code in reports to control and format the information that prints. You can also use Pascal scripting language to create additional layout windows and control events around reports. Although some programming knowledge is helpful, it's not required to create ARW reports.
Watch & Learn 
Introduction to Advanced Report Writer
Learn how to build an advanced report using all the different report components you need.
11 min 3 sec
Report Components in Advanced Report Writer
Learn about static and dynamic components and how to use them in an advanced report.
13 min 56 sec
Sub-reports in Advanced Report Writer
Learn how to add sub-reports to pull in the information you need in your advanced report.
11 min 9 sec
Event Triggers in Advanced Report Writer
Learn how to add code in an advanced or easy report to show output in different ways based on a certain action. For example, need a financial report to show negative numbers in red text? Here’s how!
14 min 49 sec
Global Variables vs. Variable Components in Advanced Report Writer
Learn the difference between global variables and variable components and how to use them in an advanced report.
7 min 56 sec
Advanced Report Writer in Action
Learn how to copy and modify an existing report and its sub-reports using advanced report options and scripting options.
6 min 57 sec
Ledger Drill-down Modifications in Advanced Report Writer
Learn how to copy and modify the Drill-Down Report in PDS Ledger in order to add transaction notes.
13 min 21 sec
Advanced Report Writer FAQs
Have a question about the Advanced Report Writer (ARW)? Get a quick answer!
Getting Started
- What is the Advanced Report Writer (ARW)?
- The Advanced Report Writer (ARW) allows you to create customized reports from the group up, incorporating elements of report design and programming. You can embed code to control and format printed information and use Pascal scripting language for additional layout windows and event control.
- Do I need programming knowledge to use the ARW?
- While some programming knowledge is helpful, it's not required to create ARW reports. The Advanced Report Writing Guide assumes you are familiar with the PDS program you're working in, basic mouse operations, and standard Windows menus, toolbars, and command buttons.
- How do I create an advanced report?
- There are two main ways to create an advanced report. You can either copy an existing report and modify it in the ARW, or you can add a new advanced report from scratch. Modifying an existing report is generally easier.
Once you've copied a report, you can click Modify the Report in the Listing Layout window to open the ARW. If you create a new advanced report, the ARW opens automatically.
- Can you walk me through an example?
- Yes! There are several exercises and an example project that walk you through what to do. See Page 74 of the Advanced Report Writing Guide to get started.
Report Structure & Elements
- What are the different parts of an advanced report?
- When you open a new report, the workspace is divided into three main bands: Header, Detail, and Footer. You can also add Title and Summary bands.
Objects in the Header display at the beginning of each page of your report, and objects in the Footer display at the end of every page. Objects in the Detail band print once for each item within it. The Title displays once at the very top of the report, before the Header on the first page. The Summary displays at the very end, before the Footer on the last page.
- What are "objects" in ARW reports?
- Objects are pieces of information that can be printed in a report. They can be generic (like labels, shapes, and lines), or they can display actual data from your program (like a family's name or a person's image).
- What's the difference between a "Group" and a "Region"?
- A Group is a special band that contains a Detail band surrounded by a Header and Footer. You can use a Group to keep objects together on a page or start new details on a separate page. Groups have "break points" based on a data field or custom field.
A Region is a group of objects handled together as a unit. It doesn't encompass the entire Detail band and doesn't have any break points. A Region can only use the same data pipeline as its parent band.
- How do I show or hide the toolbars in the report editor?
- Depending on what you're doing in the editor, you may want to show or hide different toolbars. Click , then select the toolbars you need and clear the ones you don't.
Embedded Code & Scripting
- Where do I enter embedded code in a report?
- To enter code for an event or object, right-click it and select Do Before Print or Get Text. For variables, right-click it and select Calculations. You can define or initialize global variables by clicking or . Enter your code, and click Save.
- What's the difference between embedded code and scripting?
- With embedded code, you can control the internal elements of a report. With scripting, you can also control outside elements. PDS uses the Pascal language for both of these; however, in scripting, you must enter all the code, including procedure declarations, in one location (instead of separate windows for each routine), and the fields names are different. Also, any errors in scripts don't display until runtime.
- How do I test my embedded code for errors?
- To test embedded code for syntax errors and uninitialized variables, click . A message displays for each error found, and you're prompted to edit it as needed.
- What are UDR and INI files?
- Every advanced report has two associated files ending in .udr and .ini. The UDR file contains the report's properties, defaults, and other data. The INI file saves the printer, report, style, and other settings, and is updated each time you run the report.
Advanced Scripting
- Can I use scripts to ask users questions and customize reports?
- Yes! You can ask people who run your report different questions, then customize the report based on their answers. Use the PDSMessageDlg function to display dialog boxes with button options. To learn more, see Page 41 of the Advanced Report Writing Guide.
- What are "memory tables", and when would I use them?
- Memory tables are tables in the database that temporarily reside in program memory, not on a disk. They store large amounts of temporary data when variables are insufficient. This is especially useful for calculated values that need to display in specific locations. To learn more, see Page 51 of the Advanced Report Writing Guide.
- Can I export report data to other applications, like Excel or Word, using scripting?
- Yes! Along with exporting to a file, you can export to an OLE server. To see the sample code for exporting to a spreadsheet, see Page 61 of the Advanced Report Writing Guide.
- Is it possible to import data into the program using scripting?
- Yes! You can import data using a script, which can read the information from a file into the program. Use caution, though, as this requires extensive knowledge of the data you're importing. To learn more, see Page 61 of the Advanced Report Writing Guide.
- How do I print letters in multiple languages?
- To print the same letter for each family in their selected language, use LANGUAGE statements in the letter's text, inside address style, and closing style. Note that the program does not automatically translate the text. To learn more, see Page 33 of the Advanced Report Writing Guide.
- Can I create a letter that prints different paragraphs based on conditions?
- Yes! Use IF-ELSE-END structures within a letter report to print different paragraphs of text depending on conditions that you specify. For example, you might want to print different text based on the amount a family has paid. To learn more and see an example, see Page 31 of the Advanced Report Writing Guide.