SAP SDK CHEAT SHEET HELP

 ---------------------------to Click on Matrix specific row Start--------------------

__mtrx.Columns.Item("V_3").Cells.Item(pVal.Row).Click(BoCellClickType.ct_Regular);


---------------------------to Click on Matrix specific row END--------------------

-------------------------disable/enable specific cell on the matrix Start-------------------

oMatrix.CommonSetting.SetCellEditable(Row number, Column Number , false);

----------------------disable/enable specific cell on the matrix END-----------------------


----------------------disable/enable specific Column on the matrix Start--------------------

oMatrix.Columns.Item("U_CIN_QTYINKG").Editable=false;

-----------------------disable/enable specific Column on the matrix END----------------------


--------------------Recordset Entry value getting and converting to string Start-------------------

Convert.ToString(oRecoEntry.Fields.Item(0).Value);

--------------------Recordset Entry value getting and converting to string end-------------------

--------------------wRITING QUERY WITH NEWLINE AND RECORDSET START-----------------------

 string serialNo_query = Environment.NewLine + "    Select Row_Number() over (order By  IntrSerial)[RowNo],T0.SysSerial,T1.MnfSerial, IntrSerial                    "

                                   + Environment.NewLine + "   into #a from OSRI T0                                                "

                                   + Environment.NewLine + "     Inner Join OSRN T1 on T0.ItemCode=T1.ItemCode and T0.SysSerial=T1.SysNumber   "

                                   + Environment.NewLine + "     Where T0.ExpDate is null and T0.ItemCode='" + ItemCode + "' and WhsCode='" + WarehouseCode + "' and T0.Status=0 "

                                   + Environment.NewLine + "     Order By SysSerial "

                                   + Environment.NewLine + "     Select * from #a Where RowNo<='" + Quantity + "' "

                                   + Environment.NewLine + "     Drop Table #a";

            SAPbobsCOM.Recordset oReco_Sr = ClsQC_SBOAddOn.SBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) as SAPbobsCOM.Recordset;

            oReco_Sr.DoQuery(serialNo_query);

            int recCount = oReco_Sr.RecordCount;

--------------------wRITING QUERY WITH NEWLINE AND RECORDSET end---------------------------

-------------------------------------------

SAPbobsCOM.BoUTBTableType.bott_Document

-------------------------------------------

-----------SETTING FOCUS ON PERTICULAR ITEM START---------------------------

Form.Items.Item("etFocus").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

-----------SETTING FOCUS ON PERTICULAR ITEM END---------------------------


------------------------- select and delete a row in the system Matrix START------------------------------------------


do the following


'SELECT ROW

oMatrix.Columns.Item(0).Cells.Item(row2delete).Click(SAPbouiCOM.BoCellClickType.ct_Regular, SAPbouiCOM.BoModifiersEnum.mt_CTRL)


'CALL CLICK

oMatrix.Columns.Item(1).Cells.Item(row2delete).Click()


'DELETE ROW same as CTRL +  K

oApplication.Menus.Item("1293").Activate() 

------------------------- select and delete a row in the system Matrix END-----------------------------------------

--------------------------GETTING MATRIX COLUMN CELL VALUE AND SETTING TO STRING VARIABLE START------------------------------------------------

 string MParty = (oMatrix.Columns.Item("PRTY").Cells.Item(v).Specific as SAPbouiCOM.EditText).Value.ToString();

--------------------------GETTING MATRIX COLUMN CELL VALUE AND SETTING TO STRING VARIABLE END----------------------------------------------------------


--------------------------SETTING MATRIX COLUMN CELLS VALUE FROM VARIABLE START------------------------------------------


  ((SAPbouiCOM.EditText)oMatrix.Columns.Item("BQTY").Cells.Item(J).Specific).Value = BQty;

  

--------------------------SETTING MATRIX COLUMN CELLS VALUE FROM VARIABLE END------------------------------------------

------------------------------Setting Combo box value Start------------------------------------------

     (__form__.Items.Item("10").Specific as SAPbouiCOM.ComboBox).Select("R", BoSearchKey.psk_ByValue);

