PROCEDURE PD_AddPDLVHeadings(oLV) WITH oLV .COLUMNHEADERS.ADD(,[PROD_CODE],[Product],87,,) && Header = Product .COLUMNHEADERS.ADD(,[CALLER_REF],[Reference],87,,) && Header = reference ENDWITH ENDPROCWhen I add Items:
PROCEDURE PD_AddPDLV_All_Nodes(oLV) SELECT R6_ProductDescription SET ORDER TO PROD_CODE && PROD_CODE GO top SCAN PD_AddPDLV_ONE_Nodes(oLV) ENDSCAN GO TOP ENDPROC PROCEDURE PD_AddPDLV_ONE_Nodes(oLV) WITH oLV * Add the first columm [PROD_CODE] = column key oNodeRow=.listitems.ADD(,prod_code,prod_code,,) && Prod_Code * Add the second column [CALLER_REF] = column key oNodeRow.SubItems(.COLUMNHEADERS([CALLER_REF]).SubItemIndex)=caller_ref oLV.ListItems(prod_code).ListSubitems(oLV.COLUMNHEADERS([CALLER_REF]).SubItemIndex).forecolor=255 ENDWITH ENDPROCAs you can see the the items are added by reference to columnheader keys.
>LOCAL lcAlias, lcAlias2, loHeader, loItem, lcValue, i, j
>
>lcAlias2 = SYS(2015)
>
>IF !EMPTY(lcAlias)
> SELECT idkey, name, description FROM (tableXX) INTO CURSOR (lcAlias2)
> j = 1
>
> THISFORM.clsrcplistview1.ColumnHeaders.CLEAR
>
> FOR j = 1 TO 2
> IF j > THISFORM.clsrcplistview1.ColumnHeaders.COUNT
> loHeader = THISFORM.clsrcplistview1.ColumnHeaders.ADD()
> ELSE
> loHeader = THISFORM.clsrcplistview1.ColumnHeaders(j)
> ENDIF
>
> loHeader.KEY = SYS(2015)
>
> DO CASE
> CASE j = 1
> loHeader.TEXT = 'Name'
> loHeader.WIDTH = 500
> CASE j = 2
> loHeader.TEXT = 'Description'
> loHeader.WIDTH = 500
> ENDCASE
> ENDFOR
>
> THISFORM.clsrcplistview1.REFRESH()
>
> SELECT (lcAlias2)
> SCAN
> i = 1
> FOR i = 1 TO 2
> lcValue = &lcAlias2..idkey + &lcAlias2..name
> IF i = 1
> loItem = THISFORM.clsrcplistview1.ListItems.ADD(, lcValue, &lcAlias2..name)
> ELSE
> loItem.SubItems(i-1) = &lcAlias2..description
> ENDIF
> ENDFOR
> ENDSCAN
>
> THISFORM.clsrcplistview1.REFRESH()
>ENDIF
>
>
>
>Regards,
>JennyImagination is more important than knowledge