/// <summary>
        /// preenche campos Tela / Código e Nome e lista de outros campos
        /// </summary>
        /// <param name="formUID">formUid do evento</param>
        /// <param name="pVal">pVal do evento</param>
        /// <param name="idCampoChoose">Id do campo onde esta o choosefromlist</param>
        /// <param name="idChoose">Id do ChooseFromList</param>
        /// <param name="idCampoChooseNome">Id do campo onde deve ser preenchido o nome / retorna o campo 13 padrao / primeiro campo de cadastro de usuarios</param>
        /// <param name="mensagemErro">Mensagem de erro a ser apresentada se der algum problema</param>
        /// <param name="listaCampos">Lista contendo os demais campos a serem preenchidos quando selecionado o choose</param>
        /// <param name="idCampoNomeDataTable">Id para buscar o nome a ser preenchido / como padrão retornara o 13</param>
        public static void PreencheCampos(string formUID, ItemEvent pVal, string idCampoChoose, string idChoose, string idCampoChooseNome, string mensagemErro, List <CamposPreencimento> listaCampos, int idCampoNomeDataTable = 13)
        {
            try
            {
                if (pVal.ItemUID == idCampoChoose)
                {
                    Form oForm = B1AppDomain.Application.Forms.Item(formUID);

                    IChooseFromListEvent oCFLEvento = (IChooseFromListEvent)pVal;

                    string sCFL_ID = oCFLEvento.ChooseFromListUID;

                    SAPbouiCOM.ChooseFromList oCFL = oForm.ChooseFromLists.Item(sCFL_ID);

                    DataTable oDataTable = oCFLEvento.SelectedObjects;
                    EditText  oEditText;

                    try
                    {
                        if (oCFL.UniqueID == idChoose)
                        {
                            foreach (CamposPreencimento campo in listaCampos)
                            {
                                oEditText = oForm.Items.Item(campo.idCampo).Specific;
                                var valor = oDataTable.GetValue(campo.idDataTable, 0).ToString();

                                if (typeof(DateTime) == valor.GetType())
                                {
                                    oEditText.Value = InternalUtils.FormataData(valor);
                                }
                                else
                                {
                                    oEditText.Value = valor.ToString();
                                }
                            }


                            oEditText       = oForm.Items.Item(idCampoChooseNome).Specific;
                            oEditText.Value = oDataTable.GetValue(idCampoNomeDataTable, 0).ToString();
                            oEditText       = oForm.Items.Item(idCampoChoose).Specific;
                            oEditText.Value = oDataTable.GetValue(0, 0).ToString();
                        }
                    }
                    catch
                    {
                    }

                    if (oForm.Mode != BoFormMode.fm_ADD_MODE)
                    {
                        oForm.Mode = BoFormMode.fm_UPDATE_MODE;
                    }
                }
            }
            catch (Exception ex)
            {
                //B1Exception.throwException(mensagemErro, ex);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Get the choose from list event value by the given position (column)
        /// </summary>
        /// <param name="oValEvent"></param>
        /// <param name="position"></param>
        /// <returns></returns>
        public static string GetValue(ItemEvent oValEvent, int position)
        {
            DataTable dataTable = null;

            if (oValEvent.Action_Success)
            {
                IChooseFromListEvent oCFLEvento = (IChooseFromListEvent)oValEvent;
                dataTable = oCFLEvento.SelectedObjects;

                if (oCFLEvento.SelectedObjects == null)
                {
                    return(String.Empty);
                }
            }
            return(Convert.ToString(dataTable.GetValue(position, 0)));
        }
        /// <summary>
        /// preenche campos da matrix / Código e Nome
        /// </summary>
        /// <param name="formUID">formUid do evento</param>
        /// <param name="pVal">pVal do evento</param>
        /// <param name="idMatrix">id da Matrix / Não pode ser grid</param>
        /// <param name="colunaChoose">Id da coluna onde esta o botão ChooseFromList</param>
        /// <param name="idChoose">Id do ChooseFromList</param>
        /// <param name="colunaChooseNome">Id da coluna onde deve ser preenchido o nome / retorna o campo 13 padrao / primeiro campo de cadastro de usuarios</param>
        /// <param name="mensagemErro">Mensagem de erro a ser apresentada se der algum problema</param>
        public static void PreencheCampos(string formUID, ItemEvent pVal, string idMatrix, string colunaChoose, string idChoose, string colunaChooseNome, string mensagemErro)
        {
            try
            {
                if (pVal.ItemUID == idMatrix && pVal.ColUID == colunaChoose)
                {
                    Form oForm = B1AppDomain.Application.Forms.Item(formUID);

                    IChooseFromListEvent oCFLEvento = (IChooseFromListEvent)pVal;

                    string sCFL_ID = oCFLEvento.ChooseFromListUID;

                    SAPbouiCOM.ChooseFromList oCFL = oForm.ChooseFromLists.Item(sCFL_ID);

                    DataTable oDataTable = oCFLEvento.SelectedObjects;
                    Matrix    oMatrix;
                    EditText  oEditText;

                    try
                    {
                        oMatrix = oForm.Items.Item(idMatrix).Specific;

                        if (pVal.ColUID == colunaChoose && oCFL.UniqueID == idChoose)
                        {
                            oEditText       = oMatrix.Columns.Item(colunaChooseNome).Cells.Item(pVal.Row).Specific;
                            oEditText.Value = oDataTable.GetValue(1, 0).ToString();
                            oEditText       = oMatrix.Columns.Item(colunaChoose).Cells.Item(pVal.Row).Specific;
                            oEditText.Value = oDataTable.GetValue(0, 0).ToString();
                        }
                    }
                    catch
                    {
                    }

                    if (oForm.Mode != BoFormMode.fm_ADD_MODE)
                    {
                        oForm.Mode = BoFormMode.fm_UPDATE_MODE;
                    }
                }
            }
            catch (Exception ex)
            {
                //B1Exception.throwException(mensagemErro, ex);
            }
        }
        /// <summary>
        /// preenche campos Tela / Código e Nome
        /// </summary>
        /// <param name="formUID">formUid do evento</param>
        /// <param name="pVal">pVal do evento</param>
        /// <param name="idCampoChoose">Id do campo onde esta o choosefromlist</param>
        /// <param name="idChoose">Id do ChooseFromList</param>
        /// <param name="idCampoChooseNome">Id do campo onde deve ser preenchido o nome / retorna o campo 13 padrao / primeiro campo de cadastro de usuarios</param>
        /// <param name="mensagemErro">Mensagem de erro a ser apresentada se der algum problema</param>
        /// <param name="idCampoNomeDataTable">Id para buscar o nome a ser preenchido / como padrão retornara o 13</param>
        public static void PreencheCampos(string formUID, ItemEvent pVal, string idCampoChoose, string idChoose, string idCampoChooseNome, string mensagemErro, int idCampoNomeDataTable = 13)
        {
            try
            {
                if (pVal.ItemUID == idCampoChoose)
                {
                    Form oForm = B1AppDomain.Application.Forms.Item(formUID);

                    IChooseFromListEvent oCFLEvento = (IChooseFromListEvent)pVal;

                    string sCFL_ID = oCFLEvento.ChooseFromListUID;

                    SAPbouiCOM.ChooseFromList oCFL = oForm.ChooseFromLists.Item(sCFL_ID);

                    DataTable oDataTable = oCFLEvento.SelectedObjects;
                    EditText  oEditText;

                    try
                    {
                        if (oCFL.UniqueID == idChoose)
                        {
                            oEditText       = oForm.Items.Item(idCampoChooseNome).Specific;
                            oEditText.Value = oDataTable.GetValue(idCampoNomeDataTable, 0).ToString();
                            oEditText       = oForm.Items.Item(idCampoChoose).Specific;
                            oEditText.Value = oDataTable.GetValue(0, 0).ToString();
                        }
                    }
                    catch
                    {
                    }

                    if (oForm.Mode != BoFormMode.fm_ADD_MODE)
                    {
                        oForm.Mode = BoFormMode.fm_UPDATE_MODE;
                    }
                }
            }
            catch
            {
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Choose From List
        /// </summary>
        private void CFL_FixDisc(string formUID, ref ItemEvent pVal, ref bool bubbleEvent)
        {
            IChooseFromListEvent oCFLEvent = null;

            try
            {
                oCFLEvent = (IChooseFromListEvent)pVal;

                switch (pVal.ItemUID)
                {
                case "tCustCd": CFL_FixDisc_CustCode(formUID, ref pVal, ref bubbleEvent, ref oCFLEvent); break;
                }
            }
            catch (Exception ex)
            {
                oSBOApplication.MessageBox(ex.Message);
            }
            finally
            {
                Utils.releaseObject(oCFLEvent);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// CFL Customer Code
        /// </summary>
        private void CFL_FixDisc_CustCode(string formUID, ref ItemEvent pVal, ref bool bubbleEvent, ref IChooseFromListEvent oCFLEvent)
        {
            if (bubbleEvent)
            {
                Form       oForm = null;
                Conditions oCons = null;
                ICondition oCon  = null;
                SAPbouiCOM.ChooseFromList oCFL = null;
                DataTable        oDataTable    = null;
                BusinessPartners oBp           = null;
                DBDataSource     oDBSource_H   = null;
                Matrix           oMtx1         = null;
                Matrix           oMtx2         = null;

                try
                {
                    oForm = oSBOApplication.Forms.GetForm(pVal.FormTypeEx, pVal.FormTypeCount);
                    oBp   = oSBOCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);
                    oMtx1 = oForm.Items.Item("mt_1").Specific;
                    oMtx2 = oForm.Items.Item("mt_2").Specific;

                    DBDataSource fixDisc_D1 = oForm.DataSources.DBDataSources.Item("@SOL_FIXDISC_D1");
                    DBDataSource fixDisc_D2 = oForm.DataSources.DBDataSources.Item("@SOL_FIXDISC_D2");

                    if (oCFLEvent.BeforeAction == true)
                    {
                        if (oForm.Mode == BoFormMode.fm_ADD_MODE || oForm.Mode == BoFormMode.fm_OK_MODE || oForm.Mode == BoFormMode.fm_UPDATE_MODE)
                        {
                            oForm.Freeze(true);
                            oCFL = oForm.ChooseFromLists.Item("CFL_CUST");

                            oCFL.SetConditions(null);
                            oCons = oCFL.GetConditions();

                            oCon              = oCons.Add();
                            oCon.Alias        = "CardType";
                            oCon.Operation    = BoConditionOperation.co_EQUAL;
                            oCon.Relationship = BoConditionRelationship.cr_AND;
                            oCon.CondVal      = "C";

                            oCon           = oCons.Add();
                            oCon.Alias     = "validFor";
                            oCon.Operation = BoConditionOperation.co_EQUAL;
                            oCon.CondVal   = "Y";

                            oCFL.SetConditions(oCons);
                        }
                    }
                    else if (oCFLEvent.BeforeAction == false && oCFLEvent.ActionSuccess == true && oCFLEvent.SelectedObjects != null && oCFLEvent.FormMode != 0)
                    {
                        oForm.Freeze(true);
                        oDataTable = oCFLEvent.SelectedObjects;

                        if (oBp.GetByKey(oDataTable.GetValue("CardCode", 0)))
                        {
                            oDBSource_H = oForm.DataSources.DBDataSources.Item("@SOL_FIXDISC_H");
                            oDBSource_H.SetValue("U_SOL_CARDCODE", 0, oBp.CardCode);
                            oDBSource_H.SetValue("U_SOL_CARDNAME", 0, oBp.CardName);

                            // Generate Code
                            string code = GenerateCode(oBp.CardCode);
                            oDBSource_H.SetValue("Code", 0, code);

                            if (oForm.Mode != BoFormMode.fm_ADD_MODE)
                            {
                                oForm.Mode = BoFormMode.fm_UPDATE_MODE;
                            }

                            if (oMtx1.RowCount <= 0 || oMtx2.RowCount <= 0)
                            {
                                fixDisc_D1.InsertRecord(fixDisc_D1.Size);
                                fixDisc_D2.InsertRecord(fixDisc_D2.Size);

                                fixDisc_D1.Offset = fixDisc_D1.Size - 1;
                                fixDisc_D1.SetValue("LineId", fixDisc_D1.Size - 1, fixDisc_D1.Size.ToString());
                                fixDisc_D2.Offset = fixDisc_D2.Size - 1;
                                fixDisc_D2.SetValue("LineId", fixDisc_D2.Size - 1, fixDisc_D2.Size.ToString());

                                oForm.Items.Item("mt_1").Specific.LoadFromDataSource();
                                oForm.Items.Item("mt_2").Specific.LoadFromDataSource();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    bubbleEvent = false;
                    oSBOApplication.MessageBox(ex.Message + " : " + ex.StackTrace);
                }
                finally
                {
                    if (oForm != null)
                    {
                        oForm.Freeze(false);
                    }

                    Utils.releaseObject(oForm);
                    Utils.releaseObject(oCons);
                    Utils.releaseObject(oCon);
                    Utils.releaseObject(oCFL);
                    Utils.releaseObject(oDataTable);
                    Utils.releaseObject(oBp);
                    Utils.releaseObject(oDBSource_H);
                }
            }
        }