------------------------------Setting Combo box value END------------------------------------------

------------------------------Release Recordset component start---------------------------------------------

System.Runtime.InteropServices.Marshal.ReleaseComObject(oRecord);

------------------------------Release Recordset component End---------------------------------------------

------------------------------Making Right Click disable on specific case Start----------------------------

protected override void RIGHT_CLICK_BEFOREACTION(ref ContextMenuInfo eventInfo, out bool BubbleEvent)

        {

            BubbleEvent = true;

            if ((eventInfo.ItemUID == "edtx" || eventInfo.ItemUID == "12" || eventInfo.ItemUID == "78" || eventInfo.ItemUID == "255000122") && (__form__.Mode == BoFormMode.fm_OK_MODE || __form__.Mode == BoFormMode.fm_UPDATE_MODE))

            {

                 BubbleEvent = false;

                 ClsQC_SBOAddOn.SBOApplication.SetStatusBarMessage("RightClick not allowed ", SAPbouiCOM.BoMessageTime.bmt_Short, false);

                 return;

            }

            if (eventInfo.ItemUID == "37" && eventInfo.ColUID == "14")

            {

                 BubbleEvent = false;

                 ClsQC_SBOAddOn.SBOApplication.SetStatusBarMessage("RightClick not allowed ", SAPbouiCOM.BoMessageTime.bmt_Short, false);

                 return;

            }

        }

------------------------------Making Right Click disable on specific case END----------------------------

-------------------------Syntax to Activate menu Start------------------------------------------------


ClsQC_SBOAddOn.SBOApplication.ActivateMenuItem("1304");


-------------------------Syntax to Activate menu Start------------------------------------------------

-------------------------READING AND PARSING VALUE TYPE START------------------------------------------------

 string Planned = __OWOR.GetValue("PlannedQty", 0).Trim();

                            string Total = Convert.ToString(oRecord.Fields.Item(0).Value);

                            decimal pl = 0, to = 0;

                            decimal.TryParse(Planned, out pl);

                            decimal.TryParse(Total, out to);

                            if (to < pl)

                            {


                            }

-------------------------READING AND PARSING VALUE TYPE END------------------------------------------------

------------------------- GETTING LAST ADDED DOCENTRY FROM SYSTEM FORM START-------------------------------------------------------------

string  name;

        protected override void etoForm_DATA_ADDAfterAction(ref BusinessObjectInfo BusinessObjectInfo, out bool BubbleEvent)

        {

            BubbleEvent = true;

            string SerialNumber = (__form__.Items.Item("edtx").Specific as SAPbouiCOM.EditText).Value.ToString();

            if (BusinessObjectInfo.ActionSuccess == true)

            {

                var document = System.Xml.Linq.XDocument.Parse(BusinessObjectInfo.ObjectKey);

                 name = document.Element("ProductionOrderParams").Element("AbsoluteEntry").Value.ToString();


                 

                 if (CheckProductionStage(name))

                 {

                     try

                     {

                         string Query = "Update OWOR Set U_CINN_3SPD='" + name + "'  Where DocEntry in ('" + pdNo + "','" + pd2STNo + "')";

                        SAPbobsCOM.Recordset oRecordset;

                        oRecordset = (SAPbobsCOM.Recordset)ClsQC_SBOAddOn.SBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);

                        oRecordset.DoQuery(Query);

                     }

                     catch (Exception)

                     {

                         

                         throw;

                     }

                 }

                                               

            }

        }

------------------------- GETTING LAST ADDED DOCENTRY FROM SYSTEM FORM END-------------------------------------------------------------

--------------------------ADDING FORM ITEM VIA CODE START-----------------------------------------------------------------------

