Control Flow
This page is currently incomplete, but you can find information about this topic at the links below:

- call( -- The call( function allows a procedure to be called as a subroutine within a formula and return a result.
- call -- The call statement allows a procedure to call a separate procedure within the current database as a subroutine.
- callerslocalvariablevalue( -- The callerslocalvariablevalue( function allows a subroutine to access a local variable in the procedure that called it.
- callingdatabase( -- The callingdatabase( function returns the name of the database that called this procedure as a subroutine, if any.
- callingprocedure( -- The callingprocedure( function returns the name of the procedure that called this procedure as a subroutine, if any.
- callwithin( -- The callwithin( function allows a "mini-procedure" to be called as a subroutine within a formula and return a result.
- callwithin -- The callwithin statement allows a procedure to call a mini-procedure within a separate procedure within the current database as a subroutine.
- callwithindatabase( -- The callwithindatabase( function returns true if the current procedure was called by another procedure in the same database, false if it was called by a procedure in another database.
- 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.
- Comments -- A comment is a note inside a program.
- debug -- The debug statement stops the current program, allowing you to examine variables or single step.
- 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.
- 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.
- 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.
- Error Handling -- Techniques for trapping runtime errors instead of letting them abort the program.
- Error Wizard -- Advanced dialog for displaying program errors.
- execute( -- The execute( function allows a formula to execute a sequence of statements and return a result.
- 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.
- farcall -- The farcall statement allows a procedure to call a separate procedure within a different database as a subroutine.
- farcallwithin -- The farcallwithin statement allows a procedure to call a mini-procedure within a separate procedure in a different database as a subroutine.
- for -- The for statement is used at the beginning of a loop that loops a fixed number of times.
- goto -- The goto statement allows a procedure to arbitrarily jump from one spot to another within the procedure.
- if -- The if statement decides what code to execute next.
- info("callerslocalvariables") -- The info("callerslocalvariables") function returns a list of local variables defined in the procedure that called the current procedure.
- info("error") -- The info("error") function returns the most recent error message.
- info("labels") -- The info("labels") function lists the labels in the current procedure.
- info("procedurestack") -- The info("procedurestack") function returns the contents of Panorama's procedure call stack.
- info("runninghandler") -- The info("runninghandler") function returns true if the current procedure is running as a "handler" procedure.
- loop -- The loop statement is used at the beginning of a loop.
- looparray -- The looparray statement is used at the beginning of a loop that loops over the elements of an array.
- loopdataarray -- The loopdataarray statement is used at the beginning of a loop that loops over the elements of a data array.
- 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.
- noimplicitassignment -- The noimplicitassignment statement does nothing, and is only retained for compatibility with earlier versions.
- nop -- The nop statement does nothing (*n*o *op*eration).
- 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.
- onerror -- The onerror statement can be used to catch all errors that are not trapped by if error or try statements.
- onfailedresume -- The onfailedresume statement is used to setup a semi-graceful recovery if a resume statement fails because there was no pause statement.
- pause -- The pause statement temporarily pauses a procedure.
- Preventing Endless Loops -- setting up a timeout limit to prevent endless loops.
- quit -- The quit statement quits Panorama.
- repeatloopif -- The repeatloopif statement decides whether to continue with a loop or to start over again from the top.
- resume -- The resume statement resumes a procedure that has been temporarily halted with the pause statement.
- setcallerslocal -- The setcallerslocal statement allows a subroutine to modify a local variable in the procedure that called it.
- seterror -- The seterror statement changes the error message returned by info("error").
- shortcall -- The shortcall statement allows a procedure to call a sequence of statements within the current procedure as a "mini-subroutine".
- 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.
- Subroutines -- writing code that can be called from other code.
- throwerror -- The throwerror statement causes an immediate error.
- try -- The try statement works with catch and endcatch to trap errors in a sequence of statements.
- 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.
- until -- The until statement is used at the end of a loop, and can control how many times the loop is executed.
- uprecord -- The uprecord statement moves the cursor up one visible record.
- 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.
- while -- The while statement is used at the end of a loop, and can control how many times the loop is executed.

History

Version | Status | Notes
10.0 | Updated | Carried over from Panorama 6.0, with some updates.