$messagebox

Presents a message box to the application user and waits for a response.

Syntax

$messagebox(message,type,style,defaultbutton[,heading])

Parameters

messageA character string, or an expression that evaluates to a character string.
typeA number that determines the type of message box. It also determines the icon that appears in the message box.
styleA number that determines the responses (push buttons) available to the application user.
defaultbuttonA number that determines which push button is the default button. Buttons are numbered 1, 2, and 3 from left to right.
headingA title for the message box. If you do not specify a heading, one is assigned based on type.

Message box types include:

TypeMeaningConstant Name

1

Error

cErrorMsg

2

Warning

cWarningMsg

3

Information

cInfoMsg

4

Question

cQuestionMsg

Push button styles include:

TypeButtons SuppliedConstant Name
1OKcOKStyle
2OK, CancelcOKCancelStyle

3

Retry, CancelcRetryCancelStyle

4

Yes, NocYesNoStyle

5

Yes, No, CancelcYesNoCancelStyle

6

Abort, Retry, IgnorecAbortRetryStyle

Return Value

Character string.

Comments

Use $messagebox to display a message in a dialog box of the specified type, with the specified heading or a default heading in the caption. The application user responds by activating one of the buttons provided by style, one of which is a defaultbutton. $Messagebox returns a character string containing the label of the button pressed by the application user.

Example

$messagebox("Delete file?",2,5,2,"File Operations")

$filebrowse

Presents the application user with a File Open common dialog box.

Syntax

$filebrowse(directorypath, pattern, flags ,[heading])

Parameters

directorypathA character string or an expression that evaluates to a character string, naming the default directory path to show in the dialog box. If path is the null string (”), the current directory is used as the default directory.
patternA character string or an expression that evaluates to a character string, specifying the pattern names and associated patterns that can be searched for, in the dialog box. If pattern is the null string (”), no patterns are searched for. Otherwise, pattern is specified in the form:
“patternname1|pattern1[«|patternname2|pattern2»]”
flagsA number or an expression that evaluates to a number, determining the attributes of the dialog box.
headingA character string, or an expression that evaluates to a character string, setting the title for the dialog box.
FlagsMeaningConstant Name
0The dialog box opens for saving a file. 
2Path must exist.cPathMustExist
4Prevent read-only files from being returned.cNoReadOnlyFiles
8Enable multiple selections.cAllowMultiSelect

Flags can contain any single number, or the sum of two or more numbers from the Flags column.

Return Value

For EntitySets, relationships, and application directories, the value returned is the number associated with the disk file that contains the specified object.

For application documents, the value returned is the number associated with the disk file that contains the application directory in which the application document was created.

Comments

Use $filebrowse to display the File Open common dialog box and select a file.

The value returned by the function depends on the application user’s interaction with the dialog box:

  • If the application user activates the Cancel push button, $Null is returned.
  • If the application user makes a selection (multiple selections not enabled), the function returns the directory path concatenated with the file name.
  • If the application user makes a selection (multiple selections enabled), the function returns the directory path and a list of one or more file names separated by semicolons.

Example

A properly constructed pattern appears as shown below:

'All files |*.*|ZIM files|*.zim;zim0*'

In the following code fragment, the variable vIconFileSel is assigned the results of the user’s interaction with the File Open dialog box:

let vIconFileSel= $filebrowse ($concat($DBPath, "\Icons"), "Icon files|*.ico|All files|*.*", cFileMustExist + cPathMustExist, "Icon File Selection")

Set Specification (ISQL)

Identifies particular records in an SQL database.

Syntax

Object [WHERE clause] [GROUP BY expr1] [HAVING expr2]

[ORDER BY expr3 [ASC|DESC]] [KEEP component]

Parameters

