[Gambas-user] Combobox returns item and item_key

Hugo Chillon hugo at ...2169...
Tue Aug 11 09:41:03 CEST 2009


Sorry Doriano, it's true. res.Count > 0 is the correct way.

And this class works well if all 'sort' process for items are in the SQL
sentence including an "ORDER BY ..." in strWhere.

Hugo Chillon




Hugo Chillon wrote:
> 
> For people who looks for a combobox to show items from a database table
> column but need combobox returns item_key from another column, this is a
> class for them:
> 
> ' Gambas class file
> '***************************************************************************
> '*  ComboBoxPlus class
> '*
> '* Autor: Hugo Chillon Estefanell
> '* Date: 09/08/2009
> '*
> '* ComboBoxPlus is a class designed to allow a ComboBox works with 2
> '* columns from a database table. First column for the key_item, second
> '* column for the item. Combobox shows item and ComboBoxPlus.ItemId()
> '* returns key_item
> 
> '* This class call a class (MysqlConnection) to access a database and
> obtain
> '* a Result object with data. You should use your own method to obtain the
> '* Result object
> '**************************************************************************
> 
> PRIVATE cboBase AS NEW Object[]
> PRIVATE cbo AS ComboBox
> 
> 
> PUBLIC SUB _New(combo AS ComboBox)
>     cbo = combo 
> END
> 
> 
> PUBLIC SUB Populate(strTable AS String, strIndex AS String, strValue AS
> String, strWhere AS String)
>     
>     DIM conn AS MysqlConnection
>     DIM strSQL AS String
>     DIM res AS Result
>     
>     strSQL = "SELECT " & strIndex & ", " & strValue & " FROM " & strTable
> & " " & strWhere
>     
>     conn = NEW MysqlConnection
>     res = conn.RunDSQ(strSQL)
>     IF res.Count > 1 THEN 
>         res.MoveFirst
>         cbo.Add("")
>         cboBase.Add(["", ""])
>         DO WHILE res.Available
>             cbo.Add(res[1])
>             cboBase.Add([res[0], res[1]])
>             res.MoveNext
>         LOOP
>     ENDIF
> END
> 
> 
> PUBLIC FUNCTION ItemId() AS Integer
>   
>     DIM intValue AS Integer
>     
>     intValue = cboBase[cbo.Index][0]
>     RETURN intValue
>   
> END
> 

-- 
View this message in context: http://www.nabble.com/Combobox-returns-item-and-item_key-tp24910878p24913137.html
Sent from the gambas-user mailing list archive at Nabble.com.





More information about the User mailing list