oItem = __form__.Items.Item("255000113");

            SAPbouiCOM.Item oNewItemxlnk = __form__.Items.Add("lnk1", SAPbouiCOM.BoFormItemTypes.it_LINKED_BUTTON);

            oNewItemxlnk.Left = oItem.Left;

            oNewItemxlnk.Width = oItem.Width;

            oNewItemxlnk.Top = oItem.Top + 19;

            oNewItemxlnk.Height = oItem.Height;

            SAPbouiCOM.LinkedButton lnk = (SAPbouiCOM.LinkedButton)oNewItemxlnk.Specific;

            lnk.LinkedObjectType = "22";

            lnk.LinkedObject = BoLinkedObject.lf_PurchaseOrder;

            lnk.Item.LinkTo = "txt8";

            oNewItemxlnk.Visible = true;

--------------------------ADDING FORM ITEM VIA CODE END-----------------------------------------------------------------------

--------------------------INITIALIZING OBJECT ON FORM LOAD  START--------------------------------------------------------------------------

   this.__form__ = ClsQC_SBOAddOn.SBOApplication.Forms.GetForm(pVal.FormTypeEx, pVal.FormTypeCount);

                    this.__OWOR = this.__form__.DataSources.DBDataSources.Add("OWOR");

                    this.__WOR1 = this.__form__.DataSources.DBDataSources.Add("WOR1");

                    this.__matrix__ = this.__form__.Items.Item("37").Specific as SAPbouiCOM.Matrix;

                    SAPbouiCOM.Item oItem = __form__.Items.Item("234000002");

--------------------------INITIALIZING OBJECT ON FORM LOAD  END--------------------------------------------------------------------------


--------------------------ADDING FORM ITEM COMBO BOX AND FILLING WITH QUERY RESULT START---------------------------------------------------------------------------

oItem = __form__.Items.Item("edtx");

                    oNewItemx = __form__.Items.Add("comb1", SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX);

                    oNewItemx.Left = oItem.Left;

                    oNewItemx.Width = oItem.Width;

                    oNewItemx.Top = oItem.Top+17;

                    oNewItemx.Height = oItem.Height;

                    SAPbouiCOM.ComboBox comb = (SAPbouiCOM.ComboBox)oNewItemx.Specific;

                    comb.Item.LinkTo = "comb";

                    comb.DataBind.SetBound(true, "OWOR", "U_CINN_WORK");

                    comb.ExpandType = BoExpandType.et_DescriptionOnly;

                    comb.Item.DisplayDesc = true;

                    ClsQC_SBOAddOn.FillCombo(ref comb, "   SELECT Code, ISNULL(Name,'')+ISNULL('-'+CAST(U_CNN_NAME AS VARCHAR),'')+ISNULL('-'+CAST(U_CNN_CNTRNM AS VARCHAR),'') AS U_CNN_NAME FROM \"@CNN_WORKER\"  ");

--------------------------ADDING FORM ITEM COMBO BOX AND FILLING WITH QUERY RESULT END---------------------------------------------------------------------------

---------------------------fORCEFULLY BINDING VALUE IN MATRIX COMBO BOX WITH QUERY VALUE START-------------------------------------------------------------------------

SAPbouiCOM.ComboBox _cmbDr = (SAPbouiCOM.ComboBox)_mtrx.Columns.Item("U_CINN_DRMAN").Cells.Item(1).Specific;

                    _cmbDr.Item.DisplayDesc = true;

                    _cmbDr.ExpandType = BoExpandType.et_DescriptionOnly;

                    string sSQL = "Select empID,CONCAT(FirstName,' ',LastName)[Name] from OHEM Where Dept='3' ";

                    SAPbobsCOM.Recordset businessObject = (SAPbobsCOM.Recordset)ClsQC_SBOAddOn.SBOCompany.GetBusinessObject(BoObjectTypes.BoRecordset);

                    businessObject.DoQuery(sSQL);

                    businessObject.MoveFirst();

                    while (!businessObject.EoF)

                    {

                        _cmbDr.ValidValues.Add(businessObject.Fields.Item((object)0).Value.ToString(), businessObject.Fields.Item((object)1).Value.ToString());

                        businessObject.MoveNext();

                    }

                    Marshal.ReleaseComObject((object)businessObject);

---------------------------fORCEFULLY BINDING VALUE IN MATRIX COMBO BOX WITH QUERY VALUE END-------------------------------------------------------------------------

