Control break summaries in QTP
Maloney, Charlie
Charlie.Maloney@Cognos.COM
Tue, 14 Sep 1999 13:23:52 -0400
Rich;
Without analyzing your program in great detail...
Here's the timing for output phase PROCESSING in QTP:
(It's slightly different for output phase INITIALIZATION,
never mind that for now)
1. "AT INITIAL"
2. "AT START OF" sortitems, major to minor
3. detail
4. "AT" sortitems, minor to major
5. "AT FINAL"
Your OUTPUT ADD operation takes place at step 3, detail time.
Your SUBTOTAL operation takes place at step 4, the END OF the THIRD SORT
BREAK,
which is AFTER the 'detail time'.
The way the program is written, BIN_COUNT can never have the value of 1
in the first record.
While I haven't examined the program in detail,
perhaps you could do your subtotal "AT START OF" your third sort break.
Charlie Maloney
Technical Account Manager
Charlie.Maloney@cognos.com
PH: 781 313 2305
FX: 781 229 6426
-----Original Message-----
From: Rich `Lego-Man' Jesse - 7633 [mailto:RJESSE@QTIWORLD.COM]
Sent: Tuesday, September 14, 1999 12:02 PM
To: powerh-l@lists.swau.edu
Subject: Control break summaries in QTP
Help!
I need to convert a QUIZ program to QTP, because the subfile output by the
QUIZ
report is moving in to our Oracle 7.3.4 DB (HP/UX 10.20, PH 7.33.D3).
Here's what I've got so far:
RUN MYTEST
REQUEST MYTEST &
ON CALCULATION ERRORS REPORT
SET PROCESS NOLIMIT
SET LOCK FILE UPDATE
ACCESS MYTABLE_1 &
LINK WORK_ORDER OF MYTABLE_1 VIAINDEX MYTABLE_2_WORK_ORDER TO
MYTABLE_2
DEFINE COMPARE_TODAYS_DATE NUM = DAYS(SYSDATE)
DEFINE D_TODAYS_DATE DATE = SYSDATE
DEFINE D_MYDATE NUM = DAYS(MYDATE OF MYTABLE_2)
DEFINE D_MASTER_LABEL_COUNT NUM*5 = 1
DEFINE D_QTY_TO_KIT FLOAT SIZE 8 = (TQTY OF MYTABLE_1 + AQTY OF
MYTABLE_1)
DEFINE SORT_WO_OPER_ASSY CHAR*34 = WORK_ORDER OF MYTABLE_1 + &
+ PARENT_PART_NUMBER OF MYTABLE_1
DEFINE SHORTAGE_ITEM NUM*1 = 1 IF (D_MYDATE >= COMPARE_TODAYS_DATE) OR &
COMPLETED_FLAG OF MYTABLE_2 = " ") ELSE 0
DEFINE D_BIN_COUNT NUM*5 = 1 IF (1 = SHORTAGE_ITEM) ELSE 0
DEFINE COMPPART_NUM NUM*15 = NCONVERT(TRUNCATE(PART_NUMBER OF
MYTABLE_1))
TEMPORARY T_MASTER_LABEL_COUNT NUM*5
ITEM T_MASTER_LABEL_COUNT SUBTOTAL D_MASTER_LABEL_COUNT
TEMPORARY T_BIN_COUNT NUM*5
SELECT IF 0 <> D_QTY_TO_KIT
SELECT MYTABLE_2 IF &
D_MYDATE <= COMPARE_TODAYS_DATE
SORT &
ON SHORTAGE_ITEM &
ON MYDATE OF MYTABLE_2 &
ON SORT_WO_OPER_ASSY &
ON COMPPART_NUM
ITEM T_BIN_COUNT SUBTOTAL D_BIN_COUNT AT SORT_WO_OPER_ASSY
OUTPUT QT_MYTEST_TABLE ADD
ITEM MYDATE FINAL MYDATE OF MYTABLE_2
ITEM WORK_ORDER FINAL WORK_ORDER OF MYTABLE_1
ITEM PARENT_PART_NUMBER FINAL PARENT_PART_NUMBER OF MYTABLE_1
ITEM PART_NUMBER FINAL PART_NUMBER OF MYTABLE_1
ITEM QTY_TO_KIT FINAL D_QTY_TO_KIT
ITEM MASTER_LABEL_COUNT SUBTOTAL T_MASTER_LABEL_COUNT
ITEM BIN_COUNT FINAL T_BIN_COUNT
The problem is that "BIN_COUNT" misses the first group of WORK_ORDER
records.
In other words, there is a set of records in the output that should have a
BIN_COUNT = "1". Instead it's "0", throwing off the BIN_COUNT of every
other
group of WORK_ORDER records.
My goal is to assign a new BIN_COUNT for every group of records with the
same
WORK_ORDER whose SHORTAGE_ITEM = 1. For example:
WORK_ORDER PARENT_PART_NUMBER PART_NUMBER MASTER_LABEL_COUNT
BIN_COUNT
12345 ABCDEF XYZD 1 0
12456 ABCDEF YYX 2 0
12789 ABCDEF ZXCXC 3 0
13456 ABCD DEFGHI 4 1
13456 ABCD EFGHH 5 1
13456 ABCD HIJKLM 6 1
14567 ABCDEFG REJ 7 2
14567 ABCDEFG SRTRTY 8 2
14567 ABCDEFG TYTRY 9 2
14567 ABCDEFG UIHHFG 10 2
This is what a sample of the output *should* look like. What's happening to
me is WORK_ORDER "13456" is getting a BIN_COUNT of "0", which causes
WORK_ORDER
"14567" to have a BIN_COUNT of "1", etc.
Any ideas??? I *thought* I was using the ITEMs and TEMPs correctly, but...
TIA!!!
Rich Jesse Programmer/Analyst
(/DBA/SysAdmin/etc.)
rjesse@qtiworld.com Quad/Tech International, Sussex, WI
USA
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu
Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
This list is closed, thus to post to the list, you must be a subscriber.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu
Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
This list is closed, thus to post to the list, you must be a subscriber.