Re: [U2] a data view utility of great use

2008-02-07 Thread karlp
Very nice. I changed LINES.PAGE under HOUSEKEEPING from
   LINES.PAGE = 22
to
   LINES.PAGE = @crthigh - 3
so it would display on any size display that is recognized by the TERM
setting for the height.

Since I always use 'non-standard' terminal sizes (132x75 for programming,
80x60 for regular work, and every size in between) having it recognize the
size of the current terminal session makes it very much nicer for me.

My 2 bits.

Karl

quote who=Dennis Bartlett
 And since I'm into sharing my dark secrets, here's a very useful util I
 wrote a while back (probably from some-one else's inspiration, so don't
 sue
 me...)

 GLOBAL catalog it, then at the UV prompt enter

 SEE HPMAST


 HPMAST.FILE - KEY...: 001-01011 RECORD #1

 001: F1.:
 002: F2.: 05/02/96
 003: SURNAME.UP.: BARTLETT
 004: INIT...: DQ
 005: Title..: MR
 006: First names:  } }B
 007: D.O.B..:
 008: F8.:
 009: Employer...:
 010: Salary.:0.00
 011: F11:
 012: F12:
 013: F13:
 014: Spouse init:
 015: Title..:
 016: First names:
 017: D.O.B..:
 018: F18:
 019: Spouse emp.:
 020: Spouse Sal.:0.00

 It will display each record alongside the dict item it found associated
 (it
 does get confused if your site is as well documented as this one..not!),
 but
 still worthwhile seeing data in relation to other data


 * SEE
 * D.Bartlett  02Dec96
 * View contents of files alongside dictionary headings
 * 
 * Mod DQB 18Aug98 Try get the conversions right
 * Mod DQB 15Oct98 Clearselect after viewing
 * Mod DQB 01Apr98 Added 'N'ext record capability
 * Mod DQB 06Dec99 Added 'SEE FILENAME RECORD', ie no need for 'ITEM='
 * 
   GOSUB HOUSEKEEPING
   GOSUB PARSE.SENTENCE
   GOSUB SHOW.PARAMS
   GOSUB PROCESS.DICT

 * Now get a list together so we have something to process
   BEGIN CASE
  CASE LISTNAME NE '' ; EXECUTE 'GET.LIST ':LISTNAME
  CASE ITEMNAME NE '' ; FORMLIST ITEMNAME
  CASE 1
 SELECT HANDLE
   END CASE


 * then process these records...
   LOOP
  READNEXT KEY ELSE EXIT
  GOSUB PROCESS.DATA
   UNTIL DONE = 1
  GOSUB PROMPT.USER
  IF DONE = 1 THEN EXIT
   REPEAT
   CLEARSELECT
   STOP
 * 
 PROCESS.DATA:
   DONE = 0
   RECORD.NO += 1
   READ RECORD FROM HANDLE, KEY THEN

  IF TO.LPTR = 'LPTR' THEN PRINTER ON
  GOSUB PRINT.HDR

 *Display all the fields...
  FOR F = 1 TO FLDS
 *   Display field number...
 PRINT FMT(F,'30R') : ': ':

 *   then the DICTIONARY name for this field...
 PRINT FMT(DICT.FLDSF, '27.L'):': ':

 *   ...and extract the data...
 LINE = RECORDF

 *   Check if there's a conversion...?
 IF DICT.CONVF NE '' THEN GOSUB CONVERT.DATA

 *   And finally show the (converted) data, stripped out into
 *   separate lines of 45 chars each...
 LOOP
THIS.LN = LINE[1,45]
PRINT THIS.LN : SPACE(46 - LEN(THIS.LN)) :
LINE = TRIM(LINE[46,LEN(LINE)])
IF TO.LPTR NE 'LPTR' THEN GOSUB CHECK.PAGING
 UNTIL LINE = ''
