Version 0.1.031 (released March 3rd, 2017)
The big news for this release is that Panorama X now includes a procedure recorder, much like the one in Panorama 6. In fact, I think it is even better, since you can actually see the code appear immediately as you perform each operation, and you can edit the code even while the recorder is running. Another big new item is that a program can now print directly to any printer, with full control over common print settings. There is also lots of new documentation, and quite a few bug fixes.

- Implemented “tape recorder” for automatically writing procedure code. Most data operations can be recorded, but not clicks on specific spots, window configuration changes, field configuration changes, opening/closing databases, graphics or procedure editing. See Procedure Recorder for details.

- Over 120 new pages of documentation, including the procedure recorder, Action menu, summaries and data morphing (Chapters 10 and 12 of the Panorama 6 Handbook).

- Added crash trapping code so that when Panorama X is relaunched after a crash, a detailed crash report including full stack trace is uploaded to ProVUE for analysis. If you do experience a crash in Panorama X, please relaunch it soon so that the data is reported to us.

- The printtopdf statement has a new “Printer” option that allows it to print immediately to any specified printer ("“ for default printer), instead of creating a PDF file. There is also a new info(”printers“) function that returns a list of all available printers, and an info(”printer") function that returns the current default printer name. Also, the printtopdf statement now stops with an error if the path specified for the PDF file is not valid.

- Added the Shift Data Left/Shift Data Right commands in the Morph submenu. This operation could be done with the Morph All Fields Dialog, but now is much easier and faster, and is very handy for cleaning up imported data when all of the columns don’t quite line up (see Shifting Data Left & Right).

- The mouse cursor was not properly changing from an arrow into a resize cursor around the edges of the Input Window. Now it’s much easier to resize the Input Window.

- Resizing Input Window vertically now works even if the window is shorter than the radio buttons inside the window.

- Changing the list of choices associated with a field now automatically sets the height of the Input Window associated with that field (if the field is in Automatic Editor mode).

- Added Running Total, Running Difference and Remove Detail to the menus. Added Outline Level and Expand/Collapse to Field>Analyze submenu (these items are also in the menu attached to the Sum button in the toolbar).

