Version 0.1.012 (released August 29th, 2015)

This version is being released on the eve of the Panorama X Developer Certification Training. It’s been a year and a half since the last version bump, so no point in detailed version notes – who can remember that far back? We’ll start that up again with the next version.

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

- Panorama Help Wizard -- learn how to get the most from Panorama's online help wizard, including choosing a realm, searching for a specific topic, and opening multiple help windows.
- abortalldialogs -- The abortalldialogs statement closes all open dialog windows (with prejudice).
- activegrid -- The activegrid statement manages the operation of a grid that controls a series of options.
- alertmodal -- The alertmodal statement displays a modal alert sheet (not attached to any window) with a message and one or more buttons.
- alertsheet -- The alertsheet statement displays an alert sheet (attached to the current window) with a message and one or more buttons. Note: with the introduction of OS 11, Big Sur, sheets no longer appear to slide down from the title bar, but open a dialog centered on the active window.
- appenddataarrays( -- The appenddataarrays( function appends two or more data arrays to each other (see Data Arrays).
- appendluhncheckdigit( -- The appendluhncheckdigit( function adds a Luhn check digit to a series of digits.
- arrayrelocate( -- The arrayrelocate( function moves one or more items to a new position in a text array or a data array (see Text Arrays and Data Arrays).
- automaticfieldname( -- The automaticfieldname( function returns an available field name.
- automaticformname( -- The automaticformname( function returns an available form name.
- automaticprocedurename( -- The automaticprocedurename( function returns an available procedure name.
- blueprintlibraries -- The blueprintlibraries statement generates blueprints for all procedure library databases.
- blueprinttool -- The blueprinttool statement handles clicks in the Blueprint Tool (graphic mode).
- buildfavoritesmenu -- The buildfavoritesmenu statement builds the Favorite Databases menu.
- catcherror( -- The catcherror( function evaluates an expression, but suppresses any error generated by that expression.
- changetimer -- The changetimer statement modifies a repeating task that will be performed periodically when Panorama is not otherwise busy.
- checkemptyselection -- The checkemptyselection statement notifies the user if a selection failed, and reverts to the previous selection.
- checkforupdates -- The checkforupdates statement performs the same action as the Check for Updates menu item.
- cityzip( -- The cityzip( function returns the lowest zip code associated with a city.
- cityzips( -- The cityzips( function returns a list of zip codes associated with a city.
- cloneform -- The cloneform statement copies all of the objects in a form (optionally, with modifications) into the active form.
- collapsetosummary -- The collapsetosummary statement collapses to the next higher summary level.
- constructcalendar -- The constructcalendar statement creates the form elements for a monthly calendar.
- constructformdataeditors -- The constructformdataeditors statement creates a column of form elements for editing data fields (or variables).
- constructmailinglabel -- The constructmailinglabel statement creates the form elements for printing mailing labels.
- csvquoted( -- The csvquoted( function adds quotes if necessary for CSV text (RFC 4180).
- customstatementdatabase( -- The customstatementdatabase( function returns the name of the library database that defines a custom statement.
- dataarray( -- The dataarray( function creates a data array from zero or more separate values (see Data Arrays).
- dataarrayappend( -- The dataarrayappend( function appends one or more values to the end of an existing array.
- dataarraybuild( -- The dataarraybuild( function builds a data array by scanning a database and creating an array element for every record (including invisible records) in the database (see Data Arrays).
- dataarrayinsert( -- The dataarrayinsert( function inserts one or more values into the middle of an existing array.
- dataarrayselectedbuild( -- The dataarrayselectedbuild( function builds a data array by scanning a database and creating an array element for every visible record in the database (see Data Arrays).
- databaseexportcsv -- The databaseexportcsv statement exports selected records in the current database in CSV format (comma separated) to a text file.
- databaseexportjson -- The databaseexportjson statement exports selected records in the current database in JSON format to a text file.
- databaseexporttsv -- The databaseexporttsv statement exports selected records in the current database in TSV format (tab separated) to a text file.
- dbconstructormenu( -- The dbconstructormenu( function used internally by ProVUE
- definehotkeys -- The definehotkeys statement defines one or more Hotkeys.
- deleteformcustompreference -- The deleteformcustompreference statement deletes a form custom preference.
- deletehotkeys -- The deletehotkeys statement deletes the hotkeys in a specific scope.
- deleteselectedobjects -- The deleteselectedobjects statement deletes selected objects from a form.
- devbuild( -- The devbuild( function always returns false in production copies of Panorama.
- displayhtml -- The displayhtml statement will display a dialog containing HTML. You can control the size of the dialog, as well as several appearance options.
- editfavoritesdialog -- The editfavoritesdialog statement handles the Favorites button in a dialog.
- editfieldname -- The editfieldname statement opens the data sheet window's field properties inspector and selects the field name.
- emptycell( -- The emptycell( function returns true if the specified field is empty in the current record.
- encodehttppostdata( -- The encodehttppostdata( function converts a dictionary into HTTP post data.
- errortext( -- The errortext( function evaluates an expression, but returns only the error message generated (if any).
- ethernetinterfaces( -- The ethernetinterfaces( function returns a dictionary containing all of the MAC addresses associated with this computer.
- excludefromrecentmenu -- The excludefromrecentmenu statement excludes the next opened database from the Recent menu.
- exportdataarray( -- The exportdataarray( function converts a data array into a text array (see Data Arrays and Text Arrays).
- exportjson -- The exportjson statement exports the current database in JSON format.
- favoritesbutton -- The favoritesbutton statement handles the Favorites button in a dialog.
- fieldblueprint -- The fieldblueprint statement creates blueprint code for the specified field.
- fieldblueprintsheet -- The fieldblueprintsheet statement opens a sheet to edit the blueprint of the current field.
- filecatalog( -- The filecatalog( function builds a text array listing the files in a folder, including any subfolders of that folder.
- fillall -- The fillall statement modifies the operation of the following fill statement so that all records are modified, not just visible records.
- findopendialog -- The findopendialog statement opens the standard Find & Open dialog.
- firstcolumn -- The firstcolumn statement moves to the first column in the data sheet (leftmost column).
- fontcharacters( -- The fontcharacters( function returns a string (text) containing all of the characters supported by the specified font.
- fontinfo( -- The fontinfo( function returns a dictionary with information about a specified font.
- formblueprint -- The formblueprint statement creates blueprint code for the specified form.
- formblueprintsheet -- The formblueprintsheet statement opens a sheet to edit the blueprint of the current form.
- formconstructordialog -- The formconstructordialog statement opens a generic form constructor dialog.
- formobjectblueprint -- The formobjectblueprint statement creates blueprint code for specified form object.
- formulafillallfields -- The formulafillallfields statement fills every visible cell in all fields with the result of the specified formula.
- generatedataarray( -- The generatedataarray( function generates a new data array based on a formula (see Data Arrays and Text Arrays).
- getapplicationinfo( -- The getapplicationinfo( function retrieves the value of an item in the application's plist, or a list of all plist items.
- getformcustompreference( -- The getformcustompreference( function returns the value of a form custom preference.
- getformcustompreferencenames( -- The getformcustompreferencenames( function returns a list of custom preferences associated with a form.
- getformoption( -- The getformoption( function returns information about a form.
- getpreferenceclass( -- The getpreferenceclass( function retrieves the class name of a preference value.
- getpreferencevalue( -- The getpreferencevalue( function retrieves the value of a preference.
- gotofielddialog -- The gotofielddialog statement opens the standard dialog for jumping to a specific field (in the Fields menu).
- hideaccessorypanel -- The hideaccessorypanel statement closes the current window's accessory panel.
- importdataarray( -- The importdataarray( function converts a text array into a data array (see Data Arrays and Text Arrays).
- importjsonline -- The importjsonline statement imports a JSON record into the current record.
- info("accessorypanelwidth") -- The info("accessorypanelwidth") function returns the current width of the current window's accessory panel, if any.
- info("clickedobjectid") -- The info("clickedobjectid") function returns the object ID of the clicked object.
- info("clickedobjectname") -- The info("clickedobjectname") function returns the name of the button that was just clicked.
- info("clonewindow") -- The info("clonewindow") function returns true if the current window was opened as a "clone" window.
- info("computerserialnumber") -- The info("computerserialnumber") function returns the computer's serial number.
- info("datasheetwindows") -- The info("datasheetwindows") function returns a carriage return separated list of all open Data Sheet windows.
- info("dropfiles") -- The info("dropfiles") function returns a list of files dragged onto a Drag Receiver form object (see Drag and Drop).
- info("droptext") -- The info("droptext") function returns text dragged onto a Drag Receiver form object (see Drag and Drop).
- info("droptypes") -- The info("droptypes") function returns a list of all the data types dragged onto a Drag Receiver form object (see Drag and Drop).
- info("dropvcard") -- The info("dropvcard") function returns the text of any VCards dragged onto a Drag Receiver form object (see Drag and Drop).
- info("fieldcount") -- The info("fieldcount") function returns the number of fields in the current database.
- info("fieldnumber") -- The info("fieldnumber") function returns the number of the current field (starting from 1).
- info("fields") -- The info("fields") function returns a carriage return delimited list of fields in the current database.
- info("focusobject") -- The info("focusobject") function returns the name of the currently active text editor or word processor object, if any.
- info("focusobjectid") -- The info("focusobjectid") function returns the object ID of the currently active text editor or text list object, if any.
- info("formwindows") -- The info("formwindows") function returns a carriage return separated list of all open form windows.
- info("formxy") -- The info("formxy") function returns a point that indicates how much the current form is scrolled (if at all).
- info("guid") -- The info("guid") function returns a unique identifier string.
- info("horizontalscrollbar") -- The info("horizontalscrollbar") function returns true if the current window's horizontal scrollbar is enabled, false if it is disabled.
- info("httpheaders") -- The info("httpheaders") function returns a dictionary with information about a just completed HTTP download.
- info("localhostname") -- The info("localhostname") function returns the computer's local host name.
- info("matrixcellselected") -- The info("matrixcellselected") function returns the selection status of the current matrix object cell.
- info("modaldialogopen") -- The info("modaldialogopen") function returns true if a modal dialog window is currently open.
- info("notification") -- The info("notification") function returns information about the just clicked notification.
- info("preferencedomains") -- The info("preferencedomains") function returns a carriage return delimited list of available preferences domains.
- info("preferences") -- The info("preferences") function returns a list of all currently active preference settings.
- info("printsequence") -- The info("printsequence") function returns the record sequence number of the record being printed.
- info("procedurewindows") -- The info("procedurewindows") function returns a carriage return separated list of all open procedure windows.
- info("ram") -- The info("ram") function returns the amount of physical RAM in this computer.
- info("scrollpoint") -- The info("scrollpoint") function returns the distance the current form is scrolled horizontally and vertically.
- info("searchformula") -- The info("searchformula") function returns the most recent search formula used in a find statement, if any.
- info("timerinfo") -- The info("timerinfo") function returns a dictionary that contains all of the properties of the currently running timer.
- info("timers") -- The info("timers") function returns a carriage return separated list of all active timers.
- info("toolbar") -- The info("toolbar") function returns true if the current window's toolbar is visible, false if it is hidden.
- info("unixgroupid") -- The info("unixgroupid") function returns the UNIX group ID of the current user.
- info("unixuserid") -- The info("unixuserid") function returns the UNIX user ID of the current user.
- info("uptime") -- The info("uptime") function returns the number of seconds since the computer was last booted.
- info("urltaskinfo") -- The info("urltaskinfo") function returns information about a just completed HTTP download.
- info("verticalscrollbar") -- The info("verticalscrollbar") function returns true if the current window's vertical scrollbar is enabled, false if it is disabled.
- insertbelowcarriagereturn -- The insertbelowcarriagereturn statement inserts a new record below the current record and moves to the first column.
- integralpoint( -- The integralpoint( function converts point coordinates to integers.
- integralrectangle( -- The integralrectangle( function converts rectangle coordinates to integers.
- jsonexportline( -- The jsonexportline( function exports the current database record in JSON format.
- lastcolumn -- The lastcolumn statement move to the last column in the data sheet (rightmost column).
- lastlookupdatabase( -- The lastlookupdatabase( function returns the name of the database referenced in the most recent lookup.
- latlongdistance( -- The latlongdistance( function calculates the distance between two points on the earth (or any other sphere).
- launch -- The launch statement launches an application.
- lookupmoredata( -- The lookupmoredata( function looks up an additional data field based on the previous lookup.
- makepackage -- The makepackage statement creates a new package, and if necessary, also creates any enclosing folders needed to create the specified new package.
- matrixbutton -- The matrixbutton statement helps implement buttons in a matrix object.
- mixedupperword( -- The mixedupperword( function converts lower case words to Initial Caps, but leaves mixed case words alone.
- morphalldialog -- The morphalldialog statement opens the standard MorphAll dialog.
- morphdialog -- The morphdialog statement opens the standard Morph dialog.
- newdatabaseusingblueprint -- The newdatabaseusingblueprint statement creates a new database from a blueprint.
- newdatabasewithfields -- The newdatabasewithfields statement creates a new database with one or more fields.
- newdatabasewithjson -- The newdatabasewithjson statement creates a new database using a JSON file.
- newformobject -- The newformobject statement creates a new graphic object in a form.
- newformusingblueprint -- The newformusingblueprint statement creates a new form from a blueprint.
- nsnotify -- The nsnotify statement delivers a notification.
- objectinfoarray( -- The objectinfoarray( function builds a text array of form object properties
- onfailedresume -- The onfailedresume statement is used to setup a semi-graceful recovery if a resume statement fails because there was no pause statement.
- openclonewindow -- The openclonewindow statement opens a clone of the current window.
- opendialogsheet -- The opendialogsheet statement opens a form from the current database as a sheet dialog (attached to the current window).
- opensavedwindows -- The opensavedwindows statement opens windows that were open the last time file was saved.
- openviewdialog -- The openviewdialog statement opens the standard Open View dialog (in the View Menu).
- openwith -- The openwith statement opens a document with a specific application.
- percentescape( -- The percentescape( function encodes specified characters using percent encoding.
- percentunescape( -- The percentunescape( function decodes text that contains percent encoding.
- pinrectangle( -- The pinrectangle( function pins a rectangle within the bounds of a larger rectangle.
- posturl( -- The posturl( function loads a resource from the internet, with form data.
- preferences( -- The preferences( function retreives a list of preferences that have been stored.
- recompiledatabase -- The recompiledatabase statement recompiles all of the procedures in a specified database.
- recompilelibraries -- The recompilelibraries statement recompiles all Panorama libraries.
- rectangleinset( -- The rectangleinset( function insets a rectangle by a specified amount.
- rectangleoffset( -- The rectangleoffset( function offsets a rectangle to a new position.
- rectangletweak( -- The rectangletweak( function transforms a rectangle by changing its position and/or size.
- replaceword( -- The replaceword( function replaces a word with a new word.
- replacewordexact( -- The replacewordexact( function replaces a word with a new word.
- revealmultipleinfinder -- The revealmultipleinfinder statement reveals one or more files or folders in the Finder.
- richtextdisplay( -- The richtextdisplay( function works with Text Display objects to display text with multiple styles, fonts, colors and alignments.
- runcustommenu -- The runcustommenu statement runs the *.CustomMenu* procedure.
- runfieldcalculations -- The runfieldcalculations statement performs any automatic calculations associated with the current field.
- runfieldsideeffects -- The runfieldsideeffects statement performs any side effects associated with the current field (calculations, procedures, etc.).
- saveblueprint -- The saveblueprint statement save a blueprint of a database's structure.
- selectedformobjectsblueprintsheet -- The selectedformobjectsblueprintsheet statement opens a sheet to edit the blueprint of the currently selected objects.
- selectzipdistancetool -- The selectzipdistancetool statement selects records near the current record, based on zip codes.
- setformcustompreference -- The setformcustompreference statement sets the value of a form custom preference.
- setformoptions -- The setformoptions statement modifies one or more properties of a form (name, viewing mode, etc.).
- setpermanentvariable -- The setpermanentvariable statement sets the value of a permanent variable in another database. The database must be open. An empty value will choose the currently active database.
- setpreferencevalues -- The setpreferencevalues statement creates and/or modifies a preference value.
- sha1( -- The sha1( function calculates the SHA-1 hash of a binary or text data item.
- sha256( -- The sha256( function calculates the SHA-256 hash of a binary or text data item.
- sha512( -- The sha512( function calculates the SHA-512 hash of a binary or text data item.
- shortstandardviewmenu( -- The shortstandardviewmenu( function generates a Live Menu specification for a truncated version of Panorama’s standard View menu.
- showaccessorypanel -- The showaccessorypanel statement opens the current window's accessory panel.
- showrectangle -- The showrectangle statement refreshes all or part of the current form window.
- showwindowvariables -- The showwindowvariables statement forces Panorama to update the display of one or more variables in the currently active form.
- sortdialog -- The sortdialog statement opens the standard Sort dialog.
- standardconstructgraphicsmenu( -- The standardconstructgraphicsmenu( function generates a Custom Menu specification for Panorama’s standard Construct menu (in Graphics Mode).
- startgraphicschange -- The startgraphicschange statement adds undo support to a procedure.
- stoptimer -- The stoptimer statement stops and deletes a timer that was set up with the StartTimer statement.
- stripdiacriticals( -- The stripdiacriticals( function strips diacritical marks from text.
- switchmatch( -- The switchmatch( function chooses from a list of values based on a wildcard match.
- switchmatchexact( -- The switchmatchexact( function chooses from a list of values based on a wildcard match.
- textfilter( -- The textfilter( function scans and filters text on a character by character basis.
- textlisttableoptions -- The textlisttableoptions statement sets up text list table options
- timerinfo( -- The timerinfo( function returns a dictionary that contains all of the properties of a timer.
- toggleaccessorypanel -- The toggleaccessorypanel statement opens and closes the current window's accessory panel.
- url( -- The url( function synchronously loads a resource from the internet.
- urltask( -- The urltask( function asynchronously loads a resource from the internet.
- urltaskcancel -- The urltaskcancel statement aborts a download initiated with the urltask( function.
- urltaskstatus -- The urltaskstatus statement enables connection error checking in urltask( completion code.
- views( -- The views( function lists views in open databases.
- visiblefieldnumbers( -- The visiblefieldnumbers( function returns a data array of visible fields (by number) in the data sheet.
- zipdistance( -- The zipdistance( function calculates the distance between two zip codes.
- ziplatitude( -- The ziplatitude( function returns the latitude of a US zip code.
- ziplongitude( -- The ziplongitude( function returns the longitude of a US zip code.

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

- Creating a New Panorama X Account -- setting up a new account.
- Managing Account Roles -- configuring a Panorama X account for a team, assigning privilege levels for administrators, developers, and general users.
- Managing Your Panorama X Account -- account expiration, adding credits, monitoring account activity, managing logged in computers, modifying contact information/passwords.
- addlines -- The addlines statement adds a specified number of records to the end of a database.
- appenddictionaryvalue -- The appenddictionaryvalue statement appends a value to an item in a dictionary (see Data Dictionaries).
- arraycolumn( -- The arraycolumn( function extracts a column from a two dimensional array.
- arraynumerictotal( -- The arraynumerictotal( function totals all the numeric elements of a text array.
- arraynumerictotal -- The arraynumerictotal statement totals all the numeric elements of a text array.
- arraytableceiling( -- The arraytableceiling( function looks up a value in a double column table, similar to the table( function but from an array instead of a database.
- autoallfieldwidths -- The autoallfieldwidths statement automatically sets the width of all fields based on the data in each field.
- autofieldwidth -- The autofieldwidth statement automatically sets the width of the current field based on the data in it.
- bytepattern( -- The bytepattern( function converts a byte count to text: 543 Bytes, 543 Kb, 123 Mb, 3.2 Gb
- cardvalidate -- The cardvalidate statement verifies that a number is a valid credit card number.
- cell -- The cell statement enters a value into the currently active field (i.e. cell).
- cginavlink( -- The cginavlink( function creates a domain-independent navigation link for the current record in this database.
- cginavlinknewwindow( -- The cginavlinknewwindow( function creates a domain-independent navigation link (to a new browser window) for the current record in this database.
- changedictionaryname -- The changedictionaryname statement changes the name (key) of an item in a dictionary (see Data Dictionaries).
- changeobject -- The changeobject statement modifies the properties of one object in a form.
- changeobjects -- The changeobjects statement modifies the properties of one or more objects in a form.
- cloneobjects -- The cloneobjects statement duplicates objects in a form (with modifications).
- closeactiveobject -- The closeactiveobject statement closes any object whose text is currently being edited.
- closefile -- The closefile statement closes the current database.
- constantvalue( -- The constantvalue( function converts a field or variable into an equivalent constant value.
- copyfolder -- The copyfolder statement copies an entire folder full of files (and subfolders, if any).
- copynewerfolder -- The copynewerfolder statement copies an entire folder full of files, but only copies newer files.
- copypartialdictionary -- The copypartialdictionary statement builds a new dictionary and initializes it with values from an existing dictionary (see Data Dictionaries).
- csvexportline( -- The csvexportline( function generates a comma delimited line of data containing all the fields in the current record.
- customdialog -- The customdialog statement customizes the appearance of the gettext and getscrap dialogs.
- datatype( -- The datatype( function determines what kind of data is in a field or variable: text, number, etc.
- deletedictionaryvalue -- The deletedictionaryvalue statement deletes a key/value pair from a dictionary (see Data Dictionaries).
- dictionaryvalueexists -- The dictionaryvalueexists statement returns true or false depending on whether or not a key/value pair exists in a dictionary (see Data Dictionaries).
- displaydata -- The displaydata statement will display data in a large dialog with a scroll bar.
- draggraybox -- The draggraybox statement facilitates dragging something around in a form window.
- dragtext -- The dragtext statement starts drag-and-drop of text.
- dumpdictionary -- The dumpdictionary statement returns a carriage return separated array of dictionary keys and values (see Data Dictionaries).
- dumpdictionaryquoted -- The dumpdictionaryquoted statement returns a carriage return separated array of dictionary keys and values (see Data Dictionaries).
- emptyfill -- The emptyfill statement fills every empty visible cell in the active field with the specified value.
- enclosingfolder( -- The enclosingfolder( function takes a full path and filename and returns the name of the folder that contains the file.
- enclosingpath( -- The enclosingpath( function takes a full path and filename and returns the path of the folder that contains the file.
- fieldtype -- The fieldtype statement changes the data type of the current field.
- filesuperdate( -- The filesuperdate( function returns the modification date and time of a file.
- fill -- The fill statement fills every visible cell in the active field with the specified value.
- foldercontents( -- The foldercontents( function returns a list of all of the contents of a folder.
- getdictionarykey -- The getdictionarykey statement returns the key of an item in the dictionary, given its value. This is essentially the opposite of the getdictionaryvalue( function (see Data Dictionaries).
- getdictionaryvalue -- The getdictionaryvalue statement returns the value of an item in the dictionary, given its key (see Data Dictionaries).
- gettextdialog -- The gettextdialog statement displays a configurable modal dialog that asks the user to enter an item of text.
- goform -- The goform statement switches the current window to a different form.
- grabfieldtype( -- The grabfieldtype( function returns the type of a database field in any open database.
- h( -- The h( function extracts the horizontal position from a point (see point(, Graphic Coordinates).
- htmltabletoarray -- The htmltabletoarray statement converts an HTML table into a text array.
- info("activeobject") -- The info("activeobject") function returns the name of the currently active text editor or word processor object (if any).
- info("formevent") -- The info("formevent") function returns the last event that occurred to the current form.
- info("modifiers") -- The info("modifiers") function returns the status of the modifier keys.
- initializedictionary -- The initializedictionary statement builds a new dictionary and initializes it with one or more key/value entries (see Data Dictionaries).
- inrectangle( -- The inrectangle( function checks to see if a point is inside a rectangle.
- jsonexport( -- The jsonexport( function converts a Panorama dictionary or data array into JSON.
- jsonimport( -- The jsonimport( function converts JSON into a Panorama dictionary or data array.
- listchoices( -- The listchoices( function builds a text array containing a list of all the values stored in a specified field.
- listdictionarynames -- The listdictionarynames statement returns a list of the names (keys) in a dictionary (see Data Dictionaries).
- loadurl( -- The loadurl( function loads a resource from the internet.
- makenumberedarray( -- The makenumberedarray( function generates a numeric sequenced text array.
- mergedictionaries -- The mergedictionaries statement merges the contents of two or more dictionaries (see Data Dictionaries).
- naturaldate( -- The naturaldate( function converts a number representing a date into text using "natural" formatting.
- noimplicitassignment -- The noimplicitassignment statement does nothing, and is only retained for compatibility with earlier versions.
- nowatchcursor -- The nowatchcursor statement does nothing, and is only retained for compatibility with earlier versions.
- objectaction -- The objectaction statement allows a procedure to communicate with an object on the current form.
- objectinfo( -- The objectinfo( function returns information about a graphic object: its location, size, color, font, etc.
- openanything -- The openanything statement opens a document or application.
- opendatabase -- The opendatabase statement opens a database file.
- openfarform -- The openfarform statement opens a form in another database.
- openfile -- The openfile statement opens a database file. It can also import data from a text file, another database, or a variable into the current database.
- opentextfile -- The opentextfile statement imports data from a text file or a variable into the current database.
- openurl -- The openurl statement opens a URL (usually a web page or to create an e-mail message).
- openwizard -- The openwizard statement opens a wizard, just as it would be opened by selecting that wizard from the menubar.
- point( -- The point( function combines vertical and horizontal co-ordinates into a single binary value that describes the position of a point (see Graphic Coordinates).
- popup -- The popup statement makes a pop-up menu appear anywhere on the screen.
- popupbynumber -- The popupbynumber statement makes a pop-up menu appear anywhere on the screen.
- quit -- The quit statement quits Panorama.
- randomarrayelement( -- The randomarrayelement( function returns a random element from an array.
- randomline( -- The randomline( function returns a random line from multiple lines of text.
- randomword( -- The randomword( function returns a random word from a list of words.
- revealinfinder -- The revealinfinder statement reveals a file or folder in the Finder.
- rundialog -- The rundialog statement uses a form as a template to display a modal dialog window. The statement supervises the operation of the dialog until it is closed.
- rundialogmenus -- The rundialogmenus statement enables custom menus in a modal dialog.
- safefileerase -- The safefileerase statement deletes a file if it exists, but no error if it doesn't exist.
- selectwithin -- The selectwithin statement uses a Boolean formula to exclude records from a previously selected group.
- sequence -- The sequence statement fills every visible cell in the current field with a numeric sequence.
- setdatabaseoptions -- The setdatabaseoptions statement modifies one or more properties of a database.
- setdictionaryvalue -- The setdictionaryvalue statement changes a value in a dictionary (see Data Dictionaries).
- setfilevariable -- The setfilevariable statement sets the value of a fileglobal variable in another database.
- setrectedges -- The setrectedges statement changes the edges of the specified rectangle.
- showhidefieldsdialog -- The showhidefieldsdialog statement opens the standard Show/Hide Fields dialog (in the Fields menu).
- showother -- The showother statement forces Panorama to update some data on the screen.
- speedcopy -- The speedcopy statement copies multiple adjacent fields from a record in one database to a record in another.
- starttimer -- The starttimer statement sets up and starts a repeating task that will be performed periodically when Panorama is not otherwise busy.
- stripprintable( -- The stripprintable( function strips non-printable characters from text.
- superalert -- The superalert statement will display a custom alert.
- superarraybuild -- The superarraybuild statement scans a database to create a text array. This statement is is similar to arraybuild, but with a number of additional options (see Text Arrays).
- superchoicedialog -- The superchoicedialog statement will display a dialog with a list of choices that can be selected. You can control the size of the alert, as well as several appearance options. If the alert has more than one button, info("dialogtrigger") will contain the name of the button that was pressed.
- tagparameter( -- The tagparameter( function extracts the value of a tag parameter embedded in some text, where the tag parameter takes the form name=value.
- tagparameterarray( -- The tagparameterarray( function extracts the value of multiple tag parameters embedded in some text, where each tag parameter takes the form name=value.
- textdisplay( -- The textdisplay( function works with Text Display Objects to control the color and style of text on the fly.
- urlencode( -- The urlencode( function converts text into a legal URL (by converting spaces into `%20`). WARNING: THIS FUNCTION IS OBSOLETE.
- v( -- The v( function returns the vertical position of a point (see point(, Graphic Coordinates).
- windowinfo( -- The windowinfo( function returns information about an open window: its name, type, database, location, etc.
- zoomwindow -- The zoomwindow statement moves (*"zooms"*) the current window to a new position and size.

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

- activeobjectaction -- The activeobjectaction statement allows a procedure to communicate with the object on the current form that is currently being edited (if any).
- analyzedialog -- The analyzedialog statement opens the standard Analyze dialog.
- append -- The append statement appends a text string to a field or variable.
- appendline -- The appendline statement appends a text string to a field or variable on a new line.
- applescript( -- The applescript( function executes AppleScript source code and returns the result.
- applescript -- The applescript statement executes an AppleScript.
- arraymultisort( -- The arraymultisort( function sorts a two-dimensional array on the key of one or more of its columns.
- arraymultisort -- The arraymultisort statement sorts a two-dimensional array on the key of one or more of its columns.
- arrayrandomize( -- The arrayrandomize( function reorders an array in random order.
- arrayrandomize -- The arrayrandomize statement reorders an array in random order.
- arraytablefloor( -- The arraytablefloor( function looks up a value in a double column table, similar to the table( function but from an array instead of a database.
- arrayunpropagate( -- The arrayunpropagate( function scans an array from top to bottom, removing duplicate values in a row.
- arrayunpropagate -- The arrayunpropagate statement scans an array from top to bottom, removing duplicate values in a row.
- assign( -- The assign( function assigns a value to a field or variable, also returning the value.
- batchassign -- The batchassign statement assigns a bunch of fields/variables to another bunch of fields/variables.
- batchreplace( -- The batchreplace( function performs multiple find/replace operations on a piece of text.
- batchreplace -- The batchreplace statement performs multiple find and replace operations on a piece of text.
- bestfitrectangle( -- The bestfitrectangle( function fits a rectangle within a boundary rectangle, enlarging or reducing as necessary to produce the best fit without changing the proportions.
- bestfitrectangle -- The bestfitrectangle statement fits a rectangle within a boundary rectangle, enlarging or reducing as necessary to produce the best fit without changing the proportions.
- bigendian( -- The bigendian( function returns true if Panorama is running on a "big endian" processor
- bigmessage -- The bigmessage statement displays a message alert.
- buildwizardmenus -- The buildwizardmenus statement scans the wizard folder to build the Wizard menu and submenus.
- calcenclosingrectangle -- The calcenclosingrectangle statement will calculate the rectangle surrounding all of the specified objects.
- callingdatabase( -- The callingdatabase( function returns the name of the database that called this procedure as a subroutine, if any.
- callingprocedure( -- The callingprocedure( function returns the name of the procedure that called this procedure as a subroutine, if any.
- callwithindatabase( -- The callwithindatabase( function returns true if the current procedure was called by another procedure in the same database, false if it was called by a procedure in another database.
- cardexpirevalidate( -- The cardexpirevalidate( function checks the validity of a credit card expiration date.
- cardvalidate( -- The cardvalidate( function verifies that a number is a valid credit card number.
- cgilink( -- The cgilink( function creates a domain independent URL for another CGI action on the same server.
- cgilinknewwindow( -- The cgilinknewwindow( function creates a domain independent link for another CGI action on the same server that opens a new browser window.
- characterfilter( -- The characterfilter( function scans and filters text on a character by character basis.
- characterfilter -- The characterfilter statement scans and filters text on a character by character basis.
- checkedmenuitem( -- The checkedmenuitem( function creates a single menu item with an optional checkmark.
- choosefolderdialog -- The choosefolderdialog statement pauses and displays the standard “choose folder” dialog.
- city( -- The city( function looks up the name of a city associated with a US zip code.
- closedialogwindow -- The closedialogwindow statement is used internally by the rundialog statement.
- comparedictprocedures -- The comparedictprocedures statement compares all the procedures from a dictionary with the procedures in a specified database.
- computermacid( -- The computermacid( function returns the primary MAC address for this computer.
- copynewerfile -- The copynewerfile statement copies a file to another name or location. However, the file is only copied if it is newer than the old file, otherwise the destination is not touched.
- countsummaries( -- The countsummaries( function counts summary records.
- countsummaries -- The countsummaries statement counts summary records.
- county( -- The county( function returns the name of the county associated with a US zip code.
- createpassword -- The createpassword statement creates a random password using characters or numbers (or a mixture) set to the chosen length.
- custompluralpattern( -- The custompluralpattern( function converts a number to text using a pattern, making customizable adjustments for pluralization.
- datavalue( -- The datavalue( function returns the value of a field or variable: text, number, etc.
- deletechildren -- The deletechildren statement deletes all the records in another database that have a value in the key field that is equal to the key value.
- deleterecchildrenwarn -- The deleterecchildrenwarn statement warns you before deleting the current record from the active database and all the records in another database that have a value in the key field that is equal to the key value.
- deleterecordandchildren -- The deleterecordandchildren statement This deletes the current record from the active database and all the records in another database that have a value in the key field that is equal to the key value.
- doubleclick( -- The doubleclick( function returns true if the mouse has been double clicked.
- duplicatefield -- The duplicatefield statement duplicates the current field.
- endnoshow -- The endnoshow statement resumes the output of text and graphics after it has been disabled with the noshow statement.
- executeapplescript -- The executeapplescript statement compiles and runs an AppleScript.
- executeapplescriptformula -- The executeapplescriptformula statement executes an AppleScript, with embedded Panorama formulas.
- executeperlscript -- The executeperlscript statement executes Perl code.
- executesudounix -- The executesudounix statement executes a UNIX shell command using sudo (root) privileges.
- executeunix -- The executeunix statement executes a UNIX shell command.
- exportallprocedures -- The exportallprocedures statement saves all the procedures in an editable text format.
- exportlinenotabs( -- The exportlinenotabs( function generates a tab delimited line of data containing all the fields in the current record. Any tabs within individual fields will be removed.
- extensiontype( -- The extensiontype( function returns the type code of the specified file (if any).
- extensiontype -- The extensiontype statement returns the type code of the specified file (if any).
- fieldalignment( -- The fieldalignment( function returns the alignment of a database field.
- fieldformula( -- The fieldformula( function returns the formula associated with a database field.
- fieldname -- The fieldname statement changes the name of the current field.
- fieldnumber( -- The fieldnumber( function returns the number of a database field (starting with 1).
- fieldpattern( -- The fieldpattern( function returns the output pattern associated with a database field.
- fieldstotextvariables -- The fieldstotextvariables statement copies database fields into variables.
- fieldtypes( -- The fieldtypes( function returns a carriage return delimited array with a list of the fields and field data types.
- fieldtypes -- The fieldtypes statement returns a carriage return delimited array with list of fields and field data types.
- fieldwidth( -- The fieldwidth( function returns the width (in the data sheet) of a database field.
- filecatalog -- The filecatalog statement creates a list of files in a folder, including any subfolders of that folder
- findnth -- The findnth statement finds the nth (2nd, 3rd, 4th, etc.) record that matches a true-false test.
- findselectdialog -- The findselectdialog statement opens the standard Find/Select dialog.
- foldercount( -- The foldercount( function returns the total number of files within a folder (including any subfolders).
- folderinfo -- The folderinfo statement calculates the total size of a folder, and the number of files in the folder.
- fontinformation -- The fontinformation statement accesses information about a font (see also the fontinfo( function).
- formtodatamode -- The formtodatamode statement switches the current form window to data mode.
- formtographicsmode -- The formtographicsmode statement switches the current form window to graphics mode.
- formulamerge -- The formulamerge statement merges data into a template.
- formxy -- The formxy statement programmatically scrolls a form to a new position.
- getaddress -- The getaddress statement divides the last line of an address into separate components.
- getautonumber( -- The getautonumber( function returns the automatically generated number for the next record that will be added to the database.
- getbutton -- The getbutton statement retrieves the coordinates of the last button that was pressed (in global screen co-ordinates).
- getcitystatezip -- The getcitystatezip statement divides the last line of an address into separate components.
- getclick -- The getclick statement returns the location of the mouse in global coordinates (coordinates from the top left corner of the screen).
- getfieldproperties -- The getfieldproperties statement returns a dictionary that contains all of the properties of the specified field.
- getformulatext -- The getformulatext statement converts a formula into text without special quote characters.
- getinternalbutton -- The getinternalbutton statement retrieves the coordinates of the last button that was pressed (in form relative coordinates).
- getlocalbutton -- The getlocalbutton statement retrieves the coordinates of the last button that was pressed (in window relative coordinates).
- getlocalclick -- The getlocalclick statement returns the location of the most recent mouse click in local coordinates (coordinates from the top left corner of the current form).
- getname -- The getname statement divides a person's full name into separate components.
- getscrap -- The getscrap statement will display a dialog with a text entry area. The entered text is placed in the clipboard.
- getscrapok -- The getscrapok statement will display a dialog with a text entry area. The entered text is placed in the clipboard.
- gettaglocation -- The gettaglocation statement locates the first matching tag within some text.
- gettaglocations -- The gettaglocations statement locates all matching tags within some text.
- gettext -- The gettext statement will display a dialog with a text entry area.
- getwebcolor( -- The getwebcolor( function calculates an RGB color from a Netscape style web color.
- getwebcolor -- The getwebcolor statement will calculate an RGB color from a Netscape style web color.
- giantmessage -- The giantmessage statement displays a message alert.
- grabformula -- The grabformula statement evaluates a formula using data from another database.
- hiddenfields( -- The hiddenfields( function returns a list of hidden fields in the curent data sheet window
- hidecurrentfield -- The hidecurrentfield statement hides the current field in the data sheet.
- hidethesefields -- The hidethesefields statement hides specific fields in the data sheet, making all others visible.
- homepath( -- The homepath( function returns the HFS path of a subfolder of the current users home folder.
- homesubfolder( -- The homesubfolder( function returns the folder id of a subfolder of the current user's home folder.
- htmlarraytable -- The htmlarraytable statement generates an HTML table from an arrray.
- htmldatamerge -- The htmldatamerge statement uses a template to generate HTML you want from a database.
- htmldatatable -- The htmldatatable statement generates an HTML table from selected data in the current database.
- htmldecode( -- The htmldecode( function converts HTML text into regular text by converting any special HTML entities (`&`, `©`, etc.) into the corresponding characters.
- htmlencode( -- The htmlencode( function converts standard text into HTML text by converting any special characters into the equivalent HTML entities.
- htmlextractimages -- The htmlextractimages statement extracts the image URLs from an HTML page.
- htmlextractlinks -- The htmlextractlinks statement extracts the links from an HTML page.
- htmlformitemnames -- The htmlformitemnames statement returns a list of form input elements (INPUT tags, etc.) within an HTML page.
- importdictprocedures -- The importdictprocedures statement converts source code exported by the ExportAllProcedures statement into a dictionary.
- increment -- The increment statement increments a field or variable.
- info("activesuperobject") -- The info("activesuperobject") function returns the name of the currently active text editor or word processor object, if any.
- info("arraybuildstatus") -- The info("arraybuildstatus") function returns the status of the most recently executed superarraybuild statement.
- info("buttonrectangle") -- The info("buttonrectangle") function returns a rectangle defining the edges of the most recently clicked button.
- info("click") -- The info("click") function returns the location of the last mouse click in screen relative coordinates.
- info("computername") -- The info("computername") function returns the name of the computer (as set up in the System Preferences Sharing panel).
- info("databasefilename") -- The info("databasefilename") function returns the name of the current database.
- info("dropdatabase") -- The info("dropdatabase") function returns the name of the database that contains the form data was dropped on.
- info("dropform") -- The info("dropform") function returns the name of the form data was dropped on.
- info("dropobject") -- The info("dropobject") function returns the name of the object that data was dropped on.
- info("dropwindow") -- The info("dropwindow") function returns the name of the window that contains the form data was dropped on.
- info("hiddenfields") -- The info("hiddenfields") function returns a carriage return delimited list of fields that are currently hidden in the current data sheet.
- info("keyboard") -- The info("keyboard") function returns the last key that was pressed.
- info("magicwindow") -- The info("magicwindow") function returns the name of the currently designated "magic window," if any.
- info("matrixcell") -- The info("matrixcell") function returns the current cell number within a matrix object.
- info("matrixcelldata") -- The info("matrixcelldata") function returns the data associated with the current matrix object cell.
- info("matrixcolumn") -- The info("matrixcolumn") function returns the current column number within a matrix object.
- info("matrixdata") -- The info("matrixdata") function returns the data associated with the current matrix object.
- info("matrixname") -- The info("matrixname") function returns the name of the matrix object being drawn, if any.
- info("matrixrow") -- The info("matrixrow") function returns the current row number within a matrix object.
- info("matrixseparator") -- The info("matrixseparator") function function returns the separator associated with the current matrix.
- info("modifiedfield") -- The info("modifiedfield") function returns the name of the field that was just modified.
- info("mouse") -- The info("mouse") function returns the current location of the mouse in screen relative coordinates.
- info("noshow") -- The info("noshow") function returns true if noshow is currently turned on, false if it is not.
- info("osversion") -- The info("osversion") function returns the operating system version and build number.
- info("pagecount") -- The info("pagecount") function calculates the total number of pages that will be printed.
- info("pagenumber") -- The info("pagenumber") function returns the current report page number.
- info("procedurelibraries") -- The info("procedurelibraries") function returns a carriage return separated array listing all of the custom statement libraries that are currently installed.
- info("quitinprogress") -- The info("quitinprogress") function returns true if Panorama is in the process of quitting.
- info("typeofwindow") -- The info("typeofwindow") function determines what type of view the current window contains.
- info("visiblefields") -- The info("visiblefields") function returns a carriage return delimited list of fields that are currently visible in the current data sheet.
- info("windowdepth") -- The info("windowdepth") function returns the color depth of the current window.
- linesort( -- The linesort( function sorts lines of text in ascending order.
- littleendian( -- The littleendian( function returns true if Panorama is running on a "little endian" processor.
- loadallprocedures -- The loadallprocedures statement loads all the procedures from a dictionary into the current database. If a procedure doesn't exist it will be created.
- loadlibrary -- The loadlibrary statement loads a library database into memory.
- macoscomputername -- The macoscomputername statement returns the name of this computer.
- magicformwindow -- The magicformwindow statement designates an open window as the temporary active window for the purposes of info( functions and graphic statements.
- magicwindow -- The magicwindow statement designates an open window as the temporary active window for the purposes of info( functions and graphic statements.
- makeabsolutepath -- The makeabsolutepath statement converts a relative path (relative to the current database) to an absolute path.
- makefileglobals -- The makefileglobals statement creates one or more fileglobal variables, and assigns a value to each new variable.
- makefilesecret -- The makefilesecret statement closes all of the windows associated with a file, but keeps the file open in memory.
- makeglobals -- The makeglobals statement creates one or more global variables, and assigns a value to each new variable.
- makelocals -- The makelocals statement creates one or more local variables, and assigns a value to each new variable.
- makemergeformula -- The makemergeformula statement makes a formula from a template.
- makenumberedarray -- The makenumberedarray statement generates a numeric sequenced text array.
- matrixbuttonhelper -- The matrixbuttonhelper statement helps implement buttons in a matrix object.
- menuitems( -- The menuitems( function converts a semicolon separated array into a live menu specification.
- mergefieldsdialog -- The mergefieldsdialog statement opens the standard Merge Fields dialog.
- moveobjects -- The moveobjects statement will move an object or group of objects up, down, left or right on the form.
- noactionmenu( -- The noactionmenu( function suppresses the Action menu.
- noshow -- The noshow statement temporarily disables the output of text and graphics.
- nowizardmenu( -- The nowizardmenu( function suppresses the Wizards menu.
- object -- The object statement selects an object (based on the object name).
- objectid -- The objectid statement selects one graphic object in the current form based on an ID number.
- objectnumber -- The objectnumber statement identifies one graphic object from a set of selected graphic objects in the current form.
- obscuredigits( -- The obscuredigits( function obscures digits in a number (usually a credit card number) with Xs.
- openfiledialog -- The openfiledialog statement pauses and displays the standard “open file” dialog.
- openplain -- The openplain statement opens a database without opening any pre-saved windows, just the data sheet.
- opensecret -- The opensecret statement opens a database invisibly, without opening its windows.
- optionclick( -- The optionclick( function returns true if the option key was held down the last time the mouse was clicked.
- originalwindow -- The originalwindow statement goes back to the window remembered by the RememberWindow statement.
- perl( -- The perl( function executes a perl program and returns the result (stdout).
- perl -- The perl statement executes a Perl script (program).
- php( -- The php( function executes a PHP program and returns the result.
- php -- The php statement executes a PHP script (program).
- pleaseselectall -- The pleaseselectall statement makes sure that all records are selected.
- pluralpattern( -- The pluralpattern( function converts a number to text using a pattern, making adjustments for pluralization.
- pointstr( -- The pointstr( function converts a point value into text in the format v,h (for example 34,56).
- popupatmouse -- The popupatmouse statement displays a pop-up menu at the current mouse location.
- popupbelowbutton -- The popupbelowbutton statement displays a pop-up menu in response to clicking on a button.
- popupbutton -- The popupbutton statement displays a pop-up menu in response to clicking on a button.
- popupclick -- The popupclick statement displays a pop-up menu at the current mouse location.
- popupdoublefieldchoices -- The popupdoublefieldchoices statement displays a pop-up menu listing values in a specified field, with submenus containing values from a second field.
- popupfieldchoices -- The popupfieldchoices statement displays a pop-up menu listing values in a specified field.
- post -- The post statement assigns a value to a field in another database.
- postadjust -- The postadjust statement adjusts the value of a numeric field in another database, by adding (or subtracting) a number.
- progressbar -- The progressbar statement updates a progress bar on the current form.
- python( -- The python( function executes a python program and returns the result (stdout).
- python -- The python statement executes a Python script (program).
- rectangleadjust( -- The rectangleadjust( function adjusts all four edges of a rectangle independently
- rectanglealign( -- The rectanglealign( function aligns a small rectangle at one of nine positions within a larger rectangle.
- rectanglecenter( -- The rectanglecenter( function adjusts a rectangle so that it is centered inside of another rectangle.
- rememberwindow -- The rememberwindow statement remembers the currently active window, so that you can get back to it later.
- removeallsummaries -- The removeallsummaries statement removes all summary records.
- ruby( -- The ruby( function executes a ruby program and returns the result (stdout).
- ruby -- The ruby statement executes a Ruby script (program).
- rudemessage -- The rudemessage statement displays a message alert.
- saveallprocedures -- The saveallprocedures statement saves all the procedures in the specified database into a dictionary.
- savefiledialog -- The savefiledialog statement pauses a procedure and displays the standard “save file” dialog.
- savelocalvariables -- The savelocalvariables statement saves local variables as a procedure.
- saveoneprocedure -- The saveoneprocedure statement saves a specific procedure in the specified database into a dictionary.
- saveopenprocedures -- The saveopenprocedures statement saves all the open procedures in the specified database into a dictionary.
- scanlibraries -- The scanlibraries statement scans all libraries and registers all of the custom statements in them.
- scanlibrary -- The scanlibrary statement scans a library and registers all of the custom statements in it.
- scriptbglog -- The scriptbglog statement specifies a path/file for output from STDOUT from embedded programs run in the background (Perl, Ruby, Python, PHP).
- scripttimeout -- The scripttimeout statement sets the maximum runtime allowed for an embedded program (AppleScript, ShellScript, Perl, Ruby or Python).
- selectadditional -- The selectadditional statement adds unselected records to a previously selected group if they match the true-false test.
- selectobjects -- The selectobjects statement uses a formula to select one or more objects in the current form.
- seterror -- The seterror statement changes the error message returned by info("error").
- setproceduretext -- The setproceduretext statement changes the text of the currently open procedure.
- settagdata -- The settagdata statement changes the contents of a tag.
- settagparameter -- The settagparameter statement sets the value of a tag parameter in a list of tag parameters.
- setxtagvalue -- The setxtagvalue statement changes the contents of a tag.
- shellscript( -- The shellscript( function executes a UNIX shell script and returns the result.
- shellscript -- The shellscript statement executes a UNIX shell script.
- shiftclick( -- The shiftclick( function returns true if the shift key was held down the last time the mouse was clicked.
- showallfields -- The showallfields statement makes every field in the data sheet visible.
- showcolumns -- The showcolumns statement forces Panorama to display specified fields.
- showfields -- The showfields statement forces Panorama to display specified fields.
- showline -- The showline statement forces Panorama to redisplay the current record in all windows in the current database.
- showpage -- The showpage statement forces Panorama to redisplay all windows in the current database.
- showrecordcounter -- The showrecordcounter statement forces Panorama to redisplay the record counter in all windows in the current database.
- showthesefields -- The showthesefields statement makes specific fields in the data sheet visible, hiding all others.
- splitfielddialog -- The splitfielddialog statement opens the standard Split Field dialog.
- splitlines -- The splitlines statement takes a chunk of text and splits it into two or more smaller chunks.
- splitmenutrigger -- The splitmenutrigger statement splits info("trigger") into separate menu name and menu item variables.
- state( -- The state( function returns the name of the state associated with a US zip code.
- stringreverse -- The stringreverse statement reverses the characters in a string of text. The original text is replaced in situ.
- supergettext -- The supergettext statement will display a dialog with a text entry area.
- tallmessage -- The tallmessage statement displays a message alert.
- tempfolder( -- The tempfolder( function returns the path to the current user's temporary folder (for files you plan to use only for a short time).
- timestampstr( -- The timestampstr( function generates a time stamp string. the format is yyyy.mm.dd.hh.mm.ss.sss. the last three digits are in milliseconds (though this value is only accurate to 1/60th of a second).
- updatingwindow( -- The updatingwindow( function returns true if in a formula that is being displayed on a form, otherwise false.
- urldecode( -- The urldecode( function decodes text that contains percent encoded characters.
- usebashprofile -- The usebashprofile statement grabs the search path from the `.Bash_profile` file in the user's home folder, so that these paths will be used by scripting languages (Ruby, Python, etc.).
- visiblefields( -- The visiblefields( function returns a list of visible fields in the data sheet.
- webformlink( -- The webformlink( function generates a link to a Panorama form on the current web site (the link will open in a new browser window).
- webformlinknewwindow( -- The webformlinknewwindow( function generates a link to a Panorama form on the current web site.
- weblink( -- The weblink( function builds an HTML link tag
- weblinknewwindow( -- The weblinknewwindow( function builds an HTML link tag
- windowcornerinitialize -- The windowcornerinitialize statement shifts a window to an edge or corner of the main screen.
- windowtocorner -- The windowtocorner statement shifts a window to an edge or corner of the main screen.
- writedialogcode -- The writedialogcode statement scans the current form, and writes the procedure needed to handle this form as a dialog.
- xytoxy( -- The xytoxy( function converts a point or rectangle from one co-ordinate system to another.
- zoomalign -- The zoomalign statement moves the current window to one of 9 positions on the computer's primary screen: top left, top center, top right, etc.

ALL features that were added or changed in this release:

- Creating a New Panorama X Account -- setting up a new account.
- Getting Started with Panorama X -- whether you are a brand new Panorama user or are moving up from a previous version, you'll find great tips for getting out of the blocks quickly.
- Importing a Panorama 6 Database -- Importing a Panorama 6 Database
- Managing Your Panorama X Account -- account expiration, adding credits, monitoring account activity, managing logged in computers, modifying contact information/passwords.
- abortalldialogs -- The abortalldialogs statement closes all open dialog windows (with prejudice).
- adjustxy( -- The adjustxy( function adjusts the four corners of a rectangle. However, only corners that are inside a boundary are adjusted. Corners outside the boundary are left alone.
- alpha( -- The alpha( function extracts the alpha (opacity) from a color.
- analyzedialog -- The analyzedialog statement opens the standard Analyze dialog.
- appendluhncheckdigit( -- The appendluhncheckdigit( function adds a Luhn check digit to a series of digits.
- applescript -- The applescript statement executes an AppleScript.
- arcsinh( -- The arcsinh( function calculates the inverse hyperbolic sine of a numeric value.
- arrayboth( -- The arrayboth( function creates a new array from two arrays. The new array contains only items that are in both of the original arrays.
- arrayboth -- The arrayboth statement creates a new array from two existing arrays. The new array contains only items that are in both of the original arrays.
- arraydifference( -- The arraydifference( function creates a new array from two existing text arrays. The new array contains only items that are in the first array but not in the second array.
- arrayelement( -- The arrayelement( function converts between character positions and array element numbers in a text array.
- arrayfilter -- The arrayfilter statement processes each element of an array with a formula (see Text Arrays).
- arrayfirst( -- The arrayfirst( function extracts the first element of a text array.
- arrayitemsandwich( -- The arrayitemsandwich( function adds a prefix and/or suffix to each non-blank item in a text array.
- arrayreplacevalue( -- The arrayreplacevalue( function changes array elements that match a specified value.
- arrayunpropagate -- The arrayunpropagate statement scans an array from top to bottom, removing duplicate values in a row.
- autoallfieldwidths -- The autoallfieldwidths statement automatically sets the width of all fields based on the data in each field.
- autofieldwidth -- The autofieldwidth statement automatically sets the width of the current field based on the data in it.
- automaticfieldname( -- The automaticfieldname( function returns an available field name.
- automaticformname( -- The automaticformname( function returns an available form name.
- automaticprocedurename( -- The automaticprocedurename( function returns an available procedure name.
- batchassign -- The batchassign statement assigns a bunch of fields/variables to another bunch of fields/variables.
- batchreplace( -- The batchreplace( function performs multiple find/replace operations on a piece of text.
- batchreplace -- The batchreplace statement performs multiple find and replace operations on a piece of text.
- bigendian( -- The bigendian( function returns true if Panorama is running on a "big endian" processor
- bigmessage -- The bigmessage statement displays a message alert.
- blueprintlibraries -- The blueprintlibraries statement generates blueprints for all procedure library databases.
- blueprinttool -- The blueprinttool statement handles clicks in the Blueprint Tool (graphic mode).
- buildfavoritesmenu -- The buildfavoritesmenu statement builds the Favorite Databases menu.
- buildwizardmenus -- The buildwizardmenus statement scans the wizard folder to build the Wizard menu and submenus.
- bytepattern( -- The bytepattern( function converts a byte count to text: 543 Bytes, 543 Kb, 123 Mb, 3.2 Gb
- calcenclosingrectangle -- The calcenclosingrectangle statement will calculate the rectangle surrounding all of the specified objects.
- callingdatabase( -- The callingdatabase( function returns the name of the database that called this procedure as a subroutine, if any.
- callingprocedure( -- The callingprocedure( function returns the name of the procedure that called this procedure as a subroutine, if any.
- cardexpirevalidate( -- The cardexpirevalidate( function checks the validity of a credit card expiration date.
- cardvalidate( -- The cardvalidate( function verifies that a number is a valid credit card number.
- cardvalidate -- The cardvalidate statement verifies that a number is a valid credit card number.
- cgilink( -- The cgilink( function creates a domain independent URL for another CGI action on the same server.
- cgilinknewwindow( -- The cgilinknewwindow( function creates a domain independent link for another CGI action on the same server that opens a new browser window.
- checkforupdates -- The checkforupdates statement performs the same action as the Check for Updates menu item.
- closedialog -- The closedialog statement closes a form window that was previously opened with the opendialog statement.
- closedialogwindow -- The closedialogwindow statement is used internally by the rundialog statement.
- Colors -- Using colors in Panorama formulas and procedures.
- computermacid( -- The computermacid( function returns the primary MAC address for this computer.
- constantvalue( -- The constantvalue( function converts a field or variable into an equivalent constant value.
- constructcalendar -- The constructcalendar statement creates the form elements for a monthly calendar.
- contains -- The contains operator returns true if the value on the left contains the value on the right, false if it doesn't.
- copynewerfile -- The copynewerfile statement copies a file to another name or location. However, the file is only copied if it is newer than the old file, otherwise the destination is not touched.
- copynewerfolder -- The copynewerfolder statement copies an entire folder full of files, but only copies newer files.
- cos( -- The cos( function calculates the cosine of an angle.
- countsummaries( -- The countsummaries( function counts summary records.
- countsummaries -- The countsummaries statement counts summary records.
- county( -- The county( function returns the name of the county associated with a US zip code.
- cr( -- The cr( function generates a carriage return.
- createpassword -- The createpassword statement creates a random password using characters or numbers (or a mixture) set to the chosen length.
- customdialog -- The customdialog statement customizes the appearance of the gettext and getscrap dialogs.
- dataarray( -- The dataarray( function creates a data array from zero or more separate values (see Data Arrays).
- dataarrayappend( -- The dataarrayappend( function appends one or more values to the end of an existing array.
- dataarrayinsert( -- The dataarrayinsert( function inserts one or more values into the middle of an existing array.
- dataarrayselectedbuild( -- The dataarrayselectedbuild( function builds a data array by scanning a database and creating an array element for every visible record in the database (see Data Arrays).
- databaseexportjson -- The databaseexportjson statement exports selected records in the current database in JSON format to a text file.
- date( -- The date( function converts text into a number representing a date.
- decodebase64( -- The decodebase64( function decodes data using Base64.
- deletehotkeys -- The deletehotkeys statement deletes the hotkeys in a specific scope.
- deleterecchildrenwarn -- The deleterecchildrenwarn statement warns you before deleting the current record from the active database and all the records in another database that have a value in the key field that is equal to the key value.
- deleteselectedobjects -- The deleteselectedobjects statement deletes selected objects from a form.
- devbuild( -- The devbuild( function always returns false in production copies of Panorama.
- displayhtml -- The displayhtml statement will display a dialog containing HTML. You can control the size of the dialog, as well as several appearance options.
- divzero( -- The divzero( function divides two numbers, returns zero if denominator is zero.
- doubleclick( -- The doubleclick( function returns true if the mouse has been double clicked.
- draggraybox -- The draggraybox statement facilitates dragging something around in a form window.
- dragtext -- The dragtext statement starts drag-and-drop of text.
- duplicatefield -- The duplicatefield statement duplicates the current field.
- editcell -- The editcell statement opens the edit window for the currently active field (or cell), highlighting the data, and allows you to edit that field.
- editcellstop -- The editcellstop statement opens the edit window for the currently active field (or cell), highlighting the data, and allows you to edit that field.
- editfavoritesdialog -- The editfavoritesdialog statement handles the Favorites button in a dialog.
- elseif -- The elseif statement allows multiple if decisions to be chained together.
- emptycell( -- The emptycell( function returns true if the specified field is empty in the current record.
- enclosingfolder( -- The enclosingfolder( function takes a full path and filename and returns the name of the folder that contains the file.
- enclosingpath( -- The enclosingpath( function takes a full path and filename and returns the path of the folder that contains the file.
- encodehttppostdata( -- The encodehttppostdata( function converts a dictionary into HTTP post data.
- endloop -- The endloop statement is used at the end of a loop.
- endnoshow -- The endnoshow statement resumes the output of text and graphics after it has been disabled with the noshow statement.
- endswith -- The endswith operator returns true if the value on the left ends with the value on the right, false if it doesn't.
- error( -- The error( function returns an error with the specified message.
- ethernetinterfaces( -- The ethernetinterfaces( function returns a dictionary containing all of the MAC addresses associated with this computer.
- excludefromrecentmenu -- The excludefromrecentmenu statement excludes the next opened database from the Recent menu.
- executeapplescript -- The executeapplescript statement compiles and runs an AppleScript.
- executeapplescriptformula -- The executeapplescriptformula statement executes an AppleScript, with embedded Panorama formulas.
- executesudounix -- The executesudounix statement executes a UNIX shell command using sudo (root) privileges.
- executeunix -- The executeunix statement executes a UNIX shell command.
- exportdataarray( -- The exportdataarray( function converts a data array into a text array (see Data Arrays and Text Arrays).
- exportjson -- The exportjson statement exports the current database in JSON format.
- extensiontype( -- The extensiontype( function returns the type code of the specified file (if any).
- extensiontype -- The extensiontype statement returns the type code of the specified file (if any).
- favoritesbutton -- The favoritesbutton statement handles the Favorites button in a dialog.
- fieldblueprint -- The fieldblueprint statement creates blueprint code for the specified field.
- fieldblueprintsheet -- The fieldblueprintsheet statement opens a sheet to edit the blueprint of the current field.
- fieldname -- The fieldname statement changes the name of the current field.
- fieldstotextvariables -- The fieldstotextvariables statement copies database fields into variables.
- fieldtypes( -- The fieldtypes( function returns a carriage return delimited array with a list of the fields and field data types.
- fieldtypes -- The fieldtypes statement returns a carriage return delimited array with list of fields and field data types.
- filecatalog( -- The filecatalog( function builds a text array listing the files in a folder, including any subfolders of that folder.
- filecatalog -- The filecatalog statement creates a list of files in a folder, including any subfolders of that folder
- filesuperdate( -- The filesuperdate( function returns the modification date and time of a file.
- fillall -- The fillall statement modifies the operation of the following fill statement so that all records are modified, not just visible records.
- findnth -- The findnth statement finds the nth (2nd, 3rd, 4th, etc.) record that matches a true-false test.
- findopendialog -- The findopendialog statement opens the standard Find & Open dialog.
- findselectdialog -- The findselectdialog statement opens the standard Find/Select dialog.
- firstcolumn -- The firstcolumn statement moves to the first column in the data sheet (leftmost column).
- foldercount( -- The foldercount( function returns the total number of files within a folder (including any subfolders).
- folderinfo -- The folderinfo statement calculates the total size of a folder, and the number of files in the folder.
- fontcharacters( -- The fontcharacters( function returns a string (text) containing all of the characters supported by the specified font.
- fontinfo( -- The fontinfo( function returns a dictionary with information about a specified font.
- fontinformation -- The fontinformation statement accesses information about a font (see also the fontinfo( function).
- formblueprintsheet -- The formblueprintsheet statement opens a sheet to edit the blueprint of the current form.
- formconstructordialog -- The formconstructordialog statement opens a generic form constructor dialog.
- formtodatamode -- The formtodatamode statement switches the current form window to data mode.
- formtographicsmode -- The formtographicsmode statement switches the current form window to graphics mode.
- formulamerge -- The formulamerge statement merges data into a template.
- generatedataarray( -- The generatedataarray( function generates a new data array based on a formula (see Data Arrays and Text Arrays).
- getapplicationinfo( -- The getapplicationinfo( function retrieves the value of an item in the application's plist, or a list of all plist items.
- getautonumber( -- The getautonumber( function returns the automatically generated number for the next record that will be added to the database.
- getcitystatezip -- The getcitystatezip statement divides the last line of an address into separate components.
- getformcustompreference( -- The getformcustompreference( function returns the value of a form custom preference.
- getformcustompreferencenames( -- The getformcustompreferencenames( function returns a list of custom preferences associated with a form.
- getformulatext -- The getformulatext statement converts a formula into text without special quote characters.
- gettaglocation -- The gettaglocation statement locates the first matching tag within some text.
- gettaglocations -- The gettaglocations statement locates all matching tags within some text.
- gettext -- The gettext statement will display a dialog with a text entry area.
- gettextokcancel -- The gettextokcancel statement displays a modal dialog that asks the user to enter an item of text.
- getwebcolor( -- The getwebcolor( function calculates an RGB color from a Netscape style web color.
- giantmessage -- The giantmessage statement displays a message alert.
- goform -- The goform statement switches the current window to a different form.
- grabformula -- The grabformula statement evaluates a formula using data from another database.
- hideaccessorypanel -- The hideaccessorypanel statement closes the current window's accessory panel.
- hidecurrentfield -- The hidecurrentfield statement hides the current field in the data sheet.
- homepath( -- The homepath( function returns the HFS path of a subfolder of the current users home folder.
- homesubfolder( -- The homesubfolder( function returns the folder id of a subfolder of the current user's home folder.
- htmldecode( -- The htmldecode( function converts HTML text into regular text by converting any special HTML entities (`&`, `©`, etc.) into the corresponding characters.
- htmlencode( -- The htmlencode( function converts standard text into HTML text by converting any special characters into the equivalent HTML entities.
- htmlextractlinks -- The htmlextractlinks statement extracts the links from an HTML page.
- htmltabletoarray -- The htmltabletoarray statement converts an HTML table into a text array.
- importdataarray( -- The importdataarray( function converts a text array into a data array (see Data Arrays and Text Arrays).
- Importing Binary Data from Panorama 6 -- Importing Binary Data from Panorama 6
- increment -- The increment statement increments a field or variable.
- Index -- index of all help topics.
- info("accessorypanelwidth") -- The info("accessorypanelwidth") function returns the current width of the current window's accessory panel, if any.
- info("activesuperobject") -- The info("activesuperobject") function returns the name of the currently active text editor or word processor object, if any.
- info("arraybuildstatus") -- The info("arraybuildstatus") function returns the status of the most recently executed superarraybuild statement.
- info("click") -- The info("click") function returns the location of the last mouse click in screen relative coordinates.
- info("clickedobjectid") -- The info("clickedobjectid") function returns the object ID of the clicked object.
- info("clickedobjectname") -- The info("clickedobjectname") function returns the name of the button that was just clicked.
- info("clonewindow") -- The info("clonewindow") function returns true if the current window was opened as a "clone" window.
- info("computername") -- The info("computername") function returns the name of the computer (as set up in the System Preferences Sharing panel).
- info("computerserialnumber") -- The info("computerserialnumber") function returns the computer's serial number.
- info("databasefilename") -- The info("databasefilename") function returns the name of the current database.
- info("datasheetwindows") -- The info("datasheetwindows") function returns a carriage return separated list of all open Data Sheet windows.
- info("dropdatabase") -- The info("dropdatabase") function returns the name of the database that contains the form data was dropped on.
- info("dropfiles") -- The info("dropfiles") function returns a list of files dragged onto a Drag Receiver form object (see Drag and Drop).
- info("dropform") -- The info("dropform") function returns the name of the form data was dropped on.
- info("dropobject") -- The info("dropobject") function returns the name of the object that data was dropped on.
- info("droptext") -- The info("droptext") function returns text dragged onto a Drag Receiver form object (see Drag and Drop).
- info("droptypes") -- The info("droptypes") function returns a list of all the data types dragged onto a Drag Receiver form object (see Drag and Drop).
- info("dropvcard") -- The info("dropvcard") function returns the text of any VCards dragged onto a Drag Receiver form object (see Drag and Drop).
- info("dropwindow") -- The info("dropwindow") function returns the name of the window that contains the form data was dropped on.
- info("fieldcount") -- The info("fieldcount") function returns the number of fields in the current database.
- info("fieldnumber") -- The info("fieldnumber") function returns the number of the current field (starting from 1).
- info("fields") -- The info("fields") function returns a carriage return delimited list of fields in the current database.
- info("formevent") -- The info("formevent") function returns the last event that occurred to the current form.
- info("formwindows") -- The info("formwindows") function returns a carriage return separated list of all open form windows.
- info("formxy") -- The info("formxy") function returns a point that indicates how much the current form is scrolled (if at all).
- info("hiddenfields") -- The info("hiddenfields") function returns a carriage return delimited list of fields that are currently hidden in the current data sheet.
- info("keyboard") -- The info("keyboard") function returns the last key that was pressed.
- info("localhostname") -- The info("localhostname") function returns the computer's local host name.
- info("matrixcelldata") -- The info("matrixcelldata") function returns the data associated with the current matrix object cell.
- info("matrixcellselected") -- The info("matrixcellselected") function returns the selection status of the current matrix object cell.
- info("matrixcolumn") -- The info("matrixcolumn") function returns the current column number within a matrix object.
- info("matrixdata") -- The info("matrixdata") function returns the data associated with the current matrix object.
- info("matrixname") -- The info("matrixname") function returns the name of the matrix object being drawn, if any.
- info("matrixrow") -- The info("matrixrow") function returns the current row number within a matrix object.
- info("matrixseparator") -- The info("matrixseparator") function function returns the separator associated with the current matrix.
- info("modaldialogopen") -- The info("modaldialogopen") function returns true if a modal dialog window is currently open.
- info("modifiers") -- The info("modifiers") function returns the status of the modifier keys.
- info("noshow") -- The info("noshow") function returns true if noshow is currently turned on, false if it is not.
- info("notification") -- The info("notification") function returns information about the just clicked notification.
- info("osversion") -- The info("osversion") function returns the operating system version and build number.
- info("pagecount") -- The info("pagecount") function calculates the total number of pages that will be printed.
- info("pagenumber") -- The info("pagenumber") function returns the current report page number.
- info("preferences") -- The info("preferences") function returns a list of all currently active preference settings.
- info("procedurelibraries") -- The info("procedurelibraries") function returns a carriage return separated array listing all of the custom statement libraries that are currently installed.
- info("procedurewindows") -- The info("procedurewindows") function returns a carriage return separated list of all open procedure windows.
- info("quitinprogress") -- The info("quitinprogress") function returns true if Panorama is in the process of quitting.
- info("ram") -- The info("ram") function returns the amount of physical RAM in this computer.
- info("scrollpoint") -- The info("scrollpoint") function returns the distance the current form is scrolled horizontally and vertically.
- info("searchformula") -- The info("searchformula") function returns the most recent search formula used in a find statement, if any.
- info("timers") -- The info("timers") function returns a carriage return separated list of all active timers.
- info("toolbar") -- The info("toolbar") function returns true if the current window's toolbar is visible, false if it is hidden.
- info("typeofwindow") -- The info("typeofwindow") function determines what type of view the current window contains.
- info("unixgroupid") -- The info("unixgroupid") function returns the UNIX group ID of the current user.
- info("unixuserid") -- The info("unixuserid") function returns the UNIX user ID of the current user.
- info("uptime") -- The info("uptime") function returns the number of seconds since the computer was last booted.
- info("verticalscrollbar") -- The info("verticalscrollbar") function returns true if the current window's vertical scrollbar is enabled, false if it is disabled.
- info("visiblefields") -- The info("visiblefields") function returns a carriage return delimited list of fields that are currently visible in the current data sheet.
- info("windowdepth") -- The info("windowdepth") function returns the color depth of the current window.
- int( -- The int( function converts a number to an integer, truncating toward negative infinity.
- jsonimport( -- The jsonimport( function converts JSON into a Panorama dictionary or data array.
- lastcolumn -- The lastcolumn statement move to the last column in the data sheet (rightmost column).
- latlongdistance( -- The latlongdistance( function calculates the distance between two points on the earth (or any other sphere).
- launch -- The launch statement launches an application.
- listchoices( -- The listchoices( function builds a text array containing a list of all the values stored in a specified field.
- loadallprocedures -- The loadallprocedures statement loads all the procedures from a dictionary into the current database. If a procedure doesn't exist it will be created.
- loadlibrary -- The loadlibrary statement loads a library database into memory.
- magicwindow -- The magicwindow statement designates an open window as the temporary active window for the purposes of info( functions and graphic statements.
- makenumberedarray( -- The makenumberedarray( function generates a numeric sequenced text array.
- makenumberedarray -- The makenumberedarray statement generates a numeric sequenced text array.
- makepackage -- The makepackage statement creates a new package, and if necessary, also creates any enclosing folders needed to create the specified new package.
- matrixbutton -- The matrixbutton statement helps implement buttons in a matrix object.
- matrixbuttonhelper -- The matrixbuttonhelper statement helps implement buttons in a matrix object.
- menuitems( -- The menuitems( function converts a semicolon separated array into a live menu specification.
- mixedupperword( -- The mixedupperword( function converts lower case words to Initial Caps, but leaves mixed case words alone.
- morphdialog -- The morphdialog statement opens the standard Morph dialog.
- naturaldate( -- The naturaldate( function converts a number representing a date into text using "natural" formatting.
- newdatabaseusingblueprint -- The newdatabaseusingblueprint statement creates a new database from a blueprint.
- newdatabasewithfields -- The newdatabasewithfields statement creates a new database with one or more fields.
- newdatabasewithjson -- The newdatabasewithjson statement creates a new database using a JSON file.
- noimplicitassignment -- The noimplicitassignment statement does nothing, and is only retained for compatibility with earlier versions.
- notmatchexact -- The notmatchexact operator checks to see if the text on the left doesn't match the wildcard pattern specified on the right.
- nowatchcursor -- The nowatchcursor statement does nothing, and is only retained for compatibility with earlier versions.
- onewhitespace( -- The onewhitespace( function removes all leading spaces and any extra whitespace between words, making sure that there is one and only one space between each word.
- openclonewindow -- The openclonewindow statement opens a clone of the current window.
- openfarform -- The openfarform statement opens a form in another database.
- openfiledialog -- The openfiledialog statement pauses and displays the standard “open file” dialog.
- openplain -- The openplain statement opens a database without opening any pre-saved windows, just the data sheet.
- opensavedwindows -- The opensavedwindows statement opens windows that were open the last time file was saved.
- opentextfile -- The opentextfile statement imports data from a text file or a variable into the current database.
- openviewdialog -- The openviewdialog statement opens the standard Open View dialog (in the View Menu).
- openwith -- The openwith statement opens a document with a specific application.
- optionclick( -- The optionclick( function returns true if the option key was held down the last time the mouse was clicked.
- percentescape( -- The percentescape( function encodes specified characters using percent encoding.
- percentunescape( -- The percentunescape( function decodes text that contains percent encoding.
- perl( -- The perl( function executes a perl program and returns the result (stdout).
- perl -- The perl statement executes a Perl script (program).
- php( -- The php( function executes a PHP program and returns the result.
- pointstr( -- The pointstr( function converts a point value into text in the format v,h (for example 34,56).
- popupatmouse -- The popupatmouse statement displays a pop-up menu at the current mouse location.
- popupbutton -- The popupbutton statement displays a pop-up menu in response to clicking on a button.
- popupclick -- The popupclick statement displays a pop-up menu at the current mouse location.
- popupdoublefieldchoices -- The popupdoublefieldchoices statement displays a pop-up menu listing values in a specified field, with submenus containing values from a second field.
- postadjust -- The postadjust statement adjusts the value of a numeric field in another database, by adding (or subtracting) a number.
- posturl( -- The posturl( function loads a resource from the internet, with form data.
- preferences( -- The preferences( function retreives a list of preferences that have been stored.
- propagate -- The propagate statement fills all the empty cells in the current field. Each empty cell is filled with the value of the first non-empty cell above it.
- python( -- The python( function executes a python program and returns the result (stdout).
- quit -- The quit statement quits Panorama.
- randomarrayelement( -- The randomarrayelement( function returns a random element from an array.
- randomword( -- The randomword( function returns a random word from a list of words.
- rangecontains( -- The rangecontains( function checks to see if the text contains any characters in the specified range.
- recompiledatabase -- The recompiledatabase statement recompiles all of the procedures in a specified database.
- recompilelibraries -- The recompilelibraries statement recompiles all Panorama libraries.
- rectangleadjust( -- The rectangleadjust( function adjusts all four edges of a rectangle independently
- rectanglecenter( -- The rectanglecenter( function adjusts a rectangle so that it is centered inside of another rectangle.
- rectangleinset( -- The rectangleinset( function insets a rectangle by a specified amount.
- rectangleoffset( -- The rectangleoffset( function offsets a rectangle to a new position.
- rectanglestr( -- The rectanglestr( function converts a rectangle into text in the format top,left,bottom,right.
- regulartime( -- The regulartime( function extracts a regular time (seconds since midnight) from a superdate.
- rememberwindow -- The rememberwindow statement remembers the currently active window, so that you can get back to it later.
- removeallsummaries -- The removeallsummaries statement removes all summary records.
- revealmultipleinfinder -- The revealmultipleinfinder statement reveals one or more files or folders in the Finder.
- reverseorder -- The reverseorder statement reverses the order of the records in the database.
- right -- The right statement moves the cursor to the next field in the active window.
- ruby( -- The ruby( function executes a ruby program and returns the result (stdout).
- rudemessage -- The rudemessage statement displays a message alert.
- safefileerase -- The safefileerase statement deletes a file if it exists, but no error if it doesn't exist.
- scanlibraries -- The scanlibraries statement scans all libraries and registers all of the custom statements in them.
- scanlibrary -- The scanlibrary statement scans a library and registers all of the custom statements in it.
- secsminshours( -- The secsminshours( function this converts a time (number of seconds) into an approximate text value.
- selectedformobjectsblueprintsheet -- The selectedformobjectsblueprintsheet statement opens a sheet to edit the blueprint of the currently selected objects.
- selectzipdistancetool -- The selectzipdistancetool statement selects records near the current record, based on zip codes.
- setdialogtrigger -- The setdialogtrigger statement changes the value returned by the info("dialogtrigger") function.
- seterror -- The seterror statement changes the error message returned by info("error").
- setformcustompreference -- The setformcustompreference statement sets the value of a form custom preference.
- setparameter -- The setparameter statement is used to transfer data from a subroutine back to the main procedure that called it.
- setpermanentvariable -- The setpermanentvariable statement sets the value of a permanent variable in another database. The database must be open. An empty value will choose the currently active database.
- setproceduretext -- The setproceduretext statement changes the text of the currently open procedure.
- settagdata -- The settagdata statement changes the contents of a tag.
- settagparameter -- The settagparameter statement sets the value of a tag parameter in a list of tag parameters.
- setxtagvalue -- The setxtagvalue statement changes the contents of a tag.
- sha512( -- The sha512( function calculates the SHA-512 hash of a binary or text data item.
- shortstandardviewmenu( -- The shortstandardviewmenu( function generates a Live Menu specification for a truncated version of Panorama’s standard View menu.
- showaccessorypanel -- The showaccessorypanel statement opens the current window's accessory panel.
- showallfields -- The showallfields statement makes every field in the data sheet visible.
- showfields -- The showfields statement forces Panorama to display specified fields.
- showhidefieldsdialog -- The showhidefieldsdialog statement opens the standard Show/Hide Fields dialog (in the Fields menu).
- showline -- The showline statement forces Panorama to redisplay the current record in all windows in the current database.
- showother -- The showother statement forces Panorama to update some data on the screen.
- showpage -- The showpage statement forces Panorama to redisplay all windows in the current database.
- showrecordcounter -- The showrecordcounter statement forces Panorama to redisplay the record counter in all windows in the current database.
- showrectangle -- The showrectangle statement refreshes all or part of the current form window.
- showthesefields -- The showthesefields statement makes specific fields in the data sheet visible, hiding all others.
- snip( -- The snip( function removes (snips!) one or more characters from the middle of an item of text.
- sortdialog -- The sortdialog statement opens the standard Sort dialog.
- splitfielddialog -- The splitfielddialog statement opens the standard Split Field dialog.
- standardsetupmenu( -- The standardsetupmenu( function generates a customizable Custom Menu specification for Panorama's standard Setup menu.
- stateabbreviations( -- The stateabbreviations( function returns a list of US state abbreviations.
- stoptimer -- The stoptimer statement stops and deletes a timer that was set up with the StartTimer statement.
- stripprintable( -- The stripprintable( function strips non-printable characters from text.
- summarylevel -- The summarylevel statement changes the summary level of the current line.
- switch( -- The switch( function chooses from a list of values.
- switchmatch( -- The switchmatch( function chooses from a list of values based on a wildcard match.
- switchmatchexact( -- The switchmatchexact( function chooses from a list of values based on a wildcard match.
- tagparameterarray( -- The tagparameterarray( function extracts the value of multiple tag parameters embedded in some text, where each tag parameter takes the form name=value.
- tallmessage -- The tallmessage statement displays a message alert.
- tanh( -- The tanh( function calculates the hyperbolic tangent of a numeric value.
- tempfolder( -- The tempfolder( function returns the path to the current user's temporary folder (for files you plan to use only for a short time).
- Text Display Object -- is used to display text using a formula.
- textfilter( -- The textfilter( function scans and filters text on a character by character basis.
- timestampstr( -- The timestampstr( function generates a time stamp string. the format is yyyy.mm.dd.hh.mm.ss.sss. the last three digits are in milliseconds (though this value is only accurate to 1/60th of a second).
- toggleaccessorypanel -- The toggleaccessorypanel statement opens and closes the current window's accessory panel.
- Under Construction -- Nothing to see here, move along.
- Unimplemented Statements and Functions -- Unimplemented Statements & Functions
- unpropagate -- The unpropagate statement removes repeating data from the currently selected field. If several records in a row contain the same data, this statement erases all but the first (top) value.
- unpropagateup -- The unpropagateup statement removes repeating data from the currently selected field. If several records in a row contain the same data, this statement erases all but the last (bottom) value.
- updatingwindow( -- The updatingwindow( function returns true if in a formula that is being displayed on a form, otherwise false.
- Uploading to the Panorama Database Exchange -- uploading databases to the Panorama Database Exchange.
- upper( -- The upper( function converts text to UPPER CASE (all caps).
- upperword( -- The upperword( function converts text to Initial Caps.
- urldecode( -- The urldecode( function decodes text that contains percent encoded characters.
- urlencode( -- The urlencode( function converts text into a legal URL (by converting spaces into `%20`). WARNING: THIS FUNCTION IS OBSOLETE.
- urlfilename( -- The urlfilename( function extracts the filename from a complete url.
- urlpath( -- The urlpath( function extracts the path from a URL.
- views( -- The views( function lists views in open databases.
- visiblefields( -- The visiblefields( function returns a list of visible fields in the data sheet.
- webformlink( -- The webformlink( function generates a link to a Panorama form on the current web site (the link will open in a new browser window).
- weblink( -- The weblink( function builds an HTML link tag
- weblinknewwindow( -- The weblinknewwindow( function builds an HTML link tag
- writedialogcode -- The writedialogcode statement scans the current form, and writes the procedure needed to handle this form as a dialog.
- xytoxy( -- The xytoxy( function converts a point or rectangle from one co-ordinate system to another.
- yearsbetween( -- The yearsbetween( function calculates the number of years between two dates.
- zoomalign -- The zoomalign statement moves the current window to one of 9 positions on the computer's primary screen: top left, top center, top right, etc.
- zoomwindow -- The zoomwindow statement moves (*"zooms"*) the current window to a new position and size.

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.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.031 (released March 3rd, 2017) -- Summary of Version 0.1.031 (released 3/3/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 November 25th, 2024) -- Summary of Version 10.2 (released 11/25/2024)
- Version 10.2.0 b12 (released January 27, 2021) -- Summary of Version 10.2.0 b12 (released 01/27/2021)
- Version 10.2.0 b13 (released February 15, 2021) -- Summary of Version 10.2.0 b13 (released 02/15/2021)
- Version 10.2.0 b14 (released March 14, 2021) -- Summary of Version 10.2.0 b14 (released 03/14/2021)
- Version 10.2.0 b15 (released March 30, 2021) -- Summary of Version 10.2.0 b15 (released 03/30/2021)
- Version 10.2.0 b16 (released April 27, 2021) -- Summary of Version 10.2.0 b16 (released 04/27/2021)
- Version 10.2.0 b17 (released June 23, 2021) -- Summary of Version 10.2.0 b17 (released 06/23/2021)
- Version 10.2.0 b18 (released July 21, 2021) -- Summary of Version 10.2.0 b18 (released 07/21/2021)
- Version 10.2.0 b20 (released August 26, 2021) -- Summary of Version 10.2.0 b20 (released 08/26/2021)
- Version 10.2.0 b21 (released September 20, 2021) -- Summary of Version 10.2.0 b21 (released 09/20/2021)
- Version 10.2.0 b22 (released October 6, 2021) -- Summary of Version 10.2.0 b22 (released 10/06/2021)
- Version 10.2.0 b23 (released October 20, 2021) -- Summary of Version 10.2.0 b23 (released 10/20/2021)
- Version 10.2.0 b24 (released October 21, 2021) -- Summary of Version 10.2.0 b24 (released 10/21/2021)
- Version 10.2.0 b25 (released December 10, 2021) -- Summary of Version 10.2.0 b25 (released 12/10/2021)
- Version 10.2.0 b26 (released June 15, 2022) -- Summary of Version 10.2.0 b26 (released 06/15/2022)
- Version 10.2.0 b27 (released August 11, 2022) -- Summary of Version 10.2.0 b27 (released 08/11/2022)
- Version 10.2.0 b28 (released August 23, 2022) -- Summary of Version 10.2.0 b28 (released 08/23/2022)
- Version 10.2.0 b29 (released September 13, 2022) -- Summary of Version 10.2.0 b29 (released 09/13/2022)
- Version 10.2.0 b30 (released October 30, 2022) -- Summary of Version 10.2.0 b30 (released 10/30/2022)
- Version 10.2.0 b31 (released January 16, 2023) -- Summary of Version 10.2.0 b31 (released 01/16/2023)
- Version 10.2.0 b32 (released January 21, 2023) -- Summary of Version 10.2.0 b32 (released 01/21/2023)
- Version 10.2.0 b33 (released April 30, 2023) -- Summary of Version 10.2.0 b33 (released 04/30/2023)
- Version 10.2.0 b34 (released October 27, 2023) -- Summary of Version 10.2.0 b34 (released 10/27/2023)
- Version 10.2.0 b35 (released December 4, 2023) -- Summary of Version 10.2.0 b35 (released 12/4/2023)
- Version 10.2.0 b36 (released December 25, 2023) -- Summary of Version 10.2.0 b36 (released 12/25/2023)
- Version 10.2.0 b37 (released January 11, 2024) -- Summary of Version 10.2.0 b37 (released 1/11/2024)
- Version 10.2.0 b38 (released April 7, 2024) -- Summary of Version 10.2.0 b38 (released 4/7/2024)
- Version 10.2.0 b39 (released June 26, 2024) -- Summary of Version 10.2.0 b39 (released 06/26/2024)
- Version 10.2.0 b40 (released October 1, 2024) -- Summary of Version 10.2.0 b40 (released 10/01/2024)
- Version 10.2.0 b41 (released October 20, 2024) -- Summary of Version 10.2.0 b41 (released 10/20/2024)
- Version 10.2.0 b42 (released November 11, 2024) -- Summary of Version 10.2.0 b42 (released 11/11/2024)
- Version 10.2.0 b43 (released November 23, 2024) -- Summary of Version 10.2.0 b43 (released 11/23/2024)
- Version 10.2.1 (released January 19, 2025) -- Summary of Version 10.2.1 (released 01/19/2025)
- Version 10.2.2 (released August 8th, 2025) -- Summary of Version 10.2.2 (released 8/8/2025)