Panorama X 10.1 is a major release with a long list of changes. Here is a quick list of the major new features.
For more information about these major features, as well as many more minor new features, performance enhancements and bug fixes, consult the list below.
run code
verb command. See Scripting Panorama X with AppleScript for details. Here is an example of an AppleScript that displays a list of the fields in the current database.Implemented the extrapages( function, which allows multiple data tiles to be printed selectively. See Printing Multiple Page Records.
The BackDrop and Overlay tiles now print correctly (see Custom Report Headers and Footers).
Printing reports now works correctly even when objects on the form are grouped (including tiles).
Panorama 6 had two report tiles called Table Header and Table Footer. In Panorama X 10.0, these were renamed to Column Header and Column Footer, but this wasn’t transitioned properly from Panorama 6. In Panorama X 10.1, these are now renamed again to Data Header and Data Footer (see Printing Multiple Column Reports). When a Panorama 6 database is imported, any old Table Header and Table Footer tiles will be converted. However, any Panorama X 10.0 databases containing these tiles, or Column Header/Column Footer tiles, must be manually updated to use Data Header/Data Footer.
Multiple text editor/display objects on a form now all update simultaneously when data changes, for example when advancing to the next record. You will no longer see a “ripple” as different objects update, it’s all instantaneous now. Problem was caused by an Apple bug, tracked down with assistance from an anonymous (by request) Apple engineer at the WWDC 2018 labs.
When entering data, importing text, or converting text to numbers, strip non-numeric characters before converting text into numbers, so that currency symbols, etc. are ignored. In other words, you can now import numbers like $3,456.12 without a problem.
Clicking on a database name in the Memory Usage window triggers a popup menu that allows you to bring any window in that database to the front. If the database doesn’t have any open windows (it’s “secret”), the popup menu will contain “Open Data Sheet”, which will allow you to open the data sheet for that database.
Fixed a problem that could occasionally cause Panorama X to lose permanent variable values. This could also cause Panorama to lose favorite settings, since they are stored using permanent variables.
Image Display objects now layer properly in Z-order. This means that now you can place other objects on top of images, for example buttons or text. This problem was caused by an Apple bug, tracked down with assistance from an anonymous (by request) Apple engineer at the WWDC 2018 labs.
Implicitly Triggered Procedures like .Initialize
, .ModifyRecord
, etc. are now documented in the Panorama X help system, so you no longer need to refer back to the Panorama 6 documentation for information about these procedures.
The Text Editor Object now allows you to set up multiple event actions simultaneously by inserting labels into your event handling code. For example, you can have code that handles both starting and finishing editing, before you could do one or the other but not both. Here is an example that uses this new feature to time how long the user spends editing a field (like a stopwatch).
Added new CloseDatabase statement, which makes it easy to close any database (not just the current database). This is especially handy for closing secret databases.
OpenFile “+database” now works even if the specified database isn’t already open.
If a secret window is active, the info(“windowname”) function now returns the secret window instead of the name of the currently visible topmost window. This now works the same as it did in Panorama 6.
New scopes( function returns a list of scopes that a variable exists in (local, fileglobal, global, etc.)
New scopevalue( function allows a formula to access a variable at any scope, even if it would normally be “hidden” by other variables with the same name. There were already functions to do this (localvalue(, etc.) but the scopevalue( function allows the scope to be determined at runtime without needing an execute statement.
New function htmlcolorarray(, generates a text array of HTML colors that gradually transition from one color to another.
Fixed problem of dialog sheet jumping to wrong window when using Print, Page Setup, and Save As commands.
The monthmath( function now works properly with negative delta values.
Fixed the time( function so that it will correctly handle times from 12:00 to 12:59 (with no am/pm, so should be in 24 hour format).
The Morph Field Dialog now works correctly when the «Current Field» option is used.
The constructlistmatrix statement now works even if the termplate contains a line of spaces (it simply ignores such a line, just like a completely blank line).
The View Organizer context menu (right click) now includes a Move to Trash option. Also, the background is a darker gray, so the trash can is more visible.
A Web Browser Object can be configured for literal mode or formula mode. In literal mode, fields and formulas can be substituted into the text. In this mode, Panorama thinks any text inside { and } characters is a Panorama formula. However, this is a problem if you have inline CSS, which also uses { and }, or embedded JavaScript, which also uses curly braces. These features were not working because Panorama was trying to merge in the formulas. The best solution is really to switch to formula mode. However, Panorama now checks for errors in merged formulas, and if it finds any, it disables all field and formula merging. In other words, if you have inline CSS or JavaScript that uses curly braces, merging will not work. (In previous versions it was the opposite – merging would work but the CSS or JavaScript would not work.) If you need to merge in data AND use inline CSS or JavaScript, use formula mode.
Web Browser Object has a new option, RecalcAfterResize. This can only be enabled/examined using the object blueprint. When enabled, the object’s formula will be recalculated when the object changes size. This can be useful if the formula uses the objectinfo("rectangle","«»")
to make adjustments based on the size of the object. Also, this option is usually enabled when displaying charts, the chart( function will automatically adjust the size of the chart if this is enabled.
The objectinfo( function can now easily access information about the object that is currently being displayed. Use the name «»
to refer to this object. This allows this formula to automatically adjust depending on the object properties, for example the width or height. Note: This new option works with Text Display, Image Display, Web Browser, Segmented Button and Tab Panel objects.
The Text Editor Object prompt text feature is now automatically disabled when the horizontal scroll bar is enabled. (Perhaps some will debate whether this is actually a “fix”, but this is a non-standard feature, I’ve never seen another application with prompt text and a horizontal scroll bar, so I don’t think actually making this work, which will require extensive coding, is worthwhile.)
The DefineHotKeys statement has been fixed so that it works with global variables.
The ImportDictProcedures statement was completely broken, it was attempting to create a Panorama 6 style dictionary. Now updated for Panorama X and works as documented.
The SetFileVariable statement was incorrectly setting itself up as a synonym for SetFileGlobal. Because of this, the documented behavior of SetFileGlobal allowing the first parameter to be omitted did not work. Note: This fix won’t actually take effect until any code that uses this statement is recompiled with Panorama X 10.1 or later.
The SetFileGlobal and SetWindowGlobal now properly handle the last parameter (the value parameter).
The FormObjectBlueprint statement now allows you to omit the first two parameters, database and form. This is useful if you want to access the blueprint for a (possibly modified) object in the current window if the current window is a clone window. Before, you could not get this blueprint, only the unmodified blueprint in the underlying form.
Live menu definitions now accept carriage returns and linefeeds interchangeably (they used to accept only carriage returns).
Fixed error message that would come up when clicking on an empty row in the View Organizer wizard.
Some statements would not work properly if given a formula that consisted of a single variable name, especially some set, assign and define statements. These now work when used with a “bare” variable.
Panorama 6 allowed reloopif as an alternate spelling of repeatloopif, and now Panorama X allows this also.
The Find/Select Dialog now strips defaulttext( out of numeric and date search formulas, for example Debit > val(defaulttext("0","0")
now becomes simply Debit > 0
. The defaulttext( function was used to prevent errors if a search item was left empty. Now this function is replaced in advance with the actual value, or the default value if an item is left empty. As a user you won’t usually see this change, but performing this replacement in advance makes the search run faster, and if the recorder is turned on, the recorded code is a lot easier to understand (you can see the difference in recorded code). This code can also appear in chart(, crosstab( and summarytable( functions, which also benefit from the cleaner code.
When opening a View-As-List form, Panorama X will no longer crash (actually, ObjC runtime error) if the Data tile has negative height.
The DropImagesFromFinder statement now works correctly when the currentrecord option is set to yes.
The DropImagesFromFinder statement now ignores clicks on the drag receiver object, instead of stopping with an error.
Now correctly determines local system date format even if system date format is set to use four digit year format.
The ActiveGrid statement now checks to see if the active form is set for fileglobal or windowglobal variables. Any variables it creates will match the type used by the form (previously it would always create fileglobal variables, so it couldn’t be used with clone windows).
In the Site License wizard, added Continue Free Trial button to the New Account panel. Hopefully this will discourage users from starting a new account when they really want to continue using the free trial. Also clarified help language about not needing to create an account until after the trial is finished.
Fixed confusing typo in the Form Object Blueprint dialog.
In the Numbers documentation page, see also links for eulersconstant(, pi(, nth( and scientificnotation( now work correctly.
Panorama X will now run correctly on a case-sensitive file system.
Updated documentation with user submitted corrections since Dec 2017, including Michael Kellock, David Thompson, Gary Yonaites, Craig McPherson, Thomas Cooper, Eric Werner, Kurt Meyer, and Bruce de Benedictis.
Brand new features implemented 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