home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST272.PRG < prev    next >
Encoding:
Text File  |  1989-09-17  |  4.3 KB  |  152 lines

  1. *******************
  2.  
  3. FUNCTION Dispstru
  4.  
  5.    PARAMETERS _area
  6.  
  7.    _notoggle = .F.
  8.  
  9.    IF PCOUNT() = 0
  10.       _area = LTRIM(STR(SELECT()))
  11.    ELSE
  12.       IF TYPE("_area") = "L"
  13.          _notoggle = .T.
  14.          _area = LTRIM(STR(SELECT()))
  15.       ELSEIF TYPE("_area") = "N"
  16.          _area = LTRIM(STR(SELECT()))
  17.       ELSEIF TYPE("_area") = "C"
  18.          _area = _area
  19.       ELSE
  20.          _area = LTRIM(STR(SELECT()))
  21.       ENDIF
  22.    ENDIF
  23.    
  24.    PRIVATE _t1[FCOUNT()], _t2[FCOUNT()], _t3[FCOUNT()], _t4[FCOUNT()]
  25.    PRIVATE _ret, _qaz, _count, _oldcol
  26.  
  27.    _ret    = SELECT()
  28.    _oldcol = SETCOLOR()
  29.  
  30.    SELECT &_area.
  31.  
  32.    AFIELDS(_t1, _t2, _t3, _t4)
  33.    _count = 2
  34.  
  35.    IF TYPE("scrcursor") = "U"
  36.       scrcursor = .T.
  37.    ENDIF
  38.    SET CURSOR OFF
  39.    SETCOLOR(IF((TYPE("scrmono") = "U"), "", IF( (ISCOLOR() .AND. !scrmono), "7/1,0/7,N,N,0/7", "7/0,0/7,N,N,0/7" )))
  40.  
  41.    WPUSH(0,0,20,75)
  42.    @  1,3  SAY " Structure For " + ALIAS() + " "
  43.    @  2,5  SAY "Names       Types    Len.  Dec."
  44.    @  4,37 SAY "   Date Last Update: " + DTOC(LUPDATE())
  45.    @  5,37 SAY "  Number of Records: " + LTRIM(STR(LASTREC()))
  46.    @  6,37 SAY "   Number of Fields: " + LTRIM(STR(FCOUNT()))
  47.    @  7,37 SAY " Legnth of a Record: " + LTRIM(STR(RECSIZE()))
  48.    @  8,37 SAY "     % of Disk Used: "
  49.    @  9,37 SAY "      Active Filter: " + IF(EMPTY(DBFILTER()), "None Set", SUBSTR(UPPER(DBFILTER()), 1, 19))
  50.    @ 10,37 SAY "       Current Area: " + LTRIM(STR(SELECT()))
  51.    @ 11,37 SAY "   Current Rec. No.: " + LTRIM(STR(RECNO()))
  52.    @ 12,37 SAY "    Active Relation: " + IF(EMPTY(DBRELATION()), "None Set", SUBSTR(UPPER(DBRELATION()), 1,19))
  53.    @ 13,37 SAY "   Active Index Key: " + IF(EMPTY(INDEXKEY(0)), "None Available", SUBSTR(UPPER(INDEXKEY(0)), 1, 15))
  54.    @ 14,37 SAY "Related Information: " + IF(EMPTY(DBRSELECT()), "None Set", SUBSTR(UPPER(DBRSELECT()), 1, 19))
  55.    FOR _qaz = 1 TO FCOUNT()
  56.       IF _count != 14
  57.          @ _count+2, 4 SAY TRANSFORM(_qaz, "999") + ". "
  58.          @ ROW(), 10  SAY _t1[_qaz]
  59.          @ ROW(), 22 SAY _t2[_qaz]
  60.          @ ROW(), 27 SAY _t3[_qaz] PICT "@B"
  61.          @ ROW(), 33 SAY TRANSFORM(_t4[_qaz], "99")
  62.          @ ROW(), 36 SAY CHR(179)
  63.       ELSE
  64.          IF _notoggle
  65.             @ _count+4,4 SAY "Any Key for next screen or Q to Quit"
  66.          ELSE
  67.             @ _count+4,4 SAY "Any Key for next screen or Q to Quit, D for Data Display"
  68.          ENDIF
  69.          _qaz = _qaz - 1
  70.          INKEY(0)
  71.          IF CHR(LASTKEY()) $ "qQ"
  72.             EXIT
  73.          ELSEIF CHR(LASTKEY()) $ "Dd" .AND. !_notoggle
  74.             Setkeyoff()
  75.             Wpush(2,4,18,73)
  76.             @ 18,6 SAY " ESC to Return / E to Edit "
  77.             DBEDIT(3,5,16,72,"_t1", "_Editfunc")
  78.             Wpop()
  79.             _qaz = 0
  80.             Setkeyon()
  81.          ELSE
  82.             Clear_area(2,4,20,36)
  83.          ENDIF
  84.          _count = 1
  85.       ENDIF
  86.       _count = _count + 1
  87.    NEXT
  88.    Clear_area(17,3,20,75)
  89.    IF _notoggle
  90.       @ 19,4 SAY "Any Key to Exit"
  91.    ELSE
  92.       @ 19,4 SAY "Any Key to Exit, D for Data Display"
  93.    ENDIF
  94.    _qaz = _qaz - 1
  95.    INKEY(0)
  96.    IF CHR(LASTKEY()) $ "Dd" .AND. !_notoggle
  97.       Setkeyoff()
  98.       Wpush(2,4,18,73)
  99.       @ 18,6 SAY " ESC to Return / E to Edit "
  100.       DBEDIT(3,5,16,72,"_t1","_Editfunc")
  101.       Wpop()
  102.       _qaz = 0
  103.       Setkeyon()
  104.    ELSE
  105.       Clear_area(2,4,20,36)
  106.    ENDIF
  107.    Wpop()
  108.    SELECT (_ret)
  109.    SET CURSOR(scrcursor)
  110.    SETCOLOR(_oldcol)
  111.    RETURN("")
  112.  
  113. *******************
  114.  
  115. FUNCTION _Editfunc
  116.  
  117.    PARAMETERS _edit1, _edit2
  118.  
  119.    IF _edit1 = 0
  120.       @ Wrow(0) + Wdepth(), Wcol(40) SAY " Record: " + TRANSFORM(RECNO(), "99999") + ;
  121.                              " / " + TRANSFORM(LASTREC(), "99999")
  122.    ENDIF
  123.  
  124.    IF CHR(LASTKEY()) $ "Ee"
  125.       *
  126.       * _edit2 is the column pointer.  Since the
  127.       * columns are synominous with the pointing
  128.       * field, this will work.  It will NOT work
  129.       * for those examples where a UDF is passed
  130.       * as a column expression.
  131.       *
  132.       _editname = FIELD(_edit2)
  133.       SET CURSOR ON
  134.       _memvar = &_editname.
  135.       Wpush(15,6,17,70)
  136.       @ Wrow(1), Wcol(2) SAY "Edit &_editname. :" GET _memvar
  137.       READ
  138.       Wpop()
  139.       SET CURSOR OFF
  140.       IF UPDATED()
  141.          REPLACE &_editname. WITH _memvar
  142.       ENDIF
  143.    ENDIF
  144.  
  145.    IF LASTKEY() = 27
  146.       RETURN(0)
  147.    ENDIF
  148.    RETURN(1)
  149.  
  150. * End of File
  151.  
  152.