objectThe name of an EntitySet, relationship, form, structured application document, or result set. Role names can be used for EntitySets and relationships.
expr1A value expression. Specifies how the selected records are to be grouped.
expr2A logic expression. Limits the groups to be kept in the result set.
expr3A value expression. Specifies the sort keys for the result set.
ASC or DESCASC indicates sorting in ascending order (i.e., 0-9, A-Z); DESC, in descending order (i.e., 9-0, Z-A). ASC is the default.
componentOut of all the specified objects, the components to be retained in the result set.
A KEEP clause cannot be used if a GROUPED BY or HAVING clause already appears in the set specification.

Comments

An SQL set specification (sometimes called an SQLsetspec) is a statement that uses EntitySets, relationships, forms, structured application documents and result sets to identify particular records in an SQL database. Each object in the set specification is called a component. (Result sets can represent more than one component.)
SQL set specifications are used only within the SQL commands DELETE FROM, INSERT, SELECT, and UPDATE.
Any number of objects can be declared. But, if you declare more than one object, then you must declare the relationships through which records in those objects are associated.
An SQL set specification can also include a condition that limits record selection (WHERE clause), a grouping statement (GROUP BY clause), a group condition that limits group selection (HAVING clause), a sorting statement (ORDERED BY clause), and a component projection list that limits the number of components in the resulting set (KEEP clause).
The WHERE clause can also contain another SELECT statement and OUTER JOIN references using “*=” for LEFT OUTER JOIN or “=*” for RIGHT OUTER JOIN (see examples).
Each object can be further qualified using any valid combination of the following subcommands:
-> (Dynamic rename) or USING
and in particular circumstances:
INTERSECT, MINUS, UNION

Example

select * from Employees where LastName=”Smith”

The set specification includes a WHERE condition for record selection.

SELECT * FROM Employees WHERE Salary > (SELECT Salary FROM Employees WHERE JobPosition = “THE BOSS”)

SELECT Ents.EntName,Fields.OwnerName FROM Ents,Fields WHERE Ents.EntName *= Fields.Ownername

This selects all EntitySets and having or not having corresponding Fields in the same way the

COMPLETE clause does in a FIND statement.

SELECT Ents.EntName,Fields.OwnerName FROM Ents,Fields WHERE Ents.EntName *= Fields.Ownername AND

Fields.Ownername is $NULL

This selects all EntitySets not having corresponding Fields in the same way the UNRELATED

clause does in a FIND statement.

See Also

DELETE FROM

INSERT

SELECT

Set Specification

UPDATE

SET (EntitySet/Data Relationship Attribute)

SET (EntitySet/Data Relationship Attribute)

Modifies the value of an attribute of a database object.

Syntax

SET tablename tabletype [ “ZIMSERV” | “JDBCSAM” | alias name ]

SET tablename [ remname |  remowner ] value

SET fieldname [ remname ] value

tablenameis the name of an EntitySet or data relationship
fieldnameis the name of a field in an EntitySet or data relationship
TABLETYPEis the option to modify the location of tablename
REMNAMEis the option to modify the Remote Name of tablename or fieldname
REMOWNERis the option to modify the Remote Owner Name of tablename
alias nameis or as defined in the configuration file “zimalias.zim”.
valueis an expression that evaluates to a string

Comments

These two forms of the SET command modify attributes of EntitySets, data relationships, and fields that affect client-server behavior.

These commands affect the internal value of these attributes. They do not update the external data dictionary. It is prudent to modify the data dictionary to conform to any new attribute values that are set. The utility ZIMFILES can be used to display internal values of any database object.

When modifying TABLETYPE, the value must be a valid SAM name or custom server name. This is equivalent to modifying EntType in EntitySets or RelType in Relationships and then performing “erase” and “create” commands on the EntitySet or data relationship.

Changing the REMNAME or REMOWNER to the value null string (”) removes any Remote Name or Remote Owner Name associated with the database object.

The SET REMOWNER command is equivalent to changing the “RemoteOwner” in “EntitySets” or “Relationships” and then recreating the EntitySet or relationship.

