* Input: GRAPH.NUM.SELECTED Used to calculate scaling factor.
* GRAPH.IDX Used to compare with scaling factor.
* GRAPH.TITLE Used to print a title at the top of the page.
* GRAPH.CLEAR Used to clear the part of the screen you
* want cleared.
* 1. Must use following inserts:
*
* $INSERT I_COMMON FROM UT.INSERTS
* $INSERT I_GRAPHIC_CHAR FROM UT.INSERTS
* $INSERT I_BAR.GRAPH FROM CORE.INSERTS
*
* 2. GRAPH.NUM.SELECTED must be set to the total number of items
* that the bar graph is being run for.
*
* 3. GRAPH.TITLE must be set. (name of the Progress Bar)
*
* 4. GRAPH.CLEAR must be set. This should be set to how much
* of the screen you wish to clear. i.e. @(-1) for the screen
* to be completely clear at the start.
*
* 4. Must use GOSUB INIT.BAR.GRAPH before the loop
*
* 5. GRAPH.IDX must be set somewhere in the process loop and should
* be set before GOSUB UPDT.BAR.GRAPH.
*
* 6. GOSUB UPDT.BAR.GRAPH should be somewhere in the main process loop.
*
* 7. There are two ways to finish the bar graph.
*
* a) GOSUB FINI.BAR.GRAPH
* (The program controls whether or not to leave the
* final statistics on the screen.)
*
* b) GOSUB FINI.BAR.GRAPH.PAUSE
* (This routine will pause after printing the final statistics.)
*
* You have to turn off "USE BAR GRAPH" on the BGP (batch global parameters) screen to manually create bargraphs
* Sub graphs are done the same way as above just with slightly different commands as illustrated below
* Note: graphs will not update correctly if HUSH is turned on when update to graph is called!
Example:
* Inserts: required
$INSERT I_COMMON FROM UT.INSERTS
$INSERT I_GRAPHIC_CHAR FROM UT.INSERTS
$INSERT I_BAR.GRAPH FROM CORE.INSERTS
$INSERT I_SUB.GRAPH FROM CORE.INSERTS
* Set or calculate max size of the graph here:
X.GRAPH.SIZE = 30
* Required, Main progress bar
* I do not believe you can change the Title/num selected without creating a new graph, clearing the correct stuff,
* re-initing a graph, etc. Probably not worth doing. Use subgraphs and graphs if you have need of a mutable graph.
GRAPH.TITLE="Progress Bar Title"
GRAPH.NUM.SELECTED=X.GRAPH.SIZE
GRAPH.IDX=0
GRAPH.CLEAR=@(-1)
GOSUB INIT.BAR.GRAPH
*Required IF you are using sub bar
SUB.GRAPH.NUM.SELECTED=@SYSTEM.RETURN.CODE
SUB.GRAPH.TITLE = "Subgraph Title"
SUB.GRAPH.IDX=0
GOSUB INIT.SUB.GRAPH
* Insert your code here.
* when you want to update the Bar count, do the following two lines:
* (note: I haven't tried counting down/backwards, I would suggest not doing so just from a design perspective)
GRAPH.IDX=*your number here
GOSUB UPDT.BAR.GRAPH
*If you want to update the sub-bar:
SUB.GRAPH.IDX=*Your number here
GOSUB UPDT.SUB.GRAPH
* finish subgraph after you are done processing the subunit (don't wait until entire process is done,
* I believe you need to call FINI.SUB.GRAPH or FINI.SUB.GRAPH.PAUSE every time you use the subgraph)
GOSUB FINI.SUB.GRAPH
* finish main graph, can use FINI.BAR.GRAPH or FINI.BAR.GRAPH.PAUSE, see documentation above
GOSUB FINI.BAR.GRAPH