- The lookup( function (and related functions) now works correctly with printing, matrix, and view-as-list forms.

- Sorting of a field containing choice values now works correctly.

- The importdatabase statement (and the Import Database wizard) now always correctly imports using the matchingfields option even if the database being imported has fewer fields than the recipient database.

- Fixed selectwithin and selectadditional so that seq( function only counts selected records, now works the same way that Panorama 6 did. Also made these statements faster.

- Now caps the Find/Select Dialog at 12 query rows.

- The Text Export Wizard now works correctly with Choice fields.

- Added new chevronquoted( function, adds chevrons `«»` to text if needed to make it a legal Panorama token. Useful when building your own code on-the-fly.

- The val( function now ignores thousand separators in the number. For example, in the US, `val("1,234.56")` will now return 1234.56, instead of 1.

- The databaseexportcsv and databaseexporttsv statements now correctly export only the visible (non hidden) field names on the first line of the exported file.

- Added new options for dbinfo( function – “visiblefields” and “hiddenfields”.

- The statement `sequence ""` now sets the start to 1 and bump to 1, just like Panorama 6 did. Also, the sequence statement now resets after each summary record, again just like Panorama 6 did.

- Implemented the groupseq( function.

- Added the new SlideData statement, which can shift the columns to the right of the current column left or right.

- Fixed morph favorites (they didn’t work at all!).

- Fixed the Morph Field Dialog “Formula” option, which didn’t work when morphing a numeric or date field.

- When adding a new row to the end of the Summarize & Analyze dialog (after the Outline Level), now defaults to Sort Down by the same field used for math. This is the same way that Panorama 6 worked.

- Panorama X now checks the height and width of static image objects before they are imported from Panorama 6 to X. If the height or width is zero or negative, the image object is not imported, and a message is written to the console. This affects images created with some extremely old graphics programs (like from the 80’s and earlly 90’s).

- No longer update database twice when choice palette value changes (so doesn’t add twice to Undo stack and doesn’t run side effects twice).

- Documentation corrections from William Conable and David Thompson.

Brand new features implemented in this release (features that were not included in Panorama 6):

- databaseexportusingformula -- The databaseexportusingformula statement exports selected records in the current database to a text file, using a formula.
- info("printer") -- The info("printer") function returns the current default printer.
- info("printers") -- The info("printers") function returns a list of all available printers.
- Morph All Fields Dialog -- morphing the contents of the entire database.
- Shifting Data Left & Right -- sliding data left and right.
- slidedata -- The slidedata statement slides the columns at and to the right of the current column.

Features implemented in this release that work differently than they did in Panorama 6.

- Action Menu -- simple way to create your own menu items.
- Deleting Raw Data Records -- converting summaries into data.
- Morph Field Dialog -- morphing the contents of an entire field.
- Morph Field Favorites -- saving and recalling favorite data morphing operations.
- Morph Text Field Operations -- text data morphing operations.
- Procedure Recorder -- recording database actions as code.
- Summarize & Analyze Favorites -- saving and recalling favorite summaries.

Features implemented in this release that work exactly the same as they did in Panorama 6.

- chevronquoted( -- The chevronquoted( function adds « » quotes to text if necessary to make it a legal Panorama token.
- Deleting All Summary Records -- when finished with summary records, they must be deleted.
- Duplicate Removal with Unpropagate -- using the unpropate command to remove duplicate data.
- duplicaterecord -- The duplicaterecord statement duplicates the current record.
- Expanding and Collapsing the Summary Outline -- to see more or less detail.
- Generating Summaries Manually -- manually generating summary records in 3 steps (Group, Calculate, Outline).
- groupseq( -- The groupseq( function returns the sequence number within a summary level.
- Morph Date Field Operations -- date morphing operations.
- Morph Numeric Field Operations -- numeric data morphing operations.
- Propagate & Unpropagate -- propagating/unpropagating data within a column.
- Ranking Summaries -- ranking summary values
- Running Difference -- calculating a running difference down an entire database column.
- Running Total -- calculating a running total down an entire database column.
- Summarize & Analyze Dialog -- is a one stop dialog for creating and filling in summary records based on pre-selected criteria.
- Summary Records -- are temporary records used for calculating totals, subtotals, and other summary information.

ALL features that were added or changed in this release:

- Action Menu -- simple way to create your own menu items.
- chevronquoted( -- The chevronquoted( function adds « » quotes to text if necessary to make it a legal Panorama token.
- Code -- basics of programming code.
- databaseexportusingformula -- The databaseexportusingformula statement exports selected records in the current database to a text file, using a formula.
- dbinfo( -- The dbinfo( function gets information about a database: what forms it contains, what fields, what flash art pictures, etc.
- Deleting All Summary Records -- when finished with summary records, they must be deleted.
- Deleting Raw Data Records -- converting summaries into data.
- Duplicate Removal with Unpropagate -- using the unpropate command to remove duplicate data.
- duplicaterecord -- The duplicaterecord statement duplicates the current record.
- encrypt( -- The encrypt( function encrypts data.
- Expanding and Collapsing the Summary Outline -- to see more or less detail.
- Field Properties -- available field attributes.
- Generating Summaries Manually -- manually generating summary records in 3 steps (Group, Calculate, Outline).
- groupseq( -- The groupseq( function returns the sequence number within a summary level.
- info("printer") -- The info("printer") function returns the current default printer.
- info("printers") -- The info("printers") function returns a list of all available printers.
- Morph All Fields Dialog -- morphing the contents of the entire database.
- Morph Date Field Operations -- date morphing operations.
- Morph Field Favorites -- saving and recalling favorite data morphing operations.
- Morph Numeric Field Operations -- numeric data morphing operations.
- Procedure Recorder -- recording database actions as code.
- Propagate & Unpropagate -- propagating/unpropagating data within a column.
- Ranking Summaries -- ranking summary values
- Running Difference -- calculating a running difference down an entire database column.
- Running Total -- calculating a running total down an entire database column.
- Shifting Data Left & Right -- sliding data left and right.
- slidedata -- The slidedata statement slides the columns at and to the right of the current column.
- Summarize & Analyze Dialog -- is a one stop dialog for creating and filling in summary records based on pre-selected criteria.
- Summarize & Analyze Favorites -- saving and recalling favorite summaries.
- Summary Records -- are temporary records used for calculating totals, subtotals, and other summary information.

See Also

- Version 0.1.001 (released July 7th, 2012) -- Summary of Version 0.1.001 (released 7/7/2012)
- Version 0.1.002 (released August 12th, 2012) -- Summary of Version 0.1.002 (released 8/12/2012)
- Version 0.1.003 (released December 2nd, 2012) -- Summary of Version 0.1.003 (released 12/2/2012)
- Version 0.1.004 (released December 10th, 2012) -- Summary of Version 0.1.004 (released 12/10/2012)
- Version 0.1.005 (released December 21st, 2012) -- Summary of Version 0.1.005 (released 12/21/2012)
- Version 0.1.006 (released December 26th, 2012) -- Summary of Version 0.1.006 (released 12/26/2012)
- Version 0.1.007 (released May 1st, 2013) -- Summary of Version 0.1.007 (released 5/1/2013)
- Version 0.1.008 (released May 22nd, 2013) -- Summary of Version 0.1.008 (released 5/22/2013)
- Version 0.1.009 (released July 9th, 2013) -- Summary of Version 0.1.009 (released 7/9/2013)
- Version 0.1.010 (released October 14th, 2013) -- Summary of Version 0.1.010 (released 10/14/2013)
- Version 0.1.011 (released December 6th, 2013) -- Summary of Version 0.1.011 (released 12/6/2013)
- Version 0.1.012 (released August 29th, 2015) -- Summary of Version 0.1.012 (released 8/29/2015)
- Version 0.1.013 (released September 6th, 2015) -- Summary of Version 0.1.013 (released 9/6/2015)
- Version 0.1.014 (released September 14th, 2015) -- Summary of Version 0.1.014 (released 9/14/2015)
- Version 0.1.015 (released September 29th, 2015) -- Summary of Version 0.1.015 (released 9/29/2015)
- Version 0.1.016 (released October 12th, 2015) -- Summary of Version 0.1.016 (released 10/12/2015)
- Version 0.1.017 (released November 11th, 2015) -- Summary of Version 0.1.017 (released 11/11/2015)
- Version 0.1.018 (released December 7th, 2015) -- Summary of Version 0.1.018 (released 12/7/2015)
- Version 0.1.019 (released January 28th, 2016) -- Summary of Version 0.1.019 (released 1/28/2016)
- Version 0.1.020 (released February 15th, 2016) -- Summary of Version 0.1.020 (released 2/15/2016)
- Version 0.1.021 (released February 29th, 2016) -- Summary of Version 0.1.021 (released 2/29/2016)
- Version 0.1.022 (released March 1st, 2016) -- Summary of Version 0.1.022 (released 3/1/2016)
- Version 0.1.023 (released May 27th, 2016) -- Summary of Version 0.1.023 (released 5/27/2016)
- Version 0.1.024 (released June 12th, 2016) -- Summary of Version 0.1.024 (released 6/12/2016)
- Version 0.1.025 (released July 21st, 2016) -- Summary of Version 0.1.025 (released 7/21/2016)
- Version 0.1.026 (released August 29th, 2016) -- Summary of Version 0.1.026 (released 8/29/2016)
- Version 0.1.027 (released September 18th, 2016) -- Summary of Version 0.1.027 (released 9/18/2016)
- Version 0.1.028 (released November 9th, 2016) -- Summary of Version 0.1.028 (released 11/9/2016)
- Version 0.1.029 (released December 31st, 2016) -- Summary of Version 0.1.029 (released 12/31/2016)
- Version 0.1.030 (released February 12th, 2017) -- Summary of Version 0.1.030 (released 2/12/2017)
- Version 0.1.032 (released April 3rd, 2017) -- Summary of Version 0.1.032 (released 4/3/2017)
- Version 0.9 (released May 15th, 2017) -- Summary of Version 0.9 (released 5/15/2017)
- Version 0.9.001 (released July 18th, 2017) -- Summary of Version 0.9.001 (released 7/18/2017)
- Version 0.9.002 (released July 27th, 2017) -- Summary of Version 0.9.002 (released 7/27/2017)
- Version 0.9.003 (released September 10th, 2017) -- Summary of Version 0.9.003 (released 9/10/2017)
- Version 0.9.004 (released September 14th, 2017) -- Summary of Version 0.9.004 (released 9/14/2017)
- Version 0.9.005 (released September 19th, 2017) -- Summary of Version 0.9.005 (released 9/19/2017)
- Version 0.9.006 (released September 27th, 2017) -- Summary of Version 0.9.006 (released 9/27/2017)
- Version 0.9.007 (released October 3rd, 2017) -- Summary of Version 0.9.007 (released 10/3/2017)
- Version 0.9.008 (released October 12th, 2017) -- Summary of Version 0.9.008 (released 10/12/2017)
- Version 10.0.0 (released October 18th, 2017) -- Summary of Version 10.0.0 (released 10/18/2017)
- Version 10.0.01 (released December 10th, 2017) -- Summary of Version 10.0.01 (released 12/10/2017)
- Version 10.1 (released August 6th, 2018) -- Summary of Version 10.1 (released 8/6/2018)
- Version 10.1.1 (released August 30th, 2018) -- Summary of Version 10.1.1 (released 8/30/2018)
- Version 10.1.2 (released November 15th, 2018) -- Summary of Version 10.1.2 (released 11/15/2018)
- Version 10.2 (released October 7th, 2021) -- Summary of Version 10.2 (released 10/7/2021)