Re: [U2] a data view utility of great use
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
=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/