PRINT '***: ' : SPACE(29) :
 REPEAT
 IF TO.LPTR = 'LPTR' THEN PRINT
  NEXT F
  IF TO.LPTR = 'LPTR' THEN PRINTER OFF
   END ELSE
  IF ITEMNAME NE '' THEN
 PRINT ; PRINT CHAR(7)
 PRINT 'Item ':ITEMNAME:
 PRINT ' does not exist in ':FILENAME:'!':
 INPUT JUNK:
 STOP
  END
   END
   RETURN
 * 
 CHECK.PAGING:
   LN += 1
   IF LN GE LINES.PAGE THEN
  INPUT CONT,1
  CONT = UPCASE(CONT)
 * Mod DQB 01Apr98 Added 'N'ext record capability
  BEGIN CASE
 CASE CONT = 'Q'
DONE = 1 ; F = FLDS ; EXIT.FLAG = 'QUIT'
 CASE CONT = 'N'
F = FLDS ; EXIT.FLAG = 'NEXT'
 CASE 1
GOSUB PRINT.HDR
  END CASE
   END ELSE
  PRINT
   END
   RETURN
 * 
 PRINT.HDR:
 * Display the filename, and key...
   PRINT @(-1)
   PRINT FMT((FILENAME : ' - KEY'),'32.L'):': ':KEY:
   IF KEY.CONV NE '' THEN
  OUTKEY = '(' :OCONV(KEY,KEY.CONV) 

RE: [U2] a data view utility of great use

2008-02-07 Thread Allen E. Elwood
=TRIM(CHANGE(DICT.REC4,@VM,' '))
  END
  FMATTR=DICT.REC5
END
  REPEAT
  NITEMS=DCOUNT(CV,@AM)
*===

  * How're we gonna process?
  IF LIST.SAVED THEN
PERFORM 'GET.LIST Display':PROCESS.ID
PERFORM 'DELETE.LIST Display':PROCESS.ID CAPTURING JUNK
  END ELSE
MORE=FIELD(EXTRA.IP,' ',1)
MORE=EXTRA.IP[COL2(),999]
IF MORE THEN
  CRT 'SELECT ':FIELD(EXTRA.IP,' ',1):' ':MORE
  PERFORM 'SELECT ':FIELD(EXTRA.IP,' ',1):' ':MORE
END ELSE
  SELECT FH
END
  END
*===

  * Enough messing around, lets do it
  LOOP
READNEXT ID ELSE EXIT
READ FILE.REC FROM FH, ID ELSE CONTINUE
PRINT
PRINT FILENAME:' - ':ID
LO+=1
IF LOMAXL THEN GOSUB HEADINGS
AC=DCOUNT(FILE.REC,@AM)
IF NITEMSAC THEN AC=NITEMS
FOR I=1 TO AC
  IF FMO=1 THEN
VC=DCOUNT(FILE.RECI,@VM)
IF VC = 1 THEN
  *PRINT (I:' ':HDI)L#25:' ':FMT(OCONV(FILE.RECI,CVI),FMI)
  IF BP THEN
PRINT IL#5:OCONV(FILE.RECI,CVI)
  END ELSE
PRINT (I:' ':HDI)L#25:' ':OCONV(FILE.RECI,CVI)
  END
  LO+=1
  IF LOMAXL THEN GOSUB HEADINGS
END ELSE
  FOR J=1 TO VC
*PRINT (I:',':J:' ':HDI)L#25:'
':FMT(OCONV(FILE.RECI,J,CVI),FMI)
PRINT (I:',':J:' ':HDI)L#25:' ':OCONV(FILE.RECI,J,CVI)
LO+=1
IF LOMAXL THEN GOSUB HEADINGS
  NEXT
END
  END
NEXT
  REPEAT
RETURN
*===

HEADINGS:
  PRINT 'Hit any key to stop':
  INPUT BUBA
  IF BUBA THEN PERFORM CLEARSELECT;STOP
  LO=0
  PRINT CLR:FILENAME:' - ':ID
RETURN
*===


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of
[EMAIL PROTECTED]
Sent: Thursday, February 07, 2008 12:52
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] a data view utility of great use


Very nice. I changed LINES.PAGE under HOUSEKEEPING from
snip
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/