Skip redundant pieces

Chapter 6: Fill-in-the-blank (FIB) ARTS Forms

Last Revision: 02/23/06


Chapter Summary

This chapter will explain how Fill-In-the-Blank (FIB) forms are designed, and the FIB language that is used to create them. Chapter 3 covered the basic layout of FIB forms, which is recommended to be the first step in the ARTS degree design process. This chapter will cover the remainder of the FIB form design process.

FIB Form Structure

The basic structure of a FIB form was outlined in Chapter 3. Now, we will take a more detailed look at the FIB form structure, and how the different parts of the FIB form come together to form a powerful tool that can save you lots of time and energy when creating ARTS forms and reports.

Text

"Text" is the term used for the text that is printed when the ARTS form is printed. The text usually indicates what the school is, what the department the form is for, what the blanks contain, etc. Any text that is on the FIB form before the "$" and that doesn't contain the special characters listed below is automatically printed in the same location on the ARTS form as where you typed it on the FIB form.

Special characters

Special Characters are characters that tell the ARTS program to do something other than just print the characters on the ARTS form as ordinary text. The characters and their meanings are described below:

  • "`"(backwards apostrophe). This character is used to allow a line that is longer than 128 characters (normally continued on the next line in ARTS printing) to be printed on the same line. An example would be "This is an ` example", where "example" would be the text that goes beyond 128 characters on the line, and would exist on the next line on the FIB form. The ARTS program would go to the next line to read the text, but the printer would stay on the current line, and "This is an example" would all be printed on the same line. This character has replaced the tilde for this purpose.
  • "@"(Macro). This character is used to indicate the beginning of a special printing instruction. ARTS then looks at the character immediately following the macro character, and determines what the instruction is. Macro characters are also used for creating ARTS form Overlays (see "More About Macros" later in this chapter). .
  • "^"(carat). The "^" character is used to send instructions to the printer depending upon the letter or number immediately following it. This number or letter is a printer control sequence contained in the printer control file that will be used when the form is printed. An example of this using a common "Bold" is below:

    ^BGrades must be turned in by:^b______.

    You can also issue printer commands through FIB language formatting words, e.g. BOLDFACE, ITALIC, etc. These commands only affect the printing of the data that is placed in the blanks, however. Note that the "^B" is a common code used to change the text following it to boldface, and the "^b" is used to change the type back to normal type. The characters used for the printer control codes themselves do not take up any space when the text is printed, even though they are visible on the FIB form when they are typed in. For example, the phrase "my KU ^BGPA^b" will show up on the ARTS form when printed as simply "my KU GPA", with the word "GPA" printed in bold. Printer control codes that are assigned to numbers are usually used for font selection or other printer features that do not have an on/off status.

Blanks

Blanks contain the data that the FIB language tells ARTS to put in them, often depending upon the student for whom the ARTS form is being printed. The student's demographics, collective hours, courses used for requirements, and many other things are printed in these blanks. This makes the FIB form a very powerful tool for ARTS forms and reports. Blanks work by simply typing a set of "_" characters together in a desired location on the FIB form. ARTS keeps a running count of these blanks, and it looks for the FIB line number that corresponds to the blank number. The FIB line will instruct ARTS what to print in the blank, thus replacing the "_" characters with the needed information. For example, the FIB form below (Figure 6.2a) has three blanks--one each for Name, KUID, and GPA: Those blanks are referred to by the numbered FIB lines below the "$", and the information is put into those blanks accordingly. Figure 6.2b shows the resulting ARTS form, given the information JOE STUDENT, 123456, and 3.56 GPA.

SAMPLE ARTS FORM
Name: ___________________ KUID: ______
GPA: _____
$
001 NAME
002 ID
003 TOTALHRS: GPA

Figure 6.2a--Sample portion of a FIB form.

SAMPLE ARTS FORM

Name: Joe Student KUID: 123456
GPA: 3.56