The SET REMNAME command is equivalent to changing the “RemoteName” in “EntitySets” or “Relationships” and then recreating the EntitySet or relationship.

Any compiled Zim programs that reference database objects that have been modified with these commands should be recompiled.

Example 1

To modify the EntitySet Customers so that it is under the control of an Oracle SQL server, enter

> set Customers tabletype 'jdbcsam'
> set MyEnt tabletype 'zimserv'

Example 2

To modify the Remote Name of the field ZIP in EntitySet customers, enter

> set Customers.ZIP remname '"ZIP or Postal Code"'

When modifying the attribute of a field, qualify it with its entity set or relationship name to avoid ambiguity. Note that double quotation marks are included in the REMNAME value. Most database engines require double quotation marks around the column name if it contains embedded blanks.

Example 3

To remove the Remote Name of the field ZIP in EntitySet customers that was added above, enter

> set Customers.ZIP remname ''

See Also

Remote Name Mapping

REPORT FROM

Selects data for a report and specifies overall report format.

Syntax

REPORT [num] FROM [setspec] [GRAPHIC [TEMPLATE name]] [orientation] [PAUSE n]

[format options] [-> clause]

Parameters

numPlaces a limit on the number of records from setspec used in the report.

Num can be
an integer constant (e.g., 15, 200),
a variable, form field, menu item, or formal parameter that evaluates to an integer,
the word ALL.
The default value of num is ALL. If num is less than zero, num is set to ALL.

setspecA set specification that defines the data to be used for the report. If omitted, the current set (if it exists) is used.
GRAPHICSpecifies that this report is to be generated using a graphical structure.
TEMPLATE nameFor graphical reports, the name of an optional template to define the layout of the report.
orientationOrientation can be
FORMAT DOWN
Specifies that the report is line-oriented. Successive records from setspec are placed on successive lines.
FORMAT ACROSS n
The report is column-oriented. Successive records from setspec are placed in successive columns across the report page. N specifies the number of columns; it must be a positive integer.
The default value of orientation is FORMAT DOWN.
PAUSE nPAUSE n causes a pause before the first page of the report is output, and another pause after each subsequent n pages have been output. Pauses are useful when the report is being output to a printer that is manually fed sheets of special paper, or when the report is being viewed on the computer one window-full at a time.
During a pause, the message Press to continue, q to quit appears on the terminal. To output the next n pages, press Return. To stop the output, press q.
The PAUSE message can be altered using the Language Customizer utility.
format optionsA list of options defining the overall appearance of the report. Can be one or more of
COLUMNSPACING , PAGESIZE , PAGELINES , TOPMARGIN , BOTTOMMARGIN , PAGEWIDTH , LEFTMARGIN or PAGELAYOUT .
In each case, n can be a constant, variable, form field, or parameter that evaluates to a positive integer.

Comments

The REPORT FROM command produces a set whose members are used as the source of data values for the report. The various clauses in the REPORT FROM command also specify the overall format of the report and determine if the report is line-oriented or column-oriented.

The format option PAGELAYOUT is only valid for graphical reports and specifies the layout of the page to be used for displaying or printing the report. is an expression that evaluates to a string containing eight parameters separated by semicolons like this example:

REPORT FROM Customers GRAPHIC TEMPLATE tCust PAGELAYOUT “2140;1950;1;1;0;0;0;0”
Other report commands…
ENDREPORT

The values in PAGELAYOUT mean (in tenths of millimeters): Height of the page; Width of the page; Number of Rows (for labels); Number of Columns (for labels); Top Margin; Left margin; Vertical distance between labels; Horizontal Distance between labels.

See Also

BREAK (Reports)

ENDREPORT

How to Use The Report Generator

Report Item Format Options

$getproperty

Returns the current settings of certain device or registry properties.

Syntax #1

Returns the current settings of certain desktop properties.

$getproperty("desktop",property)

Parameters