---------------------------- checking duplicate value in matrix Start----------------------------------------------------------------------

 #region CHECK DUPLICATE VALUE IN MATRIX


        public bool CheckDuplicateMatrixValue(SAPbouiCOM.Matrix oMatrix, string oColumnNo)

        {

            bool oFlag = false;

            for (int i = 1; i <= oMatrix.RowCount; i++)

            {

                string oNewValue = ((SAPbouiCOM.EditText)oMatrix.Columns.Item(oColumnNo).Cells.Item(i).Specific).String;

                for (int j = 1; j < oMatrix.RowCount; j++)

                {

                    if (i != j)

                    {

                        string oOldValue = ((SAPbouiCOM.EditText)oMatrix.Columns.Item(oColumnNo).Cells.Item(j).Specific).String;

                        if (oNewValue == oOldValue)

                        {

                            oFlag = true;

                            break;

                        }

                    }

                }

            }

            return oFlag;

        }


        #endregion

---------------------------- checking duplicate value in matrix End----------------------------------------------------------------------

-----------------------------setting line number on matrix  Start-----------------------------------------------------------------------------------------------------------

        public void LineNumber()

        {

            for (int i = 1; i <= __mtrx.VisualRowCount; i++)

            {

                (__mtrx.Columns.Item("V_-1").Cells.Item(i).Specific as SAPbouiCOM.EditText).Value = i.ToString();

            }

        }

-----------------------------setting line number on matrix  End-----------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------

 if (oRecoEntry.RecordCount > 0)

            {

               

                int i = 1;

                while(!oRecoEntry.EoF)

                {

                   // __mtrx.FlushToDataSource();

                   // _MSR1.SetValue("LineID", i, (i + 1).ToString());

                   // _MSR1.SetValue("U_CNN_S1ISRNO", i, Convert.ToString(oRecoEntry.Fields.Item(0).Value));

                    //_MSR1.SetValue("CNN_S1ISRNO", i, Convert.ToString(oRecoEntry.Fields.Item(0).Value));

                    __mtrx.AddRow(1, i);

                    ((IEditText)this.__mtrx.Columns.Item((object)"V_-1").Cells.Item((object)i).Specific).Value = i.ToString();

                    ((IEditText)this.__mtrx.Columns.Item((object)"V_3").Cells.Item((object)i).Specific).Value = Convert.ToString(oRecoEntry.Fields.Item(0).Value);

                    i++;

                   

                    oRecoEntry.MoveNext();

                   


                }



            }

----------------------------------------------------------------------------------------------------

--------------------------------validation for Not adding with no row detail Start--------------------------------------------------------------------

if (pVal.ItemUID == "1" && (oForm.Mode == SAPbouiCOM.BoFormMode.fm_ADD_MODE || oForm.Mode == SAPbouiCOM.BoFormMode.fm_UPDATE_MODE))

                {


                    oMatrix.FlushToDataSource();


                    if (ODBDetail.Size == 0 || String.IsNullOrEmpty(ODBDetail.GetValue("U_ITMCD", 0).Trim()))

                    {


                        ClsSBOAddOn.ShowErrorMessage("Document cannot be added Without Details");


                        BubbleEvent = false;

                        

                        return;

                    }


                }

--------------------------------validation for Not adding with no row detail end--------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------