Figure 6.2b--Sample ARTS form resulting from Figure 6.2a.

Note how the text "SAMPLE ARTS FORM" and the identifiers in front of the blanks (i.e. "Name:") were printed exactly as they were typed on the FIB form in Figure 6.2a. The blanks are now gone and replaced by the data that ARTS has retrieved from the student's information file.

More About Macros

The macro character must be followed by one of four codes, all of which are explained below:

  • @T. The "T" is a code for Transcript. This macro prompts ARTS to print a line of the student's transcript, which is the complete course listing in chronological order. The "T" character must be followed by a number up to six corresponding to the column number that the current transcript will occupy. The number of "@" lines within a given column must be at least three--seven to ten or more is recommended. For example,

    @T1
    @T1
    @T1
    @T1


    will print the following:

    FA92 Term: 3.20 Cum: 3.20
    COMS 0130 SPEAKR-AUDIENCE COM  3.00 B
    ENGL 0101 COMPOSITION          3.00 C
    MATH 0002 INTERMD MATHEMATIC   3.00&A
    PSYC 0104 GENERAL PSYCHOLOGY   3.00 A
    SPAN 0212 INTERMED SPANISH I   3.00 B

    Figure 6.1--Sample Transcript Macro.

    Even though the term contains six lines, one more than the number of "@T1" lines, it will not continue the same term on another column. Instead, ARTS will print the remainder of the current term below the end of the "@T1" lines. ARTS will not print in a column that doesn't contain all of the courses in a single term, so the columns should be as long as possible to prevent blank columns from appearing in your transcript listing. Be sure to allow at least 39 spaces between your transcript columns. NOTE: If you use the large transcript format by typing "***LISTING TRNSCRPT" in the first line of the FIB code, you will need to allow at least 59 spaces between transcript columns.
  • @N. The "N" character is the code for Explanatory Notes. These notes contain EFS memo entries and information explaining unusual situations or Actions. NOTE: See Chapter 7 for an explanation of how to enter EFS memos. A sample Explanatory Note would be:

    CNCLHRS 3.00 Add-on ttl hrs req


    The above Explanatory Note is used when a student's repeat hours exceed the requirement limit, and the hours are then added on to the total hours required value through an Action. This Explanatory Note is the most frequent type of note that will appear on ARTS forms. "@N" indicates the starting point for each one, and ARTS will print the next note in sequence when it encounters the next "@N". You must allow 39 characters for each Explanatory Note. NOTE: The Fib language word "NOTES" can be used for limited formatting of Explanatory Notes. For example, "NOTES BOLD" will bold all of the explanatory notes.
  • @C. The "C" character is the code that produces Comments on the ARTS form. Comments are produced by systems related to ARTS, such as the Suggested Schedule System, and are printed "as shown" on the ARTS form. Each time ARTS encounters a "@C", it will print the next comment in sequence. You must allow 39 characters for each comment.
  • @+. The "+" character is the code that tells ARTS not to proceed beyond this point in the form unless some of the transcript remains to be printed. It is typically used in front of an optional overflow page for long transcripts. The FIB command "MORE" is used to format this line.
  • Macros are special character sequences that are used to insert Transcripts ("@T1"), Explanatory Notes ("@N"), and other things. Macros are created by simply typing the character sequence in the given spot where you want the Transcripts or Notes to begin, making sure that you allow at least 39 characters of space on that particular line. A sample FIB form macro is displayed in Figure 6.3a below:

    SAMPLE ARTS FORM

    *******************NOTES*****************
    @N
    @N

    Figure 6.3a--Sample FIB form Explanatory notes section.

    This macro sets the position for ARTS to put any Explanatory notes, if they exist for this student, in this space. To set up an example, suppose that Joe Student has taken repeat courses that trigger an Action called "ADDON" within the "REPEAT" requirement that is supposed to add penalty hours to his total course hours. He has also gone over the hours limit in "ENGLISH" and triggered an Action called "NOTESAT", which forces the "ENGLISH" requirement satisfied. These Actions will now produce their corresponding Explanatory notes wherever ARTS sees the "@N" character sequence, preceded by the name of the requirement that produced the Action. The resulting ARTS form Explanatory note section is shown in Figure 6.3b:

    SAMPLE ARTS FORM
    *******************NOTES*****************
    REPEAT Add-on ttl hrs req
    ENGLISH force req satisfied

    Figure 6.3b--Sample ARTS form Explanatory note resulting from fig. 5.3a.

    NOTE: The Explanatory notes are printed in order of the Actions' occurrences, and that the requirement that caused the first Action is printed first. Explanatory Notes are also printed when a non-private memo is entered for the student in EFS. The subject line and the memo may print on these lines, depending upon what is specified in EFS. For more on EFS, see Chapter 8.

