Panorama X 10.2 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 detailed list below.

Mixing 10.2 with Earlier Versions – We don’t recommend mixing Panorama X 10.2 with earlier versions of Panorama. If you have multiple computers, you should upgrade all of them to 10.2 at the same time, and remove any copies of Panorama X 10.1. Mixing versions can result in false “damaged database” alerts, see Database is Damaged Alert.

Fully Native on Apple Silicon Processors

Panorama X 10.2 is a “Universal” app that is fully native on both Apple Silicon (M1, etc.) and Intel processors. For most tasks this new version is 3 to 6 times faster on Apple Silicon processors than previous versions of Panorama X.

Panorama X Team Server

The most important major new feature of version 10.2 is the inclusion of Panorama X Team Server, including database sharing and database web publishing. Database sharing allows multiple users to share one or more databases in cooperation. Each user access the data through their own copy of Panorama X on their computer. The server keeps everything organized so that multiple users can view and modify data without interfering with each other and keeping everything up-to-date. Users can share data across a local network or even across the internet.

Database web publishing allows information in a Panorama database to be viewed and modified using a web browser – Safari, Chrome, Firefox, etc. With database web publishing your databases can reach a global audience – anyone with a browser on any type of device and/or operating system.

To learn more, see Panorama Server.

Important Note: Access to the server features requires signing up for the Deploying Shared Databases video class. Please visit How do I sign up for the Deploying Shared Databases course? if you are interested in signing up for this course and using the server.

Panorama X Team Server vs. Panorama 6 Enterprise Server

If you’ve used Panorama 6 Enterprise Server, you’ll find that many aspects of Panorama X Team Server are very familiar, but there are some significant differences:

Comprehensive New Relational Database Features

Many database applications require multiple database files working together. In previous versions of Panorama this was primarily accomplished with lookup( functions. This could generally get the job done, but was tedious because there was no overall definition of the relationship between the databases. This approach required the application developer to manage all the tedious details of database relations manually – a lot of extra work to set up and very difficult to change if the database structure ever changed. This manual approach could also be prone to errors since all of the details had to be manually managed by the programmer.

Panorama X 10.2 introduces a completely new, systematic approach to relationships between databases. Each relationship is managed in one place, with a comprehensive, easy to use visual dialog panel. This relationship is permanent (saved with the database) and can be quickly applied wherever needed. Many common relational database tasks are now built in, and available automatically once a relation is set up. Other tasks can be accomplished with simple dialogs and/or with far less code than was previously required.

Note: For compatibility with existing database applications, legacy features like lookup( functions are of course still available and will continue to work, but these are now considered obsolete and are completely unecessary for new development.

Database Options>Relations Panel

To set up a relational link between the current database and one or more other databases, use the Database Options>Relations dialog sheet. This panel allows you to tell Panorama what the common fields are between two databases.

This panel may look complicated, but if the databases have exactly corresponding fields a relation can be set up in seconds with just a few clicks. See Relational Database Management to learn all the details about configuring a relation with this dialog. If the fields don’t exactly correspond, you can set up formulas to tell Panorama how they do match up.

Once a relation has been established between two databases, you can use that relation to quickly select data that corresponds to the current database, to display related information in a form, to accelerate data entry of related information, to post updated data to a related database, and to perform a full join between two databases.

Selecting Data Related to the Current Record

If the current database has one or more databases related to it, additional items are added to the Search menu to allow you to quickly select data related to the current record. These extra items also appear in the menu that appears when you click on the record count in the tool bar. This illustration shows how easy it is to select data related to the current record.

Note: For clarity, the illustration shows the Vendor and PayTo fields as the active fields in the respective databases, but this is not necessary. Unless the relation involves a line item field, it doesn’t matter what field is active when the selection is made.

A relational selection can also be programmed into your own custom code, see selectrelated to learn how to do this.

Displaying (or Printing) Related Data in a Form

Panorama has two functions that can be used to display related data on a form. When using these functions the related data is not copied into the current database, but it can be displayed as if it was part of the current database. This example uses the related( function to display the address of the company the check was written to, even though the address is stored in a separate database.

If the formula is constructed properly, the related data display will update automatically as you switch from record to record (see related( to learn how to ensure this happens).

If you expect there to be multiple records related to the current record, use the relatedarray( function. This example uses this function to display a list of all of the checks written to this vendor. Again, the list of checks is being displayed directly from the related Checkbook database, without ever being copied into the Vendors database.

This example uses a Text List Object to display the list of checks, but you can also use a Matrix Object or a Text Display Object.

Linking Clairvoyance™ and Data Entry to a Related Database

Panorama’s relational system can be tightly integrated with Clairvoyance™ (auto-complete) and with data entry. To illustrate this, I’ll use two databases set up for a hobby shop – a sales database (order entry) and a customer account database. These databases are related as shown by the arrows in this diagram.

To see how remotely linked Clairvoyance™ works, just start typing into the Name field in the sales database (this diagram shows the form instead of the data sheet, but the underlying data is the same and relations work the same in either view.) The contact information in the order form is linked to the customer database, so Clairvoyance™ kicks in across databases to auto-complete the name.

When the return or tab key is pressed, Panorama uses the pre-defined relation to populate all of the contact information in the new order. Note that this auto join happens completely automatically – there is no coding needed, or even a formula (other than formulas set up in the relation definition).

This order form database is also relationally linked to a catalog (price list) database. When I start typing an item into the order, Clairvoyance™ auto-completes the entry for me from the catalog, even if this item has never been entered into an order before.

When the return or tab key is pressed, Panorama automatically populates the price and calculates all totals.

Simply rinse and repeat to complete the rest of the order.

To learn how to set up Auto Join and Remote Clairvoyance™ see Relational Database Management.

Note: Panorama X 10.2 also includes a new joinonerecord statement works like join, but only for the current record instead of for the entire current database. This new statement is used by the auto-join feature, but you can also use it in your own code in lieu of the lookup( function for data entry.

Posting Updated Data to a Related Database

When two databases share common information, a simple one line program using the posttorelated statement can be used to update a related database with changes made in the current database, as shown in this diagram.

The same program will work to add completely new records to the related database.

There’s not much more too it, but see the posttorelated statement for additional details.

Joining two Related Databases

The final operation available for related databases is a full relational join. To perform a join, Panorama scans both the current and the related database, identifies all matching records, and updates the current database with information from the matching records in the related database. Optionally, it can also append any non-matching data from the related database into the current database.

This new join capability is much simpler and faster than the old method of using formulafill with a lookup( function – in our tests the join statement was able to join a single field between two 20,000 record databases in 3 seconds, vs. 7 minutes when using formulafill with a lookup(! The join feature can join multiple fields at once (no limit) for even larger performance gains over previous versions, and can is capable of the same types of inner and outer joins available in modern SQL systems.

To perform a join into the current database, choose File>Import>Join Panorama Database with Current Database. This opens the Join Database dialog.

This dialog allows you to select the database you want to join from, and to customize the options for the join. See Join Databases to learn more.

The join operation can also be programmed into your custom code. See the join statement to learn how to do this.

Additional Resources

For even more detailed information about the new relational database capabilities, see these pages:

Beyond Server and Relational – General Panorama X 10.2 Changes

In addition to the new server and relational capabilities, many other improvements and fixes have been implemented in this new version. Panorama X 10.2 is probably the second biggest leap in Panorama’s 32 year history, only falling short of the jump from Panorama 6 to Panorama X 10.0.

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