Updated Features
Here is a list of features that have been improved (or at least modified) since 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.
- Panorama Video Training -- learn how to get the most from Panorama's video training wizard, including finding a video, zooming the video, opening related help topics, and purchasing on-demand training videos.
- Panorama X Account FAQ -- frequently asked questions about Panorama X accounts and pricing.
- ?( -- The ?( function allows a formula to make a true/false, yes/no decision.
- / -- The / operator divides one numeric value by another.
- + -- The + operator works differently depending on the type of operands used with it. If both operands are numeric, it does numerical addition. If either operand is text the + operator concatenates (joins together) the two operands.
- < -- The < operator compares two values to see if the first value is less than the second value.
- <= -- The <= operator compares two values to see if the first value is less than or equal to the second value.
- <> -- The <> operator compares two values to see if they are different.
- = -- The = operator compares two values to see if they are the same.
- > -- The > operator compares two values to see if the first value is greater than the second value.
- >= -- The >= operator compares two values to see if the first value is greater than or equal to the second value.
- 101: Building a Mailing List Database -- The tutorial begins by creating a new database with seven fields: first and last names, address, city, state, zip code and phone number. You'll also learn how to examine and modify field attributes, and how to rename a field.

- 102: Entering Data Into Your New Database -- This lesson introduces the basics of using the keyboard to enter new data into the database, as well as editing existing data. You'll learn about some basic data entry aids including automatic capitalization, input patterns, and the tab key. Finally, you'll learn how to expand the input area to edit multi line data.

- 103: Saving and Opening Database Files -- Panorama uses standard macOS techniques for saving your documents. All Panorama databases files end with an extension of .pandb. You'll learn several techniques for opening a database, including double clicking, open recent, and setting up favorite databases … even an easy way to find and open a database that you've lost (forgotten what folder it was in).

- 104: Importing Data Into the Mailing List -- If you already have data in another program (FileMaker, MySQL, a spreadsheet, etc.) you certainly don't want to re-enter that data in using the keyboard. In this lesson you'll learn how to import a text file (CSV, tab delimited, etc.) into an existing database. The data in the text file doesn't have to be arranged the same way as the database, Panorama can rearrange the data on the fly as it is imported. (Panorama can even split or merge columns as the data is imported, though that is not covered in this lesson).

- 105: Inserting a Field and Re-Importing -- This lesson shows how to insert a new field into the middle of an existing database, and then how to set up all of the options for the new field and re-import text into the modified database.

- 106: Sorting the Database -- You'll often need data arranged in some particular order: alphabetically, by date, price, etc. In this lesson you'll learn how to sort by one field or many, how sorts can be reversed (undo), and how to set up a favorite sort order so that it can be quickly accessed with a single click.

- 107: Searching for a Person -- Finding the data you need from a large database can be like finding a needle in a haystack. Panorama's search tools can quickly locate any data you are interested in. You'll also see how to jump from item to item if there is more than one data item that matches your search.

- 108: Selecting Instead Of Finding -- Panorama's selection tools allow you to focus on just the information you are currently interested in, making everything else temporarily invisible. For extra credit for advanced users, I'll show you how to modify the selected information as a batch, and how to undo batch operations.

- 109: Selecting from a Specific Field -- Up till now, all of the searches have been of the entire database, including all fields. Now you'll learn how to narrow the search to a specific field.

- 110: Selecting More of the Same -- It's easy to right click on any data item and ask Panorama to display other data items witht same, or similar values. For example you can quickly find other people with the same last name, or other people in the same state, or other checks written in the same month.

- 111: Zip Code Distance Searches -- If your database contains US databases with zip codes, you can right click to find other addresses that are close to the clicked address. You can choose to find other addresses that are with 15, 25, 50 or 100 miles.

- 112: Using the Sounds Like Search Option -- If you don’t know exactly how something is spelled you can try using Panorama’s sounds like option, which performs searches phonetically.

- 113: Making Complex Searches -- Panorama's Find/Select dialog can perform complex searches based on multiple criteria (up to 12, or even more in a program). The complex search is built up from individual simple searches, with a live preview as each component of the search is assembled.

- 114: Searching with a Regular Expression -- Regular expressions are a powerful technology that allow complex patterns to be created to perform sophisticated searches for just about anything – email addresses, phone numbers, urls, prices, part numbers, you name it. In fact, entire books have been written about regular expressions and how to use them. This lesson gives a brief introduction.

- 115: Searching with a Formula -- If Panorama's standard seach options aren't precise enough, any Boolean (true/false) formula can be used. You can choose from any of Panorama's hundreds of formula operators and functions, even perform searches that compare different fields (for example find all items where the price is more than twice the cost).

- 116: Selecting All Records -- This lesson is super easy — one command that makes all of the data in the database visible.

- 117: Saving Favorite Searches for Later -- It can take a lot of time to set up the complex searches described in the previous lessons. Fortunately, Panorama allows you to save any search so that you can repeat it later with a single click.

- 118: Temporarily Hiding One or More Fields -- This lesson shows how you can temporarily hide one or more fields so that you can focus on just the fields that you are interested in at the moment. Later you can easily make all fields visible again. You can also set up favorite configurations that quickly make only specific fields visible.

- 119: Automating Tasks with Procedures -- Right out of the box, Panorama is a very flexible program. Its built in menus and tools bring incredible power to your fingertips. Even better, you can easily create your own programs that can be activated with a menu or button. As shown in this lesson, you can write programs from scratch or you can have Panorama write a program for you simply by watching and recording your actions. In the course of this lesson I'll create programs that sort and select data, hide fields, and finally, display a map based on an address in the database.

- 120: Extra Credit: Running Code Automatically -- This lesson is for advanced users, and shows how a program can run automatically when data is entered into a field. In this lesson, a short program is created that runs when a phone number is entered. The program adds a default area code if necessary and formats the number. It also displays a notification if there are too many or too few digits.

- 121: Extra Credit: Importing and Cleaning Up More Names -- This is another advanced lesson that shows how to import data into an existing database even if the new data is in a different format from the existing data, and even if the new data isn't consistently formatted. In this example the new data is brought in directly from an Apple Numbers spreadsheet.

- 201: Introducing Forms (Graphical Layout) -- Now we switch gears to talk about "free form" custom layouts, which Panorama calls Forms. A form is like a piece of paper that allows you to design any arrangement you want -- labels, invoices, statements, whatever you need. A database can contain multiple forms, each with its own custom layout. In this lesson you'll learn how to create new forms, and how to create and manipulate graphic objects within a form.

- 202: Forms: Working with Data -- This lesson demonstrates how to include data in a form, both for display and editing.

- 203: Creating a Data Entry Form -- Assembling a complex data entry form piece-by-piece can be tedious. Fortunately, Panorama can do most of the work for you, automatically creating a pixel perfect layout in seconds. In fact, I'll build a complete data entry form for this mailing list database in seven seconds flat.

- 204: Adding Buttons to a Form -- It's easy to add a push button to a form. In this lesson I'll create a standard push button, and also a graphical icon button (Panorama includes almost 700 icons from the Font Awesome collection) and a button constructed from an image.

- 205: Printing Mailing Labels -- Panorama has powerful capabilities for printing custom reports. In this lesson, I'll build a simple template for printing Avery 5160 mailing labels.

- 206: Displaying a Map -- With the ability to embed a web browser into a form, the entire internet is accessible from within Panorama. You can access any public web page, or you can construct HTML on the fly from your database (this help system is constructed with a Panorama form that contains an embedded web browser). In this lesson, a browser is used to embed a map directly into the database.

- 207: Searchable List -- In addition to Panorama's standard Find/Select dialog, you can also build a custom search list into a form. The list is automatically synced with the database, or you can create a list that has its own independent data source.

- 301: Building and Organizing a Checkbook -- Now that you’ve created your first simple mailing list database, you’re ready to try something more complicated. In this lesson you’ll build and use a database for keeping track of a checkbook. This lesson starts by creating the new database and setting up the fields.

- 302: Checkbook Sample Data -- In this lesson the new checkbook database is filled with imported sample data.

- 303: Data Entry Helpers -- Before you can work with and analyze data, you have to get the data into the database, and that usually means data entry with the keyboard. This job is never easy, but Panorama does have tools that can make data entry faster and less error prone. This lesson examines how Panorama can improve the data entry process for each of the fields in the checkbook database.

- 304: Selecting Data -- Earlier lessons demonstrated searching in depth, but only in a database with text fields. Since the checkbook contains date and numeric fields, there are some additional searching tips.

- 305: Totals, Summaries and Charts -- In this lesson you'll see how you can quickly calculate totals, summaries, and charts of summarized data.

- 306: Collapsible Outline Summaries -- In this lesson you'll see how Panorama can quickly calculate subtotals and totals, organizing them into an outline that can be collapsed or expanded to see just the level of detail you need. Once calculated, you can even "rank" summaries, for example to show where spending is concentrating or which regions have the highest sales. The ability to “zoom” in and out like this is a great tool for actually understanding your data.

- Accessing the Clipboard -- reading from and writing to the system's clipboard.
- Action Menu -- simple way to create your own menu items.
- addfield -- The addfield statement adds a new field to the current database (on the end).
- Adding New Fields -- adding one or more fields to a database.
- addlines -- The addlines statement adds a specified number of records to the end of a database.
- adjustservervariable( -- The adjustservervariable( function adjusts the value of a server variable. This is an "atomic" operation, so it is multi-user friendly.
- alert -- The alert statement displays a modal alert window with a message and one or more buttons.
- alertcanceldelete -- The alertcanceldelete statement displays a modal alert window with a message and two buttons: Cancel and Delete.
- alertcancelok -- The alertcancelok statement displays a modal alert window with a message and two buttons: Cancel and Ok.
- alertdeletecancel -- The alertdeletecancel statement displays a modal alert window with a message and two buttons: Delete and Cancel.
- alertnoyes -- The alertnoyes statement displays a modal alert window with a message and two buttons: No and Yes.
- alertok -- The alertok statement displays a modal alert window with a message and one button: Ok
- alertokcancel -- The alertokcancel statement displays a modal alert window with a message and two buttons: Ok and Cancel.
- alertoksmall -- The alertoksmall statement displays a modal alert window with a message and one button: Ok
- alertrevertcancel -- The alertrevertcancel statement displays a modal alert window with a message and two buttons: Revert and Cancel.
- Alerts -- displaying a variety of standard modal alerts.
- alertsavecancel -- The alertsavecancel statement displays a modal alert window with a message and two buttons: Save and Cancel.
- alertyesno -- The alertyesno statement displays a modal alert window with a message and two buttons: Yes and No.
- alertyesnocancel -- The alertyesnocancel statement displays a modal alert window with a message and three buttons: Yes, No and Cancel.
- Aligning Objects -- so that two or more object edges are made even with each other.
- appenddictionaryvalue -- The appenddictionaryvalue statement appends a value to an item in a dictionary (see Data Dictionaries).
- AppleScript -- writing scripts with AppleScript.
- arccos( -- The arccos( function calculates the inverse cosine of a numeric value.
- arcsin( -- The arcsin( function calculates the inverse sine of a numeric value.
- arctan( -- The arctan( function calculates the inverse tangent of a numeric value.
- array( -- The array( function extracts a single data item from a text array or a data array (see Text Arrays and Data Arrays).
- 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.
- arraybuild( -- The arraybuild( function builds an array by scanning a database and creating an array element for every record (including invisible records) in the database (see Text Arrays).
- arraybuild -- The arraybuild statement builds an array by scanning a database and creating an array element for every record (including invisible records) in the database (see Text Arrays).
- arraychange( -- The arraychange( function changes the value of a single data item in a text array or a data array (see Text Arrays and Data Arrays).
- arraycolumn( -- The arraycolumn( function extracts a column from a two dimensional array.
- arraycontains( -- The arraycontains( function checks to see if any element of a text array or a data array matches a specified value.
- arraydeduplicate( -- The arraydeduplicate( function removes duplicate elements from a text array (see Text Arrays).
- arraydeduplicate -- The arraydeduplicate statement removes duplicate elements from an array (see Text Arrays).
- arraydelete( -- The arraydelete( function deletes (removes) one or more elements from a text array or a data array (see Text Arrays and Data Arrays).
- arraydeletevalue( -- The arraydeletevalue( function deletes any array elements that match the value parameter. This must be an exact match, including upper and lower case. If the value occurs multiple times in the array, every occurence of the value will be removed, with one exception: if the value occurs in two consecutive array elements, only the first occurence will be deleted.
- arraydifference( -- The arraydifference( function creates a new array from two existing arrays. The new array contains only items that are in the first array but not in the second array.
- arraydifference -- The arraydifference statement creates a new array from two existing 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( function processes each element of a text array or a data array with a formula (see Text Arrays and Data Arrays).
- 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.
- arrayinsert( -- The arrayinsert( function inserts one or more empty elements into the middle of a text array (see [Text Arrays]).
- arrayintegersort -- The arrayintegersort statement sorts all the numeric elements of a text array in proper numeric order.
- arrayitemsandwich( -- The arrayitemsandwich( function adds a prefix and/or suffix to each non-blank item in a text array.
- arraymenuitems( -- The arraymenuitems( function converts a carriage return delimited array into a series of menu items.
- arraymerge( -- The arraymerge( function merges two text arrays together (see [Text Arrays]).
- arraynotcontains( -- The arraynotcontains( function is the reverse of arraycontains(. it returns false if the value is in the array, true if it is not in the array.
- arraynumericsort( -- The arraynumericsort( function sorts a text array in numeric order (see Text Arrays).
- arraynumericsort -- The arraynumericsort statement sorts all the numeric elements of a text array in proper numeric order.
- 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.
- arrayrange( -- The arrayrange( function extracts a series of data items from a text array or a data array (see Text Arrays and Data Arrays).
- arrayreplacevalue( -- The arrayreplacevalue( function changes array elements that match a specified value.
- Arrays -- work with a numbered collection of data items (including Text Arrays and Data Arrays.
- arraysearch( -- The arraysearch( function searches a text array or a data array (see Text Arrays and Data Arrays) to see if it contains a specific value.
- arrayselectedbuild( -- The arrayselectedbuild( function builds an array by scanning a database and creating an array element for every visible (selected) record in the database (see Text Arrays).
- arrayselectedbuild -- The arrayselectedbuild statement builds an array by scanning a database and creating an array element for every visible (selected) record in the database (see Text Arrays).
- arraysort( -- The arraysort( function alphabetizes (A-Z) the elements in a text array (see [Text Arrays]).
- 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.
- asc( -- The asc( function converts the first character of a text string into a number from 0 to 65535 based on Unicode encoding.
- 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.
- Automatic Field Calculations -- performing formulas automatically when data is entered into a field.
- Automatic Field Code -- running a short program when data is entered into a field.
- Automatic Form Construction -- creates a column of form elements for editing data fields (or variables).
- Automatic Report Construction -- creates a tabular report with columns of data.
- beginswith -- The beginswith operator returns true if the value on the left starts with the value on the right, false if it doesn't.
- Binary Data -- Panorama allows a formula or procedure to work with raw binary data.
- binaryvalue( -- The binaryvalue( function converts binary data (a byte, word, longword, or longlongword) into a number (see Binary Data).
- bit( -- The bit( function converts a bit number (1 to 64) into a number (1, 2, 4, 8, 16, etc.)
- byte( -- The byte( function converts a number into a single byte of binary data (see Binary Data).
- bytearray( -- The bytearray( function extracts a value from an array of bytes (see [Binary Data]).
- bytepattern( -- The bytepattern( function converts a byte count to text: 543 Bytes, 543 Kb, 123 Mb, 3.2 Gb
- cancelok -- The cancelok statement displays a modal alert window with a message and two buttons: Cancel and Ok.
- cardvalidate -- The cardvalidate statement verifies that a number is a valid credit card number.
- case -- The case statement allows multiple decisions to be chained together (also see the elseif statement).
- 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.
- change -- The change statement replaces text with new text in the current field (selected records only).
- changedictionaryname -- The changedictionaryname statement changes the name (key) of an item in a dictionary (see Data Dictionaries).
- changedictionaryvalues( -- The changedictionaryvalues( function changes one or more values 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.
- changeword -- The changeword statement replaces one word with another in the current field (selected records only).
- changewordexact -- The changewordexact statement replaces one word with another in the current field (selected records only).
- channelcall -- The channelcall statement calls a procedure in the active channel module.
- channelpath -- The channelpath statement returns the path of a specified channel module.
- Channels -- provide a standard way to interface with external resources (email servers, phones, web sites etc.)
- checkdesignlock -- The checkdesignlock statement checks if field structure can be changed, if not, returns an error.
- checkedarraymenuitems( -- The checkedarraymenuitems( function converts a carriage return delimited array into a series of menu items, some of which may be checked.
- checkserverconnection -- The checkserverconnection statement checks to see if the specified server is connected.
- Choices -- fixed list of choices.
- chr( -- The chr( function converts a number into a single character of text, based on Unicode encoding.
- 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.
- Code -- basics of programming code.
- Colors -- Using colors in Panorama formulas and procedures.
- colorwheel -- The colorwheel statement allows the user to pick a color using the operating systems standard color picker dialog
- connecttoserver -- The connecttoserver statement reconnects the current database to the server (after the dropserver statment has been used).
- constantvalue( -- The constantvalue( function converts a field or variable into an equivalent constant value.
- constructreport -- The constructreport statement creates a report in the current form.
- contains -- The contains operator returns true if the value on the left contains the value on the right, false if it doesn't.
- Control Flow -- making decisions about what code should be executed in response to changing conditions.
- Coordinates -- working with points and rectangles.
- copyfile -- The copyfile statement copies a file (or folder).
- 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( function partially copies a dictionary (see Data Dictionaries).
- copypartialdictionary -- The copypartialdictionary statement builds a new dictionary and initializes it with values from an existing dictionary (see Data Dictionaries).
- Creating a New Form Object -- with the Object Library.
- Creating a New Form -- creating a new empty form, or a duplicate of an existing form.
- Credit Cards -- working with credit card numbers.
- Crosstab Workshop -- tool for two dimensional summarizing, analyzing and charting large amounts of data.
- Cryptography -- encrypting and decrypting data, and calculating hash values.
- csvexportline( -- The csvexportline( function generates a comma delimited line of data containing all the fields in the current record.
- csvexportlinevisiblecells( -- The csvexportlinevisiblecells( function generates a comma delimited line of data containing all the visible (non hidden) fields in the current record.
- csvtotsv( -- The csvtotsv( function converts comma separated text into tab separated text.
- Custom Database Initialization -- using an .Initialize procedure to automatically run custom code when a database opens.
- Custom Dialogs -- creating custom dialogs using forms.
- Custom Menus -- creating custom menus, menu bars and pop-up menus (and customizing standard menus).
- Custom Report Headers and Footers -- setting up custom report headers and footers.
- Custom Report Margins -- specifying the top, left, right and bottom margins of a custom report.
- Custom Statements -- creating your own custom statements that can be used in your code.
- Custom Tab Order -- Customizing the tab order in a data sheet or form.
- customdialog -- The customdialog statement customizes the appearance of the gettext and getscrap dialogs.
- Data Button Object -- is used to create checkboxes and radio buttons.
- Data Types -- different types of data that can be stored in Panorama, including text, numbers and dates.
- Database Functions -- functions that access database information, including the data itself and information about the structure of the database.
- Database Navigation & Editing -- using program code to navigate within a database, and to add and remove database records.
- Database -- a single collection of records and fields.
- datatype( -- The datatype( function determines what kind of data is in a field or variable: text, number, etc.
- dbinfo( -- The dbinfo( function gets information about a database: what forms it contains, what fields, what flash art pictures, etc.
- decodebase64( -- The decodebase64( function decodes data using Base64.
- degree -- The degree statement tells Panorama that all angles input to and calculated in trigonometric functions are in degrees rather than radians.
- deletedictionaryvalue( -- The deletedictionaryvalue( function deletes one or more key/value pairs from a dictionary (see Data Dictionaries).
- deletedictionaryvalue -- The deletedictionaryvalue statement deletes a key/value pair from a dictionary (see Data Dictionaries).
- deleterecord -- The deleterecord statement deletes the currently selected record.
- deletewebtemplate -- The deletewebtemplate statement deletes the web template (a dictionary) associated with a form (if any).
- Deleting Raw Data Records -- converting summaries into data.
- dictionaryassignmentscode( -- The dictionaryassignmentscode( function returns code that can be used to take the values in a dictionary (see Data Dictionaries) and assign them to fields or variables based on the dictionary keys.
- dictionarydifference -- The dictionarydifference statement builds an array that lists keys of dictionary values that are different between two dictionaries (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).
- disableabort -- The disableabort statement prevents loops from being stopped early by pressing SHIFT-COMMAND-ESCAPE or by exceeding the maximum allowed loop time.
- displaydata -- The displaydata statement will display data in a large dialog with a scroll bar.
- downloadrecord -- The downloadrecord statement downloads the current record from the connected server.
- downloadrecordwithwarning -- The downloadrecordwithwarning statement downloads the current record from the connected server, with a warning if the record is currently locked.
- Drag and Drop -- dragging data to and from a Panorama form.
- draggraybox -- The draggraybox statement facilitates dragging something around in a form window.
- dragtext -- The dragtext statement starts drag-and-drop of text.
- dropallshareddatabases -- The dropallshareddatabases statement drops the connection to all shared databases. Panorama uses this when the client is about to quit, could also be used if you know you are about to go offline.
- dropfromfinder -- The dropfromfinder statement processes any files or folders that have been dropped on a form from the finder.
- dropimagesfromfinder -- The dropimagesfromfinder statement processes images that have been dropped on a form from the Finder. The images may be added to new records in the database or put in the current record.
- dropserver -- The dropserver statement disconnects the current database from the server.
- dumpdictionary( -- The dumpdictionary( function returns a carriage return separated array of dictionary keys and values (see Data Dictionaries).
- dumpdictionary -- The dumpdictionary statement returns a carriage return separated array of dictionary keys and values (see Data Dictionaries).
- dumpdictionaryquoted( -- The dumpdictionaryquoted( function returns a carriage return separated array of dictionary keys and values (see Data Dictionaries). The text values are quoted.
- dumpdictionaryquoted -- The dumpdictionaryquoted statement returns a carriage return separated array of dictionary keys and values (see Data Dictionaries).
- Duplicating Objects -- to make copies of one or more objects.
- Edit Menu -- edit text and data, to search (and replace), and to undo and recent actions.
- emptyfield -- The emptyfield statement tells Panorama to move to the next available (empty) field in a series of line item fields.
- emptyfill -- The emptyfill statement fills every empty visible cell in the active field with the specified value.
- enableabort -- The enableabort statement allows the SHIFT-COMMAND-ESCAPE key sequence to stop an endless loop.
- 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.
- encodebase64( -- The encodebase64( function encodes data using Base64.
- endswith -- The endswith operator returns true if the value on the left ends with the value on the right, false if it doesn't.
- enterprisecall -- The enterprisecall statement calls a procedure in a server database, opening and closing the database if necessary.
- Error Handling -- Techniques for trapping runtime errors instead of letting them abort the program.
- execute -- The execute statement allows a procedure to call a sequence of statements within the current procedure as a "mini-subroutine".
- executecatcherrors -- The executecatcherrors statement is the same as the execute statement, except for the fact that if an error occurs while running, it can be trapped by an if error statement immediately following the executecatcherrors statement.
- executelocal -- The executelocal statement is the same as the execute statement, but it shares local variables with the procedure that called it.
- export -- The export statement exports the selected rows in the current database into a text file.
- exportcell( -- The exportcell( function takes any database field and converts it to text, using the appropriate display pattern if one has been defined for the field.
- expressionstacksize -- The expressionstacksize statement does nothing.
- expressiontype( -- The expressiontype( function determines what kind of data is generated by an expression: text, number, etc.
- extendedexpressionstack -- The extendedexpressionstack statement does nothing.
- Favorite Searches -- saving and recalling favorite searches.
- Field Menu -- manages fields, including adding and removing fields, setting field properties, sorting, morphing, hiding and showing.
- Field Properties -- available field attributes.
- field -- The field statement tells Panorama to move to the specified field for the current record.
- fieldtype -- The fieldtype statement changes the data type of the current field.
- fieldvalue( -- The fieldvalue( function grabs the contents of a field in the current record of a database. You can grab data from the current database, or from another database.
- File Menu -- create, locate, open, close and save databases, import and export text, printing.
- fileappend -- The fileappend statement appends new data to an existing disk file.
- filedate( -- The filedate( function returns the modification date of a file.
- fileerase -- The fileerase statement erases a disk file or a folder, removing it from the hard disk.
- fileexists( -- The fileexists( function returns true if a file exists, false if it does not.
- fileexistspath( -- The fileexistspath( function tests to see if a file exists.
- fileglobalvalue( -- The fileglobalvalue( function accesses a fileglobal or permanent variable from other databases.
- fileinfo( -- The fileinfo( function returns information about a file (or folder) on the disk, including the size, creation and modification date and time, type, creator and lock status.
- fileload( -- The fileload( function reads the entire contents of any file on disk.
- fileloadpartial( -- The fileloadpartial( function reads a portion of the contents of any file on disk.
- filemenubar -- The filemenubar statement creates a custom menu bar or context menu for the current database (see Custom Menus).
- filerename -- The filerename statement renames and/or moves a file or folder.
- Files and Folders -- organization of files and folders
- filesave -- The filesave statement saves data directly into a disk file.
- filesize( -- The filesize( function determines the size of any file on disk.
- filesuperdate( -- The filesuperdate( function returns the modification date and time of a file.
- filetime( -- The filetime( function returns the modification time of a file.
- filetypecreator( -- The filetypecreator( function returns the type and creator code of the specified file (if any).
- fill -- The fill statement fills every visible cell in the active field with the specified value.
- Financial Calculations -- financial calculations based on interest rates.
- Find & Replace Dialog -- finding and replacing a word or phrase (with an option to use a regular expression).
- Find/Select Dialog -- using a dialog to search for specific data.
- findreplacedialog -- The findreplacedialog statement opens the Find & Replace dialog.
- Fixed Image Object -- is used for fixed images (images that never change).
- fixed -- The fixed function converts a floating point number to fixed point.
- folder( -- The folder( function creates a Folder ID that unambiguously describes the location of a folder on the hard disk.
- foldercontents( -- The foldercontents( function returns a list of all of the contents of a folder.
- folderexists( -- The folderexists( function returns true if a folder exists, false if it does not.
- folderpath( -- The folderpath( function converts a Folder ID into the HFS path of that folder.
- Formula Workshop -- formula workshop wizard for testing and experimenting with formulas.
- formulabuffer -- The formulabuffer statement does nothing.
- formulafill -- The formulafill statement fills every visible cell in the active field with the result of the specified formula.
- formulasum -- The formulasum statement calculates a total by scanning a database, returning the accumulated sum of evaluating a formula over and over again for each scanned record.
- formulavalue( -- The formulavalue( function calculates the result of a formula based on data in the current record of any open database. This is similar to the fieldvalue( function, but allows any formula to be used, rather than just a single field.
- formulavalue -- The formulavalue statement calculates the result of a formula. Usually this is done with an assignment statement (for example `x=2 * y` ), but the formulavalue statement gives you more flexibility. You can specify what database is to be used for the calculation (an assignment statement always uses the current database) and you can specify the formula using a variable, making it easy to change on the fly. This statement also gives you more control over how errors are handled.
- Generating & Analyzing HTML -- generating HTML code from data, and extracting data from structured HTML.
- Geography -- working with geographic information, including zip codes and lat/long coordinates.
- getbit( -- The getbit( function returns the value of a bit within a number.
- getdictionarykey( -- The getdictionarykey( function returns the key of an item in the dictionary, given its value). This is essentially the opposite of the getdictionaryvalue( function (see Data Dictionaries).
- 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( function returns the value of an item in the dictionary, given its key (see Data Dictionaries).
- getdictionaryvalue -- The getdictionaryvalue statement returns the value of an item in the dictionary, given its key (see Data Dictionaries).
- getfieldproperties( -- The getfieldproperties( function returns a dictionary containing all of the properties of the specified field. (See the setfieldproperties statement if you want to change one or more field properties.)
- getprocedureoption( -- The getprocedureoption( function returns information about a procedure.
- gettextdialog -- The gettextdialog statement displays a configurable modal dialog that asks the user to enter an item of text.
- getwebtemplate( -- The getwebtemplate( function retrieves the web template (a dictionary) associated with a form (if any).
- getwebtemplate -- The getwebtemplate statement retrieves the web template (a dictionary) associated with a form (if any).
- getwebtemplatetext( -- The getwebtemplatetext( function retrieves the text of the web template (a dictionary) associated with a form (if any).
- getwebtemplatetext -- The getwebtemplatetext statement retrieves the text of the web template (a dictionary) associated with a form (if any).
- globalmenubar -- The globalmenubar statement creates a custom menu bar or context menu for all windows (intended only for internal use by ProVUE Development).
- goform -- The goform statement switches the current window to a different form.
- goto -- The goto statement allows a procedure to arbitrarily jump from one spot to another within the procedure.
- grabfieldtype( -- The grabfieldtype( function returns the type of a database field in any open database.
- Grouping Objects -- allows you to manipulate multiple objects as if they were a single object.
- groupup -- The groupup statement divides the database into groups, with a summary record at the end of each group. The groups are arranged in ascending order (low to high).
- growl -- The growl statement displays a notification.
- growlmessage -- The growlmessage statement displays a notification.
- h( -- The h( function extracts the horizontal position from a point (see point(, Graphic Coordinates).
- hex( -- The hex( function converts a text item containing a hexadecimal number into a standard number (decimal).
- hexstr( -- The hexstr( function converts a number to text formatted as a hexadecimal number.
- hide -- The hide statement temporarily disables the output of text and graphics.
- Hotkeys -- setting up user defined hotkeys.
- hsb( -- The hsb( function creates a color by combining hue, saturation, and brightness components. See Colors.
- htmltabletoarray -- The htmltabletoarray statement converts an HTML table into a text array.
- Image Display Object -- is used for dynamic images (images that change depending on the data).
- Implicitly Triggered Procedures -- Procedures that are triggered automatically when the user performs some normal Panorama action are said to be "implicitly triggered."
- info("activeobject") -- The info("activeobject") function returns the name of the currently active text editor or word processor object (if any).
- info("datatype") -- The info("datatype") function returns the data type of the current field.
- info("expandable") -- The info("expandable") function checks to see if the current record is expandable.
- info("expressionstacksize") -- The info("expressionstacksize") function returns the fake size of expression stack.
- info("formcolor") -- The info("formcolor") function returns the background color of the current form.
- info("formulabuffer") -- The info("formulabuffer") function returns the fake size of the formula buffer.
- info("formulamemory") -- The info("formulamemory") function function returns the fake size of the formula memory.
- info("keycode") -- The info("keycode") function returns a special numeric code that represents the last key that was pressed.
- info("modifiers") -- The info("modifiers") function returns the status of the modifier keys.
- info("panoramaversion") -- The info("panoramaversion") function returns the version number of Panorama.
- info("procedurestack") -- The info("procedurestack") function returns the contents of Panorama's procedure call stack.
- info("serverrecordid") -- The info("serverrecordid") function returns the unique ID number for the current record.
- info("windowoptions") -- The info("windowoptions") function returns the names of any currently enabled window options,
- initializedictionary -- The initializedictionary statement builds a new dictionary and initializes it with one or more key/value entries (see Data Dictionaries).
- initializedictionaryvalue( -- The initializedictionaryvalue( function builds a new dictionary and initializes it with one or more entries (see Data Dictionaries). This function is deprecated, we recommend using the initializedictionary( function instead.
- inrectangle( -- The inrectangle( function checks to see if a point is inside a rectangle.
- insertbelow -- The insertbelow statement inserts a new record below the current record.
- insertfield -- The insertfield statement inserts a new field into the database in front of the current field.
- Internet Access -- accessing information from web servers.
- intersectionrectangle( -- The intersectionrectangle( function creates a rectangle by combining two rectangles. The new rectangle is the area where the two rectangles overlap (if any).
- 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.
- like -- The like operator checks to see if the text on the left matches the wildcard pattern specified on the right.
- Line Item Fields -- are used for repeating items within a record
- Line Object -- draws a line within a form.
- lineitemarray( -- The lineitemarray( function converts the data in a set of line item fields into a text array (see Text Arrays).
- Linking with Another Database -- techniques for relating multiple database files so that they work together.
- listchoices( -- The listchoices( function builds a text array containing a list of all the values stored in a specified field.
- listdictionarykeys( -- The listdictionarykeys( function returns a list of the keys in a dictionary collection.
- listdictionarynames -- The listdictionarynames statement returns a list of the names (keys) in a dictionary (see Data Dictionaries).
- listfiles( -- The listfiles( function builds a text array listing the files in a folder.
- listwebtemplates( -- The listwebtemplates( function retrieves a list of web templates in the specified database, if any.
- listwebtemplates -- The listwebtemplates statement retrieves a list of web templates in the specified database, if any.
- listwindows( -- The listwindows( function builds a text array containing a list of all the open windows associated with a particular file.
- LMSL -- is the specification language for Live Menus.
- loadurl( -- The loadurl( function loads a resource from the internet.
- loadurl -- The loadurl statement loads a resource from the internet.
- longlongwordarray( -- The longlongwordarray( function extracts a value from an array of 64 bit longlongwords (see [Binary Data]).
- longword( -- The longword( function converts a number into a 32 bit longword (4 bytes) of binary data (see Binary Data).
- lookup( -- The lookup( function searches a database for a value, then returns other information from the same record. For example, the lookup( function can look up a phone number given a customer name, or look up a price given a part number.
- lookupall( -- The lookupall( function builds a text array containing one item for every record in the target database where the data in the keyField matches the keyData. Each item in the text array contains the value extracted from the dataField for that record. If the data field is a numeric or date field, it is converted to text using the default patterns for that field.
- lookuplast( -- The lookuplast( function searches the selected records in a database for a value, then returns other information from the same record. For example, the lookuplast( function can look up a phone number given a customer name, or look up a price given a part number. Unlike the lookup( function which searches from the top of the database, the lookuplast( function searches backwards from the bottom.
- lookuplastselected( -- The lookuplastselected( function searches the selected records in a database for a value, then returns other information from the same record. For example, the lookuplastselected( function can look up a phone number given a customer name, or look up a price given a part number. Unlike the lookupselected( function which searches from the top of the database, the lookuplastselected( function searches backwards from the bottom.
- lookupselected( -- The lookupselected( function searches the selected records in a database for a value, then returns other information from the same record. For example, the lookupselected( function can look up a phone number given a customer name, or look up a price given a part number.
- magnification -- The magnification statement changes the magnification of a form.
- makefolder -- The makefolder statement creates a new folder, and if necessary, also creates any enclosing folders needed to create the specified new folder.
- makeformwebtemplate -- The makeformwebtemplate statement converts a Panorama form into the equivalent HTML/CSS.
- makenewform -- The makenewform statement creates a new form in the current database.
- makenewprocedure -- The makenewprocedure statement creates a new procedure in the current database.
- makenumberedarray( -- The makenumberedarray( function generates a numeric sequenced text array.
- Mark Menu -- allows you to set bookmarks in source code to help navigate to specific spots in a long program.
- match -- The match operator checks to see if the text on the left matches the wildcard pattern specified on the right.
- matchexact -- The matchexact operator checks to see if the text on the left matches the wildcard pattern specified on the right.
- max( -- The max( function compares a series of values and returns the largest value.
- Memory Usage -- memory usage.
- menu( -- The menu( function creates a menu (see Custom Menus).
- mergedictionaries( -- The mergedictionaries( function merges the contents of two or more dictionaries (see Data Dictionaries).
- mergedictionaries -- The mergedictionaries statement merges the contents of two or more dictionaries (see Data Dictionaries).
- message -- The message statement displays a modal alert window with a message.
- min( -- The min( function compares a series of values and returns the smallest value.
- Morph Field Dialog -- morphing the contents of an entire field.
- Morph Field Favorites -- saving and recalling favorite data morphing operations.
- Morph Text Field Operations -- text data morphing operations.
- Mouse and Click Status -- accessing the mouse (location, buttons) and keyboard status.
- naturaldate( -- The naturaldate( function converts a number representing a date into text using "natural" formatting.
- newdatabase -- The newdatabase statement creates a new database.
- nextmatch -- The nextmatch statement locates the next visible record in the active database for which the condition specified in the most recent Find statement is true.
- noimplicitassignment -- The noimplicitassignment statement does nothing, and is only retained for compatibility with earlier versions.
- normalexpressionstack -- The normalexpressionstack statement does nothing.
- not -- The not operator reverses a boolean value.
- notcontains -- The notcontains operator returns true if the value on the left does not contain the value on the right, false if it does.
- notmatch -- The notmatch operator checks to see if the text on the left does not match the wildcard pattern specified on the right.
- notmatchexact -- The notmatchexact operator checks to see if the text on the left doesn't match the wildcard pattern specified on the right.
- noundo -- The noundo statement does nothing (it used to disable undo).
- nowatchcursor -- The nowatchcursor statement does nothing, and is only retained for compatibility with earlier versions.
- noyes -- The noyes statement displays a modal alert window with a message and two buttons: No and Yes.
- nthline( -- The nthline( function extracts the nth line from the text.
- nthword( -- The nthword( function extracts a word from the middle of the text.
- Numeric Data -- numeric data (fixed and floating point).
- Numeric Patterns -- control how a number is displayed or converted to text.
- 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.
- okcancel -- The okcancel statement displays a modal alert window with a message and two buttons: Ok and Cancel.
- onerror -- The onerror statement can be used to catch all errors that are not trapped by if error or try statements.
- openanything -- The openanything statement opens a document or application.
- opendatabase -- The opendatabase statement opens a database file.
- opendialog -- The opendialog statement opens a form from the current database as a modal dialog box.
- 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.
- openform -- The openform statement opens a form in the current database in a new window.
- openmapwindow -- The openmapwindow statement opens a window displaying a map of a location.
- 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.
- outlinelevel -- The outlinelevel statement expands or collapses the entire database to show a specific level of data or summary level.
- pattern( -- The pattern( function converts a number into text using a pattern.
- pause -- The pause statement temporarily pauses a procedure.
- Perl Scripting -- writing and using Perl scripts.
- 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 Menu Button Object -- is used to create popup menus anywhere on a form.
- 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.
- posixpath( -- The posixpath( function converts a path and filename into a POSIX path that can be used as a parameter to a shell command.
- posturl -- The posturl statement loads a resource from the internet, with form data.
- Preference Values -- reading and writing system preference values.
- Printing Multiple Column Reports -- printing reports with two, three or more columns (for example mailing labels).
- Printing Multiple Page Records -- Panorama can print up to 9 pages for each record in a custom report (for example multi page invoices, etc.)
- Printing Summary Information -- printing a database that has been organized into categories with summary records.
- Printing -- printing reports, mailing labels, etc.
- printonemultiple -- The printonemultiple statement prints a form over and over again without advancing from record to record. Instead of advancing from record to record, a variable is incremented each time the form is printed. This statement is designed for printing calendars or thumbnails.
- printpreview -- The printpreview statement previews what printing the current window will look like.
- printusingform -- The printusingform statement allows the current database to be printed using a different form than the one currently being displayed.
- Procedure Editor -- editing named procedures.
- Procedure Recorder -- recording database actions as code.
- Procedures -- basics of procedures for automation.
- Program Access to Databases -- using a program to create, open, import or export databases.
- Program Error Handling -- handling errors and exceptions that occur when a program is running.
- Programmable Database Administration -- using a program to access and/or modify the structure of a database.
- Programmable Form Management -- using a program to work with forms.
- Programmable Graphics -- using program code to create and modify graphic objects in a form.
- Programmable Outlines -- using a program to create and manipulate data outlines.
- Programmable Printing -- using program code to print reports, mailing labels, etc.
- Programmable Searching -- using program code to search and select data.
- Programmable Sorting -- using program code to sort a database.
- Programmable Text Export -- using a program to export text from a database.
- Programmable Window Management -- using a program to arrange windows.
- Programming Database Fields -- using a program to add and remove database fields.
- progressalert -- The progressalert statement displays a progress alert if an operation is going to take a long time.
- 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.
- propagateup -- The propagateup statement fills all the empty cells in the current field. Each empty cell is filled with the value of the first non-empty cell below it.
- Push Button Object -- triggers a procedure when it is pushed.
- quit -- The quit statement quits Panorama.
- radian -- The radian statement tells Panorama that all angles in trigonometric functions should be calculated using radians rather than degrees.
- radix( -- The radix( function converts a text item containing a number in a radix between 2 and 36 into a decimal number.
- radixstr( -- The radixstr( function converts a number into a text item containing the equivalent number in a radix between 2 and 36.
- randomarrayelement( -- The randomarrayelement( function returns a random element from an array.
- randominteger( -- The randominteger( function generates a random integer between the starting and ending values.
- 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.
- rbottom( -- The rbottom( function extracts the position of the bottom edge of a rectangle (see rectangle(, Graphic Coordinates).
- Rearranging Field Order -- rearranging the order of fields in the data sheet.
- Records Menu -- add and remove database records.
- rectangle( -- The rectangle( function defines a rectangle from four dimensions.
- rectanglesize( -- The rectanglesize( function defines a rectangle from its upper left hand corner and its height and width.
- registercustomfunction -- The registercustomfunction statement defines a new custom function.
- removedetail -- The removedetail statement removes data records from the current database, leaving only summary records. It can also delete low level summary records, leaving only higher levels.
- removesummaries -- The removesummaries statement removes summary records from the current database.
- renamedictionarykey( -- The renamedictionarykey( function changes the key (name) of one or more values in a dictionary (see Data Dictionaries).
- renderwebtable( -- The renderwebtable( function renders a web table using records selected with WebSelect in the current database.
- renderwebtable -- The renderwebtable statement renders a web table using records selected with WebSelect in the current database.
- rep( -- The rep( function assembles a text item by repeating a smaller text item over and over again.
- replace( -- The replace( function replaces text with new text.
- Reports -- Panorama has a very flexible system for printing custom reports, labels and forms.
- resume -- The resume statement resumes a procedure that has been temporarily halted with the pause statement.
- Reveal in Finder -- reveal the location of a database in the Finder.
- revealinfinder -- The revealinfinder statement reveals a file or folder in the Finder.
- revert -- The revert statement reloads the last saved version of the database from the disk.
- rgb( -- The rgb( function creates a color by combining red, green, and blue primary colors. See Colors.
- rheight( -- The rheight( function extracts the height of a rectangle (see rectangle(, Graphic Coordinates).
- Rich Text -- is used to display styled text, including bold, italic, colors, tabs, even images.
- rleft( -- The rleft( function extracts the position of the left edge of a rectangle (see rectangle(, Graphic Coordinates).
- rright( -- The rright( function extracts the position of the right edge of a rectangle (see rectangle(, Graphic Coordinates).
- rtop( -- The rtop( function extracts the position of the top edge of a rectangle (see rectangle(, Graphic Coordinates).
- 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.
- rwidth( -- The rwidth( function extracts the width of a rectangle (see rectangle(, Graphic Coordinates).
- safefileerase -- The safefileerase statement deletes a file if it exists, but no error if it doesn't exist.
- saveacopyas -- The saveacopyas statement saves a copy of the currently active file under a new name. The original database remains open in memory under its original name.
- saveas -- The saveas statement saves a copy of the currently active file under a new name. The original file remains unchanged.
- savewebtemplate -- The savewebtemplate statement saves a web template (a dictionary) associated with a form.
- Scientific Calculations -- performing scientific calculations (trigonometry, logarithms, etc.)
- Scripting -- embedding scripting languages (AppleScript, shell scripts, Python, Ruby, PHP, Perl, etc.) into Panorama program code.
- Scroll Bar Object -- is used to create scroll bars.
- Search Menu -- is used search for data, to select records, and to find and replace text within the current field.
- search( -- The search( function searches through an item of text looking for a character, word or phrase. If it finds an exact match (including upper/lower case) with the character, word or phrase, it returns its position within the text item. If it does not find the character, word or phrase, it returns zero.
- select -- The select statement makes visible only those records for the active database for which the specified condition is true.
- Selecting Form Objects -- so that they can be modified.
- 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.
- serverformulafill -- The serverformulafill statement fills a specified subset of records in a shared database.
- serverlog -- The serverlog statement adds a line to one or more server logs.
- servervariable( -- The servervariable( function returns the value of a server variable (a permanent variable on the server).
- setbit( -- The setbit( function sets or clears one bit within a number, without disturbing any of the other bits.
- setdatabaseoptions -- The setdatabaseoptions statement modifies one or more properties of a database.
- setdialogtrigger -- The setdialogtrigger statement changes the value returned by the info("dialogtrigger") function.
- setdictionaryvalue -- The setdictionaryvalue statement changes a value in a dictionary (see Data Dictionaries).
- setfieldproperties -- The setfieldproperties statement modifies one or more properties (name, data type, formula, etc.) of the current field.
- 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.
- settrigger -- The settrigger statement changes the value returned by the info("trigger") function.
- setwindowrectangle -- The setwindowrectangle statement specifies the dimensions of the next window that is opened by a procedure.
- shortcall -- The shortcall statement allows a procedure to call a sequence of statements within the current procedure as a "mini-subroutine".
- show -- The show statement resumes the output of text and graphics after it has been disabled and then forces Panorama to redisplay all windows in the current database.
- 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.
- sizeof( -- The sizeof( function calculates the amount of memory used by a field or a variable.
- Smart Resize -- adjusts the sizes and locations of the other selected objects to match the change of one object.
- Sorting Data -- sorting data into a specific order.
- speak -- The speak statement speaks a word or phrase.
- Speech Programming -- using program code to convert data to speech (voice).
- speedcopy -- The speedcopy statement copies multiple adjacent fields from a record in one database to a record in another.
- standardclassicsetupmenu( -- The standardclassicsetupmenu( function generates a customizable Custom Menu specification for Panorama's classic Setup menu.
- standardeditmenu( -- The standardeditmenu( function generates a customizable Custom Menu specification for Panorama's standard Edit menu.
- standardfilemenu( -- The standardfilemenu( function generates a customizable Custom Menu specification for Panorama's standard File menu.
- standardsearchmenu( -- The standardsearchmenu( function generates a customizable Custom Menu specification for Panorama's standard Search menu.
- standardsetupmenu( -- The standardsetupmenu( function generates a customizable Custom Menu specification for Panorama's standard Setup menu.
- standardsortmenu( -- The standardsortmenu( function generates a customizable Custom Menu specification for Panorama's standard Sort menu.
- standardtextmenu( -- The standardtextmenu( function generates a customizable Custom Menu specification for Panorama's standard Text menu.
- standardwindowmenu( -- The standardwindowmenu( function generates a customizable Custom Menu specification for Panorama's standard Window menu.
- starttimer -- The starttimer statement sets up and starts a repeating task that will be performed periodically when Panorama is not otherwise busy.
- statusmessage -- The statusmessage statement displays a message in the status bar at the bottom of the procedure window.
- stopalert -- The stopalert statement displays a modal alert window with a warning icon, a message and one or more buttons.
- stopspeaking -- The stopspeaking statement stops any talking that is currently happening.
- stripchar( -- The stripchar( function extracts characters you don't want from a text item.
- stripprintable( -- The stripprintable( function strips non-printable characters from text.
- submenu( -- The submenu( function creates a submenu (see Custom Menus).
- Subroutines -- writing code that can be called from other code.
- sum( -- The sum( function adds up all instances of a line item field in the current record.
- Summarize & Analyze Favorites -- saving and recalling favorite summaries.
- Summary Workshop -- tool for quickly summarizing, analyzing and charting large amounts of data.
- 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.
- Supressing Display -- temporarily disabling display of changes in a program (to reduce "flickering" and increase performance).
- synchronize -- The synchronize statement synchronizes the local database with Panorama Server. This is the same as choosing Synchronize from the File menu.
- System Info Functions -- find out information about the current status of the computer and operating system.
- tabarray( -- The tabarray( function extracts the nth element from a tab delimited array.
- table( -- The table( function searches a database for a value, then returns other information from the same record. Unlike the lookup( function, the table( function does not require an exact match. If it does not find an exact match the table( function will use the closest match. For example, the table( function can look up a tax rate given an income amount, or look up a shipping price given a zip code and weight.
- 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.
- Text Arrays -- A numbered collection of text values.
- Text Display Object -- is used to display text using a formula.
- Text Editor Object -- is used to edit text in a field or variable.
- Text Search Options -- searching text within a database.
- textdisplay( -- The textdisplay( function works with Text Display Objects to control the color and style of text on the fly.
- textstuff( -- The textstuff( function replaces one or more characters in the middle of a piece of text.
- Tiles In Action -- basic rules for using tiles to print custom reports.
- time( -- The time( function converts text into a number representing a time.
- timepattern( -- The timepattern( function converts a number representing a time into text. The function uses a pattern to control how the time is formatted.
- Timers -- executing recurring periodic background code at fixed intervals.
- Transforming Data -- using program code to modify data in bulk.
- Triggers -- finding out what event triggered the execution of program code.
- trimleft( -- The trimleft( function removes one or more characters from the left edge of the text.
- Understanding the Run Loop -- explanation of how Panorama code interacts with the run loop to respond to mouse clicks, keyboard presses, display updates and other events that require attention.
- Undo -- using the Undo command to reverse one or more recent actions.
- unionrectangle( -- The unionrectangle( function creates a rectangle by combining two rectangles. The new rectangle is large enough to exactly cover both of the input rectangles.
- unixshellstring( -- The unixshellstring( function encodes text for use as a parameter to a unix shell command.
- 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.
- updateballoonlocations -- The updateballoonlocations statement does nothing.
- urlencode( -- The urlencode( function converts text into a legal URL (by converting spaces into `%20`). WARNING: THIS FUNCTION IS OBSOLETE.
- usecallerslocalvariables -- The usecallerslocalvariables statement temporarily swaps out a subroutine's current local variables with the local variables of the procedure that called this subroutine. The statement can be used only in a subroutine, not in a calling procedure.
- usemylocalvariables -- The usemylocalvariables statement reverses the action of the UseCallersLocalVariables statement, switching back to the current procedure's normal local variables.
- v( -- The v( function returns the vertical position of a point (see point(, Graphic Coordinates).
- val( -- The val( function converts text into a number.
- Variable Height Records -- custom reports with different heights for each record.
- View Menu -- accessing and creating the data sheet, forms and procedures.
- View-As-List Forms -- displaying a custom data layout as a continuous sheet.
- webformitem -- The webformitem statement sets a field or variable with the value of a POST web form item (used when processing a web query with Panorama Server).
- webformmerge -- The webformmerge statement fills in an HTML form with database values (fields and variables).
- webmerge -- The webmerge statement merges an external HTML template file with fields and variables from the current record.
- webselect -- The webselect statement select data on web server using a formula.
- week1st( -- The week1st( function computes the first day of a week (Sunday).
- Window Menu -- controls the back to front arrangement of windows, it allows you to hide, show, or customize the toolbar (see Toolbar, and allows you minimize or zoom the window to full screen.
- windowglobalvalue( -- The windowglobalvalue( function accesses a windowglobal variable from other windows.
- windowinfo( -- The windowinfo( function returns information about an open window: its name, type, database, location, etc.
- windowmenubar -- The windowmenubar statement creates a custom menu bar or context menu for the current window (see Custom Menus).
- word( -- The word( function converts a number into a single word (2 bytes) of binary data (see Binary Data).
- wordarray( -- The wordarray( function extracts a value from an array of 16 bit words (see Binary Data).
- yesno -- The yesno statement displays a modal alert window with a message and two buttons: Yes and No.
- zoomwindow -- The zoomwindow statement moves (*"zooms"*) the current window to a new position and size.
- zoomwindowrectangle -- The zoomwindowrectangle statement modifies the size, location, and options of the current window.

See Also

- New -- List of new features that did not exist in Panorama 6.
- Release Notes -- detailed list of what's new in every Panorama X version.