Atoms

Atoms are FIB language words that refer to the data that prints in the blanks. There are three kinds of Atoms--Singular, Multiple, and Global. Singular Atoms refer to a data name that does not need to be described further by a Modifier to be understood by ARTS. Multiple Atoms refer to data names that can contain many values, so they need Modifiers for ARTS to understand what you are referring to. To make things more clear, see Figure 6.4 below for samples of each type of Atom, and sample Modifiers that are typically used with them:

Type of Atom Atom Sample Data Example in FIB language
Singular ID 123456 ID
Singular NAME SMITH JOE NAME
Multiple TERM 3982 (Spring '98) NEXT TERM
Multiple COURSE ENGL 0101 FIRST COURSE
Global LISTING(transcript)(long transcript format) LISTING TRNSCRPT

Figure 6.4--Sample ARTS Atoms and Modifiers.

NOTE: Confused about what Modifiers are? See "Modifiers" later in this Chapter. The "ID" Atom refers to the student's KUID, and ARTS needs no Modifiers to find this (there is only one KUID per student). The same applies to "NAME". "TERM" and "COURSE" are another matter. The student has most likely taken many courses in more than one term, so ARTS needs a modifier to find a particular course or term to which the Atom is referring. Thus, "FIRST COURSE", for example, refers specifically to the first course in a list of courses that a student has taken within a given requirement. Global Atoms are special Atoms that refer to global values and variables within the FIB form. An example of a Global Atom would be "LISTING", which can be formatted to change the appearance of the transcript listing on the ARTS form. Refer to Appendix A for a complete list of Atoms and their definitions.

Modifiers

Modifiers are words that are used in conjunction with Atoms to form FIB phrases, much like adjectives go together with nouns to form a sentence. A few examples of Modifiers are "FIRST", "OVERALL", "MINIMUM", and "NEXT". Only one Modifier can be used per Atom in a phrase. "NEXT", for example, refers to the next item in a list of items that ARTS is using--like Majors, for example. If one were to use the FIB phrase "NEXT PLAN", then ARTS will go down the list to the next available plan within the student's data, if there is one (ARTS ignores this line if the student only has one plan). See Appendix A in this manual for a complete listing of available Modifiers.

Local and Global Formatters

NOTE: The asterisks and syntax of FIB commands will be explained later in this Chapter, so you can ignore them for now.

Formatters

Formatters are much like Modifiers, except that they don't describe what to print, but how to print it. Formatters are used after Atoms, whereas Modifiers are used before them. You can use many Formatters after one Atom. Some examples of Formatters appear below in Figure 6.5.

Formatter Description Example
ITALIC Print field in italics COURSE ITALIC
TERMFORM Converts "3982" to "SP98" format TERM TERMFORM
ZEROSUPP Suppresses extra zeroes in a number HOURS ZEROSUPP
STORE1, STORE2 Saves a value or the results of a calculation in DATA1, DATA2 HOURS + CUM-HRS STORE1

Figure 6.5--Sample Formatters and their FIB language usage.

There are generally two uses for Formatters: Local and Global. Local formatters apply to Local Atoms that refer to one piece of data, like "ID". Global formatters apply to Global Atoms that refer to many pieces of data, like "FIELDS" or "LISTING". Global formatters, once applied to a Global Atom, affect the whole ARTS form the rest of the way whenever the Global Atom is referenced. For example, the line

*** FIELDS ITALIC

changes all data that is placed in blanks after this command to italic typeface. If you wish to change the fields back to normal after a certain number of them have been printed, simply use the line

***FIELDS NORMAL

to return the printing to normal typeface for the rest of the form. A complete list of available formatters can be found in Appendix A of this manual.

Phrases

Phrases are Atoms alone or combined with Modifiers and/or Formatters, much like sentences are composed of different types of words. Sample Phrases are listed in Figure 6.6 below:

Phrase type Example
Atom GPA
Modifier-Atom FIRST COURSE
Atom-Formatter(s) TERM TERMFORM
Modifier-Atom-Formatter(s) NEXT COURSE BOLD

Figure 6.6--Phrase types and sample phrases.

FIB Statements

FIB Statements are the Statements that make things happen with Phrases on the FIB form. They are composed of Conditions, Relations, and References. FIB Statements are what gives ARTS much of its power, in that you can use them to print data into a blank if a certain condition is met, and specify exactly what you want printed and how it should be printed.

FIB Lines

Before we get into FIB Statements, a discussion of the standard FIB line is in order. FIB lines, which are below the "$"symbol and after blanks and text, have one of the following forms:

Statement Type Example
nnn statement 001 NAME
bbb statement 001 "OK" IF TESTREQ: SATISFIED ELSE NEXT CRS
$ statement $ --This line is a comment.---
*** statement *** GOTO "STUFF" IF DEGREE = "BA"

Figure 6.7--Sample FIB statement types and Examples.

"nnn" FIB Lines start with numbers that must correspond to a blank above the first "$" line. A sample is shown below in Figure 6.8 below:

Sample ARTS Form

Name:______________________________
$ Comments can be placed here.
001 NAME

Figure 6.8--Sample ARTS form with "nnn" and "$" lines.

In the above example, the student's name is used as the first line on the FIB form, so the corresponding FIB line "NAME" must exist below the "$" character, and it must be preceded by a "001" for "NAME" to be used in the first blank.

"bbb" lines start with three spaces (plus an extra space before the Statement begins, making it four total), and they signify a continuation of the previous FIB line. They are handy to use if a FIB line is very long, and you wish to continue it on the next line. NOTE: A FIB Statement can continue across several lines, but it may not contain more than 160 characters or 25 separate words. An example of this is shown in Figure 6.7 above.

"$" lines serve two purposes. They serve as dividers between the blanks and text and the FIB Statement lines, and comments can also be placed on these lines. An example of this type of line is Figure 6.8, where the "$" line is placed with a comment next to it above the "001" FIB line. NOTE: The "$" line must be used at least once in a FIB form for ARTS to read the FIB Statements after it properly.

"***" lines are lines that do not apply to a specific FIB blank. They are often used for calculations, Meta-Statements or References, and they are often used to set up for the next "nnn" line. An example of a "***" line is shown in Figure 6.7 above.

Meta-Statements

Meta-Statements are used to deploy a certain FIB form if a condition is met by employing the command "USE", skip a number of FIB lines using the command "GOTO", or skip part or all of a student's FIB form using "SKIP".

References

References are basically phrases or degree requirements that are referred to or manipulated in some way. Consider References to be one step above phrases in the FIB language ladder; sometimes they are just phrases. Possible forms for References are listed in Figure 6.9 below:

Reference Form Example
phrase NAME
requirement: phrase MATH: FIRST COURSE
degree:requirement: phrase CALCS:KUHRS: HOURS
THE reference FOR condition THE NEXT TEST FOR TEST "ACT"
reference op reference MATH: HOURS + ENGLISH: HOURS

Figure 6.9--Sample References & Examples.

As shown above, a Reference can refer to a FIB phrase, requirement, degree name, or other variable within ARTS. For example, the phrase "MATH: FIRST COURSE" refers to the "MATH" requirement in the degree, and the first course the student took to satisfy it. The "degree:requirement: phrase" is referring to a requirement within an external degree that was pulled in by the current degree in processing. In Figure 6.9, "CALCS" is the external degree, and "KUHRS" is the requirement within "CALCS" that is being used here. An example of referencing an external degree is shown in Fig. 6.10 below:

Sample ARTS Form

014 MATH: FIRST CRS
015 CALCS:TOTALHRS: GPA
016 BABGS:MATH: NEXT CRS

Fig. 5.10--Sample external degree reference.

In the above figure, the degree currently being used is "BABGS". The degree "BABGS" has an external degree called "CALCS" linked to it in the tree (see Chapter 3 on how to link an external degree within another degree tree). The requirement "MATH" is referred to first, then the external degree "CALCS" is used to print the GPA for the requirement "TOTALHRS" within the "CALCS" degree. After "CALCS:TOTALHRS" is used, the FIB needs to refer back to the regular degree "BABGS". NOTE: There must be a space between the requirement's colon and the phrase after it. If you are referring to a requirement from another degree, no space is required between the degree:requirement reference.

Relations

Relations are FIB Statements that relate two FIB References, using the form reference op reference, where "op" is one of the following relational operators: These Atoms are defined in Appendix A of this manual.

Operator Meaning FIB word equivalent
= equal to IS
<> not equal to NOT
< less than BELOW
> greater than ABOVE
<= less than or equal to (none)
>= greater than or equal to (none)
CONTAINS contains (n/a)
EXCLUDES excludes (n/a)

Figure 6.11--Relational Operators, Meanings, and their FIB Equivalents.

There are a few special Relation Atoms that do not need Relational Operators or second References. They are SATISFIED, MORE, SAMEDEPT, and DIFFDEPT. NOTE: When you relate ARTS non-numeric data (including session) to an Atom, you must use double quotes.

Conditions

A condition is part of a statement that returns a value of true or false. Conditions take one of the following three forms shown in Figure 6.12(with example to the right):

Condition Type Example
relation SESSION = "3819"
relation AND relation CUM-GPA > 3.50 AND HOURS > 10
relation OR relation PLAN = "UNDECIDEDA" OR INITTERM = "4039"

Figure 6.12--Condition Types and examples.

True or False

All FIB lines are either true or false. A statement containing a single Atom is true if there is any data in the Atom. For example, ID will always be true because every KU student has a KUID, but for other atoms such as STREET, which may not be available from the ARTS processing, the value would be false if the street address were not available for the student currently being processed. If the statement is false, ARTS will fill the blank in with characters designated as null characters, i.e. blank spaces. For example, if blank 001 was 20 characters long and the student's street was not available,

001 STREET

would produce 20 blank spaces. You could tailor the statement so that the blank spaces would not have to be printed by changing it to

001 STREET ELSE "No Street Available"

Singular/Multiple Atoms

There is only one "LEVEL" or "NAME" for a student, so these are called Singular Atoms. However, a student may have a number of test scores, courses, and majors, so Atoms referring to these things are called Multiple Atoms. A Multiple Atom must be further specified for a particular piece of data to be produced. This specification is done by either Modifiers or Conditions. An example of a Modifier with an Atom is:

001 FIRST PLAN

PLAN is a Multiple Atom and can refer to any of the plans that the student may have designated on his record. Another modifier is:

001 NEXT PLAN

This produces the next plan in the student's record, or is false if there isn"t another degree. If this is the first mention of PLAN, then this is identical to FIRST PLAN. If there isn"t another degree, you can have ARTS print "none" in the blank instead of just blank spaces by using this line:

001 NEXT PLAN ELSE "none"

Sometimes only a specific one of a multiple field is desired. The following line will print the degree only if it is a BA plan, otherwise it will print blanks:

010 THE PLAN FOR PLAN CONTAINS "-BA"

This differs from

010 PLAN IF PLAN = "ENGL-BA"

because the latter only looks at one degree (the last one specified, or the first if none have been specified) while the former will look through all of the student's degrees and print the first one found that matches the condition. NOTE: The ARTS word "THE" means "Go and find it". Otherwise, ARTS will go with what has been specified on the previous line(s). To print the second plan that matches the condition, user the following:

010 THE SECOND PLAN FOR PLAN CONTAINS "-BA"

Calculations and Other Functions

ARTS has many powerful features and special functions that allow you to customize FIB forms and reports to meet your needs. Calculations and Special Functions are some of those features. Calculations are helpful when you are using them for ARTS forms or reports. They can be performed using the basic mathematics operators, "+", "-", "*" (multiplication), "/" (division), and "//" (modulus). These functions, along with others, are demonstrated in Figure 6.13:

*** COUNTER // 50
*** HEADING IF FIELD = 0
*** NEXT COUNTER
*** MATH: POINTS + 30
001 FIELD IF MATH: POINTS > 50
*** TOTALGPA: HOURS + REPEAT: HOURS STORE1
*** ENGLISH: HOURS " MATH: HOURS STORE2
002 DATA1/DATA2

Figure 6.13--Sample ARTS calculations.

Only one calculation per FIB line is recommended. ARTS also has a few Atoms used in Fig. 5.13 that help make calculations easier to program and debug, which are FIELD, STORE1, STORE2, DATA1, and DATA2. FIELD is the ARTS reference to the data produced on the previous FIB line. STORE1 and STORE2 can be used immediately after a calculation is performed to store the result of a calculation in DATA1 and DATA2, respectively. For the purposes of this example, let us assume the following values: COUNTER is 50, MATH: POINTS happens to be 25, TOTALGPA: HOURS is 19, REPEAT: HOURS is 16, ENGLISH: HOURS is 30, and MATH: HOURS is 25. We will now dissect each line, calculation by calculation.
Line 1 uses the "Modulus" function by dividing COUNTER by 50 and finding the remainder of the result, which would in this case be 50 // 50 = 0 (when you divide 50 by itself, you get one with remainder zero, so the answer is zero). NOTE: "Modulus" is the remainder when two numbers are divided together, e.g. "5 // 2 = 1" and "4 // 2 = 0".
Line 2 takes the result from Line 1 (FIELD), which is zero, and calls the function HEADING after testing the condition IF FIELD = 0, which is true in this case.
Line 3 advances the special ARTS variable COUNTER by one, so COUNTER is now equal to 50 + 1 = 51. These first three lines are helpful for making reports, which typically print a HEADING every time each page is full. In these lines, if the COUNTER has reached 50 or an even multiple of 50, the HEADING will print. One can gauge the number of rows of data that can print before a new page is needed, and design these lines to print a fresh header at the top of each new page. Headings will be covered later in this section.
Line 4 calculates MATH: POINTS + 30, which is 25 + 30 = 55. POINTS refers to Grade Points within a given MATH requirement.
Line 5 takes the value from the previous line inside of the variable FIELD, which has now been changed by ARTS to be 55, and prints it into blank 001 on the FIB form IF MATH: POINTS is greater than 50. MATH: POINTS is defined above as 25, so the value is not printed"null characters (the default is blank spaces) are printed instead. NOTE: The typical null character that ARTS uses for FIB forms is a blank space. The user can modify this, and how to do it will be explained later in this Chapter.
Line 6 takes the values TOTALGPA: HOURS and REPEAT: HOURS, adds them together, and places them in STORE1. In this case, STORE1 should equal 19 + 16, or 35.
Line 7 subtracts MATH: HOURS from ENGLISH: HOURS and places the result in STORE2, which is 30 " 25 = 5.
Line 8 divides DATA1 by DATA2. DATA1 and DATA2 are the reference names used for the values that were placed in STORE1 and STORE2. The result that is placed in blank number two (002) is 35 / 5 = 7.
ARTS has other special functions that you can use that are described below:

  • SAVEDEPT. This function causes the department to be saved so that the next lines can refer to it without having to repeat the DEPT Atom. It can then be used to compare course departments by using the conditions SAMEDEPT or DIFFDEPT. It will be saved until the next FIB statement uses it to save a different DEPT. For example, the lines

    *** ENGLISH: FIRST COURSE SAVEDEPT
    *** NEXT COURSE
    001 "ENGLISH" IF SAMEDEPT ELSE "No English"


    will print "ENGLISH" if the next course's department happens to be the same as the saved department, which is the department of the first course on the list within the ENGLISH requirement.
  • POOL. The POOL statement can be used to combine the course lists in several requirements into one list. You then need to use the POOLED reference to print the courses in the pooled course list. The syntax needed for this statement is illustrated in the sample lines on the next page: Note that a space must appear between the Atoms. It is also helpful to place a space within the quotes for readability.

    *** POOL "MATH" "ENGLISH"
    001 POOLED FIRST COURSE
    002 NEXT COURSE


    The above statements pool the MATH and ENGLISH requirements" course lists, then print the first two courses in the list.
  • EMPTY. The EMPTY statement is used to change the null character that is put into FIB blanks when their corresponding lines produce no data. By typing the line

    *** EMPTY "+"

    all of the FIB lines after this line that produce no data will force ARTS to print "+"'s in the blanks instead of blank spaces. You can re-use this line to change the null characters as often as necessary within your FIB form.
  • SORTAREA, SORTDEPT, SORTTERM. These Atoms allow you to rearrange the ordering of courses within a requirement's course list. Normally, courses appear in the list in chronological order, but sometimes it is useful to order them by frequency of department or area. SORTTERM is used to sort the courses in the current requirement into chronological order. SORTDEPT is used to sort the courses into descending order according to frequency of department, so the most courses that share the same department are listed first. SORTAREA is the same as SORTDEPT, except that it uses frequency of area instead of department.

Appending Atoms

Two or more Atoms can be appended within the same FIB line simply by placing them next to each other. For example:

001 "ID: " ID
002 "MATH is " MATH: FIRST COURSE ELSE "none"

will print (given that the KUID is 333333 and the course is MATH 0102):

ID: 333333 MATH is MATH 0102

Form Headings

When an ARTS form is used to produce a report having multiple students on a page and one line per student, e.g. a listing of names and GPA's, a special FIB syntax can be used to put a standardized heading at the top of each page. This heading can consist of up to five lines, which are defined with the HEADER command at the beginning of the FIB lines:

*** HEADER Test FIB Report Date: MM/DD/YY
*** HEADER
*** HEADER ID Name GPA Page:###
*** HEADER ----------------------------------------------


No quotes are necessary, and no other FIB commands within the FIB line are recognized after HEADER is used. The printer controls ^B and ^b work the same as they would on the regular part of the FIB form. The MM/DD/YY will be automatically replaced with the current date, and the ### will be replaced with the current page number. The HEADER lines must be non-printing (***) lines. To print the header, the HEADING command is used. Usually, it will be accompanied with a condition to test for the end of the page, as in the next lines of code:

*** COUNTER // 50
*** HEADING IF FIELD = 0
*** SKIP IF GPA < 3.0
*** NEXT COUNTER


As you may recall, COUNTER is simply the all-purpose counter. "//" is the MOD operation that is zero if the remainder of the operation COUNTER / 50 has no remainder. HEADING is then used to print the HEADER lines if FIELD (which refers to the results of the previous calculation, or COUNTER // 50) is zero. SKIP IF GPA < 3.0 tells ARTS to SKIP this ARTS form (skip the current student) if the GPA is found to be less than 3.00. NEXT COUNTER simply advances the counter by one. If a list of students is processed with these FIB commands, the counter will advance one each time a student is processed. FIELD will become zero whenever an even multiple of 50 students is processed, therefore the HEADER lines will be printed every 50 students processed. This heading feature is very crude, but is will allow standardized headings to be used on an ARTS form. NOTE: Only one heading can be defined on a form, and they are limited to 128 characters in width (including any printer control characters used).

ARTS Form Overlays

Overlays can be used within the ARTS program to create ARTS forms within ARTS forms. This can be useful if a school has many majors/plans, and it would be extremely time-consuming to create a single separate ARTS form for each major/plan code. Instead of this method, a school can create one standard ARTS form for all majors with basic, necessary information on it that is pertinent to all majors or plans. You can then create a small form for each major/plan, and it is used within the regular ARTS form, providing the student's major/plan code matches up with its entry on the degree map. Figure 6.14 shows a typical ARTS form overlay. There are two ways ARTS uses to determine which initial ARTS form to use when printing. If you choose to force a form (see Chapter 2 for how to force an ARTS form), ARTS will simply print with the form you are forcing. If you let ARTS choose the form by using degree maps, ARTS will go to the degree map specified during processing, look up the student's major or plan code in the degree map, and process with the form determined by the degree map. Once the initial form has been printed, there are two ways in which the next form for the same plan for the same student will be printed. The first form can specify the next form with a FIB language "USE" statement. Otherwise, if area, major, or minor processing was invoked during transcript processing, the form specified for the area/major/minor in the degree map file will be used. Using the example in Figure 6.14, The middle section of the FIB form with the "@OM" set of characters in the upper left corner is the overlay. Up to three overlays can be used for each student plan. The Figure shows a student whose plan is ENGLA-BA, and ARTS finds their major form by looking at the Degree Map. The overlay is then placed on the FIB form beginning at the "@OM" position. It is possible that the first form that is overlaid will itself have a forms overlay area, and that the next will in turn have another (this is called "nesting"). The total number of overlays per form, however, cannot exceed three.

Figure 6.14--Sample ARTS form with Major Form Overlay.

The FIB form uses the Degree Map to find the correct overlay, which is inserted into the FIB form space where the "@OM" is. In this example, the "ENGL" overlay is pulled because the student's plan is "ENGLA-BA".

The "@" in the "@OM" indicator marks the upper left hand corner of the form to be overlaid. The area to be overlaid is a rectangle that is normally left blank on the initial form, but may be used to document the form (such as a message like "THE MAJOR GOES HERE") since it will be overwritten by the overlay. Note, however, that if the overlay form is not present, either because ARTS cannot find it, or because major/minor/area processing was not turned on, then the overlay area is printed without the overlay form. The following are equivalent:

@OM = major
@ON = minor/concentration
@OA = area/concentration

You can use either @OA to represent the area overlay form, for example. Typically, the overlays are used for areas, majors, and minors. If you are printing three forms in order, and one of the forms is not found, then it will still increment the overlay number and print the remaining forms that are found. For example, if your major form is missing (@OM), and you successfully print the area form(@OA), then it will go to the next overlay form, and print the minor form where it should go anyway. Only the major form (@OM) will be missing.

If you are using lines that overlay lines containing printer control codes, they may not align properly. This is because printer control codes take up space on the original FIB form, but do not necessarily appear on the printed ARTS form. Overlays can exist anywhere on an ARTS form, just make sure there is enough room on the main FIB form before using them, and clearly label them to make debugging easier.

Implementing ARTS Form Overlays

In order to implement ARTS form overlays, you need to do three things. In this example, we will use a Majors configuration:

  1. Configure the degree map so that it has "M" lines as well as "D" lines.
  2. Configure the requirements so that they have a *MAJOR node. This will pull in the student's corresponding major ARTS form. Make sure the catalog matches the catalog you have your "majors" requirements in.
  3. Add the "@OM" line to the FIB so it knows where to put the overlay.