home *** CD-ROM | disk | FTP | other *** search
- *******************
-
- FUNCTION Dispstru
-
- PARAMETERS _area
-
- _notoggle = .F.
-
- IF PCOUNT() = 0
- _area = LTRIM(STR(SELECT()))
- ELSE
- IF TYPE("_area") = "L"
- _notoggle = .T.
- _area = LTRIM(STR(SELECT()))
- ELSEIF TYPE("_area") = "N"
- _area = LTRIM(STR(SELECT()))
- ELSEIF TYPE("_area") = "C"
- _area = _area
- ELSE
- _area = LTRIM(STR(SELECT()))
- ENDIF
- ENDIF
-
- PRIVATE _t1[FCOUNT()], _t2[FCOUNT()], _t3[FCOUNT()], _t4[FCOUNT()]
- PRIVATE _ret, _qaz, _count, _oldcol
-
- _ret = SELECT()
- _oldcol = SETCOLOR()
-
- SELECT &_area.
-
- AFIELDS(_t1, _t2, _t3, _t4)
- _count = 2
-
- IF TYPE("scrcursor") = "U"
- scrcursor = .T.
- ENDIF
- SET CURSOR OFF
- 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" )))
-
- WPUSH(0,0,20,75)
- @ 1,3 SAY " Structure For " + ALIAS() + " "
- @ 2,5 SAY "Names Types Len. Dec."
- @ 4,37 SAY " Date Last Update: " + DTOC(LUPDATE())
- @ 5,37 SAY " Number of Records: " + LTRIM(STR(LASTREC()))
- @ 6,37 SAY " Number of Fields: " + LTRIM(STR(FCOUNT()))
- @ 7,37 SAY " Legnth of a Record: " + LTRIM(STR(RECSIZE()))
- @ 8,37 SAY " % of Disk Used: "
- @ 9,37 SAY " Active Filter: " + IF(EMPTY(DBFILTER()), "None Set", SUBSTR(UPPER(DBFILTER()), 1, 19))
- @ 10,37 SAY " Current Area: " + LTRIM(STR(SELECT()))
- @ 11,37 SAY " Current Rec. No.: " + LTRIM(STR(RECNO()))
- @ 12,37 SAY " Active Relation: " + IF(EMPTY(DBRELATION()), "None Set", SUBSTR(UPPER(DBRELATION()), 1,19))
- @ 13,37 SAY " Active Index Key: " + IF(EMPTY(INDEXKEY(0)), "None Available", SUBSTR(UPPER(INDEXKEY(0)), 1, 15))
- @ 14,37 SAY "Related Information: " + IF(EMPTY(DBRSELECT()), "None Set", SUBSTR(UPPER(DBRSELECT()), 1, 19))
- FOR _qaz = 1 TO FCOUNT()
- IF _count != 14
- @ _count+2, 4 SAY TRANSFORM(_qaz, "999") + ". "
- @ ROW(), 10 SAY _t1[_qaz]
- @ ROW(), 22 SAY _t2[_qaz]
- @ ROW(), 27 SAY _t3[_qaz] PICT "@B"
- @ ROW(), 33 SAY TRANSFORM(_t4[_qaz], "99")
- @ ROW(), 36 SAY CHR(179)
- ELSE
- IF _notoggle
- @ _count+4,4 SAY "Any Key for next screen or Q to Quit"
- ELSE
- @ _count+4,4 SAY "Any Key for next screen or Q to Quit, D for Data Display"
- ENDIF
- _qaz = _qaz - 1
- INKEY(0)
- IF CHR(LASTKEY()) $ "qQ"
- EXIT
- ELSEIF CHR(LASTKEY()) $ "Dd" .AND. !_notoggle
- Setkeyoff()
- Wpush(2,4,18,73)
- @ 18,6 SAY " ESC to Return / E to Edit "
- DBEDIT(3,5,16,72,"_t1", "_Editfunc")
- Wpop()
- _qaz = 0
- Setkeyon()
- ELSE
- Clear_area(2,4,20,36)
- ENDIF
- _count = 1
- ENDIF
- _count = _count + 1
- NEXT
- Clear_area(17,3,20,75)
- IF _notoggle
- @ 19,4 SAY "Any Key to Exit"
- ELSE
- @ 19,4 SAY "Any Key to Exit, D for Data Display"
- ENDIF
- _qaz = _qaz - 1
- INKEY(0)
- IF CHR(LASTKEY()) $ "Dd" .AND. !_notoggle
- Setkeyoff()
- Wpush(2,4,18,73)
- @ 18,6 SAY " ESC to Return / E to Edit "
- DBEDIT(3,5,16,72,"_t1","_Editfunc")
- Wpop()
- _qaz = 0
- Setkeyon()
- ELSE
- Clear_area(2,4,20,36)
- ENDIF
- Wpop()
- SELECT (_ret)
- SET CURSOR(scrcursor)
- SETCOLOR(_oldcol)
- RETURN("")
-
- *******************
-
- FUNCTION _Editfunc
-
- PARAMETERS _edit1, _edit2
-
- IF _edit1 = 0
- @ Wrow(0) + Wdepth(), Wcol(40) SAY " Record: " + TRANSFORM(RECNO(), "99999") + ;
- " / " + TRANSFORM(LASTREC(), "99999")
- ENDIF
-
- IF CHR(LASTKEY()) $ "Ee"
- *
- * _edit2 is the column pointer. Since the
- * columns are synominous with the pointing
- * field, this will work. It will NOT work
- * for those examples where a UDF is passed
- * as a column expression.
- *
- _editname = FIELD(_edit2)
- SET CURSOR ON
- _memvar = &_editname.
- Wpush(15,6,17,70)
- @ Wrow(1), Wcol(2) SAY "Edit &_editname. :" GET _memvar
- READ
- Wpop()
- SET CURSOR OFF
- IF UPDATED()
- REPLACE &_editname. WITH _memvar
- ENDIF
- ENDIF
-
- IF LASTKEY() = 27
- RETURN(0)
- ENDIF
- RETURN(1)
-
- * End of File
-