if (pVal.ItemUID == "btnImport" && oForm.Mode == SAPbouiCOM.BoFormMode.fm_ADD_MODE)

                {

                    if (dt.Rows.Count > 0)

                    {

                        Regex regex = new Regex(@"^[0-9]\d*(\.\d+)?$");

                        ClsSBOAddOn.ShowWarningMessage("Please wait Data refreshing....");

                        int J = 1;


                        for (int i = 0; i < dt.Rows.Count; i++)

                        {

                            oMatrix.AddRow(1, i);

                           // ((SAPbouiCOM.EditText)oMatrix.Columns.Item("SNO").Cells.Item(J).Specific).Value = dt.Rows[i][0].ToString().Trim();

                            if (this.CheckDepotExist(dt.Rows[i][1].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("DEPT").Cells.Item(J).Specific).Value = dt.Rows[i][1].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Depot/Godown Code not exist in system for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (this.CheckMonthMatch(dt.Rows[i][2].ToString().Trim(), ODBmaster.GetValue("U_MONTH", 0).ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("DATE").Cells.Item(J).Specific).Value = dt.Rows[i][2].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Form Month and Sheet Month not match for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (this.CheckPartyExist(dt.Rows[i][3].ToString().Trim()))

                            {


                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("PRTY").Cells.Item(J).Specific).Value = dt.Rows[i][3].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("PartyCode not exist in system for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (this.CheckItemExist(dt.Rows[i][4].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("ItemCode").Cells.Item(J).Specific).Value = dt.Rows[i][4].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Itemcode not exist in system for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Itmnm").Cells.Item(J).Specific).Value = dt.Rows[i][5].ToString().Trim();

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("BRND").Cells.Item(J).Specific).Value = dt.Rows[i][6].ToString().Trim();

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("PLC").Cells.Item(J).Specific).Value = dt.Rows[i][8].ToString().Trim();

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("SIZE").Cells.Item(J).Specific).Value = dt.Rows[i][7].ToString().Trim();

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("OWN").Cells.Item(J).Specific).Value = dt.Rows[i][9].ToString().Trim();

                            if (regex.IsMatch(dt.Rows[i][10].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("SQTY").Cells.Item(J).Specific).Value = dt.Rows[i][10].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Sales Quantity is not valid format for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (regex.IsMatch(dt.Rows[i][11].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("BQTY").Cells.Item(J).Specific).Value = dt.Rows[i][11].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Sales Quantity in Btl is not in valid format for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (regex.IsMatch(dt.Rows[i][12].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("CQTY").Cells.Item(J).Specific).Value = dt.Rows[i][12].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Quantity of closing in case is not in valid format for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (regex.IsMatch(dt.Rows[i][13].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("CBQTY").Cells.Item(J).Specific).Value = dt.Rows[i][13].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Quantity of closing in Btl is not in valid format for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (regex.IsMatch(dt.Rows[i][14].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("TCQTY").Cells.Item(J).Specific).Value = dt.Rows[i][14].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Total Quantity In case is not in valid format for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            if (regex.IsMatch(dt.Rows[i][15].ToString().Trim()))

                            {

                                ((SAPbouiCOM.EditText)oMatrix.Columns.Item("TBQTY").Cells.Item(J).Specific).Value = dt.Rows[i][15].ToString().Trim();

                            }

                            else

                            {

                                ClsSBOAddOn.ShowErrorMessage("Total Quantity In Btl is not in valid format for import Sheet S.No " + dt.Rows[i][0].ToString().Trim());

                                oMatrix.DeleteRow(J);

                                BubbleEvent = false;

                                return;

                            }

                            oMatrix.AutoResizeColumns();

                            J++;

                        }

                        ClsSBOAddOn.ShowSucessMessage("Data Refresh Successfully");

                    }

                }

---------------------------------------------------------------------------------------------------------

----------------------------GRID making assigning datatable Start----------------------------------------------

 _Grd = (SAPbouiCOM.Grid)oform.Items.Item("3").Specific;

            oform.DataSources.DataTables.Add("MyDataTable");

            oform.DataSources.DataTables.Item(0).ExecuteQuery(Query);

            _Grd.DataTable = oform.DataSources.DataTables.Item("MyDataTable");

            _Grd.SelectionMode = BoMatrixSelect.ms_Auto;

            _Grd.Columns.Item("Select").Type = SAPbouiCOM.BoGridColumnType.gct_CheckBox;

            _Grd.Columns.Item("Image").Type = SAPbouiCOM.BoGridColumnType.gct_Picture;

            _Grd.Columns.Item("Serial Number").Editable     = false;

            _Grd.Columns.Item("ItemCode").Editable          = false;

            _Grd.Columns.Item("ItemName").Editable          = false;

            _Grd.Columns.Item("DocNum").Editable            = false;

            _Grd.Columns.Item("Posting Date").Editable      = false;

            _Grd.Columns.Item("BarCode").Visible           = false;

            _Grd.Columns.Item("Image").Editable = false;

            _Grd.AutoResizeColumns();

----------------------------GRID making assigning datatable END----------------------------------------------

----------------------------Working on checkbox  on start------------------

if (pVal.ItemUID == "cSelect")

            {

                string CheckValue = oform.DataSources.UserDataSources.Item("cSelect").Value;

                if (CheckValue == "Y")

                {

                    for (int i = 0; i < _Grd.Rows.Count; i++)

                    {


                        ((SAPbouiCOM.CheckBoxColumn)_Grd.Columns.Item("Select")).Check(i, true);


                    }

                }

                else

                {

                    for (int i = 0; i < _Grd.Rows.Count; i++)

                    {


                        ((SAPbouiCOM.CheckBoxColumn)_Grd.Columns.Item("Select")).Check(i, false);


                    }

                }


            }

------------------------Working on checkbox end------------------

------------------Choose from List After Action Start--------------------

 protected override void CHOOSE_FROM_LIST_AFTERACTION(ref SAPbouiCOM.ItemEvent pVal, SAPbouiCOM.DataTable oDataTable, out bool BubbleEvent)

        {

            BubbleEvent = true;

            try

            {

                oForm.Freeze(true);

                                SAPbouiCOM.ChooseFromListEvent cflevent = (SAPbouiCOM.ChooseFromListEvent)pVal;

                                SAPbouiCOM.ChooseFromList oCFLEvento = default(SAPbouiCOM.ChooseFromList);

                                string strUid = cflevent.ChooseFromListUID;

                                oCFLEvento = this.oForm.ChooseFromLists.Item(strUid);

                                //SAPbouiCOM.DataTable oDataTable = cflevent.SelectedObjects;

                                _chooseFromListItem = (SAPbouiCOM.IChooseFromListEvent)pVal;

                                if (_chooseFromListItem.SelectedObjects != null && oForm.Mode != SAPbouiCOM.BoFormMode.fm_FIND_MODE)

                                {

                                    {

                                        if (pVal.ItemUID == "mkt_PL1" && pVal.ColUID=="V_8")

                                        {

                                            try

                                            {

                                                //((SAPbouiCOM.EditText)oForm.Items.Item("etTech").Specific).Value = _chooseFromListItem.SelectedObjects.GetValue("firstName", 0).ToString().Trim();

                                                ODBDetail.SetValue("U_CNAME", pVal.Row - 1, _chooseFromListItem.SelectedObjects.GetValue("CardName", 0).ToString().Trim());

                                            }

                                            catch

                                            { }

                                            finally

                                            {

                                                //((SAPbouiCOM.EditText)oForm.Items.Item("etTech").Specific).Value = _chooseFromListItem.SelectedObjects.GetValue("firstName", 0).ToString().Trim();

                                            }

                                        }

                                    }

                                }

                                oForm.Freeze(false);


            }

            catch (Exception ex)

            {

                oForm.Freeze(false);

                clsUIGeneric.CreateErrorlog(ClsSBOAddOn.SBOCompany.UserName.Trim(), "Namespace:PriceList,class:PL1,Function:CHOOSE_FROM_LIST_BEFOREACTION,Error" + ex.Message, DateTime.Now, clsUIGeneric.strErrorLogFilePath);

            }

        }


------------------Choose from List After Action End------------------------

 #region ADD COLUMNS IN MATRIX

        public void AddControls()

        {

            SAPbouiCOM.Column oCol;


            SAPbouiCOM.ProgressBar oProgressBar = null;


            try

            {

                string col = "";

                string field;

                string caption = "";


                oProgressBar = Utilities.Application.SBO_Application.StatusBar.CreateProgressBar("Creating columns...Please wait.", 50, false);

                oProgressBar.Value = 1;


                for (int i = 10; i <= 209; i++)

                {

                    field = "U_ObsvVal" + (i - 9).ToString().Trim();

                    caption = "Observed Value " + (i - 9);


                    col = i.ToString();

                    _mtMatrix.Columns.Add(col, SAPbouiCOM.BoFormItemTypes.it_EDIT);

                    _mtMatrix.Columns.Item(col).Visible = false;

                    _mtMatrix.Columns.Item(col).TitleObject.Caption = caption;

                    oCol = _mtMatrix.Columns.Item(col);

                    oCol.DataBind.SetBound(true, "@KBR_QltyChk1", field);

                }


                oProgressBar.Stop();

            }

            catch (Exception)

            {


                throw;

            }

        }

        #endregion


-----------------------Sql usefull function Start-----------------------------------------------------

 

  STRING_SPLIT--used to split Value separated by any specified character

STRING_AGG--used to concat column value in one cell separeted by specific character


DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'  

  

SELECT value  

FROM STRING_SPLIT(@tags, ',')  

WHERE RTRIM(value) <> ''


--ALTER DATABASE Intex_190520

--SET COMPATIBILITY_LEVEL = 150 -- For SQL Server 2019

--GO

-----------------------Sql usefull function Start End---------------------------------------------------------------

  

 --------------------------HANA Connection String pattern Start----------------------------

 Driver={HDBODBC32};UID=B1ADMIN;PWD=Cinntra#@123;ServerNode=103.118.16.158:31115;CS=ADSTESTDB


Driver={HDBODBC32};UID=B1ADMIN;PWD=Cinntra@123;ServerNode=103.138.188.143:31115;CS=ADSTESTDB

 --------------------------HANA Connection String pattern END----------------------------

 Driver={HDBODBC32};UID=B1ADMIN;PWD=Cinntra#@123;ServerNode=103.118.16.158:30015;CS=ADSTESTDB


Driver={HDBODBC32};UID=B1ADMIN;PWD=Cinntra@123;ServerNode=103.138.188.143:31115;CS=ADSTESTDB


DRIVER={B1CRHPROXY32};SERVERNODE=103.118.16.158:30013;DATABASENAME=HDB;DATABASE=ADSTESTDB;UID=B1ADMIN;PWD=Cinntra#@123

DRIVER={B1CRHPROXY32};SERVERNODE=103.118.16.158:30013;DATABASENAME=HDB;DATABASE=ADSCRP;UID=B1ADMIN;PWD=Cinntra#@123


Driver={HDBODBC32};ServerNode=192.168.199.2:30015;CS=LIBRA;UID=B1ADMIN;PWD=Sap@273395


---------------------------------------------------------------------------------------



 Query = "Select Distinct \"U_FGSubItemGroup1\",\"U_Density\" from \"OITM\" Where \"U_Density\" is not null and \"U_Density\"<>1 and \"U_FGSubItemGroup1\"='MAGNUM' Order by \"U_FGSubItemGroup1\",\"U_Density\"";

                    ClsSBOAddOn.ExecuteSQL(ref oRecordset, Query);

                   

                    if (oRecordset.RecordCount > 0)

                    {

                        oRecordset.MoveFirst();

                        while (!oRecordset.EoF)

                        {

                            string FD = oRecordset.Fields.Item("U_FGSubItemGroup1").Value.ToString().Trim();

                            string fieldID = FD.Substring(0,3)+ Convert.ToString(oRecordset.Fields.Item("U_Density").Value);

                            string Descr = Convert.ToString(oRecordset.Fields.Item("U_FGSubItemGroup1").Value) + '-' + Convert.ToString(oRecordset.Fields.Item("U_Density").Value);

                            ClsDatabase.AddColumn("FPL1", fieldID, Descr, 50, SAPbobsCOM.BoFieldTypes.db_Float, SAPbobsCOM.BoFldSubTypes.st_Price, SAPbobsCOM.BoYesNoEnum.tNO, SAPbobsCOM.BoYesNoEnum.tNO);

                            

                            oRecordset.MoveNext();

                        }


                    }

--------------------------------------------------------------------------------------------

CREATE LOCAL TEMPORARY TABLE #FinalRecord(

             PartyCode Varchar(20),

             PartyName Varchar(200),

            PurcahseQty double,

            DebitQty double,

            OpnBal double,

            ItemAvgRate double,

            AmtPaid double

                     

);

Drop Table #FinalRecord;

------------------------------------------------------------------------------------------------

Update T0

Set T0."U_POEntry"=T1."U_POEntryT"

from "@CIN_OGAE" T0

Inner Join "@CIN_OGAE" T1 on T0."DocEntry"=T1."DocEntry"

-----------------------------------------------------------------------------------------------



------------------lOADING DATA IN MATRIX COLUMN ON FORM LOAD AT ADD MODE-----------------------

public void LoadDetails()

        {

            try 

            {

                if (State != "")

                {

                    this.oForm.Items.Item("etBEntry").Enabled = false;

                    ODBmaster.SetValue("U_BaseEntry", 0, BaseEntry);

                    int i = 1;

                    ORecordset = (SAPbobsCOM.Recordset)ClsSBOAddOn.SBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);

                    Query = "Select * from \"OITM\" where \"U_State\" = '" + State + "'";

                    ORecordset.DoQuery(Query);

                    ORecordset.MoveFirst();


                    if (ORecordset.RecordCount > 0)

                    {

                        ORecordset.MoveFirst();

                        while (!ORecordset.EoF)

                        {

                            oMatrix.AddRow();

                            oMatrix.Columns.Item("colBEntry").Cells.Item(i).Specific.Value = BaseEntry;

                            oMatrix.Columns.Item("SNO").Cells.Item(i).Specific.Value = i;

                            oMatrix.Columns.Item("ItemCode").Cells.Item(i).Specific.Value = ORecordset.Fields.Item("ItemCode").Value.ToString().Trim();

                            oMatrix.Columns.Item("Itmnm").Cells.Item(i).Specific.Value = ORecordset.Fields.Item("ItemName").Value.ToString().Trim();

                            oMatrix.Columns.Item("PCODE").Cells.Item(i).Specific.Value = PartyCode;

                            oMatrix.Columns.Item("STATE").Cells.Item(i).Specific.Value = State;

                            

                            i++;

                            ORecordset.MoveNext();

                        }

                    }

                    System.Runtime.InteropServices.Marshal.ReleaseComObject(ORecordset);

                }

            }

            catch (Exception ex)

            {

                oForm.Freeze(false);

                clsUIGeneric.CreateErrorlog(ClsSBOAddOn.SBOCompany.UserName.Trim(), "Namespace:SecondrySale,class:PartyMasterDetails,Function:LoadDetails,Error" + ex.Message, DateTime.Now, clsUIGeneric.strErrorLogFilePath);

            }

        }

