home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 12 / 0021 / demo.bas < prev    next >
Encoding:
BASIC Source File  |  1991-12-02  |  3.3 KB  |  131 lines

  1.       REM INCLUDE$: 'LISTING.BAS'
  2.       DEFINT A-Z
  3.  
  4.       REM $INCLUDE: 'COMDIM.BAS'
  5.       DIM ORFLD$(20)
  6.  
  7.       REM $INCLUDE: 'SHARED.BAS'
  8.       COMMON SHARED ORFLD$()
  9.  
  10.       REM $INCLUDE: 'COMDEF.BAS'
  11.  
  12.  
  13.  
  14. REM   Define screen field headings.
  15.  
  16.       DIS$(10)="05,03,REV,ACCOUNT #"
  17.       DIS$(11)="05,14,REV,  P.O. #  "
  18.       DIS$(12)="05,26,REV,SHIP TO #"
  19.       DIS$(13)="05,36,REV,  DATE  "
  20.       DIS$(14)="05,45,REV,TIME "
  21.  
  22.       DIS$(15)="08,02,REV,ITEM #"
  23.       DIS$(16)="08,09,REV,  CATALOG  #  "
  24.       DIS$(17)="08,24,REV,VENDOR"
  25.       DIS$(18)="08,31,REV,   DESCRIPTION/COMMENT    "
  26.       DIS$(19)="08,58,REV,UM"
  27.       DIS$(20)="08,61,REV, ORD QTY "
  28.       DIS$(21)="08,71,REV,  PRICE  "
  29.  
  30. REM   Define screen input fields.
  31.  
  32.       INP$(1)="06,05,NUM,5,NO,ACCT"
  33.       INP$(2)="06,14,ALP,10,YES,PO"
  34.       INP$(3)="06,29,NUM,3,YES,SHIPTO"
  35.       INP$(4)="06,36,DATE,6,NO,DATE"
  36.       INP$(5)="06,45,TIME,4,YES,TIME"
  37.  
  38.       INP$(6)="09,02,NUM!NODEF,6,NO,ITEM"
  39.       INP$(7)="09,09,ALP,14,NO,CAT"
  40.       INP$(8)="09,24,ALP,6,NO,VEND"
  41.       INP$(9)="09,31,ALP,26,YES,DESC"
  42.       INP$(10)="09,58,ALP!FIX,2,YES,UM"
  43.       INP$(11)="09,61,NUM!DEC,9,NO,QTY"
  44.       INP$(12)="09,71,NUM!DEC,9,YES,PRICE"
  45.  
  46.  
  47.  
  48.  
  49. REM   Display field headings.
  50.  
  51.       HEADS$="10,11,12,13,14,15,16,17,18,19,20,21"
  52.       CALL DISHEADS (HEADS$)
  53.  
  54.       EDITMODE=NO
  55.  
  56. ADD.HEADER:
  57.       EXITSUB=NO
  58.  
  59. REM   Display function key definitions.
  60.  
  61.       FUNC$=",,,Exit"
  62.       CALL FUNCTIONS (FUNC$)
  63.  
  64. ADD.HEADER.LOOP:
  65.  
  66.       CLRF$="1,2,3,4,5"
  67.       INPS$="1,2,3,4,5"
  68.       FLDS$="1,2,3,4,5"
  69.       VOID$="6,5,49"
  70.       CALL GETFIELDS (CLRF$,INPS$,FLDS$,VOID$)
  71.       IF EXITSUB  = YES THEN CLS : END
  72.       IF KY       = ESC THEN GOTO ADD.HEADER.LOOP
  73.  
  74. REM   Display function key definitions.
  75.  
  76.       FUNC$=",,,End order"
  77.       CALL FUNCTIONS (FUNC$)
  78.  
  79. ADD.DETAIL:
  80.       CLRF$="6,7,8,9,10,11,12"
  81.       INPS$="6,7,8,9,10,11,12"
  82.       FLDS$="6,7,8,9,10,11,12"
  83.       VOID$="9,2,79"
  84.       CALL GETFIELDS (CLRF$,INPS$,FLDS$,VOID$)
  85.       IF EXITSUB  = YES THEN GOTO ADD.HEADER
  86.       IF KY       = ESC THEN GOTO ADD.DETAIL
  87.  
  88.       GOTO ADD.DETAIL
  89.  
  90.  
  91.  
  92. SUB GETFIELDS (CLRF$,INPS$,FLDS$,VOID$) STATIC
  93.       EXITSUB=NO
  94.       IF CLRF$<>"" THEN CALL CLEARFIELDS (CLRF$)
  95.       CALL LODWK1 (INPS$,I)
  96.       CALL LODWK2 (FLDS$,F)
  97.       IF I > F THEN N=WRK1%(I) : I=I-1 ELSE N=1
  98.       WHILE N<=I
  99.       F$=ORFLD$(WRK2%(N))
  100.       CALL ACCEPT (INP$((WRK1%(N))),F$)
  101.       IF KY = F4                     THEN EXITSUB=YES : EXIT SUB
  102.       IF KY = F5                     THEN DATSW=YES
  103.       IF KY = CTRL.LF                THEN N=N+(N>1)
  104.       IF KY = CTRL.RT                THEN N=N-(N<I)
  105.       IF KY = ESC AND VOID$<>""      THEN EN=106 : CALL DISERR (EN,ER$) : CALL CLRLIN (VOID$) : EXIT SUB
  106.       IF KY = 0                      THEN LSET ORFLD$(WRK2%(N)) = F$ : N=N+1
  107.       WEND
  108. END SUB
  109.  
  110. SUB CLRLIN (LIN$) STATIC
  111.       CALL LODWK2 (LIN$,F)
  112.       LOCATE WRK2%(1),WRK2%(2) : COLOR 7,0 : PRINT SPC((WRK2%(3)-WRK2%(2))+1);
  113. END SUB
  114.  
  115. SUB CLEARFIELDS (FLDS$) STATIC
  116.       CALL LODWK2 (FLDS$,F)
  117.       FOR N = 1 TO F
  118.       LSET ORFLD$(WRK2%(N))=""
  119.       NEXT N
  120. END SUB
  121.  
  122. SUB DISHEADS (HEADS$) STATIC
  123.       CALL LODWK1 (HEADS$,I)
  124.       BUMP=0
  125.       N=1
  126.       WHILE N<=I
  127.       CALL DISPLAY (DIS$((WRK1%(N))),NULL$,BUMP)
  128.       N=N+1
  129.       WEND
  130. END SUB
  131.