Implementing channels took the most time, nearly a week. This release also includes many small changes made in preparing the Keynote slides for upcoming sessions.
Reduced size of Panorama.app by nearly 80%. Your databases may get a bit smaller also if you have large procedures (you’ll need to recompile them).
Implemented channels, including preference panel for channel settings, channel statements and functions, and statements for dialing the phone and sending email.
New tags for the ConstructFormDataEditors statement, including <width>
, <button>
, <buttons>
, <help>
(tooltips) and <code>
.
New “Large Text” Formula Workshop window.
New Recompile statement, and added recompile option to View Organizer wizard.
Find/Select dialog is empty/is not empty options now work with any data type.
Fixed missing information in form blueprints, including static images, groups, and text labels.
The arraycontains( and arraynotcontains( functions now work with data arrays.
The GetDictionaryValue( function and statement now have an additional optional parameter that specifies a default value to return if the dictionary item doesn’t exist.
SetDictionaryValue statement now allows multiple key/value pairs to change multiple values with a single statement.
The timestampstr( function now works correctly for all times of day.
Fixed bugs in Perl, PHP, Python and Ruby statements. Most of these bugs had already been fixed for Perl, but the fixes had not been applied to the other languages.
Fixed crash that occurs when importing a Panorama 6 database with no permenent variables
The listfiles( function will now accept one 4 character type code, in addition to 1 or more 8 character type codes.
Numerous documentation corrections submitted by Crag McPherson – thank you Craig!
Brand new features implemented in this release (features that were not included in Panorama 6):
- channelcatalog -- The channelcatalog statement creates a list of all channel databases (including the path for each database).
- crtolf( -- The crtolf( function converts carriage returns into linefeeds.
- divzeroerror( -- The divzeroerror( function divides two numbers, returns an error if the denominator is zero.
- infinity( -- The infinity( function returns infinity.
- lftocr( -- The lftocr( function converts linefeeds into carriage returns.
- recompile -- The recompile statement recompiles all procedures in a database.
- signedbinaryvalue( -- The signedbinaryvalue( function converts binary data (a byte, word, longword, or longlongword) into a signed number (see Binary Data).
Features implemented in this release that work differently than they did in Panorama 6.
- channelcall -- The channelcall statement calls a procedure in the active channel module.
- channelpath -- The channelpath statement returns the path of a specified channel module.
Features implemented in this release that work exactly the same as they did in Panorama 6.
- channelactivemodule( -- The channelactivemodule( function returns the currently active module for a channel, if any.
- channelactivemodule -- The channelactivemodule statement returns the currently active module for a channel, if any.
- channelgetdictionary -- The channelgetdictionary statement returns the current settings for a specified channel.
- channelinformation( -- The channelinformation( function returns information about a specified channel.
- channelinformation -- The channelinformation statement returns information about a specified channel.
- channelload -- The channelload statement loads a channel module.
- channelmodules( -- The channelmodules( function returns a list of available modules for a specified channel type.
- channelmodules -- The channelmodules statement returns a list of available modules for a specified channel type.
- channelopen -- The channelopen statement opens a channel module for editing.
- channelpath( -- The channelpath( function returns the path of a specified channel module.
- channelprocedures -- The channelprocedures statement returns a list of procedures available in a specified channel.
- channelswitch -- The channelswitch statement switches the active channel module.
- channeltypes( -- The channeltypes( function returns a list of available channel types.
- channeltypes -- The channeltypes statement returns a list of available channel types.
- dialdigits -- The dialdigits statement dials one or more digits.
- dialphone -- The dialphone statement dials one or more digits, adjusting for area codes, country codes, etc..
- sendarrayemail -- The sendarrayemail statement sends a single e-mail to multiple recipients.
- sendbulkemail -- The sendbulkemail statement sends a single e-mail to multiple recipients.
- sendemail -- The sendemail statement sends an e-mail. It gives access to the maximum number of options available.
- sendoneemail -- The sendoneemail statement sends a single e-mail to a single recipient.
ALL features that were added or changed in this release:
- / -- The / operator divides one numeric value by another.
- channelactivemodule( -- The channelactivemodule( function returns the currently active module for a channel, if any.
- channelactivemodule -- The channelactivemodule statement returns the currently active module for a channel, if any.
- channelcall -- The channelcall statement calls a procedure in the active channel module.
- channelcatalog -- The channelcatalog statement creates a list of all channel databases (including the path for each database).
- channelgetdictionary -- The channelgetdictionary statement returns the current settings for a specified channel.
- channelload -- The channelload statement loads a channel module.
- channelmodules( -- The channelmodules( function returns a list of available modules for a specified channel type.
- channelmodules -- The channelmodules statement returns a list of available modules for a specified channel type.
- channelopen -- The channelopen statement opens a channel module for editing.
- channelpath( -- The channelpath( function returns the path of a specified channel module.
- channelpath -- The channelpath statement returns the path of a specified channel module.
- channelprocedures -- The channelprocedures statement returns a list of procedures available in a specified channel.
- channelsetdictionary -- The channelsetdictionary statement saves new settings for a specified channel.
- channelswitch -- The channelswitch statement switches the active channel module.
- channeltypes( -- The channeltypes( function returns a list of available channel types.
- channeltypes -- The channeltypes statement returns a list of available channel types.
- crtolf( -- The crtolf( function converts carriage returns into linefeeds.
- dialdigits -- The dialdigits statement dials one or more digits.
- dialphone -- The dialphone statement dials one or more digits, adjusting for area codes, country codes, etc..
- divzeroerror( -- The divzeroerror( function divides two numbers, returns an error if the denominator is zero.
- encodebase64( -- The encodebase64( function encodes data using Base64.
- formcolor -- The formcolor statement changes the background color of the current form.
- getaddress -- The getaddress statement divides the last line of an address into separate components.
- 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).
- getname -- The getname statement divides a person's full name into separate components.
- gettextdialog -- The gettextdialog statement displays a configurable modal dialog that asks the user to enter an item of text.
- getwebcolor -- The getwebcolor statement will calculate an RGB color from a Netscape style web color.
- gotofielddialog -- The gotofielddialog statement opens the standard dialog for jumping to a specific field (in the Fields menu).
- htmldatamerge -- The htmldatamerge statement uses a template to generate HTML you want from a database.
- importjsonline -- The importjsonline statement imports a JSON record into the current record.
- infinity( -- The infinity( function returns infinity.
- info("guid") -- The info("guid") function returns a unique identifier string.
- info("timerinfo") -- The info("timerinfo") function returns a dictionary that contains all of the properties of the currently running timer.
- insertbelowcarriagereturn -- The insertbelowcarriagereturn statement inserts a new record below the current record and moves to the first column.
- lftocr( -- The lftocr( function converts linefeeds into carriage returns.
- listpanoramafiles( -- The listpanoramafiles( function returns a list of panorama database files in the specified folder.
- local -- The local statement creates one or more local variables.
- makefilesecret -- The makefilesecret statement closes all of the windows associated with a file, but keeps the file open in memory.
- md5( -- The md5( function calculates the MD5 hash of a binary or text data item.
- sendemail -- The sendemail statement sends an e-mail. It gives access to the maximum number of options available.
- sha256( -- The sha256( function calculates the SHA-256 hash of a binary or text data item.
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.012 (released August 29th, 2015) -- Summary of Version 0.1.012 (released 8/29/2015)
- 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.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 June 26th, 2024) -- Summary of Version 10.2 (released 6/26/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)