Panorama X 0.1.030 Build 2275 Release Notes

Panorama X 0.1.030 is now available. You can download this new version from the web site, or you can simply launch your current version of Panorama X and let it automatically update. If Panorama X is already running, choose Check for Updates in the Panorama menu.

This version includes massive amounts of new documentation (and an improved user interface for accessing help), significant performance and stability improvements, new features to simplify creation of new databases and new fields, as well as dozens of minor enhancements and corrections.

  • Hundreds of new pages of documentation, which now includes updated versions of almost all of the material that was in 14 chapters of the Panorama Handbook: 1-3, 5-9, 13-18, plus some materials from chapters 12, 21 and the Formulas & Programming book. There are over 1,200 images and animations. Here is just a sampling of the new topics.

  • Performance improvements to contains, beginswith, and endswith operations, which resulted in nearly a 2x speed improvement for the most commonly performed searches.

  • Fixed crash/hang that could occur during background search operations, indluding the Find/Select dialog. Also additional performance enhancements for searching (beyond the contains/begins/ends improvements listed above).

  • Now correctly handles clicks in a data sheet in a background window.

  • Added “realms” to the Panorama Help Wizard. Each realm contains a limited number of related topics. The current realm can be changed with a pop-up menu. Hopefully this will make it a lot easier to get into the help information, instead of just throwing almost two thousand topics at the user (the wizard also now lists the number of currently visible topics).

  • New Common Fields pop-up menu in the Field Properties panel. Allows user to quickly set up common fields by clicking on the star. Right click to add new fields, or Shift-Right click to insert new fields.

  • Added new options to File>New for quickly creating common databases, including mailing lists, invoices, checkbooks, price lists and inventory.

  • Implemented new Construct Multiple Fields dialog, allows multiple fields to be added or inserted at once, using a simple text based template (this dialog is also used with the New Database from Template option described above, but in that case the template is pre-filled in). Panorama will intelligently set up common fields, and you can also customize field specifications with tags and easily make line item fields.

  • When creating a new database from a text file, Panorama now assumes that the first line of the text file contains field names. There is also a second option that does not make this assumption, it simply names the fields A, B, C, etc.

  • Implemented the Find & Replace Dialog, which now includes options for Regular Expressions and for modifying all fields.

  • Added new ifselect statement, which combines if, select, and info(“empty”) into a single, easy to use, statement.

  • Added Automatic Choice List button to Field Properties panel. Also added new automaticfieldchoices statement that updates the Choices property with a list of choices of data actually in the field.

  • Editing of floating point fields now happens at full precision of number (up to 15 digits). Also, the str( function now outputs in full precision.

  • Added option to set the next record ID number to Database Options dialog.

  • Added Show All Fields and Hide All Fields to favorites pop-up menu in the Hide/Show Fields dialog.

  • Added Recalculate Field in Fields>Morph menu and column header context menu. This recalculates the field based on the formula for the field (selected records only). You can use this if you change the formula. Menu item will be disabled if there is no formula for the field.

  • Changed Text Editor color from white to black in Split Field dialog and Merge Fields dialog.

  • The View Organizer’s Libraries>Register Functions and Libraries command now works for ordinary users who are not ProVUE employees.

  • Added support for the emptyfield statement. Note: This statement now generates an error if there is no empty field available.

  • The GetText statement now works properly even if variable being edited hasn’t been defined yet (this also worked in Panorama 6).

  • Made numerous fixes to how empty selections are handled in a procedure. Also, the info(“empty”) status for all databases is now reset to false when a procedure stops running.

  • Added new setfieldnames statement that makes it easy to change all field names at once.

  • The fieldvalue( function now allows the field to be specified by number (1, 2, 3) or by name.

  • The databaseexportcsv and databaseexporttsv now output a list of field names on the first line of the exported file.

  • All white space, including non-breaking spaces, is now ignored when ingesting numbers into a field. This fixes date problems in countries where the group (thousands) separator is a space (in France, for example). (Fun fact – Apple uses non-breaking spaces for the group (thousands) separator when space is specified.)

  • Column fill operations now update the data sheet properly even when there are one or more hidden fields to the left of the active field.

  • Fixed several sort functions to be case sensitive, including arraysort(, arraydeduplicate(, views( and Text List/Matrix sort up options.

  • The showother statement has a new option, 94, that updates the field properties panel. It is designed to be used after the setfieldproperties statement.

  • Added “dummy” resynchronize statement, just so user procedures won’t have an error.

  • Tab Panel no longer attempts to switch panel if it is not in the current form – which would corrupt any form in the topmost window.

  • Eliminated Objective-C runtime error when clicking from a data sheet with a few columns to data sheet with more columns.

  • Panorama no longer allows you to change a form or procedure name to “”, which would make the item inaccessible (and impossible to delete).

  • The RegisterCustomFunctions statement now checks to make sure that the function name is legal before registering the function.

  • Fixed the Select Sounds Like data sheet context menu item.

  • Corrected layout problems in the Split Fields dialog and the Morph Field dialog.

  • Text Editor BorderRightMargin property was not correct in objectinfo( and in blueprints (it was using the left margin instead of the right margin).

  • Added a preference option to completely disable background searching.

  • Hundreds of user submitted documentation corrections, mostly from Michael Kellock.

1 Like


This new release is amazing! The hamsters at ProVUE have apparently not been getting any sleep lately. Thank you so much for all of the time and energy that it has taken to imagine, create, and deliver all of these improvements.

It is now up to us to play with all of these new items and features, and then to find those pesky little bugs that are part of life. The competition is on. It is time for the adventurous users to do our part of making this an amazing product.

Thank you.

Robert Ameeti


I’ll second the Thanks and admiration for the effort this reflects.

The text did not show up in my Help window. Restarting Panorama X seems to have brought it back.

This is Amazing, Jim! No wonder you never
seem to sleep…

Thank you!



, Alexander Workshops, LLC

| Mobile:

815 Villard St.

Cheney, WA 99004

First: Thank you for the great upgrade!

I am very happy about that, but there is a bug:

These export statements export only visible fields. The field names are the complete list of fields. So the export will list data in the wrong fields , if the user has not selected “Show All Fields” before.

Ok, I’ll fix that.

The name of those statements (“exportdatabasecsv” and “exportdatabasetsv”) would always let me think that the complete database will be exported.

So perhaps it would be better to have a second set of statements (e.g. “exportvisiblefields…”) in analogy to the exportline( and exportlinevisiblecells( functions.

@KJM I fixed the bug you reported earlier.

Just to let you know my thinking, the point of these statements is to export the visible data. So not only do they not export hidden fields, they also don’t export any unselected records. This statements were really added for use from the File>Export menu (see Text Export), where I think the user would expect that whatever they see is what is going to be exported. In fact, by selecting and hiding this gives the user easy customization of what is being exported. So when I was creating these statements I was thinking about these menu items and not so much about any other applications.

I suppose options could be added to these statements to specify that all records and/or all fields will be exported. I definitely don’t think there should be additional statements for each option. In fact, it probably should have been one statement with an option for CSV/TSV, oops. The functions are a bit different because I think in some cases it’s much simpler to have multiple functions where the name says what it does.

In the meantime, if you need to do this the actual code is only 2 lines (3 if you count the line that defines the variable.

local exportText
arrayselectedbuild exportText,crlf(),"",csvexportlinevisiblecells()
filesave exportPath,replace(arrayfilter(info("visiblefields"),cr(),{quoted(import())}),cr(),",")+crlf()+exportText

So you could easily customize this as needed – use arraybuild instead of arrayselectedbuild, etc. Or, simply explicitly specify what fields are to be exported.