Hello gang,
I'm am having issues with an MPEX expression file; shown below. It's
used for extracting Database info; shortened version of Vesoft's DB
expression file.
My problem is if the last data set in my selection is a Jumbo then it
would display that information 3 lines below the previous line being
displayed. I added a cheat command at the end to move the cursor up 3
lines and then print the final data set (if it was a jumbo).
Does anyone know of a way to get the expression to display this last
jumbo data set without the gyrations I'm going through? I would email
this to Vesoft but I don't' have a support email address to send it to.
Here's the text.
VAR CALCPCT: REAL;
VAR HOLDCAPACITY: INTEGER;
VAR HOLDENTRIES: INTEGER;
VAR HOLDFILE: STRING[8];
VAR HOLDNAME: STRING[8];
VAR HOLDPCT: STRING[4];
VAR HOLDSECT: INTEGER;
VAR HOLDSET: STRING[16];
VAR HOLDTYPE: STRING[2];
VAR PREVGROUPACCT: STRING[17];
VAR PREVROOT: STRING[8];
VAR JUMBO: BOOLEAN;
VAR CHUNKS: INTEGER;
HOLDNAME:= " ";
HOLDFILE:= " ";
HOLDSET:= " ";
HOLDTYPE:= " ";
HOLDENTRIES:= 0;
HOLDCAPACITY:= 0;
HOLDSECT:= 0;
CALCPCT:= 0;
JUMBO:= FALSE;
PREVGROUPACCT:='';
PREVROOT:='';
CHUNKS:= 1;
SUBROUTINE PRINTEM;
BEGIN
WRITELN (HOLDNAME:8," ",
HOLDSET:16," ",
STRWRITE(HOLDTYPE:3:'LEFTJUST'),
STRWRITE(HOLDENTRIES:10:'RIGHTJUST')," ",
STRWRITE(HOLDCAPACITY:10:'RIGHTJUST')," ",
STRWRITE(CALCPCT:6),"%"," ",
STRWRITE(HOLDSECT:10:'RIGHTJUST')," ",
STRWRITE(CHUNKS:2:'RIGHTJUST')
);
HOLDNAME:= " ";
HOLDFILE:= " ";
HOLDSET:= " ";
HOLDTYPE:= " ";
HOLDENTRIES:= 0;
HOLDCAPACITY:= 0;
HOLDSECT:= 0;
CALCPCT:= 0;
CHUNKS:= 1;
JUMBO:= FALSE;
END;
SUBROUTINE LINEITEM;
BEGIN
IF INTCODE = -409 THEN
BEGIN
HOLDFILE:= LFT(FILE,8);
HOLDSECT:= HOLDSECT + SECTORS;
CHUNKS:= CHUNKS + 1;
JUMBO:= TRUE;
END
ELSE
BEGIN
IF LFT(FILE,8) <> HOLDFILE and HOLDFILE <> " " THEN
BEGIN
IF HOLDSECT >= 16776704 THEN
HOLDTYPE:= HOLDTYPE + "J"
ELSE
HOLDTYPE:= HOLDTYPE + " ";
PRINTEM;
HOLDNAME:= FILE;
HOLDSET:= DBSETNAME;
HOLDTYPE:= DBSETTYPE + " ";
HOLDENTRIES:= DBSETENTRIES;
HOLDCAPACITY:= DBSETCAPACITY;
HOLDSECT:= SECTORS;
IF DBSETFULLNESS <=.0005 THEN 0
ELSE CALCPCT:= DBSETFULLNESS*100;
END
ELSE
HOLDNAME:= FILE;
HOLDSET:= DBSETNAME;
HOLDTYPE:= DBSETTYPE + " ";
HOLDENTRIES:= DBSETENTRIES;
HOLDCAPACITY:= DBSETCAPACITY;
HOLDSECT:= SECTORS;
IF DBSETFULLNESS <=.0005 THEN 0
ELSE CALCPCT:= DBSETFULLNESS*100;
IF INTCODE = -401 THEN PRINTEM;
END;
END;
MPEXHEADER1:="FILENAME SET NAME TYPE ENTRIES "+
"CAPACITY % FULL SECTORS CHUNKS";
MPEXHEADER2:="-------- --------------- ---- ---------- "+
"---------- ------- ---------- ------";
FOR RFILE IN MPEXFILESETGENERAL(1, TRUE)
SELECT INTCODE=-401 OR INTCODE=-408 OR INTCODE=-409
DO
BEGIN
IF GROUP+'.'+ACCOUNT=PREVGROUPACCT AND
STRRDROP(TOKEN(FILE,'.'),2)<>PREVROOT THEN
WRITELN
ELSE
LINEITEM;
PREVGROUPACCT:=GROUP+'.'+ACCOUNT;
PREVROOT:=STRRDROP(TOKEN(FILE,'.'),2);
END;
IF JUMBO THEN
BEGIN
WRITELN("AAA");
PRINTEM;
END;
* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
|