New in Pathagoras 2020 and 2020.5

Additions/Improvements since initial release of 2020.5

More 'universal' date styles: Peter pointed out that Australia uses neither the US date styles nor what I dubbed the 'European' date styles. (Francois noted the same thing months earlier.) I learned that it's not just the "day, month, year" order, but whether a comma separates the month from the year, and whether hyphens vs. slashes are the prefered 'short date' dividers. We have now addressed these issues. Pathagoras now uses your system date styles as set in your computer's 'Region Settings'. Let me know if things are not working as expected for your region. This works in all aspects of 'date' processing. If you are double clicking in a date textbox in the Instant Database screen, Pathagoras will present local date alternatives (and if you keep clicking, it will present a few 'non-local' styles just in case you might need them. It also works when you are adding arguments to date variables.

A date 'fix': Sometimes when you don't know the date for your [Date of . . .] variable, you just want to put in "the ____ day of ______, ____." But Pathagoras 'rejected' that as a proper 'date' and sometimes refused to move on. (Pathagoras was actually trying to convert that text to a universal date style so that other instances of that date variable with different arguments could be processed. Now Pathagoras can 'handle' that  non-date 'date'.

A new kind of 'Mail Merge': Jacqueline has a base document that is mostly 'standard' but has a few highly personalized paragraphs for several specific companies to whom it is addressed. All custom paragraphs reside in the main document, making it easy to see the universal text and the custom text, and the intended recipient of each custom text block. (So blocks are highly personal to a specific company. Other blocks are intended for some, but not all, companies. Some are intended for all companies except a select few.) .

A mail merge would work for the 20 or so letters that have to be produced, but who has the knowledge or time to do that? (If you do, skip this.) What she wanted was to use  the 'simple options with groups' setup, marking the unique paragraphs with curly braces and the names of the company (ies) for whom that paragraph applies (or doesn't appy). But she also wanted it automated. The routine should create the appropriate letter for each of 20 clients with a single button press.

This was one of those requests to which I initially gave a 'can't be done' response. But it was so interesting that I decided to program it.

I have dubbed it 'MailMerge' but that name is subject to change. It does what is described above. It is firmly based in simple options with groups (i.e., the text is surrounded by curly braces, and introduced by a group name), but  contains two very cool differences.

First, you would list all of your 'groupnames' (let's say a list of the target companies to whom you want letters set) at the top of the base document inside the command <<*MailMerge* . . . >>. Secondly, while the base document body is marked out with simple options blocks. you can list multiple groupnames within the !groupname! exclamation marks for whom that particular block of text would applies. Separate each company by commas. E.g., {!ABC, Johnson, East Coast!text text}; {!XYZ!text text}

When you process the document, Pathagoras will generate a new base document, cycling through each member of the target group, and then, for each new letter, keeping the text designated for a particular 'company' and deleting text which did not apply.

When an individual letter is complete, Pathagoras will save it under the name of the 'current' company for distribution when appropriate.

Mail Merge improvments, pt. 2: Ben has a large Excel database of hospitals and medical providers to who he sends letters requesting records for his clients (their patients). His form letter has variables for the hospital's name, address, records clerk, etc. And it has space for the client's name, address, DOB, etc. But the client's name is not in the Excel database, and the hospital data is not in the client's Instant Database record. Not to worry. You can (now) easily generate the hospital letters using Pathagoras' Mail Merge tool and immediately after apply the client's personal data record against the generated letter. Print the now highly personalized letter, and you are off to the races.

<<*Process*>> command. Use this command to tell Pathagoras to fully process the document as it stands currently. Once completed, then process the remainder of the text below the <<*Process*>> command. Designed for use in 'reversing' operations, such as Wills. Read more at this link.

'Dynamic' Signature Blocks: A 'dynamic' signature block is one that changes based on other values. E.g., in a real estate contract, the individual parties can be individuals or 'entities' (corporations, LLC, partnerships, etc) and the number of parties can be 1 or 2 or many. Complex transactions (real estate with financing arrangements; estate planning) involve many signatures. Configuring each signature as it is encountered can take as much time as the assembly of the base documents.

But, with 'DSB' active, only the first signature block is processed. When another identically named signature block is called in, the previously processed block is located and pasted in. The time savings can be dramatic.

<<*Get* functions enhanced.  The <<*Get* function obtains <<*Options* and <<Optional>> values from a designate Excel spreadsheet. Some or all values needed to generate a document can be set in Excel, but doing so is not always easy. The cascading abilities in Pathagoras <<*Ask equations are quite simple. But, to the extent you want to gather information externally (from client or customer) via Excel or other programs that translate into Excel, Pathagoras can 'get' that data and use it for document automation. We also have created a 'sample' spreadsheet for you to download which provides many Excel coding needed to create a workable Excel spreadsheet. Many thanks to Attorney Dennis Toman who allowed me to use on of his documents to create the speadsheet sample.

<<*GetFrom*location>> added.

 

Additions/Improvements since initial release of 2020

<<*If* logic greatly enhanced (but still all plain text)

'Formatted' <<*If* equations

<<*If equations are used to set new values or to ask questions based on the values of precedent groupnames gathered or set in Interviews..The underlying logic is "If THIS value is True, then THIS action, else THAT action." Prior versions required the equation to be in 'straight line' structure. (No blocking or indenting of the THIS and THAT sections.
 
You can now add 'Enters' and Tabs to segregate the major sections of your <<*If* statements.  The formatting lets you separate the primary 'If' question from the 'If True' section and the 'If false' section.

Multiple True (or False) statements allowed on same 'line'.

You can now list two or more 'results' of an <<*If* equation (true side or false side). Just separate the results with a '|' (pipe) character.

AND and OR connectors plus Any, All or Not logic.

The <<*If*. . .>> command measures a 'true' or 'false' value of a statement and then performs either the 'true' or 'false' side if the equation. Previously, the 'If' statement could compare only one value at a time. Now, Pathagoras can be asked to compare multiple values with the AND or OR connector. Further, the comparison can be made with 3 different 'arguments',. So you can easily determine if 'any,' 'all' or 'none' of a previously set or determined value is 'true' (or 'false'). These tools greatly expand the logic you can apply to get the 'answer' you need.

Improved <<*Get*>> command.

Completely redesigned. Get from named cells or from spreadsheets with simple two column or two row structure. Use 'gotten' value in Options, Optional and Repeat blocks.

New: <<*Get*>> a document reference from Excel.

A 'gotten' value can now be a document name. That  document can be directly inserted into the current document. This is more than cool. It adds a whole new level of assembly capabilities.

Excel: Call from a static file.

If you have an external database file which has data you want to use for Pathagoras, it is easy and efficient to set up a macro in the database program to export that data. Some may wish to create a new file for each new client, but some may wish to export that data to a single 'universal' file (overwriting it each time a client's data is exported for a project). You in turn can point Pathagoras to read the latest iteration of that static file into the Instant Database. (The file name remains constant, but the data changes at your command.) You can record that static file's name for Pathagoras' use and import the data more or less automatically from the revised file. It takes just a single click. This is a 'best of both worlds' situation. Pathagoras plain text variables are preserved in your document but you have practically instant access to the desired data collected via the external database.)

'Mass search & replace' improvements:

   'Mass' here means 'all documents in a folder'. Our earlier versions did not allow replacements in headers and footers. Now it does. Need to conform variables (some documents have [Client Name] and others [Name of Client])? Now it's easy to make them uniform.

Correct missing or misspelled document or path 'on the fly'

   Things change. Files get moved and renamed. If you have misspelled a document name in a document call half-way through the assembly of a document, instead of 'crashing out,,' Pathagoras will report that error and allow recovery by allowing you to making the appropriate spelling changes, reinstating the network or even by copying the missing file (if that is the actual problem) into the folder. Press the (new) 'Retry' button and the process is recovered.

Enhanced Speed Features:

       Faster *Alias* calls for complex documents. Previously, a call for an *Alias* list would open the *Alias* spreadsheet (the 'multichoice.xlsx' file), find and copy the requested value and then close the spreadsheet. When *aliases* were rarely used, there was no speed issue. However, but we found that users are using the *Alias* feature more than we anticipated and creating many more lists than we originally programmed for. (This is a good thing!)  While each call would be but a split second, lots of calls added up. Pathagoras now holds the *alias* spreadsheet open until the whole document assembly process is complete.

       Faster switches between templates/style-sheets. Assign up to five 'personal' style-sheets on top of those available in Word's default collection. These are style-sheets that are very personal to your office: letterhead; fax cover sheets; memo forms; numbered lines; anything.  Pathagoras can replace (now practically instantly) the headers, footers, body-text style definitions in the current document with those of the selected style-sheet. It's kinda' cool watching your document rotate among a variety of looks. However, we mainly designed it so that you could 'quick change' text on the screen from 'memo' to 'fax' to 'letterhead', etc.

       CaratOR and PercentOR separators: To determine the proper scope of a particular option within an <<*Options* . . .> block, where the choices were indicated by a simple slash (/), Pathagoras must convert nested options and variables that may also contain 'slashes' into other characters. That way, only 'relevant' slashes are seen. The process is quick and typically unnoticeable. However, the complex and heavily nested documents that many users have been able to create presented a 'problem.' They were beyond our wildest imaginations when we first undertook to write the program.) The process of converting those slashes was still just seconds, but those seconds began to add up. By adding these 'Super Separators'  (%OR and ^OR, 'capital' 5 and 6 on your keyboard) as a divider for top (parent) level options, Pathagoras can parse out large swaths of text (keeping or deleting the text as appropriate) without converting an sub-level slashes.This will dramatically improve processing speed.
 
   This hierarchical system also allows easier to create and easier to 'read' processing nests.

       'Don't rescan' feature. After you call an existing Instant Database record, Pathagoras will (by default) re-scan the underlying document for additional variables not in the current set. If the underlying document contains many variables, this re-scan can add several seconds before the variables are displayed on the screen. While not long, it is still 'time spent' if no new variables exist. So if you have a 'mature' record (one that you know contains all possible variables, you can skip this re-scan by clicking the box in the lower right corner of the blue 'Existing Records' block.  (If you don't check the box, but the document is greater than 9 pages long, Pathagoras will ask if you want to rescan -- in case you forgot to check the box.)

       Faster replacements for short options blocks. Instead of processing each element of a multiple choice (options) block for a keep or replace decision, Pathagoras can search for the presence of an entire raw <<*Options* block and directly replace it with the desired value. The change is subtle, but the speed-up in processing time when identical text is involved is real.

Enhanced Logic Features

New <<*If(arguments). . .>> Easily create powerful logic formulae based on a selection of single or multiple choices. You can direct Pathagoras to set new values and issue specific assembly commands based on whether, 'one,' 'any,' 'all' or 'none' of a specific set of options was chosen. Cascading logic has never been easier.

New <<*Set* . . .>> command features You can use the <<*Set*>> command to establish a value for multiple !groups! in a single pass. (Pre-2020, settings had to be made one-at-a-time.) Useful when setting baseline or default values to 'true' or 'false'.

GroupNames set to 'False' by <<*Optional*, <<*AskOptional* or <<*Set* command will now delete a multiple-choice '<<*Options* block bearing same GroupName. Pathagoras will assume a 'False' (i.e., 'none are selected')  value for a Group means <<*Options* (as wel as <<*Optional*) text blocks bearing the same GroupName are not relevant are can be deleted.

   (Advanced users will understand the above gibberish. For others, you'll understand what an improvement this is as you experiment with creating complex logic blocks.)

Option/Optional/Repeat Equation Editor: Supplementing the Create Options Wizard, this new tool is designed to help the more experienced user create compliant equations for document logic purposes.

DropDown List Additions:

New printout functions for the content of your various DropDown Lists.

'Open Folder' tool at foot of DropDown List previously would open the target folder in 'File Open' view, allowing the user to only select a document for editing. Now the folder is opened in 'Explorer' view, allowing the user access to the folder for all purposes. The folder can even remain open while Pathagoras continues processing.

You can also open the target folder of a DropDown List by typing its positional name followed by <Alt-G> (for 'g'et). So to call the 4th DropDown List, type 'DDL4<Alt-G>'

Interview improvements

A new <<*Break*>> command. <<*Break*>> inserted between other commands in an <<*Ask* . . .>> table tells Pathagoras to temporarily stop processing any more commands and to display what it has so far. (Normally Pathagoras will display up to 10 'questions' at a time. <<*Break*>> allows you to better control the groupings of the questions.)

A new <<*Remarks*>> command.. <<*Remarks* . . . . .>> inserted between other commands in an <<*Ask* . . . >> table lets you add explanatory comments to your equations and commands. Helpful to you and your end users.

Auto-select 'first', 'second' or 'last' choice for all interview screens (for testing). Long, complex documents can result in with many interview pages as cascading logic displays (or hides) relevant (irrelevant) questions. During testing of the document, having to step though the same series of questions and answers can be tedious. We have implemented an 'answer all' routine that allows Pathagoras to automatically select the first choice, the last choice or all choices in all subsequent pages of an interview. The resulting test document can be more quickly produced and doesn't require the constant monitoring. (Of course, when in not test mode, careful selection is the order of the day.)
 
Note: While the auto-select feature was written with testing in mind, this feature can go beyond just testing. Strategic arrangement of your choices for 'default' documents can allow you one-click assembly of those documents using 'auto-select'.)

Improved 'hover over' text use and capabilities. You can easily add tips and usage instructions to your various AskOptions/Options and Variables selections to efficiently guide your end-users to the best selection. End-use hovers mouse over a possible selection. A small instruction box appears with your guidance.

Content Control functions and features

This new tool offers limitless applications. Using the same command-creation styles with which you are already familiar, you can create, process, list and navigate Word's powerful Content Controls. When implemented in your form documents, you can provide for simple lists, insert dates, and change the timing of the appearance of certain commands. (Not available for Office 2007 installs.) Pathagoras can read some content controls into the Instant Database. Pathagoras can help you to create individual content control either by typing appropriate command in the Pathagorized document or inserting the control manually via the Editing screens. As you know, we typically shy away from Word's hard to program hidden fields, but we really do like Content Controls.

Instant Database 'pure replace' option.

Want simply fast replacements of variables with assigned value. Check the new "pure replace" box in the Advanced Array (fourth box from the left). It turns Pathagoras into a super exact Find and  Replace tool. When styles don't matter (maybe you are replacing just numbers or low-formatted text or characters), this is a great tool to speed things up.

Indenting, bulleting, numbering preserved when text inserted in formatted paragraph.

Pathagoras (and other programs that allow mid-paragraph insertions of text) always faced the challenge of maintaining formatting when inserting at 'normal' text level (no indenting, headings, etc,) but preserving the formatting of the receiving paragraph when text is inserted mid-sentence. We have uncovered the 'secret sauce' to allows the formatting you want.

Extended Numbers in French, Spanish and German:

New, and a bit experimental. We need your comments. Two methods:

(1) 'Tag' the variable with the (classic) <$$> or <SS> coding but add  the two letter code for the language just inside the closing '>'. So <$$FR> or <SSSP> or <$$DE>. When variables are replaced, Pathagoras will automatically extend the number.

 

(2) In the IDB screen itself, check the language box in the lower left corner of the IDB screen. Then, double click in the cell containing the number right hand side. This starts a 6 way toggle for displaying numbers.

 

Note--translating numbers into another language is complex stuff. The result  may not be perfect, but hopefully it is usable.  If you are using method (2), you can edit directly in the IDB screen before saving/replacing in the document itself. Regardless, please double check any translated values before sending item to client or customer. (If nothing else, the translation should be a 'good start', avoiding having to type everything.) Please let us know of any improvements we can make to this new feature.

Alt-G shortcuts We continue to add to our list of Alt-G (for 'g') shortcuts. Check out what you can accomplish by simply typing a keyword followed by <Alt-G>.) Newest one: Intakeform<Alt-G> displays a sample Intake Form for your clients/customers to complete and mail back. Once received back, scrape the data into an Instant Database record. Look, Ma, no hands.

 

Many of you have had the improvements discussed above for quite a while,
while testing and refinements of those features were occurring.
For those involved in those tests (some voluntary, some a bit involuntary), we thank you.

 

Below are some features that that we first introduced after the initial release of v.2019 but prior to the formal release of v.2020:

List !Groups! We have added a 'List !GroupNames!' option to the Structure Checker. This routine will list all !groupnames! used in the document being checked. That way, you can insure consistency in the spelling of your groupnames. You can also add !groupnames! to your Variables DropDown List. Look for that element near the bottom of an existing list.

Step-by-Step Tutorials We found this really cool product called Iorad (I have no idea what it stands for) that allows us to create tutorials in a way no other program we have found can. It allows us to easily create hands-on tutorials that let you actually perform many of the steps involved for a particular action. On top of that, it 'talks' you through the various steps. Check these out. And let us know what other ones you would like to see.

<<*Prompt*>> command. You can now insert a <<*Prompt*do this action. . .>> command to direct, instruct, remind, etc. the end user to perform a certain task. You can set up to 5 prompts, cleverly numbered <<*Prompt1*>>, <<*Prompt2*>>, etc. The commands can appear in any location in the document so you can direct the end user to a specific spot for a specific action.

QuickLinks: You can add a custom extension of '.jpeg'', '.pdf' or other extension to your QuickLinks assignments. Want to display just pictures when you call on a QuickLink? Add "jpeg" as an additional argument to your QuickLinks setup.

 

Cumulative Options now tied to assigned Repeat setting. So,if you assign "3" as the <<*Repeat* or <<*AskRepeat* value, that value is assigned to other repeat blocks of the same !groupname! but also to <<*Options(cumulative)* blocks carrying the same !groupname!.

 

<<*Repeat*(return) now has option to return BOTH Arabic and spelled out number (together). Before, you could return either the Arabic number of the repeat value (e.g., '5') or the number spelled out (e.g., 'five'). Now you can return 'five (5)' into your document. (Thanks, Joe. Wish I had thought of it myself.)

 

Reading XML files. Pathagoras now have the ability to read XML (and XML based files, such as '.adb' files created by WealthCounsel) into an Instant Database record. This is a new addition, and will require some refinements to become intuitive, but we wanted to announce it now so those who see a need can contact us early in our development phase and offer suggestions. Very high end. Beta tests who use XML data sought. The Read XML file is accessed via 'Instant Database | Power Tools | Import | XML'

 

Testing and Debugging tools

We have added a dozen or so new Structure Checker 'checks' to capture design and coding errors. We probably haven't found them all, but we're getting closer. We also have improved in-process error trapping, with better explanations of what the trapped error actually is.