Having finally worked out where COMMAND comes from ...
In all likelihood your selections are going to select list 1 and
trashing each other!
Change that line to
PERFORM COMMAND:" TO 2" CAPTURING SCREEN.OUTPUT
and you might well get the answer you are expecting. I can't be sure,
because I've only used the TO syntax with SELECT, and I only know UV,
but iirc both LIST and SELECT call the same underlying code.
Or it might be a bit more complicated than that, but that's where your
problem almost certainly is.
Cheers,
Wol
On 22/06/11 16:22, jonathanm wrote:
>
> 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
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users