This release includes dozens of fixes and features in response to feedback on the Panorama X forum. Thank you to everyone for your incredible engagement and participation over the past few weeks. In addition to the programming work, this release also includes about 250 pages of new documentation, with over 400 illustrations and animations. In fact, the documentation for graphic editing is now about half done. Here are the new pages.
Here are the changes to the code itself.
Implemented the Choice Palette for editing data with radio buttons instead of text editing. Unlike Panorama 6, the arrangement is always vertical, it does not arrange buttons horizontally. Also, manually edited exception values are not allowed.
Added the ability to change the Data Sheet text size via menus (Window>Text Size) and the size statement.
Added new Font Awesome Icons wizard in Help menu. It’s really cool, check it out! Also upgraded included Font Awesome to 4.7 with 41 new icons (675 total).
Now automatically loads custom statements from any databases found in `/Application Support/PanoramaX/Libraries/. You can put databases in that folder manually, or you can ask the View Organizer to create one for you with the Libraries>Open User Name Custom Statements command. Later you can re-open with the same command, or with the Open View dialog or Open View wizard. Once you’ve created a library this way you can’t close it, the only way to get rid of it is to shut down Panorama and move it out of the folder. Procedures that are to be used as custom statements must have all UPPER CASE names. They can optionally have a comment block at the top that identifies the parameters, if that is present, Panorama X will check the number of parameters when the statement is used.
Implemented the RegisterCustomFunction statement. This function now allows the same function to be defined multiple times with different numbers of parameters.
New special procedure in custom statement libraries – .InitalizeFunctions. Any code in this procedure will be run automatically when Panorama starts up, and also when the Libraries>Register Functions and Libraries command in the View Organizer is used.
Implemented the printonemultiple statement.
Rich text now has new tags </color>
, </bgcolor>
, </font>
and </size>
. These set the text size back to the previous color, background color, or font. You could do this before with the <style></style>
tags but this is much simpler.
A Text Display Object in Literal Mode now support substitution of «page#»
and «date: pattern»
tags. For the «date: pattern»
tag, only the patterns listed on page 1103 of the Panorama 6 Handbook are supported. If some other unusual pattern is desired, this has to be done with a formula substitution and the datepattern( function.
Panorama now honors the system preferences for the first day of the week. There is a new function, firstdayofweek(, that can be used to determine the users preference. The week1st( function now returns whatever day the user specified as the first day, and group by week also uses the specified first day of the week. Changes take effect immediately when the system preferences are changed, you don’t have to quit and relaunch Panorama.
The Favorites dialog sheet now works correctly (in the Find/Select, Sort and other dialogs) – you can select favorites to edit or delete them.
Line item formulas and procedures no longer needed to be repeated for item 1, 2, 3, etc. Just make sure that there is a formula and/or procedure for item 1, and it will be used for all line items – you can leave the formulas and/or procedures for line items 2, 3, 4, etc. blank. This makes it a lot easier for editing, you only have to edit once.
Double clicking on a field title in data sheet now toggles field properties panel.
Adjusted Records menu so that the Delete All Records command is more clear (changed name from Delete All), also rearranged menu so that this is the last command and is less likely to be selected accidentally.
The Find & Open dialog now shows databases that are currently open in violet instead of black. Thanks to Gary Yonaites for this suggestion and the actual code!
Changed the Panorama X Video Training link in the Help menu to the faq/training page on provue.com instead of directly to Vimeo.
Added Sample Data submenu to Text Import wizard’s Import Data menu.
Text Editor Object now draws Bezel border correctly even when the object fill mode is set to Outline. This also fixes bug that borders weren’t drawn correctly in the Find/Select and Morph dialogs.
Deleting form objects now works correctly in a form that contains group objects, even if the group contains buttons, text objects, etc. The group objects no longer disappear.
Fixed formula parsing precedence problem. Problem occured when two or more low priority operators were followed by a higher priority operator, for example a>b+c and x
would incorrectly be parsed as if it was a>(b+c and x)
.
The Text Import wizard now correctly handles tab separated data that contain commas in the data.
Import statements (and the Text Import wizard) now set the current record to the first record of the imported data.
The importtext statement now correctly imports empty lines in the text as blank database records
Fixed exportline( so that carriage returns and line feeds are exported as vertical tabs, and fixed importtext and importline so that vertical tabs are imported as carriage returns.
Performance enhancement for display update when all fields have changed, for example when moving up or down between records.
Fixed Select All in View-As-List forms.
If user selects File>Database Options when there is no open database, they now get a polite notification instead of an error message.
Added a menu item Objects>Clear All Tab Panels in Graphics Mode that removes the contents of all tab panels on the current form, including any “orphan” tab panel objects (orphans can be caused by moving or deleting tab panel objects). Also added an optional tool bar item that does the same thing.
In situations where a string is being interpreted as a boolean, “-1” will be interpreted as true, in fact, for any case where val(SomeText)
is true, SomeText
will also be true.
Fixed the definehotkeys statement so that all numeric keys can be used, before, only 1 and 7 worked.
For compatibility with Panorama 6, the Field statement now has the alias Column, while the FormulaFill statement now has the alias Equation.
Fixed setwindow statement so that it will work correctly if the last parameter (options) was ommitted.
Fixed splitmenutrigger statement, it seems to have gotten lost at some point.
Now properly generates an error message for a procedure with a case statement but no endcase statement.
Fixed initial selection in Find & Open dialog.
Fixed runtime error in opendatabase statement if database was already open but had no open windows.
The openfile statement will now open any saved windows if used when the database is open but with no visible windows. However, this is only for the openfile statement, not for the opendatabase statement, and not if the Find>Open dialog is used.
ImportDatabase statement was leaving openrecord locked at last record of imported data (until something else was edited).
Improved thread safety of LRUCache:cacheObject
method. In real world terms, this reduces the likelyhood of a crash or hang when searching.
Fixed saveallprocedures so that it correctly generates a Panorama X dictionary.
The newformobject statement now tolerates blanks in class name of new object.
Brand new features and documentation in this release (features that were not included in Panorama 6):
Features implemented in this release that work differently than they did in Panorama 6.
Features implemented in this release that work exactly the same as they did in Panorama 6.
ALL features that were added or changed in this release:
See Also