propertyA character string or an expression that evaluates to a character string. Properties include MousePresent, ScreenColors (or ScreenColours), ScreenHeight, ScreenUnits, and ScreenWidth.

Return Value

Character string or $null if property is not a recognized string.

Syntax #2

Returns the current settings of certain printer properties in the Windows environment.

$getproperty("printer",property)

Parameters

propertyA character string, or an expression that evaluates to a character string. Properties include CharsPerLine, Color (or Colour), DeviceName, DisplayPrintDialog, DriverVersion, Duplex, FontName, FontSize, LinesPerPage, MonospacedFont, Orientation, PaperBin, PaperLength, PaperSize, PaperWidth, PrintQuality, Scale, TrueTypeOption, and YResolution.

Return Value

Character string or $null if property is not a recognized string.

Comments

The string contains the current setting of property.

Syntax #3

Returns the current settings of the Zim variables stored in the Windows Registry.

$getproperty (registry_section,registry_variable)

Parameters

registry_sectionA character string, or an expression that evaluates to a character string with the format “REG:[sectionname]” or “SERVREG:[sectionname]”. The sectionname can be ODBC, ZIM or a user-defined name.
registry_variableThe registry variable being queried.

Return Value

Character string or $null if the section or the variable is not present in the Registry.

Syntax #4

$GetProperty ("session", <config_setting>)

Parameters

sessionThe operating environment of one particular invocation of a Zim executable.
config_settingA valid configuration setting.

Return Value

The return value is the current value of the specified config_setting.

Syntax #5

$GetProperty ("OleVerbList", FileOrClassName)

Parameters

OleVerbListThe list of verb names supported by an OLE object.
FileOrClassNameA valid OLE file or classname.

Return Value

The return value is the list of supported verbnames of a file or OLE class. Semicolons separate the verbs in the returned list.

Examples

>out $getproperty ("OleVerbList", "ztizim.bmp")
Edit;Open

In the above command, the OleVerbList associated with a .bmp file is “Edit;Open” which means that there are two available verbs: Edit and Open.

let vFontSize = $getproperty ("printer", "fontsize")

In the above command, vFontSize can be a character or number variable. (The software converts the character string returned by $getproperty to a number, if required.)

let vODBCVersion = $getproperty ("REG:[ODBC]", "VERSION")

Gets the version of the installed Zim ODBC Driver.

See Also

$printersetup
$setproperty

CREATE

Creates an object in an application directory.

Syntax #1

Creates an object in an application directory.

CREATE object name [IN dirname][$fn <filenumber>] [DELETE | KEEP]

CREATE object name [IN dirname]

Parameters

object
[one_fourth]
One of
constant, directory, display, document, entityset, form, menu, relationship, role, set, variable, window
nameThe name to be given to object.
dirnameThe name of the application directory in which object is to be created. If dirname is not specified, object is created in the base application directory, called zim.
filenumberThe number of the zim file created to contain the data. For example, if the CREATE command is invoked with $fn 400, Zim attempts to associate file zim0400 with the created object. It is sometimes useful to associate a particular filenumber with a particular object: if the object was erased with the KEEP option, the create command recreates it with the KEEP option.
DELETEWhen DELETE is specified, the existing database file, if present, is deleted before a new file is created. If DELETE is not specified and a file exists, an error message indicates that Zim is unable to create the object.
KEEPWhen KEEP is specified, the existing database file, if present, is kept instead of creating a new one. If the file does not exist, a new (empty) database file is created.

Syntax #2

Creates an index.

CREATE INDEX ownername.fieldname [UNIQUE]

Syntax #3

Creates a field.

CREATE FIELD ownername fieldname

Parameters

ownernameThe name of the EntitySet, relationship with fields, or application document to which fieldname belongs.
fieldnameThe name of the field in ownername to index or to create.
UNIQUEIf UNIQUE is specified, any duplicate key values are rejected and do not appear in the index.

Comments

