Panorama
 
Index
  • Welcome to Panorama X! -- Table of Contents
  • 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.
  • 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.
  • 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.
  • Tutorial -- basic step-by-step lessons for learning Panorama X, including data entry, searching, sorting, analyzing, creating forms and basic programming.
  • - -- The - operator subtracts the numeric value on the right from the numeric value on the left.
  • ?( -- The ?( function allows a formula to make a true/false, yes/no decision.
  • * -- The * operator multiplies the numeric value on the left by the numeric value on the right.
  • / -- The / operator divides one numeric value by another.
  • \ -- The \ operator performs integer division.
  • ^ -- The ^ operator raises a number to a power.
  • + -- 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.

  • 208: Tab Panels -- Tab Panels provide a way to cram a lot of user interface into a limited area. In this example I'll use a tab panel to combine four forms into one, with control buttons to switch between different panels.

  • 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.

  • 999: Further Reading -- Suggestions for Panorama topics beyond the tutorial.
  • abs( -- The abs( function calculates the absolute value of a number.
  • 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.
  • addmultiplerecords -- The addmultiplerecords statement Adds multiple records.
  • addrecord -- The addrecord statement adds a new record at the end of the current database.
  • Adjusting Object Spacing -- adjust the spacing between multiple selected objects so that the same amount of space is in between each pair of objects.
  • after( -- The after( function extracts all text after a specified tag (sequence of characters).
  • age( -- The age( function calculates a person's current age (in years) from their birthdate.
  • aggregate( -- The aggregate( function calculates an aggregate (sum (total), count, minimum, maximum or average) by scanning specified records in a database.
  • alert -- The alert statement displays a modal alert window with a message and one or more buttons.
  • alertmodal -- The alertmodal statement displays a modal alert sheet (not attached to any window) with a message and one or more buttons.
  • Alerts -- displaying a variety of standard modal alerts.
  • 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.
  • alertyesno -- The alertyesno statement displays a modal alert window with a message and two buttons: Yes and No.
  • Aligning Objects -- so that two or more object edges are made even with each other.
  • alphabeticnumber( -- The alphabeticnumber( function converts a number into letters: A, B, C, etc.
  • and -- The and operator returns true if both operands are true.
  • 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.
  • Arithmetic Formulas -- mathematical operators and functions.
  • asc( -- The asc( function converts the first character of a text string into a number from 0 to 65535 based on Unicode encoding.
  • assignfieldwithsideeffects -- The assignfieldwithsideeffects statement performs an assignment, much like an equals sign or the assign statement. However, the assignfieldwithsideeffects statement only performs the assignment to a database field, not to any variable. After performing the assignment, it will run any side effects associated with the field, including formulas and code associated with the field.
  • 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 Mailing Label Construction -- creates a mailing label.
  • Automatic Report Construction -- creates a tabular report with columns of data.
  • automaticfieldchoices -- The automaticfieldchoices statement updates the current field's Choice list with actual data in the database.
  • average -- The average statement calculates averages and sub-averages for the selected records in the current field.
  • beep -- The beep statement makes the computer speaker beep once.
  • before( -- The before( function extracts all text before a specified tag (sequence of characters). If the tag doesn't exist the function returns "".
  • beginswith -- The beginswith operator returns true if the value on the left starts with the value on the right, false if it doesn't.
  • between( -- The between( function checks to see if a value is between two other values.
  • binarytotext( -- The binarytotext( function converts binary data into text, optionally using a specified encoding.
  • booleanvalue( -- The booleanvalue( function converts a numeric or text value to Boolean (true/false).
  • call -- The call statement allows a procedure to call a separate procedure within the current database as a subroutine.
  • cardexpirevalidate( -- The cardexpirevalidate( function checks the validity of a credit card expiration date.
  • cardtype( -- The cardtype( function returns the credit card type (American Express, Visa, MasterCard or Discover).
  • 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.
  • case -- The case statement allows multiple decisions to be chained together (also see the elseif statement).
  • catch -- The catch statement works with try and endcatch to trap errors in a sequence of statements.
  • catcherror( -- The catcherror( function evaluates an expression, but suppresses any error generated by that expression.
  • ceil( -- The ceil( function converts a number to an integer, truncating toward positive infinity.
  • change -- The change statement replaces text with new text in the current field (selected records only).
  • 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).
  • Characters and Unicode Values -- working with individual characters of text.
  • chararray( -- The chararray( function extracts a single character from text.
  • checkemptyselection -- The checkemptyselection statement notifies the user if a selection failed, and reverts to the previous selection.
  • chevronquoted( -- The chevronquoted( function adds « » quotes to text if necessary to make it a legal Panorama token.
  • Choices -- fixed list of choices.
  • chr( -- The chr( function converts a number into a single character of text, based on Unicode encoding.
  • city( -- The city( function looks up the name of a city associated with a US zip code.
  • 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.
  • clear -- The clear statement deletes the contents of the current cell without touching the clipboard.
  • clearcell -- The clearcell statement deletes the contents of the current field.
  • clearrecord -- The clearrecord statement deletes the currently selected record.
  • clipboard( -- The clipboard( function returns whatever text is currently on the computer's clipboard.
  • Cocoa Objects -- discussion of how objects are implemented in Panorama X compared to earlier versions
  • Code -- basics of programming code.
  • collapse -- The collapse statement hides the detail records associated with the currently active summary record.
  • collapsetosummary -- The collapsetosummary statement collapses to the next higher summary level.
  • commalist( -- The commalist( function converts a text array (see Text Arrays) into an English list, with items separated by a comma and a space, except for the last two items which are separated by the word and and spaces.
  • commastr( -- The commastr( function converts a number to text, with a comma every third digit. The number is converted as an integer, with no decimal point.
  • commatocr( -- The commatocr( function converts a comma delimited array into a carriage return delimited array.
  • Comments -- A comment is a note inside a program.
  • completedatestr( -- The completedatestr( function converts a date to text, spelling out the month and including the day of the week.
  • concatenate( -- The concatenate( function concatenates two text strings (same as the + operator).
  • Confirmation Alerts -- Configuring alerts to confirm sensitive operations (deletions, etc.).
  • connect( -- The connect( function appends a prefix and suffix together with a connector in between.
  • constant( -- The constant( function converts an expression into a constant value (that can be plugged into a new formula).
  • Constants -- values embedded into a formula.
  • constantvalue( -- The constantvalue( function converts a field or variable into an equivalent constant value.
  • Construct Menu -- used to automatically construct complex form applications, including calendars, lists, mailing labels, and more.
  • Construct Multiple Fields -- using a template to quickly add multiple fields to a database.
  • contains -- The contains operator returns true if the value on the left contains the value on the right, false if it doesn't.
  • containsword -- The containsword operator returns true if the text contains a specified word, false if it doesn't.
  • Control Flow -- making decisions about what code should be executed in response to changing conditions.
  • copy -- The copy statement copies the contents of the current field onto the clipboard.
  • copycell -- The copycell statement copies the contents of the current field onto the clipboard, replacing anything previously on the clipboard.
  • copyrecord -- The copyrecord statement copies the contents of the current record onto the clipboard.
  • cos( -- The cos( function calculates the cosine of an angle.
  • count( -- The count( function counts all non-empty instances of a line item field in the current record.
  • count -- The count statement counts all non-empty data cells for the current field.
  • county( -- The county( function returns the name of the county associated with a US zip code.
  • cr( -- The cr( function generates a carriage return.
  • Creating a New Database -- creating a new database.
  • 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.
  • crlf( -- The crlf( function generates a carriage return line feed.
  • croptext( -- The croptext( function crops text to a specified length. If the text was already shorter than the specified length, it is left unchanged. If it is longer, the text is cut off and an ellipsis is added on the end.
  • crtolf( -- The crtolf( function converts carriage returns into linefeeds.
  • crtovtab( -- The crtovtab( function converts carrige returns (ASCII 0x0D) into vertical tabs (ASCII 0x0B).
  • csvexportlinevisiblecells( -- The csvexportlinevisiblecells( function generates a comma delimited line of data containing all the visible (non hidden) fields in the current record.
  • 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 Tab Order -- Customizing the tab order in a data sheet or form.
  • custompluralpattern( -- The custompluralpattern( function converts a number to text using a pattern, making customizable adjustments for pluralization.
  • cut -- The cut statement deletes the contents of the current field, copying it onto the clipboard.
  • cutcell -- The cutcell statement delete the contents of the current cell and places the deleted data on the clipboard.
  • cutline -- The cutline statement copies the current record to the clipboard and deletes it.
  • cutrecord -- The cutrecord statement copies the current record to the clipboard and deletes it.
  • Data Button Object -- is used to create checkboxes and radio buttons.
  • Data Input Validation -- validation of data entry (checking for duplicates, etc.)
  • Data Sheet -- a window that displays the database information in rows and columns.
  • Data Types -- different types of data that can be stored in Panorama, including text, numbers and dates.
  • Database Integrity Checks -- checking database integrity when opening and saving.
  • Database is Damaged Alert -- how to fix the "database is damaged" alert when opening a 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.
  • databaseexportcsv -- The databaseexportcsv statement exports selected records in the current database in CSV format (comma separated) to a text file.
  • databaseexporttsv -- The databaseexporttsv statement exports selected records in the current database in TSV format (tab separated) to a text file.
  • databaseexportusingformula -- The databaseexportusingformula statement exports selected records in the current database to a text file, using a formula.
  • datatype( -- The datatype( function determines what kind of data is in a field or variable: text, number, etc.
  • datavalue( -- The datavalue( function returns the value of a field or variable: text, number, etc.
  • Date Arithmetic Formulas -- performing calculations on dates, and converting between dates and text.
  • Date Patterns -- control how dates are displayed or converted to text.
  • Date Search Options -- searching dates within a database.
  • date( -- The date( function converts text into a number representing a date.
  • datepattern( -- The datepattern( function converts a number representing a date into text. The function uses a pattern to control how the date is formatted (see Date Patterns).
  • Dates -- working with dates.
  • datestr( -- The datestr( function converts a date to text using format mm/dd/yy.
  • datevalue( -- The datevalue( function converts integer values for year, month and day into a number representing a date.
  • dayofmonth( -- The dayofmonth( function computes the day within a month.
  • dayofquarter( -- The dayofquarter( function computes the day within a quarter.
  • dayofweek( -- The dayofweek( function computes the day of the week, with Sunday being 0, Monday 1, etc.
  • dayofyear( -- The dayofyear( function computes the day within a quarter.
  • daystr( -- The daystr( function converts a date to the day of the week (for example Sunday).
  • dayvalue( -- The dayvalue( function extracts the day from a date as a numeric value.
  • defaultcase -- The defaultcase statement works together with the case statement to specify statements that will be executed if none of the case statements are true.
  • defaulttext( -- The defaulttext( function returns a text value, or returns a default value if the text value is empty ("").
  • degree -- The degree statement tells Panorama that all angles input to and calculated in trigonometric functions are in degrees rather than radians.
  • degrees2radians( -- The degrees2radians( function converts an angle from degrees to radians.
  • degreestoradians( -- The degreestoradians( function converts an angle from degrees into radians
  • deleteabove -- The deleteabove statement copies the current record to the clipboard and deletes it, then moves to the record above.
  • deleteall -- The deleteall statement removes all records, leaving a single blank record.
  • deletefield -- The deletefield statement deletes the current field from the database.
  • deleterecord -- The deleterecord statement deletes the currently selected record.
  • Deleting All Summary Records -- when finished with summary records, they must be deleted.
  • Deleting Fields -- deleting fields from the database.
  • Deleting Raw Data Records -- converting summaries into data.
  • Diagnosing a Formula embedded in a Form Object -- diagnosing problems with formulas embedded in form objects.
  • Disable Editing of Individual Fields -- disable editing of inidividual database fields in the data sheet and/or forms.
  • displaydata -- The displaydata statement will display data in a large dialog with a scroll bar.
  • divzero( -- The divzero( function divides two numbers, returns zero if denominator is zero.
  • divzeroerror( -- The divzeroerror( function divides two numbers, returns an error if the denominator is zero.
  • dollarsandcents( -- The dollarsandcents( function converts a number to text formatted as dollars and cents.
  • doubleclick( -- The doubleclick( function returns true if the mouse has been double clicked.
  • downrecord -- The downrecord statement moves the cursor down one visible record.
  • Duplicate Removal with Unpropagate -- using the unpropate command to remove duplicate data.
  • duplicaterecord -- The duplicaterecord statement duplicates the current record.
  • 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.
  • else -- The else statement works together with the if statement to specify statements that will be executed for both the true and false cases.
  • 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.
  • emptydatabase( -- The emptydatabase( function returns true if the current database is completely blank.
  • 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.
  • emptyline( -- The emptyline( function returns true if the entire current record (all fields) is blank, otherwise it is false.
  • emptylineitemnumber( -- The emptylineitemnumber( function returns the numeric suffix of the first matching line item field that is empty (if any).
  • endcase -- The endcase statement marks the end of statements controlled by a previoius case statement.
  • endcatch -- The endcatch statement works with try and catch to trap errors in a sequence of statements.
  • endif -- The endif statement marks the end of statements controlled by a previoius if statement.
  • 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.
  • endshowlater -- The endshowlater statement resumes the immediate display of text and graphics after it has been deferred with the showlater 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 Handling -- Techniques for trapping runtime errors instead of letting them abort the program.
  • error( -- The error( function returns an error with the specified message.
  • errortext( -- The errortext( function evaluates an expression, but returns only the error message generated (if any).
  • eurodatestr( -- The eurodatestr( function converts a date to text in European format.
  • expand -- The expand statement reveals the next level of collapsed detail records associated with the currently active summary record.
  • expandall -- The expandall statement reveals all collapsed detail records associated with the currently active summary record.
  • Expanding and Collapsing the Summary Outline -- to see more or less detail.
  • 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.
  • exportline( -- The exportline( function generates a tab delimited line of data containing all the fields in the current record.
  • 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.
  • exportlinevisiblecells( -- The exportlinevisiblecells( function generates a tab delimited line of data containing all the visible (non hidden) fields in the current record.
  • extrapages( -- The extrapages( function controls the printing of extra data tile pages.
  • false( -- The false( function returns false.
  • 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 Panel -- examining and modifying field attributes.
  • Field Properties -- available field attributes.
  • Field Width -- adjusting the width of a field in the data sheet.
  • field -- The field statement tells Panorama to move to the specified field for the current record.
  • 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).
  • Fields -- introduction to database fields.
  • File Menu -- create, locate, open, close and save databases, import and export text, printing.
  • fileglobal -- The fileglobal statement creates one or more fileglobal variables.
  • fill -- The fill statement fills every visible cell in the active field with the specified value.
  • fillall -- The fillall statement modifies the operation of the following fill statement so that all records are modified, not just visible records.
  • Financial Calculations -- financial calculations based on interest rates.
  • Find & Open -- searching for a database on the hard drive and opening it.
  • 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.
  • find -- The find statement locates the first visible record in the active database for which the specified condition is true.
  • findabove -- The findabove statement locates the next previous record (above the current record) in the active database for which the specified condition is true.
  • findbackwards -- The findbackwards statement locates the last visible record in the active database for which the specified condition is true.
  • findbelow -- The findbelow statement locates the next visible record (below the current record) in the active database for which the specified condition is true.
  • findnth -- The findnth statement finds the nth (2nd, 3rd, 4th, etc.) record that matches a true-false test.
  • findselect -- The findselect statement opens the standard Find/Select dialog.
  • firstcolumn -- The firstcolumn statement moves to the first column in the data sheet (leftmost column).
  • firstdayofweek( -- The firstdayofweek( function returns the user's preference for first day of the week.
  • firstline( -- The firstline( function extracts the first line from the text.
  • firstrecord -- The firstrecord statement makes the first visible (selected) record in the database the active record.
  • firstword( -- The firstword( function extracts the first word from the text.
  • fix( -- The fix( function converts a number to an integer, truncating toward zero.
  • Fixed Image Object -- is used for fixed images (images that never change).
  • fixedwidth( -- The fixedwidth( function makes the text a fixed width, padding with spaces if necessary.
  • fixedwidthright( -- The fixedwidthright( function makes the text a fixed width, padding on the left with spaces if necessary.
  • float( -- The float( function converts a fixed point number to a floating point number.
  • Fonts -- setting the font and text size of form text objects.
  • for -- The for statement is used at the beginning of a loop that loops a fixed number of times.
  • Form Object Appearance -- changing the color, fill, stroke, opacity and drop shadow attributes of selected objects.
  • Form Object Code -- associating programming code with an object
  • Form Properties -- specify the name of the form, and various form options.
  • formatphone( -- The formatphone( function formats a US phone number using the standard *(aaa) nnn-nnnn* format.
  • Forms -- display data with a customizable graphic layout.
  • Formula Search -- searching with a formula.
  • Formula Workshop -- formula workshop wizard for testing and experimenting with formulas.
  • formulafill -- The formulafill statement fills every visible cell in the active field with the result of the specified formula.
  • formulafillallfields -- The formulafillallfields statement fills every visible cell in all fields with the result of the specified formula.
  • formulamerge -- The formulamerge statement merges data into a template.
  • Formulas -- basics of formulas: components and grammar.
  • Functions -- index of all functions available for use in Panorama formulas.
  • fv( -- The fv( function (short for future value) calculates the future value of an investment.
  • Generating Summaries Manually -- manually generating summary records in 3 steps (Group, Calculate, Outline).
  • getautonumber( -- The getautonumber( function returns the automatically generated number for the next record that will be added to the database.
  • getautonumber -- The getautonumber statement returns the automatically generated number for the next record that will be added to the database.
  • gettext -- The gettext statement will display a dialog with a text entry area.
  • gettextdialog -- The gettextdialog statement displays a configurable modal dialog that asks the user to enter an item of text.
  • global -- The global statement creates one or more global variables.
  • goto -- The goto statement allows a procedure to arbitrarily jump from one spot to another within the procedure.
  • Graphics Mode -- is used to edit the graphic design of a form.
  • groupdown -- The groupdown statement divides the database into groups, with a summary record at the end of each group. The groups are arranged in descending order (high to low).
  • Grouping Objects -- allows you to manipulate multiple objects as if they were a single object.
  • groupseq( -- The groupseq( function returns the sequence number within a summary level.
  • 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).
  • Handling Empty Selections in Code -- dealing with an empty selection data set.
  • Help Menu -- contains items that will help you learn and use Panorama.
  • 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.
  • hidefieldsbetween -- The hidefieldsbetween statement shows all fields except those in between specified numbers.
  • hidelineitemfields -- The hidelineitemfields statement hides all line item fields.
  • hidethesefields -- The hidethesefields statement hides specific fields in the data sheet, making all others visible.
  • Hiding and Showing Fields -- temporarily hiding fields in the data sheet.
  • homesubfolder( -- The homesubfolder( function returns the folder id of a subfolder of the current user's home folder.
  • HTML Export -- custom exports into an HTML file.
  • if -- The if statement decides what code to execute next.
  • ifselect -- The ifselect statement combines the select and if info("empty") operations into a single statement.
  • Image Display Colors and Gradients -- displaying pure colors and gradients
  • Image Display Data Buttons -- checkboxes and radio buttons created from custom images.
  • Image Display Object -- is used for dynamic images (images that change depending on the data).
  • Image Display Push Buttons -- push buttons created from custom images.
  • Import Database -- importing another database into the current database.
  • import( -- The import( function returns a line or element of imported data. This function works in conjunction with repetitive operations like importtext, arrayfilter(, characterfilter( etc.
  • importcell( -- The importcell( function returns one cell of imported data.
  • importdatabase -- The importdatabase statement imports data from another database into the current database.
  • importtext -- The importtext statement imports text into an existing database.
  • increment -- The increment statement increments a field or variable.
  • Index -- index of all help topics.
  • infinity( -- The infinity( function returns infinity.
  • info("angleunits") -- The info("angleunits") function returns the current angular measurement units.
  • info("bof") -- The info("bof") function returns true if the active record is currently on the first visible (selected) record.
  • info("collapsible") -- The info("collapsible") function checks to see if the current record is collapsible.
  • info("countrycode") -- The info("countrycode") function returns the country code for the current location.
  • info("csvseparator") -- The info("csvseparator") function returns the current CSV field separator character (comma or semicolon).
  • info("currencycode") -- The info("currencycode") function returns the currency code for the current location.
  • info("currencysymbol") -- The info("currencysymbol") function returns the currency symbol for the current location.
  • info("datatype") -- The info("datatype") function returns the data type of the current field.
  • info("decimalseparator") -- The info("decimalseparator") function returns the current decimal separator character (period or comma).
  • info("defaultdatepattern") -- The info("defaultdatepattern") function returns the default date pattern used for displaying dates.
  • info("dialogtrigger") -- The info("dialogtrigger") function returns the name of the last button pressed in a standard alert or dialog.
  • info("empty") -- The info("empty") function returns true or false depending on the result of the last select operation. If no records were selected the function will return true, otherwise it will return false.
  • info("eof") -- The info("eof") function returns true if the active record is currently the last visible (selected) record.
  • info("error") -- The info("error") function returns the most recent error message.
  • info("expandable") -- The info("expandable") function checks to see if the current record is expandable.
  • info("fieldname") -- The info("fieldname") function returns the name of the current field.
  • info("fieldnumber") -- The info("fieldnumber") function returns the number of the current field (starting from 1).
  • info("found") -- The info("found") function returns true or false depending on whether the last find or next statement was successful.
  • info("languagecode") -- The info("languagecode") function returns the language code for the current location.
  • info("measurementsystem") -- The info("measurementsystem") function returns the measurement system for the current location.
  • info("modifiers") -- The info("modifiers") function returns the status of the modifier keys.
  • 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("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("pagesetuporientation") -- The info("pagesetuporientation") function returns the printing page orientation for the current database.
  • info("pagesetuppaperheight") -- The info("pagesetuppaperheight") function returns the printing paper height for the current database.
  • info("pagesetuppaperwidth") -- The info("pagesetuppaperwidth") function returns the printing paper width for the current database.
  • info("pagesetupscale") -- The info("pagesetupscale") function returns the printing scale factor for the current database.
  • info("printer") -- The info("printer") function returns the current default printer.
  • info("printers") -- The info("printers") function returns a list of all available printers.
  • info("printsequence") -- The info("printsequence") function returns the record sequence number of the record being printed.
  • info("records") -- The info("records") function returns the total number of records in the current database.
  • info("searchformula") -- The info("searchformula") function returns the most recent search formula used in a find statement, if any.
  • info("selectduplicatesortwarning") -- The info("selectduplicatesortwarning") function works with the selectduplicatesnowarning statement to ascertain whether or not the database was sorted correctly when last search for duplicates was performed.
  • info("selected") -- The info("selected") function returns the number of selected records in the current database.
  • info("showlater") -- The info("showlater") function determines whether or not Panorama is currently deferring display.
  • info("stopped") -- The info("stopped") function returns true or false depending on the whether the last uprecord, downrecord, left or right statement succeeded or failed.
  • info("summary") -- The info("summary") function returns the summary level of the current record, from 0 (data record) to 7.
  • info("thousandsseparator") -- The info("thousandsseparator") function returns the current thousands separator character (period or comma).
  • info("visible") -- The info("visible") function returns true if the current record is visible and false if it is invisible.
  • info( -- The info( function returns miscellaneous bits of information about the system, the current database, the current window, etc.
  • insertbelow -- The insertbelow statement inserts a new record below the current record.
  • insertbelowcarriagereturn -- The insertbelowcarriagereturn statement inserts a new record below the current record and moves to the first column.
  • insertfield -- The insertfield statement inserts a new field into the database in front of the current field.
  • insertrecord -- The insertrecord statement inserts a new record above the current record.
  • int( -- The int( function converts a number to an integer, truncating toward negative infinity.
  • Join Databases -- joining another database into the current database (relational join).
  • lastcolumn -- The lastcolumn statement move to the last column in the data sheet (rightmost column).
  • lastline( -- The lastline( function extracts the last line from the text.
  • lastrecord -- The lastrecord statement makes the last visible (selected) record in the database the active record.
  • lastword( -- The lastword( function extracts the last word from the text.
  • left -- The left statement makes the previous field active in the active window.
  • length( -- The length( function counts the number of characters in a text value (also called a string).
  • let -- The let statement creates a local variable and assigns a value to it.
  • letfileglobal -- The letfileglobal statement creates a fileglobal variable and assigns a value to it.
  • letglobal -- The letglobal statement creates a global variable and assigns a value to it.
  • letpermanent -- The letpermanent statement creates a permanent variable and assigns a value to it.
  • lf( -- The lf( function generates a line feed.
  • lftocr( -- The lftocr( function converts linefeeds into carriage returns.
  • limit( -- The limit( function checks to see if a value is between a minimum and maximum value. If it is, the value is returned unchanged. If it is below the minimum, the minimum value is returned. If it is above the maximum the maximum value is returned.
  • Limiting the Maximum Number of Data Sheet Columns -- adjusting the maximum number of columns displayed in data sheet windows.
  • Line Item Fields -- are used for repeating items within a record
  • Line Item Grid Constructor -- creates a grid of form elements for displaying and editing line item fields.
  • Line Object -- draws a line within a form.
  • linecount( -- The linecount( function counts the number of carriage return separated lines in the text.
  • lineitemarray( -- The lineitemarray( function converts the data in a set of line item fields into a text array (see Text Arrays).
  • linescontain( -- The linescontain( function checks to see if any line in a carriage return separated array matches the specified value.
  • linesnotcontain( -- The linesnotcontain( function is the reverse of the linescontain( function.
  • linesort( -- The linesort( function sorts lines of text in ascending order.
  • linestrip( -- The linestrip( function removes any blank lines from the text.
  • listchoices( -- The listchoices( function builds a text array containing a list of all the values stored in a specified field.
  • local -- The local statement creates one or more local variables.
  • log( -- The log( function computes the natural logarithm (base e ) of a value.
  • log10( -- The log10( function computes the common logarithm (base 10) of a value.
  • longdatestr( -- The longdatestr( function converts a date to text by spelling out the month.
  • longtimestr( -- The longtimestr( function converts a number to text in am/pm time format, including seconds.
  • loop -- The loop statement is used at the beginning of a loop.
  • loopindex -- The loopindex statement allows a procedure to determine how many times a loop has been repeated.
  • loopwhile -- The loopwhile statement is used at the beginning of a loop.
  • loremipsum( -- The loremipsum( function creates one or more paragraph blocks of "lorem ipsum" dummy text.
  • lower( -- The lower( function converts text to lower case.
  • 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.
  • maximum -- The maximum statement calculates the maximum and sub-maximums for the current field.
  • Memory Usage -- memory usage.
  • Menus -- overview of Panorama X menu bars.
  • Merging Adjacent Fields -- merging two fields into one.
  • message -- The message statement displays a modal alert window with a message.
  • mid( -- The mid( function extracts characters from the middle of the text.
  • min( -- The min( function compares a series of values and returns the smallest value.
  • minimum -- The minimum statement calculates the minimum and sub-minimums for the current field.
  • mixedupperword( -- The mixedupperword( function converts lower case words to Initial Caps, but leaves mixed case words alone.
  • mod -- The mod operator computes the remainder (modulo) after integer division.
  • money( -- The money( function converts a number to text, formatted as money.
  • month1st( -- The month1st( function computes the first day of a month.
  • monthlength( -- The monthlength( function computes the length (number of days) of a month.
  • monthmath( -- The monthmath( function takes a date and computes the date that is one or more months before or after the original date.
  • monthvalue( -- The monthvalue( function extracts the month from a date as a numeric value.
  • Morph All Fields Dialog -- morphing the contents of the entire database.
  • Morph Date Field Operations -- date morphing operations.
  • Morph Field Dialog -- morphing the contents of an entire field.
  • Morph Field Favorites -- saving and recalling favorite data morphing operations.
  • Morph Numeric Field Operations -- numeric data morphing operations.
  • Morph Text Field Operations -- text data morphing operations.
  • movefieldbefore -- The movefieldbefore statement moves the current field to a new position.
  • moverecorddown -- The moverecorddown statement moves the current record down one line.
  • moverecordup -- The moverecordup statement moves the current record up one line.
  • nan( -- The nan( function checks to see if a numeric value is invalid.
  • nanerror( -- The nanerror( function converts invalid numeric values into an error.
  • nanzero( -- The nanzero( function converts invalid numeric values into zero.
  • naturaldate( -- The naturaldate( function converts a number representing a date into text using "natural" formatting.
  • newdatabasewithtextfile -- The newdatabasewithtextfile statement creates a new database from a plain text file. The fields will be named A, B, C, etc.
  • 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.
  • nextvalue -- The nextvalue statement advances a variable or field to the next value in a list.
  • nop -- The nop statement does nothing (*n*o *op*eration).
  • noshow -- The noshow statement temporarily disables the output of text and graphics.
  • not( -- The not( function reverses a Boolean value
  • not -- The not operator reverses a boolean value.
  • notbetween( -- The notbetween( function checks to see if a value is not between two other values.
  • 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.
  • now( -- The now( function returns the current time (number of seconds since midnight).
  • nth( -- The nth( function converts a number into an ordinal.
  • nthline( -- The nthline( function extracts the nth line from the text.
  • nthword( -- The nthword( function extracts a word from the middle of the text.
  • Numbers -- Working with numeric values in a formula, and converting between numbers and text.
  • Numeric Data -- numeric data (fixed and floating point).
  • Numeric Patterns -- control how a number is displayed or converted to text.
  • Numeric Search Options -- searching numbers within a database.
  • numsandwich( -- The numsandwich( function is similar to the sandwich function, but for numbers. If the value is zero the result is zero, but if the value is not zero the result is the value plus the extra.
  • obfuscate( -- The obfuscate( function randomizes the letters and digits in text.
  • Object Inspector Panel -- is used to view and modify the attributes of selected objects in a form.
  • Object Library -- is used to create new objects in a form.
  • Object Names -- can be used to identify an object in a program.
  • Objects Menu -- used to select, modify and arrange graphics objects in a form.
  • obscuredigits( -- The obscuredigits( function obscures digits in a number (usually a credit card number) with Xs.
  • onespace( -- The onespace( function removes all leading & trailing spaces and any extra spaces between words, so that there is exactly one and only one space between each word.
  • 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.
  • Open Favorites -- quickly open commonly used databases.
  • Open Recent -- quickly re-open recently used databases.
  • Open View -- using the Open View window to quickly access any form, procedure or data sheet.
  • opendatabase -- The opendatabase statement opens a database file.
  • openform -- The openform statement opens a form in the current database in a new window.
  • opensheet -- The opensheet statement opens the data sheet window for the current database in a new window.
  • opentextfile -- The opentextfile statement imports data from a text file or a variable into the current database.
  • Operators -- index of all operators available for use in Panorama formulas.
  • optionclick( -- The optionclick( function returns true if the option key was held down the last time the mouse was clicked.
  • or -- The or operator returns true if either operand is true, or false if both are false.
  • outlinelevel -- The outlinelevel statement expands or collapses the entire database to show a specific level of data or summary level.
  • Oval Object -- draws an oval or circle within a form.
  • padzero( -- The padzero( function makes the text a fixed width, padding on the left with zeros if necessary.
  • pagesetup -- The pagesetup statement displays the page setup dialog.
  • Panorama Menu -- get and set information about Panorama itself, including the version number, licensing information, and memory usage.
  • paste -- The paste statement pastes the contents of the clipboard into the current field.
  • pastecell -- The pastecell statement pastes the contents of the clipboard into the current cell.
  • pasteline -- The pasteline statement inserts a new record containing the contents of the clipboard.
  • pasterecord -- The pasterecord statement inserts a new record containing the contents of the clipboard.
  • pattern( -- The pattern( function converts a number into text using a pattern.
  • permanent -- The permanent statement creates one or more permanent variables.
  • pi( -- The pi( function returns the value of pi .
  • places( -- The places( function converts a number to text with a specific number of places after the decimal point.
  • 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.
  • pmt( -- The pmt( function (short for payment) calculates the periodic payment required to pay off a loan.
  • Polygon Object -- draws a polygon within a form.
  • Popup Menu Button Object -- is used to create popup menus anywhere on a form.
  • Preventing Endless Loops -- setting up a timeout limit to prevent endless loops.
  • previousmatch -- The previousmatch statement locates the previous (closer to the top) visible record in the active database for which the condition specified in the most recent Find statement is true.
  • print -- The print statement prints the database.
  • 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.
  • printonerecord -- The printonerecord statement prints the the currently active record.
  • printpdf -- The printpdf statement prints the current database to a PDF file.
  • printpreview -- The printpreview statement previews what printing the current window will look like.
  • printpreviewonerecord -- The printpreviewonerecord statement previews what printing the current record will look like.
  • printtopdf -- The printtopdf statement prints the current database to a PDF file.
  • 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 Error Handling -- handling errors and exceptions that occur when a program is running.
  • Program Menu -- assists with running and debugging code, and with developing custom dialogs.
  • 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.
  • Programming -- basics of programming with Panorama X.
  • Propagate & Unpropagate -- propagating/unpropagating data within a column.
  • 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.
  • pv( -- The pv( function (short for present value) calculates the present value of an income or debit stream of payments.
  • quarter1st( -- The quarter1st( function computes the first day of a quarter.
  • quartervalue( -- The quartervalue( function extracts the quarter from a date as a numeric value.
  • quit -- The quit statement quits Panorama.
  • quoted( -- The quoted( function returns a quoted version of the supplied text.
  • Quotes -- text constants embedded into a formula
  • radian -- The radian statement tells Panorama that all angles in trigonometric functions should be calculated using radians rather than degrees.
  • radians2degrees( -- The radians2degrees( function converts an angle from radians to degrees.
  • radianstodegrees( -- The radianstodegrees( function converts an angle from radians to degrees.
  • randominteger( -- The randominteger( function generates a random integer between the starting and ending values.
  • randomletter( -- The randomletter( function returns a random letter.
  • 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.
  • rangecontains( -- The rangecontains( function checks to see if the text contains any characters in the specified range.
  • rangematch( -- The rangematch( function returns true (-1) if the text matches a specified range.
  • rangenotmatch( -- The rangenotmatch( function returns false (0) if the text matches a specified range.
  • Ranking Summaries -- ranking summary values
  • Rearranging Field Order -- rearranging the order of fields in the data sheet.
  • recalculatefield -- The recalculatefield statement recalculates all values in current field based on field's formula (selected records only).
  • Record Search Options -- searching via record attributes.
  • Records Menu -- add and remove database records.
  • Rectangle Object -- draws a rectangle or square within a form.
  • Refining a Selection -- selecting a subset or superset of a previous selection."
  • regulardate( -- The regulardate( function extracts a regular date (number of days from January 1, 4713 B.C.) from a superdate.
  • regulartime( -- The regulartime( function extracts a regular time (seconds since midnight) from a superdate.
  • removeallsummaries -- The removeallsummaries statement removes all summary records.
  • 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.
  • removeprefix( -- The removeprefix( function checks to see if a text item starts with a prefix. if it does, the prefix is removed.
  • removeselected -- The removeselected statement deletes all selected records from the database.
  • removesuffix( -- The removesuffix( function checks to see if a text item ends with a suffix. if it does, the suffix is removed.
  • removesummaries -- The removesummaries statement removes summary records from the current database.
  • removeunselected -- The removeunselected statement deletes all unselected records from the database.
  • rep( -- The rep( function assembles a text item by repeating a smaller text item over and over again.
  • repeatloopif -- The repeatloopif statement decides whether to continue with a loop or to start over again from the top.
  • replace( -- The replace( function replaces text with new text.
  • replacefirst( -- The replacefirst( function replaces the first occurence of some text with new text.
  • replacemultiple( -- The replacemultiple( function replaces multiple words and phrases in a text value.
  • replaceword( -- The replaceword( function replaces a word with a new word.
  • replacewordexact( -- The replacewordexact( function replaces a word with a new word.
  • Report Tile Object -- component for assembling a custom report.
  • Reports -- Panorama has a very flexible system for printing custom reports, labels and forms.
  • return -- The return statement ends a subroutine.
  • returnerror -- The returnerror statement passes an error back to the current subroutines calling procedure.
  • Reveal in Finder -- reveal the location of a database in the Finder.
  • reverseorder -- The reverseorder statement reverses the order of the records in the database.
  • right( -- The right( function extracts characters from the right edge of the text.
  • right -- The right statement moves the cursor to the next field in the active window.
  • rnd( -- The rnd( function generates a random number between 0 and 1.
  • round( -- The round( function rounds a number to a specified increment.
  • Rounded Rectangle Object -- draws a rectangle with round corners within a form.
  • Running Difference -- calculating a running difference down an entire database column.
  • Running Total -- calculating a running total down an entire database column.
  • runningdifference -- The runningdifference statement calculates the running difference for the current field.
  • runningtotal -- The runningtotal statement calculates the running total for the current field.
  • safeselect -- The safeselect statement makes visible only those records for the active database for which the specified condition is true. If no records match, the previous selection is retained.
  • safeselectwithin -- The safeselectwithin statement makes visible only those previously selected records in the active database for which the specified condition is true. If no records match, the previous selection is retained.
  • sandwich( -- The sandwich( function assembles a text item from three smaller items.
  • saveandclose -- The saveandclose statement saves and closes a database file.
  • Scientific Calculations -- performing scientific calculations (trigonometry, logarithms, etc.)
  • scientificnotation( -- The scientificnotation( function converts a number to text, formatted in scientific notation.
  • 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.
  • searchanycase( -- The searchanycase( function searches through an item of text looking for a character, word or phrase. If it finds a match (upper/lower case may be different) 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.
  • Searching -- searching a database to find or select information.
  • Select Duplicates Dialog -- opens the standard Select Duplicates dialog sheet.
  • select -- The select statement makes visible only those records for the active database for which the specified condition is true.
  • selectadditional -- The selectadditional statement adds unselected records to a previously selected group if they match the true-false test.
  • selectall -- The selectall statement makes every record in the database visible.
  • selectduplicates -- The selectduplicates statement selects records containing duplicate information in the database.
  • selectduplicatesnowarning -- The selectduplicatesnowarning statement selects records containing duplicate information in the database.
  • Selecting Form Objects -- so that they can be modified.
  • Selecting with the Context Menu -- searching for information related to the current cell.
  • selectreverse -- The selectreverse statement makes every visible record invisible, and every invisible record visible.
  • selectwithin -- The selectwithin statement uses a Boolean formula to exclude records from a previously selected group.
  • selectzipdistancetool -- The selectzipdistancetool statement selects records near the current record, based on zip codes.
  • seq( -- The seq( function returns sequential numbers (1, 2, 3, etc.).
  • sequence -- The sequence statement fills every visible cell in the current field with a numeric sequence.
  • setactivedatabase -- The setactivedatabase statement makes a database active (without changing the configuration of the windows).
  • setautonumber -- The setautonumber statement changes the automatically generated number for the next record that will be added to database. This allows you to generate numbers out of sequence, or to start the sequence at a specific value.
  • setreportcolumns -- The setreportcolumns statement allows a procedure to control the number of columns of a report, and the direction (across or down).
  • shiftclick( -- The shiftclick( function returns true if the shift key was held down the last time the mouse was clicked.
  • Shifting Data Left & Right -- sliding data left and right.
  • shortcall -- The shortcall statement allows a procedure to call a sequence of statements within the current procedure as a "mini-subroutine".
  • 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.
  • showfieldsbetween -- The showfieldsbetween statement hides all fields except those in between specified numbers.
  • showlater -- The showlater statement defers the display of text and graphics until the procedure is finished.
  • 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.
  • showthesefields -- The showthesefields statement makes specific fields in the data sheet visible, hiding all others.
  • showvariables -- The showvariables statement forces Panorama to update the display of one or more variables on every form in the active database.
  • sin( -- The sin( function calculates the sine of an angle.
  • size -- The size statement changes the data sheet text size.
  • sizeof( -- The sizeof( function calculates the amount of memory used by a field or a variable.
  • slidedata -- The slidedata statement slides the columns at and to the right of the current column.
  • Smart Dates -- keyboard entry of dates.
  • Smart Resize -- adjusts the sizes and locations of the other selected objects to match the change of one object.
  • snip( -- The snip( function removes (snips!) one or more characters from the middle of an item of text.
  • sortdown -- The sortdown statement sorts the database by the current field. The database is sorted in descending order (high to low).
  • sortdownwithin -- The sortdownwithin statement sorts the database by the current field, leaving any previous sorts intact. The database is sorted in descending order (high to low).
  • Sorting Data -- sorting data into a specific order.
  • sortup -- The sortup statement sorts the database by the current field. The database is sorted in ascending order (low to high).
  • sortupwithin -- The sortupwithin statement sorts the database by the current field, leaving any previous sorts intact. The database is sorted in ascending order (low to high).
  • soundslike -- The soundslike operator compares two words to see if they "sound like" each other.
  • Source Menu -- used to assist in editing program code.
  • Splitting a Field -- splitting a field into two fields.
  • sqr( -- The sqr( function calculates the square root of a value.
  • Star Object -- draws a star within a form.
  • startdatabasechange -- The startdatabasechange statement adds undo support to a procedure.
  • state( -- The state( function returns the name of the state associated with a US zip code.
  • statelookup( -- The statelookup( function converts a two letter abbreviation for a US state into the full state name.
  • Statements -- index of all statements available for use in Panorama procedures.
  • statename( -- The statename( function converts a two letter abbreviation for a US state into the full state name.
  • Stepper Object -- is used to create numeric steppers for use with Text Editor objects.
  • stop -- The stop statement stops all running procedures immediately.
  • stoploopif -- The stoploopif statement decides whether to continue with a loop or to exit the loop immediately.
  • str( -- The str( function converts a number into text, with no formatting.
  • straightquotes( -- The straightquotes( function converts any "smart quotes" in the text into straight quotes.
  • stringreverse( -- The stringreverse( function reverses the order of a string of text characters.
  • stringreverse -- The stringreverse statement reverses the characters in a string of text. The original text is replaced in situ.
  • strip( -- The strip( function strips off leading and trailing blanks and other whitespace (carriage returns, tabs, etc.)
  • stripaccents( -- The stripaccents( function removes accents from any characters in the text.
  • stripchar( -- The stripchar( function extracts characters you don't want from a text item.
  • stripdiacriticals( -- The stripdiacriticals( function strips diacritical marks from text.
  • stripprintable( -- The stripprintable( function strips non-printable characters from text.
  • striptoalpha( -- The striptoalpha( function removes everything but alphabetic letters from a text item.
  • striptonum( -- The striptonum( function removes everything but numeric digits from a text item.
  • 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 Dialog -- is a one stop dialog for creating and filling in summary records based on pre-selected criteria.
  • Summarize & Analyze Favorites -- saving and recalling favorite summaries.
  • Summary Records -- are temporary records used for calculating totals, subtotals, and other summary information.
  • Summary Workshop -- tool for quickly summarizing, analyzing and charting large amounts of data.
  • superalert -- The superalert statement will display a custom alert.
  • superdate( -- The superdate( function converts a regular date and a regular time into a superdate.
  • superdatepattern( -- The superdatepattern( function converts a number containing a superdate to text, allowing you to specify the patterns for both the date and the time conversion to text.
  • SuperDates -- date and time combined into a single value.
  • superdatesecondsstr( -- The superdatesecondsstr( function converts a number containing a superdate to text, including the seconds.
  • superdatestr( -- The superdatestr( function converts a number containing a superdate (date + time) to text.
  • superdateunixtime( -- The superdateunixtime( function converts a Panorama superdate into a 13 digit UNIX epoch date/time (including milliseconds).
  • supergettext -- The supergettext statement will display a dialog with a text entry area.
  • supernow( -- The supernow( function returns the number representing the current date and time as a superdate.
  • Suppressing Display -- temporarily disabling display of changes in a program (to reduce "flickering" and increase performance).
  • 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.
  • tab( -- The tab( function generates a tab.
  • tan( -- The tan( function calculates the tangent of an angle.
  • 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 Export Wizard -- custom exports into a text or HTML file.
  • Text Export -- exporting a database into a text or HTML file.
  • Text Formulas -- manipulating text with a formula (concatenation, extraction, rearranging, etc.)
  • Text Funnels -- Text funnels strip off the beginning and/or end of a text string based on your specifications.
  • Text Import -- importing text into an existing database.
  • Text Label Object -- displays a short, fixed, text item within a form.
  • Text Object Background Color/Gradient -- text object background colors and gradients.
  • Text Search Options -- searching text within a database.
  • textafter( -- The textafter( function extracts the text after the tag.
  • textbefore( -- The textbefore( function extracts the text before the tag.
  • texttimedifference( -- The texttimedifference( function allows time math to be performed on text values.
  • texttimeinterval( -- The texttimeinterval( function allows time math to be performed on text values.
  • texttobinary( -- The texttobinary( function converts text into binary data, optionally using a specified encoding.
  • throwerror -- The throwerror statement causes an immediate error.
  • Tiles In Action -- basic rules for using tiles to print custom reports.
  • Time Arithmetic Formulas -- performing calculations on times, and converting between times and text.
  • time( -- The time( function converts text into a number representing a time.
  • time24( -- The time24( function takes a time and makes sure it falls within a 24 hour period.
  • timedifference( -- The timedifference( function calculates the difference between two times. It works correctly even if the interval between the two times crosses over midnight.
  • timeinterval( -- The timeinterval( function calculates the time interval between two times. It works correctly even if the interval between the two times crosses over midnight.
  • timepattern( -- The timepattern( function converts a number representing a time into text. The function uses a pattern to control how the time is formatted.
  • timerexists( -- The timerexists( function checks to see whether a timer exists.
  • 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).
  • timestr( -- The timestr( function converts a number to text in am/pm time format.
  • titlecase( -- The titlecase( function capitalizes first character of each word, but not articles, prepositions, and conjunctions under 5 characters (unless they are the first or last word in the text).
  • today( -- The today( function returns a number corresponding to today's date.
  • Toolbars -- using and customizing window toolbars.
  • total -- The total statement calculates totals and subtotals for the current field.
  • Transforming Data -- using program code to modify data in bulk.
  • trim( -- The trim( function removes characters from the right edge of the text.
  • trimleft( -- The trimleft( function removes one or more characters from the left edge of the text.
  • trimstart( -- The trimstart( function removes one or more characters from the start of the text.
  • true( -- The true( function returns true.
  • True/False Formulas -- logical boolean calculations.
  • try -- The try statement works with catch and endcatch to trap errors in a sequence of statements.
  • tsvtocsv( -- The tsvtocsv( function converts tab separated text into comma separated text.
  • tsvtojson( -- The tsvtojson( function converts tab separated text into JSON formatted text.
  • undefinefileglobal -- The undefinefileglobal statement destroys one or more fileglobal variables.
  • undefineglobal -- The undefineglobal statement destroys one or more global variables.
  • Under Construction -- Nothing to see here, move along.
  • Undo -- using the Undo command to reverse one or more recent actions.
  • uniqueid( -- The uniqueid( function generates ID codes with a text root and a numeric suffix (for example `Jeff261`).
  • unixtimesuperdate( -- The unixtimesuperdate( function converts a 13 digit UNIX epoch date/time (including milliseconds) into a Panorama superdate.
  • unpermanent -- The unpermanent statement converts one or more permanent variables into regular fileglobal variables. The variables will no longer be saved as part of the database.
  • 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.
  • until -- The until statement is used at the end of a loop, and can control how many times the loop is executed.
  • upper( -- The upper( function converts text to UPPER CASE (all caps).
  • upperword( -- The upperword( function converts text to Initial Caps.
  • uprecord -- The uprecord statement moves the cursor up one visible record.
  • Using Fields in a Formula -- accessing database fields within a formula.
  • val( -- The val( function converts text into a number.
  • validnumber( -- The validnumber( function checks to see if a numeric value is valid.
  • Values -- the raw material that formulas work with -- numbers and text.
  • Variable Height Records -- custom reports with different heights for each record.
  • Variables -- storing and retrieving individual items of data, not part of a database.
  • View Menu -- accessing and creating the data sheet, forms and procedures.
  • View Organizer -- rearranging, copying and deleting views.
  • View-As-List Forms -- displaying a custom data layout as a continuous sheet.
  • vtab( -- The vtab( function generates a vertical tab.
  • vtabtocr( -- The vtabtocr( function converts vertical tabs (ASCII 0x0B) into carrige returns (ASCII 0x0D).
  • week1st( -- The week1st( function computes the first day of a week (Sunday).
  • weekvalue( -- The weekvalue( function extracts the week from a date as a numeric value.
  • while -- The while statement is used at the end of a loop, and can control how many times the loop is executed.
  • 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.
  • window -- The window statement brings a Panorama window to the front. It can also open a "secret" invisible window.
  • wordcount( -- The wordcount( function returns the number of words in the text.
  • xor -- The xor operator returns true if one of the two parameters is true, false if neither or both are true.
  • year1st( -- The year1st( function computes the first day of a year.
  • years( -- The years( function converts a number of days into a number of years.
  • yearsbetween( -- The yearsbetween( function calculates the number of years between two dates.
  • yearvalue( -- The yearvalue( function extracts the year from a date as a numeric value.
  • yoke( -- The yoke( function appends two text items together, with a joiner between them if both are non-blank.
  • zbpattern( -- The zbpattern( function converts a number to text using a pattern, but returns empty text if the number is zero.
  • zeroblank( -- The zeroblank( function tells Panorama to treat zeroes as empty space.
  • 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.