SAP Business One Addon - Combobox Nedir? Nasıl Kullanılır?
Güncelleme tarihi: 29 Oca 2022
Addon geliştirirken en çok kullandığımız bileşenlerden bir tanesi de ComboBox bileşenidir. Bu bileşen ile üzerine basıldığında görünen bir listeden seçim yapabilmekteyiz.
Kullanımı:
Toolbox dan bir ComboBox ve UserDataSource bileşeni sürükleyip bırakın. UserDatasource ile ComboBox bileşenini ilişkilendirin.

ComboBox içerisindeki listeyi birden fazla şekilde doldurabiliriz. Eğer alabileceği değerler listesi sabit ise ValidValues property ile içeriği doldurabiliriz.

Eğer içerik form açıldığında yüklenmesi gerekiyorsa bunu kod ile kolaylıkla yapabiliriz. ComboBox bileşenin kod ile ValidValues property sine giderek .Add("Name","Description") şeklinde değerleri girebilirsiniz.

Ekranda değerler value-description şeklinde görünecektir. Bunu değiştirmek için ComboBox bileşeninin ExpandType property sini değiştirmeniz gerekmektedir.
(this.UIAPIRawForm.Items.Item("Item_9").Specific as SAPbouiCOM.ComboBox).ExpandType = SAPbouiCOM.BoExpandType.et_DescriptionOnly;

SAPbouiCOM.BoExpandType tipleri:
BoExpandType | Açıklama |
et_ValueDescription | Değer ve açıklama birlikte |
et_ValueOnly | Sadece değer |
et_DescriptionOnly | Sadece açıklama |
Bazen de veritabanın dan bu listeyi çekme ihtiyacı olabilmektedir.
private void Button0_ClickBefore(object sboObject, SAPbouiCOM.SBOItemEventArg pVal, out bool BubbleEvent)
{
BubbleEvent = true;
var combobox = (this.UIAPIRawForm.Items.Item("Item_9").Specific as SAPbouiCOM.ComboBox);
var recordSet = (Application.SBO_Application.Company.GetDICompany() as SAPbobsCOM.Company).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) as SAPbobsCOM.Recordset;
recordSet.DoQuery("SELECT * FROM OCRD");
while (!recordSet.EoF)
{
combobox.ValidValues.Add(recordSet.Fields.Item("CardCode").Value.ToString(), recordSet.Fields.Item("CardName").Value.ToString());
recordSet.MoveNext();
}
combobox.ExpandType = SAPbouiCOM.BoExpandType.et_DescriptionOnly;
}
Bu durumda bir RecordSet nesnesi ile bir sql ile verisi çekip ComboBox nesnesinin validvalues property sine yükleyebilirsiniz.