-----------------------------------------------------------------------------------------------------------------

SAPbobsCOM.Recordset oReco = ClsSBOAddOn.SBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) as SAPbobsCOM.Recordset;

                       string Query_1 = "exec  CIN_BR_VMCVFT  '" + ((SAPbobsCOM.ICompany)ClsSBOAddOn.SBOApplication.Company.GetDICompany()).UserSignature + "','CINN_OSBS','E','0'";

                oReco.DoQuery(Query_1);

                if (oReco.RecordCount > 0)

                {

                    String list = oReco.Fields.Item(0).Value;

                    String[] separator = { ";" };

                    String[] strList = list.Split(separator,StringSplitOptions.RemoveEmptyEntries);

                    for (int i = 1; i < strList.Length; i++)

                    {

                        __mtrx.Columns.Item(strList[i]).Editable = false;

                       

                        string s = strList[i];

                       

                    }

                }

-------------------------------------------------------------------------------------------------------------------

 this.__form__.Mode = BoFormMode.fm_FIND_MODE;

                ((SAPbouiCOM.EditText)this.__form__.Items.Item("txtDocEt").Specific).Value = BarCodeEntry;

                this.__form__.Items.Item("1").Click(SAPbouiCOM.BoCellClickType.ct_Regular);

---------------------------------------------------------------------------------------------------------------------