home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / VIEWGEN.ARC / SAM_PROC.PRG < prev    next >
Encoding:
Text File  |  1985-11-05  |  7.6 KB  |  340 lines

  1. * Program.: SAM_PROC.PRG
  2. * Author..: Your Name
  3. * Date....: 11/05/85
  4. * Notice..: Copyright 1985, Your Company, All Rights Reserved
  5. * Version.: dBASE III, version 1.1
  6. * Notes...: PROCEDURE file for NAMES.DBF
  7. *
  8.  
  9. PROCEDURE SAYFORM
  10.    CLEAR
  11.    SET COLOR TO &StatusAtr
  12.    @  0, 0 SAY SPACE(80)
  13.    @  0, 0 SAY "Record:"
  14.    @  0,72 SAY DATE()
  15.    SET COLOR TO &PromptAtr
  16.    @ 20,0 SAY PromptBar
  17.    SET COLOR TO &WindowAtr
  18.    @  2,31 SAY "EMPLOYEE DATABASE"
  19.    @  4, 0 SAY "First name "
  20.    @  5, 0 SAY "Last name  "
  21.    @  8, 4 SAY "Job title       "
  22.    @  9, 4 SAY "Department code "
  23.    @ 10, 4 SAY "Current Salary  "
  24.    @ 11, 4 SAY "Starting date   "
  25.    @ 13,50 SAY "Area "
  26.    @ 13,55 SAY "Phone "
  27.    @ 14, 9 SAY "Address "
  28.    @ 15, 9 SAY "City    "
  29.    @ 16, 9 SAY "State   "
  30.    @ 17, 9 SAY "Zip     "
  31. RETURN
  32.  
  33.  
  34. PROCEDURE GETFORM
  35.    SET COLOR TO &WindowAtr
  36.    @  4,11 GET Firstname
  37.    @  5,11 GET Lastname
  38.    @  8,20 GET Jobtitle
  39.    @  9,20 GET Deptcode
  40.    @ 10,20 GET Salary PICTURE '999,999.99' RANGE 5000,250000
  41.    @ 11,20 GET Startdate RANGE CTOD('05/15/82'),DATE()
  42.    @ 14,50 GET Areacode PICTURE '999'
  43.    @ 14,55 GET Phone PICTURE '999-9999'
  44.    @ 14,17 GET Address
  45.    @ 15,17 GET City
  46.    @ 16,17 GET State PICTURE '@!A'
  47.    @ 17,17 GET Zip PICTURE '99999'
  48. RETURN
  49.  
  50.  
  51. PROCEDURE OpenFile
  52.    * ---Open database file.
  53.    USE NAMES
  54.    GOTO BOTTOM
  55.    IF EOF()
  56.       LastRec = 0
  57.    ELSE
  58.       LastRec = RECNO()
  59.    ENDIF
  60.    GOTO TOP
  61.    * ---Open index file.
  62.    SET INDEX TO NAMES
  63. RETURN
  64.  
  65.  
  66. PROCEDURE GetKey
  67. PARAMETER choice,values
  68. PRIVATE currow,curcol
  69.    SET INTENSITY OFF
  70.    currow = ROW()
  71.    curcol = COL()
  72.    choice = "*"
  73.    DO WHILE .NOT. (choice $ values)
  74.       choice = " "
  75.       @ currow,curcol GET choice PICTURE "!"
  76.       READ
  77.    ENDDO
  78.    SET INTENSITY ON
  79. RETURN
  80.  
  81.  
  82. PROCEDURE StatLine
  83. PARAMETER recnum
  84.    SET COLOR TO &StatusAtr
  85.    @ 0, 8 SAY SUBSTR( STR( recnum + 1000000,7 ),2 )
  86.    IF DELETED()
  87.       @ 0,55 SAY "*DEL*"
  88.    ELSE
  89.       @ 0,55 SAY "     "
  90.    ENDIF
  91. RETURN
  92.  
  93.  
  94. PROCEDURE DoEDIT
  95. PARAMETER row
  96.    DO WHILE .T.
  97.       SET COLOR TO &PromptAtr
  98.       @ row,0 CLEAR
  99.       @ row,0 SAY "Press <Ctrl-End> to Exit"
  100.       DO StatLine WITH RECNO()
  101.       DO GETFORM
  102.       READ
  103.       SET COLOR TO &PromptAtr
  104.       @ row,0 CLEAR
  105.       @ row,0 SAY "EDIT:  Re-edit  <Return> "
  106.       DO GetKey WITH choice,"R"+CtrlEnd+Returnkey
  107.       IF choice $ Returnkey+CtrlEnd
  108.          EXIT
  109.       ENDIF
  110.    ENDDO
  111. RETURN
  112.  
  113.  
  114. PROCEDURE SayRec
  115.    DO StatLine WITH RECNO()
  116.    * ---Display the FIELDS with GETs.
  117.    DO GETFORM
  118.    CLEAR GETS
  119.    oldrecnum = RECNO()
  120. RETURN
  121.  
  122.  
  123. PROCEDURE SayEOF
  124. PARAMETER row
  125.    @ row,0 CLEAR
  126.    IF BOF()
  127.       @ row,0 SAY "BEGINNING-OF-FILE encountered"
  128.    ELSE
  129.       @ row,0 SAY "END-OF-FILE encountered"
  130.    ENDIF
  131.    WAIT
  132.    @ row,0 CLEAR
  133.    GOTO oldrecnum
  134. RETURN
  135.  
  136.  
  137. PROCEDURE DoSEEK
  138. PARAMETER row,prompt
  139.    SET COLOR TO &PromptAtr
  140.    @ row,0 CLEAR
  141.    @ row-1,0 SAY ""
  142.    ACCEPT prompt TO expr
  143.    IF "" = expr
  144.       RETURN
  145.    ENDIF
  146.    SEEK expr
  147.    IF EOF()
  148.       DO SayEOF WITH row
  149.    ELSE
  150.       DO SayRec
  151.    ENDIF
  152. RETURN
  153.  
  154.  
  155. PROCEDURE DoGOTO
  156. PARAMETER row
  157. PRIVATE recnum
  158.    SET COLOR TO &PromptAtr
  159.    @ row,0 CLEAR
  160.    @ row,0 SAY "GOTO:  Top  Bottom  Record#  <Return> "
  161.    DO GetKey WITH choice,"TBR"+Returnkey
  162.    @ row,0 CLEAR
  163.    DO CASE
  164.    CASE choice = Returnkey
  165.       RETURN
  166.    CASE choice = "T"
  167.       GOTO TOP
  168.       DO SayRec
  169.    CASE choice = "B"
  170.       GOTO BOTTOM
  171.       DO SayRec
  172.    CASE choice = "R"
  173.       recnum = 0
  174.       @ row,0 SAY "Enter RECORD number" GET recnum;
  175.               PICTURE "@Z 9999999" RANGE 0,LastRec
  176.       READ
  177.       IF recnum > 0
  178.          @ row,0 CLEAR
  179.          GOTO recnum
  180.          DO SayRec
  181.       ENDIF
  182.    ENDCASE
  183. RETURN
  184.  
  185.  
  186. PROCEDURE DoLOCATE
  187. PARAMETER row
  188.    DO GetExpr WITH 22,"LOCATE FOR ",expr
  189.    DO SAYFORM
  190.    DO SayRec
  191.    IF "" = expr .OR. TYPE( [&expr] ) = "U"
  192.       RETURN
  193.    ENDIF
  194.    SET COLOR TO &PromptAtr
  195.    @ row,0 SAY "Locating..."
  196.    LOCATE FOR &expr
  197.    IF EOF()
  198.       DO SayEOF WITH row
  199.    ELSE
  200.       DO SayRec
  201.       SET COLOR TO &PromptAtr
  202.       @ row,0 CLEAR
  203.       @ row,0 SAY "LOCATE FOR" GET expr
  204.       CLEAR GETS
  205.       DO DoCONT WITH row
  206.    ENDIF
  207. RETURN
  208.  
  209.  
  210. PROCEDURE DoCONT
  211. PARAMETER row
  212.    choice = "Y"
  213.    DO WHILE choice = "Y"
  214.       @ row+1,0 CLEAR
  215.       SET COLOR TO &PromptAtr
  216.       @ row+1,0 SAY "Continue? (y/n)"
  217.       DO GetKey WITH choice,"YN"+Returnkey
  218.       @ row+1,0 CLEAR
  219.       IF choice = "Y"
  220.          CONTINUE
  221.          IF EOF()
  222.             DO SayEOF WITH row
  223.             choice = "N"
  224.          ELSE
  225.             DO SayRec
  226.          ENDIF
  227.       ENDIF
  228.    ENDDO
  229. RETURN
  230.  
  231.  
  232. PROCEDURE GetExpr
  233. PARAMETER row,prompt,expr
  234. PRIVATE getcol,getlen,phrase,fldnum
  235.    * ---Pass row by value.
  236.    DO FldScrn WITH (row)
  237.    getcol = LEN( prompt )
  238.    getlen = 80 - getcol
  239.    expr = SPACE( getlen )
  240.    SET COLOR TO &PromptAtr
  241.    @ row,0 CLEAR
  242.    @ row,0 SAY prompt
  243.    SET INTENSITY OFF
  244.    @ row,getcol GET expr
  245.    CLEAR GETS
  246.    SET INTENSITY ON
  247.    expr = ""
  248.    phrase = ""
  249.    fldnum = 0
  250.    * ---Build the FOR <exp>.
  251.    DO WHILE .T.
  252.       * ---Pass row by value.
  253.       DO GetPhras WITH (row),fldnum,phrase
  254.       IF fldnum = 0 .OR. LEN( expr + phrase ) > getlen * 2
  255.          EXIT
  256.       ENDIF
  257.       IF "" = expr
  258.          expr = SUBSTR( phrase,8 )
  259.       ELSE
  260.          expr = expr + phrase
  261.       ENDIF
  262.       SET INTENSITY OFF
  263.       @ row,getcol GET expr
  264.       CLEAR GETS
  265.       SET INTENSITY ON
  266.    ENDDO
  267.    * ---Final edit on the <exp>.
  268.    expr = expr + SPACE( getlen - LEN( expr ) )
  269.    @ row,getcol GET expr
  270.    READ
  271.    * ---Return TRIMmed <exp>.
  272.    expr = TRIM( expr )
  273. RETURN
  274.  
  275.  
  276. PROCEDURE FldScrn
  277. PARAMETER row
  278.    row = row - 14
  279.    SET COLOR TO &PromptAtr
  280.    @ row, 0 CLEAR
  281.    @ row+13,0 SAY PromptBar
  282.    @ row+ 2,0 SAY "Enter field #"
  283.    @ row+ 3,0 SAY "┌───┬────────────┬───────────────────────────────────┐"
  284.    @ row+ 4,0 SAY "│ # │ Field      │    Field Contents                 │"
  285.    @ row+ 5,0 SAY "├───┼────────────┼───────────────────────────────────┤"
  286.    @ row+ 6,0 SAY "│ 1 │ Firstname  │  =                                │"
  287.    @ row+ 7,0 SAY "│ 2 │ Lastname   │  =                                │"
  288.    @ row+ 8,0 SAY "│ 3 │ Jobtitle   │  =                                │"
  289.    @ row+ 9,0 SAY "│ 4 │ Deptcode   │  =                                │"
  290.    @ row+10,0 SAY "│ 5 │ Salary     │ >=                                │"
  291.    @ row+11,0 SAY "└───┴────────────┴───────────────────────────────────┘"
  292. RETURN
  293.  
  294.  
  295. PROCEDURE GetPhras
  296. PARAMETER row,fldnum,phrase
  297. PRIVATE Cvar,Nvar,Dvar,Lvar
  298.    row = row - 12
  299.    fldnum = 0
  300.    phrase = ""
  301.    SET INTENSITY OFF
  302.    @ row,14 GET fldnum PICTURE "@Z 9" RANGE 0,5
  303.    READ
  304.    SET INTENSITY ON
  305.    DO CASE
  306.    CASE fldnum = 1
  307.       * ---Firstname field.
  308.       Cvar = SPACE( 15 )
  309.       @ row+4,22 GET Cvar
  310.       READ
  311.       phrase = [ .AND. Firstname="] + TRIM(Cvar) + ["]
  312.    CASE fldnum = 2
  313.       * ---Lastname field.
  314.       Cvar = SPACE( 20 )
  315.       @ row+5,22 GET Cvar
  316.       READ
  317.       phrase = [ .AND. Lastname="] + TRIM(Cvar) + ["]
  318.    CASE fldnum = 3
  319.       * ---Jobtitle field.
  320.       Cvar = SPACE( 30 )
  321.       @ row+6,22 GET Cvar
  322.       READ
  323.       phrase = [ .AND. Jobtitle="] + TRIM(Cvar) + ["]
  324.    CASE fldnum = 4
  325.       * ---Deptcode field.
  326.       Cvar = SPACE( 3 )
  327.       @ row+7,22 GET Cvar
  328.       READ
  329.       phrase = [ .AND. Deptcode="] + TRIM(Cvar) + ["]
  330.    CASE fldnum = 5
  331.       * ---Salary field.
  332.       Nvar = 0.0
  333.       @ row+8,22 GET Nvar PICTURE "9999999.99"
  334.       READ
  335.       phrase = [ .AND. Salary>=] + STR( Nvar,10,2 )
  336.    ENDCASE
  337. RETURN
  338.  
  339. * EOF: SAM_PROC.PRG
  340.