Alternatively, you could to the reverse:
SELECT core_cart_head TO 2
LIST ore_cart_head expect_total_qty receipt_total_qty FROM 2

This might work, but I agree with Dave.  This looks like a LOT of overhead that 
could be done other ways, esp. if the file is big.


John Israel
Senior Programmer/Analyst
Dayton Superior Corporation
1125 Byers Road
Miamisburg, OH  45342


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of jonathanm
Sent: Wednesday, June 22, 2011 11:39 AM
To: [email protected]
Subject: Re: [U2] Very Strange: Only first DICT entry using SUBR is LISTed


Thanks for the reply, John.

I understand the concept you're talking about. I'm just not sure how to
implement it here, though, because I'm not using a SELECT or GET.LIST. It's
just a pure LIST command being passed to the subroutine, and I'm not sure
how to force a LIST command to use a non-default select list. Are you saying
I should precede the LIST command with a SELECT...TO command?

Sorry for not understanding.

Jonathan

Israel, John R. wrote:
> 
> Your subroutine within the DICT is clobbering the contents of the TCL
> LIST.  Using any type of SELECT, GET.LIST, etc within a subroutine should
> ALWAYS be done using the non-default select list to avoid this.  Line 20
> of your subroutine is the problem.  It is stepping on the LIST.
> 
> 
> John Israel
> Senior Programmer/Analyst
> Dayton Superior Corporation
> 1125 Byers Road
> Miamisburg, OH  45342
> 
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of jonathanm
> Sent: Wednesday, June 22, 2011 11:23 AM
> To: [email protected]
> Subject: [U2] Very Strange: Only first DICT entry using SUBR is LISTed
> 
> 
> Hi, all.
> 
> I'm on UniData 6.0 on hpux.
> 
> I have a couple of DICT entries, expect_total_qty and receipt_total_qty on
> a
> file called core_cart_head. They are listed below. When I use them in a
> LIST
> command like "LIST core_cart_head expect_total_qty receipt_total_qty" only
> the first field has an values, regardless of the order. For example, with
> the above LIST command I get:
> 
> LIST core_cart_head expect_total_qty receipt_total_qty
> core_cart_head     Expect Total Qty     Receipt Total Qty
> 67094_436_1        4
> 67094_436_2        7
> 67094_436_3        7
> 67094_436_4        1
> 67094_436_5        3
> 5 records listed
> 
> But if I reverse the order of fields and use "LIST core_cart_head
> receipt_total_qty expect_total_qty" I get:
> 
> LIST core_cart_head receipt_total_qty expect_total_qty
> core_cart_head     Receipt Total Qty     Expect Total Qty
> 67094_436_1        2
> 67094_436_2        5
> 67094_436_3        6
> 67094_436_4        3
> 67094_436_5        8
> 5 records listed
> 
> All of the data listed is correct; the only problem is only the first DICT
> word listed shows any values.
> 
> Any ideas why this is happening and how I can get both DICT words to show
> values?
> 
> Now here's the trick: Both DICT words use the SUBR function. They call a
> subroutine that EXECUTEs a different LIST command and parses the output,
> returning certain key information from the output.
> 
> Here are the DICT entries:
> 
> expect_total_qty
> 001: V The total number of cores expected in this cart.
> 002: SUBR("GET.LIST.TOTAL",'LIST core_cart_detail WITH cust_shipto_cart
> "':@ID:'" TOTAL expect_qty',"conversion=MR0")
> 003: MR0
> 004: Expect Total Qty
> 005: 10L
> 006: S
> 
> receipt_total_qty
> 001: V The total number of cores received in this cart.
> 002: SUBR("GET.LIST.TOTAL",'LIST core_cart_detail WITH cust_shipto_cart
> "':@ID:'" TOTAL receipt_qty',"conversion=MR0")
> 003: MR0
> 004: Receipt Total Qty
> 005: 10L
> 006: S
> 
> And here is the subroutine they're calling:
> 
> GET.LIST.TOTAL
> 001: $BASICTYPE "P"
> 002: SUBROUTINE GET.LIST.TOTAL(RESULT,COMMAND,OPTIONS)
> 003: *
> 004: CONVERSION_CODE=''
> 005: * process options
> 006: OPT.CNT=DCOUNT(OPTIONS,@AM)
> 007: FOR OPT.PTR=1 TO OPT.CNT
> 008:     OPTION=OPTIONS<OPT.PTR>
> 009:     OPT.NAME=FIELD(OPTION,'=',1)
> 010:     VALUE.START=COL2()+1
> 011:     OPT.NAME=OCONV(TRIM(OPT.NAME),'MCU')
> 012:     OPT.VALUE=OPTION[VALUE.START,LEN(OPTION)-VALUE.START+1]
> 013:     BEGIN CASE
> 014:         CASE OPT.NAME='CONVERSION'
> 015:             CONVERSION_CODE=OPT.VALUE
> 016:     END CASE
> 017: NEXT OPT.PTR
> 018: *
> 019: RESULT=''
> 020: PERFORM COMMAND CAPTURING SCREEN.OUTPUT
> 021: TOTAL.POS=INDEX(SCREEN.OUTPUT,@AM:'TOTAL ',1)
> 022: IF TOTAL.POS THEN
> 023:    
> REMAINING.STR=SCREEN.OUTPUT[TOTAL.POS+8,LEN(SCREEN.OUTPUT)-TOTAL.POS-7]
> 024:     RESULT=TRIM(REMAINING.STR<1>)
> 025:     IF CONVERSION_CODE <> '' THEN
> 026:         RESULT=ICONV(RESULT,CONVERSION_CODE)
> 027:     END
> 028: END
> 029: RETURN
> 
> 
> Thanks for any help!
> 
> Jonathan
> -- 
> View this message in context:
> http://old.nabble.com/Very-Strange%3A-Only-first-DICT-entry-using-SUBR-is-LISTed-tp31904158p31904158.html
> Sent from the U2 - Users mailing list archive at Nabble.com.
> 
> _______________________________________________
> U2-Users mailing list
> [email protected]
> http://listserver.u2ug.org/mailman/listinfo/u2-users
> 
> _______________________________________________
> U2-Users mailing list
> [email protected]
> http://listserver.u2ug.org/mailman/listinfo/u2-users
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Very-Strange%3A-Only-first-DICT-entry-using-SUBR-is-LISTed-tp31904158p31904310.html
Sent from the U2 - Users mailing list archive at Nabble.com.

_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to