>I'm trying to load an array into a combo box after the form has been loaded. I'm relating the contents of the CB to another field in a table, which I choose from another CB. I'd appreciate some help on this. Here's the code i'm using:
>
>LOCAL lnACnt && set local variable for array counter.
>
>lnACnt = 1 && initialize variable
>
>gcDeptNo = THISFORM.cboDept.VALUE
>
>IF !EMPTY(THISFORM.cboDept.VALUE)
>*--Redefine group array pertaining to the department chosen
> SELECT DISTINCT snag_temp.ass_group ;
> FROM snag_temp ;
> WHERE snag_temp.ass_l_dept = gcDeptNo ;
> INTO ARRAY gacGroupArray
> THISFORM.cboGroup.ENABLED = .T. &&Enable combo box
> THISFORM.cboGroup.CLEAR &&Clear combo box
>*--Load array into combo box
> FOR lnACnt = 1 TO ALEN(gacGroupArray)
> THISFORM.cboGroup.ADDITEM
> lnACnt = lnACnt + 1
> ENDFOR
>ELSE
> THISFORM.cboGroup.ENABLED = .F.
>ENDIF
>
>THISFORM.REFRESH()
>
>I believe I'm thinking in VB, but isn't the additem method similar.
>
>Thanx in advance.
>Perry
That's doable way, just few minor points:
1. Thisform.Combo.AddItem("something") to add new item
2. Thisform.Combo.Clear to remove all previous items
However, VFP allows to use data-bound rowsources much more efficiently than VB, so you can just recollect dept records to cursor and use this cursor as rowsource.
Edward Pikman
Independent Consultant