home *** CD-ROM | disk | FTP | other *** search
- ; Script: GRAPHS.SC
- ; Version: 3.5
- ; Date: 23 March 1990
-
- ; This script defines the procedures that display different type of graphs.
- ; DoGraph is the controlling procedure.
-
- PROC GraphMenu()
- PAINTCANVAS ATTRIBUTE 31 0, 0, 24, 79 ; change the canvas color to white on blue
- STYLE ATTRIBUTE 30
- @ 5, 0
- TEXT
- ╔══════════════════════════════════════════════════════════════════════════════╗
- ║ ░░░░ STOCKS APPLICATION ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ GRAPH MENU ░░░░░░ ║
- ╟───────────────────────╥──────────────────────────────────────────────────────╢
- ║ StockPrices ║ Current, low, high prices in High Tech portfolio. ║
- ╠═══════════════════════╬══════════════════════════════════════════════════════╣
- ║ PortfolioComposition ║ High Tech stocks' contribution to portfolio value. ║
- ╠═══════════════════════╬══════════════════════════════════════════════════════╣
- ║ StockOwned ║ Number of shares of stock owned, by portfolio. ║
- ╠═══════════════════════╬══════════════════════════════════════════════════════╣
- ║ PortfolioValue ║ Total value of each portfolio. ║
- ╠═══════════════════════╬══════════════════════════════════════════════════════╣
- ║ MainMenu ║ Exit Graph menu and return to Main menu. ║
- ╚═══════════════════════╩══════════════════════════════════════════════════════╝
- ENDTEXT
- PAINTCANVAS ATTRIBUTE 78 6, 7, 6, 24
- PAINTCANVAS ATTRIBUTE 94 6, 61, 6, 70
- STYLE
- ENDPROC
-
- PROC SaveOldGraph(Mode)
- Private Mode
- IF Mode = "Begin" ; begin the graph
- THEN
- IF NOT ISFILE("ZZZZGR1.G")
- THEN
- MENU {Image} {Graph} {Save} {ZZZZGR1} ; save the current graph setting
- ENDIF
- StartGraph = True
- ELSE
- MENU {Image} {Graph} {Load} {ZZZZGR1} ; end the graph and load
- ; old current graph setting
- MENU {Tools} {Delete} {Graph} {ZZZZGR1} {OK} ; delete the old graph
- ENDIF
- ENDPROC
-
- PROC CLOSED DoGraph()
- PRIVATE Y
- CURSOR OFF
- StartGraph = False
- WHILE (True)
- CANVAS OFF ; turn canvas off to prevent flashing
- CLEAR
- RESET
- GraphMenu() ; print main Graph menu box
- CANVAS ON ; turn Canvas back on with menu
- SHOWMENU
- "StockPrices" :
- "Current, low, and high prices for High Tech portfolio stocks.",
- "PortfolioComposition" :
- "Pie chart showing High Tech stocks contributions to portfolio value.",
- "StocksOwned" :
- "Number of shares of each stock owned, by portfolio.",
- "PortfolioValue" :
- "Total value of all portfolios.",
- "MainMenu" :
- "Exit Graph Menu and return to Main Menu."
- TO GraphChoice
-
- SWITCH
- CASE GraphChoice = "MainMenu" OR GraphChoice = "Esc" :
- IF StartGraph
- THEN SaveOldGraph("End")
- ENDIF
- CANVAS OFF ; turn the canvas off to avoid
- RETURN ; flickering when return to MainMenu
- CANVAS ON ; now, turn the canvas back on
- CASE GraphChoice = "StockPrices" :
- SaveOldGraph("Begin")
- STYLE ATTRIBUTE 31
- @ 19, 1
- ?? FORMAT ("W78,AC", "Query in progress, one moment please...")
- STYLE
- Graph1()
- CASE GraphChoice = "PortfolioComposition" :
- SaveOldGraph("Begin")
- STYLE ATTRIBUTE 31
- @ 19, 1
- ?? FORMAT ("W78,AC", "Query in progress, one moment please...")
- STYLE
- Graph4()
- CASE GraphChoice = "StocksOwned" :
- SaveOldGraph("Begin")
- STYLE ATTRIBUTE 31
- @ 19, 1
- ?? FORMAT ("W78,AC", "Query in progress, one moment please...")
- STYLE
- Graph3()
- CASE GraphChoice = "PortfolioValue" :
- SaveOldGraph("Begin")
- STYLE ATTRIBUTE 31
- @ 19, 1
- ?? Format ("W78,AC", "Query in progress, one moment please...")
- STYLE
- Graph2()
- ENDSWITCH
- WHILE (CHARWAITING()) ; get all extra keystrokes before
- Y = GETCHAR() ; returning to selection menu
- ENDWHILE
- ENDWHILE
- ENDPROC ; DoGraph
-
- PROC CLOSED Graph1() ; graph for Stockprices Menu
- ; Graph #1: Low, high, current (bar, marker, and override) GRAPH1.G
- PRIVATE QOrder
- MENU {Image} {Graph} {Load} {Graph1} ; load in the Customize graph
- CLEARALL ; clear all tables off workspace
- QOrder = QueryOrder() ; save old QueryOrder to restore later
- IF QOrder = "TableOrder"
- THEN SETQUERYORDER IMAGEORDER ; set new QueryOrder to ImageOrder
- ENDIF
- QUERY
-
- Price | Ticker | Price | Low | High |
- | CHECK _Tic | CHECK | CHECK | CHECK |
-
- Holding | Portfolio | Symbol |
- | High Tech | _Tic |
-
- ENDQUERY
- WHILE NOT CHARWAITING()
- SingleDoFeed() ; Check to see if the user is on network
- DO_IT! ; Yes, do the query and graph
- ; No, simulate the real-time changes
- MOVETO [Price] ; move to a numeric field for graph
- GRAPHKEY ; make the graph
- ENDWHILE
- G = GETCHAR() ; gobble up the keystroke
-
- IF QOrder = "TableOrder"
- THEN SETQUERYORDER TABLEORDER ; restore the old QueryOrder
- ENDIF
- CLEARALL ; clear all tables off workspace
- ENDPROC ; Graph1()
-
- PROC CLOSED Graph2() ; Graph for PortfolioValue Menu
- ; Graph #2: Total value of each portfolio (3-D bar) GRAPH2.G
- MENU {Image} {Graph} {Load} {Graph2} ; Load Customize graph
- WHILE NOT CHARWAITING()
- CLEARALL ; clear all tables from workspace
- PortPric() ; do a first query to get share price from Holding.sc
- SingleDoFeed() ; check to see if the user is on the network
- DO_IT! ; yes, do the query and graph
- ; no, simulate the real-time changes
- CLEARALL ; clear workspace
- PortSum() ; do a second query for total in each portfolio
- DO_IT!
- MOVETO [Total Share Price] ; move to numeric field for grah
- GRAPHKEY ; make the graph
- ENDWHILE
- G = GETCHAR()
- CLEARALL
- ENDPROC ; Graph2
-
- PROC CLOSED Graph3() ; graph for StocksOwned menu
- ; Graph #3: Use crosstab table to graph (stacked bar) GRAPH3.G
- PRIVATE QOrder
- MENU {Image} {Graph} {Load} {Graph3} ; Load Customize graph
- CLEARALL ; clear tables from workspace
-
- QOrder = QUERYORDER() ; save old QueryOrder to restore later
- IF QOrder = "TableOrder"
- THEN SETQUERYORDER IMAGEORDER ; set new QueryOrder to ImageOrder
- ENDIF
- QUERY
-
- Holding | Symbol | Portfolio | Shares |
- | CHECK | CHECK | CHECK |
-
- ENDQUERY
- DO_IT!
- MOVETO [Symbol] ; move to Alpha field for crosstab
- CROSSTABKEY ; do a sum CrossTab by default
- GRAPHKEY ; make the graph
- G = GETCHAR() ; gobble up the keystroke
- IF QOrder = "TableOrder"
- THEN SETQUERYORDER TABLEORDER ; restore back the old QueryOrder
- ENDIF
- CLEARALL
- ENDPROC ; Graph3
-
- PROC CLOSED Graph4() ; Graph for PortfolioComposition Menu
- ; Graph #4: Stock Contribution (Pie chart) graph4.g
- MENU {Image} {Graph} {Load} {Graph4} ; Load Customize graph
- CLEARALL ; clear tables from workspace
- QUERY
-
- Price | Ticker | Price |
- | CHECK _tic | _p |
-
- Holding | Portfolio | Symbol | Shares |
- | High Tech | _tic | _sh, CALC _sh*_p AS Total Value |
-
- ENDQUERY
- WHILE NOT CHARWAITING()
- SingleDoFeed() ; check to see if the user is on the network
- DO_IT! ; yes, do the query and graph
- ; no, simulate the real-time changes
- MOVETO [Total Value] ; move to numeric field for graph
- GRAPHKEY ; make the graph
- ENDWHILE
- G = GETCHAR() ; gobble up the keystroke
- CLEARALL ; clear all tables off workspace
- ENDPROC ; Graph4
-