home *** CD-ROM | disk | FTP | other *** search
- '***********************************************************************
- ' SaleDemo.rlz
- '
- ' Realizer User's Guide Program
- '
- ' Copyright ⌐ 1991-1992 Computer Associates International, Inc.
- ' All rights reserved.
- '
- '***********************************************************************
-
- FileImport("SALEDEMO.DAT", _Realizer, _Named)
-
- PROC MakeNameList(SalesPerson)
- NumberPeople = EndValid(SalesPerson)
- FOR k = 1 TO NumberPeople
- FirstName = Instr(SalesPerson[k], " ")
- IF FirstName > 0 THEN
- SecondName = Instr(SalesPerson[k], " ", FirstName + 1)
- IF SecondName > 0 THEN
- LastNames[k] = Mid$(SalesPerson[k], SecondName + 1)
- ELSE
- LastNames[k] = Mid$(SalesPerson[k], FirstName + 1)
- END IF
- ELSE
- LastNames[k] = SalesPerson[k]
- END IF
- NEXT k
- END PROC
-
- FUNC PersonTotal(PersonID, ..)
- LOCAL Matches, PersonAmounts
-
- IF QNOptParams = 1 THEN
- Matches = (Sales.Seller = PersonID) AND (Sales.Item = QOptParam(1))
- ELSE
- Matches = (Sales.Seller = PersonID)
- END IF
- PersonAmounts = Mask(Sales.Amount, Matches)
- RETURN Sum(PersonAmounts)
- END FUNC
-
- FUNC GetData(PersonID, .. )
- LOCAL ItemID, k, Result
-
- IF QNOptParams = 1 THEN
- ItemID = QOptParam(1)
- ELSE
- ItemID = 0
- END IF
-
- IF PersonID = 0 THEN
- IF ItemID = 0 THEN
- FOR k = 1 TO EndValid(SalesPerson)
- Result[k] = PersonTotal(k)
- NEXT k
- ELSE
- FOR k = 1 TO EndValid(SalesPerson)
- Result[k] = PersonTotal(k, ItemID)
- NEXT k
- END IF
- ELSE
- IF ItemID = 0 THEN
- FOR k = 1 TO EndValid(Name)
- Result[k] = PersonTotal(PersonID, k)
- NEXT k
- ELSE
- Result[1] = PersonTotal(PersonID, ItemID)
- END IF
- END IF
- RETURN Result
- END FUNC
-
- PROC MakeChart2(PersonID)
- ChartNew(20; SalesPerson[PersonID])
- ChartBar(GetData(PersonID); 10)
- ChartControl(_Show)
- END PROC
-
- PROC ChartProc1(Params)
- LOCAL x, y, Location, PersonID
-
- ChartSelect(Params[_ItemNum], Params[_FormNum])
- IF Params[_Invoke] = _Click THEN
- x = Params[_XPos]
- y = Params[_YPos]
- Location = ChartQPtInfo(x, y)
- PersonID = Round(Location[1])
- MakeChart2(PersonID)
- END IF
- END PROC
-
- PROC SheetProc1(Params, Column)
- SheetSelect(Params[_ItemNum], Params[_FormNum])
- IF Params[_Invoke] = _Click THEN
- MakeChart2(Params[_YPos])
- END IF
- END PROC
-
- 'This procedure places a bar chart in the current form.
- PROC MakeChart1
- LOCAL k
-
- FormSetObject(10, _Chart, "", 5 pct, 5 pct, 68 pct, 50 pct)
- ChartBar(GetData(0); 10)
- 'Next create a key, to associate each numbered bar
- 'with a salesperson.
- FOR k = 1 TO EndValid(SalesPerson)
- ChartSetKey(Sprint("# - &", k, SalesPerson[k]), _None)
- NEXT k
- ChartControlKey(_Show)
- ChartSetProc(ChartProc1)
- END PROC
-
- 'This procedure places a spreadsheet in the current form.
- PROC MakeSheet1
- LOCAL k
-
- FormSetObject(15, _Sheet, "", 5 pct, 5 pct, 68 pct, 50 pct)
- SheetUpdate(SalesPerson)
- FOR k = 1 TO EndValid(Name)
- EXECUTE Sprint("ItemP(0) = GetData(0, k)", k)
- EXECUTE Sprint("SheetUpdate(ItemP(0))", k)
- NEXT k
- SheetSetProc(SheetProc1)
- END PROC
-
- 'This procedure is activated when the form is notified.
- PROC FormProc1(Params)
- LOCAL PersonID
-
- FormSelect(Params[_FormNum])
- SELECT CASE Params[_ItemNum]
- CASE 21 'Sheet option clicked
- SheetSelect(15, 10)
- SheetControl(_Show)
- ChartSelect(10, 10)
- ChartControl(_Hide)
- CASE 22 'Chart option clicked
- ChartSelect(10, 10)
- ChartControl(_Show)
- SheetSelect(15, 10)
- SheetControl(_Hide)
- CASE 50 'Drop down list item selected
- PersonID = FormQNum(Params[_ItemNum])
- MakeChart2(PersonID)
- ChartSelect(10, 10)
- CASE 60 'Quit button
- FormControl(_Close)
- END SELECT
- END PROC
-
- 'This procedure creates the form
- PROC MakeForm1
- FormNew(10; "SALEDEMO.RLZ", _Title + _ContextEnter)
- FormControl(_Size; _Center, _Center, 75 Pct, 75 Pct)
- MakeSheet1 ' Create the spreadsheet, then hide it.
- SheetControl(_Hide)
- MakeChart1 ' Create and show the chart.
- FormSetObject(21, _OptionButton, "Select from Sheet", 5 pct, 65 pct; _Notify, 0, 1)
- FormSetObject(22, _OptionButton, "Select from Chart", 5 pct, 75 pct; _Notify, 1, 1)
- FormSetObject(40, _GroupBox, "Select from List", 38 pct, 60 pct, 35 pct, 25 pct)
- FormSetObject(50, _DropDownList, "", 41 pct, 72 pct; _Notify, LastNames)
- FormSetObject(60, _Button, "Quit", 80 pct, 76 pct)
- FormSetProc(FormProc1)
- FormControl(_Show)
- END PROC
-
- '----File I/O and Menus
- PROC SaveData
- LOCAL k, NumberPeople, Result, FileName, DataFile
-
- FileName = StdSaveAs("SALEDEMO.RPT")
- IF FileName = "" THEN
- EXIT PROC
- END IF
- DataFile = FileQUnique
- FileOpen(DataFile, FileName, _Write)
-
- NumberPeople = EndValid(SalesPerson)
- FileWrite(DataFile, NumberPeople)
- FOR k = 1 TO NumberPeople
- FileWrite(DataFile, SalesPerson[k])
- Result = GetData(k)
- FileWrite(DataFile, Result)
- NEXT k
- FileClose(DataFile)
- END PROC
-
- PROC LoadData
- LOCAL k, NumberPeople, Result, FileName, DataFile
- LOCAL NumberElements, Person
-
- NumberElements = EndValid(Name)
- FileName = StdOpen("*.RPT", "Open Data File:")
- IF FileName = "" THEN
- EXIT PROC
- END IF
- DataFile = FileQUnique
- FileOpen(DataFile, FileName, _Read)
-
- LogNew(10; "Sales Report")
- LogControl(_Show)
-
- FileRead(DataFile, NumberPeople, 1, _Real)
- FOR k = 1 TO NumberPeople
- FileRead(DataFile, Person, 1, _Alpha)
- FileRead(DataFile, Result, NumberElements, _Real )
- PRINT #10; Person
- PRINT #10; Result
- NEXT k
- FileClose(DataFile)
- END PROC
-
- PROC MenuProc(Params)
- SELECT CASE Params[_ItemNum]
- CASE 10
- SaveData
- CASE 20
- LoadData
- END SELECT
- END PROC
-
- MenuNew(10; "File")
- MenuSetCmd(10, "Save Sales Report")
- MenuSetCmd(20, "Load Sales Report")
- MenuSetProc(MenuProc)
- MenuSelect(_FileMenu)
- MenuControl(_Hide)
- MenuSelect(10)
- MenuControl(_Show; 0)
-
- MakeNameList(SalesPerson) 'Obtain last names of salespeople
- MakeForm1
-
-
-
-