Skip to Content
0
Sep 10, 2009 at 01:23 AM

What is the fastest way to load ComboBox Valid Values?

413 Views

<b>What is the fastest way to load ComboBox Valid Values?</b><br />

<br />

I am loading a Combo with a 1,200 valid values manually (One by One, from a SQLQuery Recordset) but is taken too much time.<br />

<br />

What is taken must of the time is adding values to the combo, the database query run very fast.<br />

<br />

<b>Is any way to load a Combo from a Data table Data Source?</b> like the ones you can use with a Matrix when you have data source table created like thisu2026<br />

<pre class="jive-pre"><code class="jive-code jive-java"> oForm.DataSources.DataTables.Add(<font color="red">&quot;DATATABLE&quot;</font>)

</code></pre><br />

That is loaded from a Query.<br />

<br />

<b>Is any way to load combo box valid from an XML file in one step?</b><br />

<br />

This is my code, it runs with no errors but is slow (Vars not declared in FillCombo procedure are global):<br />

<pre class="jive-pre"><code class="jive-code jive-java"> <font color="navy"><b>private</b></font> <font color="navy"><b>void</b></font> FillCombo(string CombName, String SQuery)

<font color="navy">{</font>

SqlCommand cmd = <font color="navy"><b>new</b></font> SqlCommand(SQuery, conn);

&nbsp;

reader = cmd.ExecuteReader();

&nbsp;

<font color="darkgreen">// Locate item</font>

SAPbouiCOM.Item oItem = <font color="navy"><b>null</b></font>;

oItem = oForm.Items.Item(CombName);

&nbsp;

<font color="darkgreen">// Bind item to ComboBox Variable</font>

SAPbouiCOM.ComboBox oComboBox = <font color="navy"><b>null</b></font>;

oComboBox = ((SAPbouiCOM.ComboBox)(oItem.Specific));

&nbsp;

<font color="darkgreen">// Clear Current Values</font>

<font color="navy"><b>for</b></font> (<font color="navy"><b>int</b></font> i = oComboBox.ValidValues.Count; i &gt; 0; i--)

oComboBox.ValidValues.Remove(i - 1, SAPbouiCOM.BoSearchKey.psk_Index);

&nbsp;

&nbsp;

<font color="darkgreen">// Add No Selection Value (Default Combo Value)</font>

oComboBox.ValidValues.Add(<font color="red">&quot;0&quot;</font>, <font color="red">&quot;Todos&quot;</font>);

oForm.Items.Item(CombName).DisplayDesc = <font color="navy"><b>true</b></font>;

&nbsp;

<font color="navy"><b>int</b></font> counter = oComboBox.ValidValues.Count;

&nbsp;

<font color="navy"><b>while</b></font> (reader.Read())

<font color="navy">{</font>

<font color="darkgreen">// Fill Valid Values</font>

oComboBox.ValidValues.Add(counter.ToString(), reader[0].ToString());

++counter;

<font color="navy">}</font>

&nbsp;

oComboBox.Select(<font color="red">&quot;Todos&quot;</font>, SAPbouiCOM.BoSearchKey.psk_ByDescription);

&nbsp;

oItem.Enabled = <font color="navy"><b>true</b></font>;

&nbsp;

cmd.Dispose();

<font color="navy">}</font>

</code></pre><br />

Thanks