home *** CD-ROM | disk | FTP | other *** search
- <<* MSASETB.INC *>>
- <<*
- integer PageIndent,PageWidth,SCREENWIDTH,panmax
- integer headlen,datalen
- logical IsBigWid
- *>>
- <<#
-
- procedure GetItemLen <<*sets: headlen,datalen*>>
- begin
- IsBigWid := false
- <<* -Compute DATA display width*>>
- if fldtyp = 'L' <<*Logical display is different*>>
- datalen := 3
- else
- datalen := fldwid
- endif
- if datalen > PageWidth <<*SUBSTR candidate*>>
- datalen := PageWidth
- IsBigWid := true
- endif
- <<* -Compute HEADING display width*>>
- headlen := len( fldnam ) <<*Start with fldnam length*>>
- if headlen < datalen
- headlen := datalen
- endif
- end <<*GetItemLen*>>
-
-
- function JumpToPage( pagemax : integer ) : integer
- integer lentotal,pagitem
- logical done
- begin
- pagitem := 1
- select field 1
- while (pagitem <> pagemax) and not eof(fields)
- lentotal := PageIndent <<*Start with this*>>
- done := false
- while not (done or eof(fields))
- GetItemLen <<*sets: headlen,datalen*>>
- if lentotal + headlen + 1 <= SCREENWIDTH
- lentotal := lentotal + headlen + 1 <<*plus SPACE*>>
- skip field
- else
- pagitem := pagitem + 1
- done := true
- endif
- endwhile
- endwhile
- RETURN pagitem
- end <<*JumpToPage*>>
-
-
- function BrowseHeading : string
- logical done
- integer lentotal
- string line,token
- begin
- done := false
- lentotal := PageIndent
- while not (done or eof(fields))
- GetItemLen <<*---set: headlen,datalen---*>>
- <<*---Create heading from field name---*>>
- if len(fldnam) < headlen
- token := upper(fldnam) + replicate( '-',headlen-len(fldnam) )
- else
- token := upper(fldnam)
- endif
- if lentotal + headlen + 1 <= SCREENWIDTH
- lentotal := lentotal + headlen + 1 <<*plus SPACE*>>
- if line = ''
- line := token
- else
- line := line + ' ' + token
- endif
- skip field
- else
- done := true
- endif
- endwhile
- RETURN line
- end <<*BrowseHeading*>>
-
-
- function BrowseList : string
- string line,token
- logical done
- integer lentotal
- begin
- done := false
- lentotal := PageIndent
- while not (done or eof(fields))
- GetItemLen <<*set: headlen,datalen*>>
- if IsBigWid <<*fldwid > PageWidth*>>
- token := 'SUBSTR(' + fldnam + ',1,' + str(PageWidth) + ')'
- else
- token := fldnam
- endif
- if (headlen > datalen)
- token := token + ',"' + replicate( ' ',headlen-datalen-1 ) + '"'
- endif
- if lentotal + headlen + 1 <= SCREENWIDTH
- lentotal := lentotal + headlen + 1 <<*plus SPACE*>>
- if line = ''
- line := token
- else
- line := line + ',' + token
- endif
- skip field
- else
- done := true
- endif
- endwhile
- RETURN line
- end <<*BrowseList*>>
-
-
- procedure InitBrowse
- begin
- <<*---set the BROWSE filter---*>>
- select all fields
- select fields on (fldtyp $ 'CDLN') and (fldals <> 'M')
- PageIndent := 9
- PageWidth := SCREENWIDTH - PageIndent - 1
- panmax := JumpToPage( 32000 )
- end <<*InitBrowse*>>
-
- <<* EOF: MSASETB.INC *>>
- #>>