/* dictrpt.p * * dictionary report. * * december 9, 1988 */ define variable i as integer no-undo. define variable idx-member as character no-undo. form header "File Indexes Field Order Type Extent Format Label" skip "----------------------------------------------------------------------------------------------------------------------" skip with frame page-header no-labels page-top width 132 no-attr-space. form _file._file-name format "x(12)" idx-member _field._field-name format "x(12)" _field._order space( 4 ) _field._data-type _field._extent space( 8 ) _field._format with frame field-list down no-box no-labels width 132 no-attr-space. output to "dictrpt.txt" page-size 80. view frame page-header. for each _file no-lock where _file._file-num > 0 and _file._file-num < 10000 by _file._file-name: for each _field no-lock where _field._file-recid = recid( _file ) break by _field._file-recid by _field._order: if ( line-counter > page-size ) then page. if ( first-of( _field._file-recid ) and ( line-counter > ( page-size - 4 ))) then page. /* don't start a table unless we can print a few lines.... */ if ( first-of( _field._file-recid ) or (( line-counter > ( page-size - 4 )) and ( first-of( _field._file-recid ))) or ( line-counter <= 1 )) then display _file._file-name with frame field-list. /* index membership of the field */ i = 0. idx-member = "". for each _index where _index._file-recid = recid( _file ) no-lock: for each _index-field where _index-field._index-recid = recid( _index ) and _index-field._field-recid = recid( _field ) no-lock: if _index._unique then if recid( _index ) = _file._prime-index then substring( idx-member, 8 - i, 1 ) = "U". else substring( idx-member, 8 - i, 1 ) = "u". else if recid( _index ) = _file._prime-index then substring( idx-member, 8 - i, 1 ) = "+". else substring( idx-member, 8 - i, 1 ) = "*". end. i = i + 1. if i = 8 then leave. end. display idx-member /* display field attributes */ _field._field-name _field._order _field._data-type _field._extent _field._format with frame field-list. down 1 with frame field-list. end. down 1 with frame field-list. /* a blank line between tables */ end. return.