Welcome to Foxite.COM Community Weblog Sign in | Join | Help
<January 2009>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

Post Categories

Navigation

Emotion

UDF

Syndication

Populate Listview from a cursor customized

* Put that code in Listview.INIT

THIS.View= 3 && lvwReport
this.gridLines
= .T.
this.fullRowSelect
= .T.
this.BorderStyle= 0 && ccNone

lcHeaderT = "Head1;Head2;Head3;Head4;Head5"
lcHeaderW =
"30;60;60;60;100"
lcHeaderA = "0;1;2;0;0"
&& 0 Left,1 Right, 2 Center
lcFields = "FieldName1;FieldName2;FieldName3;FieldName4;FieldName5"

lnFldcnt = 5 &&FCOUNT(cALIAS)+1

cALIAS = 'Table'

LOCAL I,lnHeaderWidth

FOR I = 1 TO lnFldcnt
    lcHeaderText 
= GETWORDNUM(lcHeaderT,I,";"
)
    lcHeaderWidth = VAL(GETWORDNUM(lcHeaderW,I,";"
))
    lcHeaderAlign = VAL(GETWORDNUM(lcHeaderA,I,";"
))
    THIS.ColumnHeaders.Add(, ,lcHeaderText,lcHeaderWidth ,lcHeaderAlign
,0)
NEXT I

DECLARE INTEGER LockWindowUpdate IN user32 INTEGER hWndLock
v
= LockWindowUpdate(THIS.hWnd
)
this.Enabled= .F.

**** PUT DATA IN LISTVIEW
SELECT &cALIAS
SCAN
    **** EVALUATE FIRST ITEM
    lcFieldName1 = GETWORDNUM(lcFields,1,";")
&&FIELD(1)
    lcFieldValue = EVALUATE(lcFieldName1
)
    DO CASE
        CASE TYPE
("lcFieldValue")="N"
            lcFieldValue = ALLTRIM(STR(lcFieldValue))
        CASE TYPE("lcFieldValue")="G"
            lcFieldValue = "Gen"
        CASE TYPE("lcFieldValue")="C" OR TYPE("lcFieldValue")="M"
            lcFieldValue = ALLTRIM(lcFieldValue)
        CASE TYPE("lcFieldValue")="D"
            lcFieldValue = DTOC(lcFieldValue)
        CASE TYPE("lcFieldValue")="L"
            lcFieldValue = IIF(lcFieldValue = .T.,"Y","N")
    ENDCASE

    loListItem = this.ListItems.Add(,,AllTrim(lcFieldValue),,)

    **** EVALUATE REST ITEMS
    FOR J = 2 TO lnFldcnt
        lcFieldName 
= GETWORDNUM(lcFields,J,";") &&FIELD(j)
        lcFieldValue = EVALUATE(lcFieldName)
        DO CASE
            CASE TYPE
("lcFieldValue")="N"
                lcFieldValue = ALLTRIM(STR(lcFieldValue))
            CASE TYPE("lcFieldValue")="G"
                lcFieldValue = "Gen"
            CASE TYPE("lcFieldValue")="C" OR TYPE("lcFieldValue")="M"
                lcFieldValue = ALLTRIM(lcFieldValue)
            CASE TYPE("lcFieldValue")="D"
                lcFieldValue = DTOC(lcFieldValue)
            CASE TYPE("lcFieldValue")="L"
                lcFieldValue = IIF(&lcFieldValue=.t.,"Y","N")
        ENDCASE
        loListItem.subitems(J-1)=ALLTRIM(lcFieldValue)
    NEXT J

ENDSCAN

v = LockWindowUpdate(0)
this.Enabled= .T.
DECLARE INTEGER SendMessage IN user32;
    INTEGER hWnd,;
    INTEGER Msg,;
    INTEGER wParam,;
    INTEGER lParam

SET_COLUMN_WIDTH = 4126
AUTOSIZE_USEHEADER = -2

loListViewCC = This.ColumnHeaders.Count
ctrlHwnc = This.hWnd

FOR I = 0 TO loListViewCC - 1
    =
SendMessage(This.hWnd , SET_COLUMN_WIDTH, I,@AUTOSIZE_USEHEADER)
NEXT I

Published Friday, May 30, 2008 12:03 PM by samir_ibrahim

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

What do you think?

(required) 
required 
(required) 
Powered by Community Server, by Telligent Systems