home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a054 / 1.img / GETPRGS.EXE / GETS05.PRG < prev    next >
Encoding:
Text File  |  1992-03-08  |  2.3 KB  |  99 lines

  1.     // Gets05.prg
  2.     //
  3.     // Illustrating searching GetList and invoking methods from
  4.     // valid clauses
  5.  
  6.     MEMVAR GetList
  7.  
  8.     #translate GET_NUMBER(<c>)    ;
  9.                =>                 ;
  10.                Ascan(GetList, {|o| Upper(Trim(o:name)) == UPPER(<c>) })
  11.     
  12.  
  13.     FUNCTION Gets05
  14.  
  15.     LOCAL nCopies := 0        
  16.     LOCAL cFileName := "Temp.doc    "
  17.     LOCAL lAll    := .T.      
  18.     LOCAL lRange  := .F.      
  19.     LOCAL nFromPage := 0, ;
  20.           nToPage := 0        
  21.  
  22.       Set(_SET_CONFIRM, .T.)
  23.       CLEAR SCREEN
  24.       @ 8, 8 TO 21, 48
  25.       @ 10, 10 SAY " Print" GET cFileName
  26.       @ 11, 10 SAY "Copies" GET nCopies PICTURE "999"
  27.       @ 14, 10 TO 19, 46
  28.       @ 14, 12 SAY "Pages"
  29.       @ 16, 12 SAY "  All" GET lAll PICTURE "Y"   ;
  30.                VALID {|o| SetRange(o, GetList) }
  31.       @ 17, 12 SAY "Range" GET lRange PICTURE "Y" ;
  32.                VALID {|o| SetAll(o, GetList) }
  33.       @ 17, 25 SAY "From" GET nFromPage PICTURE "999" ;
  34.                WHEN lRange COLOR "W/N,W/N"
  35.       @ 17, 35 SAY "To"   GET nToPage   PICTURE "999" ;
  36.                WHEN lRange COLOR "W/N,W/N"
  37.       READ
  38.  
  39.     RETURN NIL
  40.  
  41.  
  42.     FUNCTION SetRange(o, GetList)
  43.  
  44.     LOCAL oGetAll, nGet
  45.  
  46.       IF o:varGet()
  47.         nGet := GET_NUMBER("LRANGE")
  48.         GetList[nGet]:varPut(.F.)
  49.       ENDIF
  50.       DispRange(GetList)
  51.   
  52.     RETURN .T.
  53.  
  54.  
  55.     FUNCTION SetAll(o, GetList)
  56.  
  57.     LOCAL nGet, oGetAll
  58.  
  59.       IF o:varGet()
  60.         nGet := GET_NUMBER("LALL")
  61.         oGetAll := GetList[nGet]
  62.         oGetAll:varPut(.F.)
  63.         oGetAll:display()
  64.       ENDIF
  65.       DispRange(GetList)
  66.  
  67.     RETURN .T.
  68.  
  69.  
  70.     FUNCTION DispRange(GetList)
  71.  
  72.     LOCAL nGet, oGetRange, oGetFromPage, oGetToPage
  73.  
  74.       nGet := GET_NUMBER("LRANGE")
  75.       oGetRange := GetList[nGet]
  76.  
  77.       nGet := GET_NUMBER("NFROMPAGE")
  78.       oGetFromPage := GetList[nGet]
  79.  
  80.       nGet := GET_NUMBER("NTOPAGE")
  81.       oGetToPage := GetList[nGet]
  82.  
  83.       IF oGetRange:varGet()
  84.         oGetFromPage:colorSpec := "N/W,N/W"
  85.         oGetToPage:colorSpec   := "N/W,N/W"
  86.       ELSE
  87.         oGetFromPage:colorSpec := "W/N,W/N"
  88.         oGetFromPage:varPut(0)
  89.  
  90.         oGetToPage:colorSpec := "W/N,W/N"
  91.         oGetToPage:varPut(0)
  92.       ENDIF
  93.  
  94.       oGetFromPage:display()
  95.       oGetToPage:display()
  96.       oGetRange:display()
  97.  
  98.     RETURN NIL
  99.