08/23/83 set_format_options, sfo Syntax: sfo {-format_option_args} {-control_args} Function: sets individual report format options to user specified or default values, and/or all of the formatting options to their default values. The option value given for any format option argument can be the control arguments "-default" or "-prompt". If -default is given for the value, LINUS will set the value of the format option to the system default. If -prompt is given for the value, LINUS will prompt for the value with the prompt string "Enter FORMAT_OPTION_NAME.". A line consisting of the single character "." will terminate the prompted input mode. To suppress the printing of the prompt string use the -brief control argument. Control arguments: -brief, -bf, -long, -lg print/don't print the prompt string for values when the "-prompt" control argument is given. The default is -long, which means prompt with the string "Enter FORMAT_OPTION_NAME". If -brief and -long are both used on the request line, the last one supplied will be used. -default specifies that LINUS should set the value of the format option which immediately precedes this control argument to the system supplied default. -string STR, -str STR allows STR to be entered as a format option value when STR begins with a hyphen. -prompt specifies that LINUS should prompt for the value of the format option which immediately precedes this control argument. A prompt string will be written before the prompting action unless the -brief control argument is used. A line consisiting of the single character "." will terminate the prompted input mode. -reset, -rs, -no_reset, -nrs reset/don't reset all formatting options to their system default values. The default is -no_reset which means only the user specified options will have their values changed. If -reset is given, all format options will be reset to their system default values before the values are changed for any other format options specified in the request line. If -reset and -no_reset are both used on the request line, the last one supplied will be used. Format Option Arguments (General Report Options): -delimiter CHAR, -dm CHAR the character used to delimit the different portions of a header or footer. The default character is "!". This can be set to any printable character. -format_document_controls STR, -fdc STR the value of -format_document_controls is used to determine if the format_document_ subroutine should interpret format document control lines when filling overlength text. The default value for STR is "off" which means format_document_ will not check for control lines imbedded in the text. STR can also be set to "on" which means format_document_ will interpret control lines in the text and provide special filling actions based on the imbedded control lines. -hyphenation STR, -hph STR the value of -hyphenation is used to determine if hyphenation should be attempted when filling overlength character strings. The default value for STR is "off" which means no hyphenation is attempted by default. STR can also be set to "on" which specifies that hyphenation should be attempted. -page_footer_value STR, -pfv STR the page footer placed at the bottom of each page. The page footer can consist of more than one line, and each line can have a left, right, and center portion. The individual portions of each line are delimited by the delimiter character. Active requests found in the header are evaluated and their return value is placed into the header before folding and alignment takes place. Portions of a header or footer whose length are zero have their space on the page redistributed to other portions whose lengths are not zero. For example, if the page header contained only a center portion (!!Sample Center Portion!!), the text would be centered on the page, but would have the full page width available for the text. Similarly, a left portion or right portion only would be aligned to the left or right of the page, but would have the full page width available for placement of its text. Two exceptions to this action are when the header or footer has a left, right, and center portion, and the left or right portion has a zero length (e.g. !left part!center part!! or !!center part!right part!). In these two cases the left or right part of the page is unavailable for placement of text; that is, the space is not redistributed to the other two portions. If the redistribution of the available page width is not desired, the placement of a single blank into a portion will prevent the redistribution from taking place because the portion will have a length greater than zero (i.e. ! !Center Part! !). The default value for STR is "" which means there is no page footer provided by default. -page_header_value STR, -phv STR the page header placed at the top of each page. Refer to the description of -page_footer_value for the content of a header/footer. The default value for STR is "" which means there is no page header provided by default. -page_length N, -pl N the length of each formatted page given as the number of lines. N can be given as "0" or any positive integer. "0" means that the report is not to be paginated and it is created as one continous stream. The default value for N is "66". -page_width N, -pw N the width of each formatted page given as the number of character positions. N can be given as "0" or any positive integer. "0" means that the page width will always be set by LINUS to be the exact width needed to contain all of the columns specified in the LILA selection-expression which are not excluded. If N is greater than zero and the width for any column exceeds N, the column's width is automatically set to N. The default value is "79" character positions. -title_line STR, -tl STR the value of -title_line is used to determine whether a title line should be printed. The default value for STR is "on" which means that a title line is printed at the top of each page. STR can also be set to "off" to inhibit the printing of the title line. -truncation STR, -tc STR the value of -truncation is used to determine the character(s) that should be used to indicate that truncation of some value has occured. The default value for STR is "*". STR can be set to any sequence of printable characters. Format Option Arguments (General Column Options): -column_order COLUMN_LIST, -co COLUMN_LIST the value of -column_order is used to determine the order that the columns should appear in the detail line. The default value for COLUMN_LIST is the list of columns from the LILA selection-expression in the order supplied. This means that the columns will appear in the exact same order as they appear in the LILA selection-expression. COLUMN_LIST can be set to a list of column names or numbers. Columns missing from this list will be placed after the columns which appear in the list. That is, if five columns were selected and the -column_order value had been given as "3 2", the complete order would be "3 2 1 4 5". -count COLUMN_LIST, -ct COLUMN_LIST the value of -count is used to determine the columns counts should be generated for. The default value for COLUMN_LIST is "" which means no columns should have counts generated. COLUMN_LIST can be set to a list of column names or numbers. Counts are generated after the last detail line. If a count is requested on a column that is excluded, the count is also excluded from the page. An exception to this rule is when all columns have been excluded. Counts are provided in this case to allow reports consisting of some combination of counts, subcounts, totals, and subtotals only. -exclude COLUMN_LIST, -ex COLUMN_LIST the value of -exclude is used to determine if any of the columns selected via LILA should be excluded from the detail line. The default value for COLUMN_LIST is "" which means no columns should be excluded. COLUMN_LIST can be set to a list of column names or numbers. -group COLUMN_LIST, -gr COLUMN_LIST the value of -group is used to group a number of rows based on the values of one or more columns. The default value for COLUMN_LIST is "" which means no group of rows has been defined. COLUMN_LIST can be set to a list of column names or numbers. The column or columns named in the list become a hierarchy of columns. The first column named is the most major column, and the last column named becomes the most minor column. The hierarchy of columns can be used with the -outline, -page_break, -subtotal and -subcount options as described under each option's description. -group_footer_trigger COLUMN_LIST, -gft COLUMN_LIST the value of -group_footer_trigger is used to determine when to generate the group footer. The default value for COLUMN_LIST is "" which means no group footer triggers are defined by default. COLUMN_LIST can be set to a list of column names or numbers. The columns which appear in this list must also appear in the column list associated with the -group option. If the -group option is set to a new value, columns which are eliminated from the COLUMN_LIST are also eliminated from the -group_footer_trigger COLUMN_LIST. When any of the columns specified in the COLUMN_LIST are about to change with the next row, the group footer is evaluated. The group footer is always evaluated after the last row of the report. -group_footer_value STR, -gfv STR the group footer placed after each group of rows when any of the columns associated with the -group_footer_trigger option changes. Refer to the description of -page_footer_value for the content of a header/footer. The default value for STR is "" which means there is no group footer defined by default. -group_header_trigger COLUMN_LIST, -ght COLUMN_LIST the value of -group_header_trigger is used to determine when to generate the group header. The default value for COLUMN_LIST is "" which means no group header triggers are defined by default. COLUMN_LIST can be set to a list of column names or numbers. The columns which appear in this list must also appear in the column list associated with the -group option. If the -group option is set to a new value, columns which are eliminated from the COLUMN_LIST are also eliminated from the -group_header_trigger COLUMN_LIST. When any of the columns specified in the COLUMN_LIST have just changed with the current row, the group header is evaluated. The group header is always evaluated before the first row of the report. -group_header_value STR, -ghv STR the group header placed before each group of rows when any of the columns associated with the -group_header_trigger option changes. Refer to the description of -page_footer_value for the content of a header/footer. The default value for STR is "" which means there is no group header defined by default. -outline COLUMN_LIST, -out COLUMN_LIST the value of -outline is used to determine if duplicate values in a column should be suppressed. The default value for COLUMN_LIST is "" which means no columns should have duplicate values suppressed. COLUMN_LIST can be set to a list of column names or numbers. If the value of a named column is the same as its previous value, then the value will be suppressed unless it is the first line of a new page. If any of the named columns are a member of the "group" of rows defined by the -group option, then it and all of the columns more major in this group have outlining done on them. A change in value of any one column causes all columns lower in the hierarchy to have their values displayed, in addition to the column that changed. An exception to this is if it is the first line on a new page, when duplicate values are never suppressed. -page_break COLUMN_LIST, -pb COLUMN_LIST the value of -page_break is used to determine when page breaks should be generated. The default value for COLUMN_LIST is "" which means that no columns are watched for page breaks. COLUMN_LIST can be set to a list of column names or numbers. The columns specified in the list are watched and when their values change, a break to a new page is generated. If any of the named columns are a member of the "group" of rows defined via the -group option, it and all columns more major in the group will be watched for page breaks. -row_footer_value STR, -rfv STR the row footer placed after each detail line. Refer to the description of -page_footer_value for the content of a header/footer. The default value for STR is "" which means there is no row footer provided by default. -row_header_value STR, -rhv STR the row header placed before each detail line. Refer to the description of -page_footer_value for the content of a header/footer. The default value for STR is "" which means there is no row header provided by default. -subcount SUBCOUNT_SPEC, -stt SUBCOUNT_SPEC the value of subcount is used to determine what columns subcounts should be generated for, when they should be generated, and what type of subcount should be generated. The default value for SUBCOUNT_SPEC is "" which means no subcounts should be generated for any columns. SUBCOUNT_SPEC can consists of one or more blank separated "triplets". The syntax of a triplet is "column_1,column_2{,reset | running}". column_1 is the name or number of the column that a subcount will be generated for. column_2 is the name or number of a column whose value should be watched to determine when to generate the subcount. When the value of this column being watched changes, the subcount is generated. If this column is a member of the "group" of rows defined via the -group option, it and all columns more major in the group will be watched for subcount generation. "reset" or "running" indicates the type of subcount desired. If neither is given then "reset" is the default. "reset" means the subcount counter will be reset to zero each time a subcount is generated. "running" means the subcount will not be reset to zero. If a subcount is requested on a column that is excluded, the subcount is also excluded from the page. An exception to this rule is when all columns have been excluded. Subcounts are provided in this case to allow reports consisting of some combination of counts, subcounts, totals, and subtotals only. -subtotal SUBTOTAL_SPEC, -stt SUBTOTAL_SPEC the value of subtotal is used to determine what columns subtotals should be generated for, when they should be generated, and what type of subtotal should be generated. The default value for SUBTOTAL_SPEC is "" which means no subtotals should be generated for any columns. SUBTOTAL_SPEC can consists of one or more blank separated "triplets". The syntax of a triplet is "column_1,column_2{,reset | running}". column_1 is the name or number of the column that a subtotal will be generated for. column_2 is the name or number of a column whose value should be watched to determine when to generate the subtotal. When the value of this column being watched changes, the subtotal is generated. If this column is a member of the "group" of rows defined via the -group option, it and all columns more major in the group will be watched for subtotal generation. "reset" or "running" indicates the type of subtotal desired. If neither is given then "reset" is the default. "reset" means the subtotal counter will be reset to zero each time a subtotal is generated. "running" means the subtotal will not be reset to zero. If a subtotal is requested on a column that is excluded, the subtotal is also excluded from the page. An exception to this rule is when all columns have been excluded. Subtotals are provided in this case to allow reports consisting of some combination of counts, subcounts, totals, and subtotals only. -total COLUMN_LIST, -tt COLUMN_LIST the value of -total is used to determine the columns totals should be generated for. The default value for COLUMN_LIST is "" which means no columns should have totals generated. COLUMN_LIST can be set to a list of column names or numbers. Totals are generated after the last detail line. If a total is requested on a column that is excluded, the total is also exlcuded from the page. An exception to this rule is when all columns have been excluded. Totals are provided in this case to allow reports consisting of some combination of counts, subcounts, totals, and subtotals only. Format Option Arguments (Specific Column Options): "column_id" in the following descriptions means the column name as defined in the open model/submodel, the number of the column in the LILA selection_expression, or a star name which is used to match column names. -alignment column_id STR, -al column_id STR the value of -alignment is used to determine the alignment of a column value within its display width. "column_id" specifies which column the alignment applies to. "STR" is the alignment mode and can be set to "center", "left", "right", "both", or "decimal N". The default value for STR depends upon the type of column selected via LILA. Character and bit strings default to left alignment, decimal data with a non-zero scale defaults to decimal point alignment, and all other data types default to right alignment. For decimal alignment, the decimal alignment position within the display width is given a default value. This alignment position can be changed by the user by specifying the value as "decimal N", where N is the character position within the display width where the decimal point should be aligned. The alignment mode of "both" specifies that the column value will be aligned to the left and rightmost character positions within its display width. Text is padded by insertion of uniformly distributed whitespace if necessary. -editing column_id STR, -ed column_id STR the value of -editing is used to specify additional editing that should be done to the column value before it is placed on the page. "column_id" specifies which column the editing applies to. The default value for STR is "" which means additional editing should not be done. Multics active functions and LINUS active requests are normally used to provide the additional editing. For example, to place commas and dollar signs in a column called "salary", the string "[pic $99,999v.99 [column_value salary]]" could be specified as the editing value. Refer to the description of the "column_value" request for its usage. -folding column_id STR, -fold column_id STR the value of -folding is used to determine what type of action should occur when a column value exceeds its display width. "column_id" specifies which column the folding applies to. The default value for STR is "fill" which means portions of the value which exceed the display width are moved down to the next line(s) until a correct fit is obtained. STR can also be set to "truncate" which means the column's value is truncated to fit in the display width and the truncation character(s) is placed at the end of the value to indicate truncation has occurred. -separator column_id STR, -sep column_id STR the value of -separator is used to separate a column from the next one following it. The last column on a line does not have a separator. "column_id" specifies which column the separator applies to. The default value for STR is two blanks. STR can be changed to any sequence of printable characters. -title column_id STR, -ttl column_id STR the value of -title is placed above the column at the start of each page if the -title_line option is set to "on". "column_id" specifies which column the title applies to. The default value of STR is the name of the column taken from the open model or submodel. In the case of expressions the default value for STR is "eN", where N begins at 1 and is incremented by 1 for each additional expression found in the select list. If the title isn't the same number of characters as the column's display width, the title is centered within the display width for its associated column. If the value of title is wider than the columns display width it is filled or truncated to obtain a correct fit, depending on it's parent column's folding action. -width column_id N, -wid column_id N the value of width is used to determine the display width for a column. "column_id" specifies which column the width applies to. The default value for N is the width for the column derived from the open model or submodel. The derived width will be the number of characters needed to contain the value after conversion from the data type found in the data base to character format. N can be set to any positive integer. Notes: At least one format option argument or "-reset" must be specified. Format option arguments and control arguments can be mixed freely in the request line, but a control argument cannot be placed in between a format option name and a format option value. For example, "sfo -page_width 80 -reset" is a valid request. "sfo -page_width -reset 80" is not valid. If a value is to be set that begins with a hyphen, the control argument "-string" must be given before the value to distinguish it from control arguments and format option arguments. Examples: set_format_options -width 1 25 set_format_options -title emp_name "Employee Name" set_format_options -reset -page_width 80 -page_length 60 set_format_options -page_footer_value "!!-[display_builtins page_number]-!!" set_format_options -page_header_value -prompt Enter -page_header_value. ![e date]!LINUS REPORT![e time]! !!!! !!--Page [display_builtins page_number]--!! . sfo -exclude exchange extension -width area_code 12 sfo -editing area_code "[fl ^a/^a-^a [clv area_code] [clv exchange] [clv extension]]" ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved