Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

CheckBox Selection

I am having 5 check boxes in my screen..In that last checkbox is SELECT ALL.... If i had selected that checkbox all the other 4 checkboxes shd be selected. if i unchecked that checkbox all the others shd be unchecked...for this i had wrote the source in item event....Here is my source..

 Select Case pVal.EventType
Case SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED
Dim ChkALL As SAPbouiCOM.CheckBox = Conv_Form.Items.Item("chkALL").Specific
Dim Chk1 As SAPbouiCOM.CheckBox = Conv_Form.Items.Item("chk1").Specific
Dim Chk2 As SAPbouiCOM.CheckBox = 
Conv_Form.Items.Item("chk2").Specific
Dim Chk3 As SAPbouiCOM.CheckBox = Conv_Form.Items.Item("chk3").Specific
Dim Chk4 As SAPbouiCOM.CheckBox = Conv_Form.Items.Item("chk4").Specific
    If ChkALL.Checked = "True" Then
       Chk1.Checked = "True"
       Chk2.Checked = "True"
       Chk3.Checked = "True"
       Chk4.Checked = "True"
     Else
        Chk1.Checked = "False"
        Chk2.Checked = "False"
        Chk3.Checked = "False"
        Chk4.Checked = "False"
        ChkALL.Checked = "False"
     End If
End Select

What i want is whenever i select the SelectAll checkbox all the other checkboxes should be selected atonce..but in my case, the checkboxes are checked one by one.....

Wats the solution for this.....

Former Member
Former Member replied

Hi,

I would work with the Check boxes via DataSources (it' always a good idea to bind everything on a form with DataSources - if ther's no DBDataSource or DataTable then using a UserDataSource)

In your case with UserDataSources I would try:

            ' Global Vars of your form:
            Private Shared oForm As SAPbouiCOM.Form ' Set to your form on initializing the form
            Private Shared oUds As SAPbouiCOM.UserDataSources ' Set to the forms UserDataSources on initializing the form

            ' Init. and Databinding the Checkboxes: 
            oChk = oForm.Items.Item("ChkALL").Specific
            oChk.ValOff = "N"
            oChk.ValOn = "Y"

            oChk = oForm.Items.Item("Chk1").Specific
            oChk.ValOff = "N"
            oChk.ValOn = "Y"
            '       :     
            '       :
            ' ...same with chk2-chk4


            oUds.Add("UDS_ChkAll", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 1)
            oForm.Items.Item("ChkALL").Specific.databind.setbound(True, "", "UDS_ChkAll")
            '       :     
            '       :
            ' ...same with chk1-chk4

And in your function or event-handler (for item ChkAll with ItemPressed and NOT BeforeAction):

    If oUds.Item("UDS_ChkALL").ValueEx = "Y" Then
       oUds.Item("UDS_Chk1").ValueEx = "Y"
       oUds.Item("UDS_Chk2").ValueEx = "Y"
       oUds.Item("UDS_Chk3").ValueEx = "Y"
       oUds.Item("UDS_Chk4").ValueEx = "Y"
     Else
       oUds.Item("UDS_Chk1").ValueEx = "N"
       oUds.Item("UDS_Chk2").ValueEx = "N"
       oUds.Item("UDS_Chk3").ValueEx = "N"
       oUds.Item("UDS_Chk4").ValueEx = "N"
       ' This should not be needed: oUds.Item("UDS_ChkALL").ValueEx = "N"
     End If

Attention: this is written from my head an not tested yet. There may be some little mistakes but in principle it should be ok.

Edited by: Roland Toschek on Sep 19, 2008 3:10 PM

Edited by: Roland Toschek on Sep 19, 2008 3:14 PM

0 View this answer in context
Not what you were looking for? View more on this topic or Ask a question