The application directory named in a CREATE command must have been accessed in update mode (see ACCESS) and all information needed to define the object must exist in the Object Dictionary. For CREATE to proceed, the explicit dirname in the CREATE command (or the implicit directory zim) must match the owner-directory specified for object in the Object Dictionary; or, there must be no owner-directory specified for object in the Object Dictionary. In the latter case, object can be created in any or in every application directory available in the database (except foreign directories).
A field or form field cannot have the same name as an existing variable, EntitySet, relationship, role, directory, application document, window, constant, result set, form, menu, or display in the same application directory. Several fields or several form fields can have identical names, provided that each identically named field belongs to a different ownername.
There is an internal limit of 65000 CREATEs per Zim directory in Zim.  If this limit is exceeded, a 3029 error is generated. For more information, see Zim Error Codes.  To resolve this error, export all objects and import these objects into a newly initialized Zim database.  In a newly initialized database, the CREATE counter is reset to 0.

Example

create entityset Employees in Personnel

Creates an EntitySet called Employees in the application directory Personnel.

create index Employees.FirstName

Creates an index for an un-indexed field FirstName in the Employees EntitySet.

See Also

ERASE

PERMISSION

RENAME

IF

Enables conditional execution of commands.

Syntax

IF expression1

commands1

[ ELSEIF expression2

commands2]

[ELSE

commands3]

ENDIF

Parameters

expression1 and expression2Logic expressions (using conditional or Boolean operators).
commands1Commands to be executed if expression1 is logically true. Execution then resumes at the first command following ENDIF.
commands2Commands to be executed if expression1 is false and expression2 is true. Execution then resumes at the first command following ENDIF.
commands3Commands to be executed if expression1 and expression2 are both false. Execution then resumes at the first command following ENDIF.
ENDIFMarks the end of the IF structure. An IF command must always have a corresponding ENDIF.
If a necessary ENDIF is missing, all subsequent commands in the current procedure are treated as part of the IF structure, and all those commands are executed only if execution control has passed to the corresponding IF, ELSEIF, or ELSE clause. When the end of the procedure is reached, the “open” IF command is closed.

Comments

An IF command must always have a corresponding ENDIF.

If expression1 evaluates to $True, commands1 are executed, then execution resumes at the first command following ENDIF. If expression1 evaluates to $False, the ELSEIF expressions (if included) are evaluated in order. Any number of ELSEIF clauses can appear between IF and ENDIF. The commands associated with the first ELSEIF expression that evaluates to “true” are executed, then execution resumes at the first command following ENDIF. If none of the expressions evaluate to “true”, the commands associated with the ELSE clause (if included) are executed. If the ELSE clause is omitted, execution resumes at the first command following the ENDIF without any commands in the IF structure being executed.

If you exit from a procedure in the middle of an IF structure, the software closes the open IF command.

If you explicitly transfer control out of a procedure after an IF command has been executed, but before the corresponding ENDIF command has been executed, the open IF structure is automatically closed. Also, if the end of the current procedure is reached before a corresponding ENDIF is encountered, the open IF structure is closed.

If you forget to use a necessary ENDIF, all subsequent commands in the current procedure are treated as part of the IF structure, and all of those commands are executed only if execution control has been passed to the corresponding IF, ELSEIF, or ELSE clause.

Example

IF commands are useful for controlling groups of alternative commands. For example, the following application program fragment can be used to drive a form:

window set accelerator Return Enter Escape

while    % continue looping (until user presses Escape)

 form open menuform

 form display

 form input

 if Event.EventName = “Escape”

  return  % exits from program

 endif

 if menuform.selnum = 1

    DoEmp  % calls program DoEmp

  continue % returns to the start of the WHILE loop

 endif

:

endwhile

ELSEIF used to test a series of alternatives.

if Age < 18

:

elseif Age between 18 and 55

:

elseif Age between 56 and 65

:

else

:

endif

