/// <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); } }
/// <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 { } }
/// <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); } }
/// <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); } } }