Because the first ENDIF statement is missing, the second IF statement is executed only if the conditional expression for the first is false. If the second IF statement is executed, and evaluates to true, that IF statement is ended by the RETURN command; otherwise, both IF statements end when the last command in the procedure is executed.

if Age > 21

 ..first group of commands…

else

 …second group of commands…

% endif should go here, but was missed

if Salary > 20000

 …first group of commands…

 return

% another endif is missing here

See Also

Boolean Expressions

Conditional Expressions

CASE

CREATE MEMORY SET

Creates a memory set based on the telemetry from a connector.

Syntax

CREATE MEMORY SET FROM «connector document»

Parameters

connector document

The name of a connector document.

Comments

The CREATE MEMORY SET command converts the information in a 1202 message into an in memory zim EntitySet. It creates the set and field definitions at run time using the metadata in the message and populates the set using the data in the message.

Remarks

The memory set is called $MemorySet and is specifically useful only for connector documents. There can be only one $MemorySet at a time and the creation of a new one replaces the existing one. The definitions that are created are not available for inspection (the are not really in the directory).

Example

Not using $MemorySet:

> set connector document SMS_RECEIVE to ‘F!amccue!9011’

> set output format commadelimited

> list all SMS_RECEIVE   (get the first message from the connector)

>”SegmentRN”,”GroupId”,”SegmentID”,”SegmentType”,”DataName”,”DataType”,”DataValue”

>”         0″,”0″,”0″,”OUTPUT”,”START_BACKLOG”,”STDOUT”,”16135551012″

>”      SYNC”,”0″,”0″,”SYNCINFO”,”8820″,”ADDR”,”16135551012″>

> list all SMS_RECEIVE (get the next message from the connector)

>”SegmentRN”,”GroupId”,”SegmentID”,”SegmentType”,”DataName”,”DataType”,”DataValue”

>”         0″,”0″,”0″,”DATA”,”REFERENCE”,”CHAR”,”0″

>”         0″,”0″,”1″,”DATA”,”PART”,”CHAR”,”1″

>”         0″,”0″,”2″,”DATA”,”PARTS”,”CHAR”,”1″

>”         0″,”0″,”3″,”DATA”,”MESSAGE_CLASS”,”CHAR”,”MESSAGE”

>”         0″,”0″,”4″,”DATA”,”MY_NUMBER”,”CHAR”,”16135551012″

>”         0″,”0″,”5″,”DATA”,”SIM_SLOT”,”CHAR”,”1″

>”         0″,”0″,”6″,”DATA”,”SENDER_ADDRTYPE”,”CHAR”,”SMS_PHONE”

>”         0″,”0″,”7″,”DATA”,”SENDER_EMAIL”,”CHAR”,”16135552208″

>”         0″,”0″,”8″,”DATA”,”DATE”,”CHAR”,”2003/01/15″

>”         0″,”0″,”9″,”DATA”,”TIME”,”CHAR”,”11:34:34″

>”         0″,”0″,”10″,”DATA”,”BODY”,”CHAR”,”this is a test”

>”SYNC”,”0″,”0″,”SYNCINFO”,”8820″,”ADDR”,”16135551012″

list all SMS_RECEIVE  (get the next message from the connector)

>”SegmentRN”,”GroupId”,”SegmentID”,”SegmentType”,”DataName”,”DataType”,”DataValue”

>”         0″,”0″,”0″,”OUTPUT”,”END_BACKLOG”,”STDOUT”,”16135551012″

>”      SYNC”,”0″,”0″,”SYNCINFO”,”8820″,”ADDR”,”16135551012″

Using the $MemorySet

> set connector document SMS_RECEIVE to ‘F!amccue!9011’

> set output format commadelimited

> create memory set from SMS_RECEIVE

> list all $memoryset

>”START_BACKLOG”,”8820″

>”16135551012″,”16135551012″

> create memory set from SMS_RECEIVE

> list all $memoryset

>””REFERENCE”,”PART”,”PARTS”,”MESSAGE_CLASS”,”MY_NUMBER”,”SIM_SLOT”

>”SENDER_ADDRTYPE”,”SENDER_EMAIL”,”DATE”,”TIME”,”BODY”

>”0″,”1″,”1″,”MESSAGE”,”16135551012″,”1″,”SMS_PHONE”

>”16135552208″,”2003/01/15″,”11:34:34″,”this is a test”,”1615551012″

> create memory set from SMS_RECEIVE

> list all $memoryset

>”END_BACKLOG”,”8820″

>”16135551012″,”16135551012″

Related Information

Whitepaper on The Open 1202 Protocol, Version 01.00 July 2002

BREAK (Reports)

Breaks the body of a report into summary groups.

Syntax

BREAK level expression \

[HEADING [orientation] reportitem \

[:format:] [WHERE Boolean Expression]] \

[FOOTING [orientation] reportitem [:format:] \

[WHERE Boolean Expression>]

Parameters

levelThe break level number (an integer greater than or equal to zero).
In the hierarchy of breaks, the higher the level number, the more minor the break. (For example, a level 1 break also triggers breaks at level 2, level 3, and so on.)
expressionAny valid value expression. When the value of this expression changes, a break occurs at the associated level and any lower levels.
HEADINGIntroduces the “heading clause” for the break level, which can consist of a break orientation statement, or a number of report items and their format instructions, or both. The footing displays each time the break level is triggered.
FOOTINGIntroduces the “footing clause” for the break level, which can consist of a break orientation statement, or a number of report items and their format instructions, or both. The heading displays each time the break level is triggered.
orientationOrientation can be FORMAT ACROSS (the default) or FORMAT DOWN.
Used only in column-oriented reports.
The break heading and break footing can differ in orientation.
reportitemAny valid expression that yields a value for display in the break heading or break footing. The heading and footing can each display a series of reportitems. Each item has its own associated format.
formatA set of instructions defining the format for the associated reportitem. Format is enclosed in : (colons) and can consist of any valid combination of format options.
Boolean expressionSpecify multiple conditional break headings and footings for any break. The multiple HEADING or FOOTING specifications are separated from one another by commas.
The multiple headings and footings specify alternative formatting specifications for the BREAK that occurs when the value of Boolean expression changes. As with conditional detail lines, the first heading or footing specification whose WHERE clause is TRUE is the one that is formatted for this particular occurrence of the break. WHERE clauses in break footings can include aggregate functions that are calculated over all records since the last occurrence of this break.
FORMAT ACROSSThe break heading or footing displays in a column whose width, if not preset, is determined by the width of the component report items.
FORMAT DOWNThe break heading or footing starts on a new line and displays horizontally across the page, thus breaking the report horizontally at that point.

Comments

Breaks can be organized into the hierarchy: 0, 1, 2, and so on. The higher the level number, the more minor the break.

Each change in the value of expression triggers a break at the associated level. The break levels below it in the hierarchy are also triggered; that is, a level 1 break triggers a level 2 break, and a level 3 break, and so on.

The report items in the break heading can include individual data values only from the first member of the current group.

The report items in the break footing can include individual data values only from the last member of the current group. However, summary data computed over all members of the group can be displayed in the footing. Use aggregate functions.

Each time the break level is triggered, headings specified in a corresponding COLUMN BREAK command, DETAIL LINE command, and PAGE HEADING command are also displayed.

Note: Multiple HEADING or FOOTING specifications are separated from one another by commas.

Example

This is an example of a conditional footing:

 break 2 OrderNo

 footing

 ‘**Large Order’ $total(Amount) WHERE $total(Amount) > 10000, ‘ ‘ $total(Amount)

See Also

COLUMN BREAK

DETAIL LINE

ENDREPORT

PAGE HEADING

REPORT FOOTING

REPORT FROM

REPORT HEADING

pt_BRPortuguese