コード例 #1
0
ファイル: BD.cs プロジェクト: szarblewskiout/SapFramework
        public static int Udos(Tabelas tabela, List <Tabelas> listaParaFilhos)
        {
            int intRetCode = -1;

            try
            {
                if (tabela.Udos != null)
                {
                    if (tabela.Udos.Operacao == OperacoesBd.Adiciona)
                    {
                        //AddUdo(tabela, listaParaFilhos);
                    }
                    else if (tabela.Udos.Operacao == OperacoesBd.Atualiza)
                    {
                        DeleteUdo(tabela);
                        //AddUdo(tabela, listaParaFilhos);
                    }
                }
            }
            catch (Exception ex)
            {
                B1Exception.throwException("Erro ao Criar Udos :: " + tabela.Udos.TableName + " - ", ex);
            }


            return(intRetCode);
        }
コード例 #2
0
ファイル: BD.cs プロジェクト: szarblewskiout/SapFramework
        internal static int DeleteUdo(Tabelas tabela)
        {
            int intRetCode = -1;

            SAPbobsCOM.UserObjectsMD oUserObjectMD = null;


            if (oUserObjectMD.GetByKey(tabela.Udos.TableName))
            {
                intRetCode = oUserObjectMD.Remove();

                //verifica e retorna erro
                if (intRetCode != 0 && intRetCode != -2035)
                {
                    //B1Exception.throwException("MetaData.CriaCampos: ", new Exception(B1AppDomain.Company.GetLastErrorDescription()));
                }
            }

            return(intRetCode);
        }
コード例 #3
0
ファイル: BD.cs プロジェクト: szarblewskiout/SapFramework
        internal static int AddUdo(Tabelas tabela)
        {
            int intRetCode = -1;

            SAPbobsCOM.UserObjectsMD oUserObjectMD = null;

            oUserObjectMD                      = ((SAPbobsCOM.UserObjectsMD)(B1AppDomain.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD)));
            oUserObjectMD.CanCancel            = tabela.Udos.Cancel;
            oUserObjectMD.CanClose             = tabela.Udos.Close;
            oUserObjectMD.CanCreateDefaultForm = tabela.Udos.CreateDefaultForm;
            oUserObjectMD.EnableEnhancedForm   = tabela.Udos.EnableEnhancedform;
            if (tabela.Udos.CreateDefaultForm == SAPbobsCOM.BoYesNoEnum.tYES)
            {
                if (tabela.Udos.ObjectType != BoUDOObjType.boud_Document)
                {
                    oUserObjectMD.FormColumns.FormColumnAlias       = "Code";
                    oUserObjectMD.FormColumns.FormColumnDescription = "Code";
                }
                else
                {
                    oUserObjectMD.FormColumns.FormColumnAlias       = "DocEntry";
                    oUserObjectMD.FormColumns.FormColumnDescription = "DocEntry";
                }

                int voltaCampos = 1;
                foreach (Campos campo in tabela.Campos)
                {
                    oUserObjectMD.FormColumns.Add();
                    oUserObjectMD.FormColumns.SetCurrentLine(voltaCampos);
                    oUserObjectMD.FormColumns.FormColumnAlias       = "U_" + campo.NomeCampo;
                    oUserObjectMD.FormColumns.FormColumnDescription = campo.DescricaoCampo;
                    oUserObjectMD.FormColumns.Editable  = BoYesNoEnum.tYES;
                    oUserObjectMD.FormColumns.SonNumber = 0;
                    voltaCampos++;
                }
            }

            oUserObjectMD.CanDelete = tabela.Udos.Delete;
            oUserObjectMD.CanFind   = tabela.Udos.Find;
            if (tabela.Udos.Find == SAPbobsCOM.BoYesNoEnum.tYES)
            {
                if (tabela.Udos.ObjectType != BoUDOObjType.boud_Document)
                {
                    oUserObjectMD.FindColumns.ColumnAlias       = "Code";
                    oUserObjectMD.FindColumns.ColumnDescription = "Code";
                    oUserObjectMD.FindColumns.Add();
                    oUserObjectMD.FindColumns.ColumnAlias       = "Name";
                    oUserObjectMD.FindColumns.ColumnDescription = "Name";
                }
                else
                {
                    oUserObjectMD.FindColumns.ColumnAlias       = "DocEntry";
                    oUserObjectMD.FindColumns.ColumnDescription = "DocEntry";
                    oUserObjectMD.FindColumns.ColumnAlias       = "DocNum";
                    oUserObjectMD.FindColumns.ColumnDescription = "DocNum";
                }

                int voltaFind = 1;
                foreach (Campos campo in tabela.Campos)
                {
                    oUserObjectMD.FindColumns.Add();
                    oUserObjectMD.FindColumns.SetCurrentLine(voltaFind);
                    oUserObjectMD.FindColumns.ColumnAlias       = "U_" + campo.NomeCampo;
                    oUserObjectMD.FindColumns.ColumnDescription = campo.DescricaoCampo;
                    voltaFind++;
                }
            }


            oUserObjectMD.CanYearTransfer = tabela.Udos.YearTransfer;
            oUserObjectMD.Code            = tabela.Udos.Code;
            oUserObjectMD.ManageSeries    = tabela.Udos.ManageSeries;
            oUserObjectMD.Name            = tabela.Udos.Name;
            oUserObjectMD.ObjectType      = tabela.Udos.ObjectType;
            oUserObjectMD.TableName       = tabela.Udos.TableName;

            int numerofilho = 1;

            if (tabela.Udos.Filhos != null)
            {
                foreach (UdoFilhos listaUdo in tabela.Udos.Filhos)
                {
                    if (numerofilho > 1)
                    {
                        oUserObjectMD.ChildTables.Add();
                    }

                    oUserObjectMD.ChildTables.TableName  = listaUdo.TableName;
                    oUserObjectMD.ChildTables.ObjectName = listaUdo.TableName;


                    if (tabela.Udos.EnableEnhancedform == BoYesNoEnum.tNO)
                    {
                        foreach (Tabelas tabelaFilho in B1AppDomain.DicionarioTabelasCampos.Where(p => p.Value.NomeTabela == listaUdo.TableName).Select(p => p.Value))
                        {
                            int voltaFilhos = 1;
                            foreach (Campos campo in tabelaFilho.Campos)
                            {
                                oUserObjectMD.FormColumns.Add();
                                oUserObjectMD.FormColumns.SetCurrentLine(voltaFilhos);
                                oUserObjectMD.FormColumns.FormColumnAlias       = "U_" + campo.NomeCampo;
                                oUserObjectMD.FormColumns.FormColumnDescription = campo.DescricaoCampo;
                                oUserObjectMD.FormColumns.Editable  = BoYesNoEnum.tYES;
                                oUserObjectMD.FormColumns.SonNumber = numerofilho;
                                voltaFilhos++;
                            }
                        }
                    }
                    else
                    {
                        foreach (Tabelas tabelaFilho in B1AppDomain.DicionarioTabelasCampos.Where(p => p.Value.NomeTabela == listaUdo.TableName).Select(p => p.Value))
                        {
                            int voltaNovo = 0;
                            foreach (Campos campo in tabelaFilho.Campos)
                            {
                                if (voltaNovo > 0)
                                {
                                    oUserObjectMD.EnhancedFormColumns.Add();
                                }

                                oUserObjectMD.EnhancedFormColumns.SetCurrentLine(voltaNovo);
                                oUserObjectMD.EnhancedFormColumns.ColumnAlias       = "U_" + campo.NomeCampo;
                                oUserObjectMD.EnhancedFormColumns.ColumnDescription = campo.DescricaoCampo;
                                oUserObjectMD.EnhancedFormColumns.Editable          = BoYesNoEnum.tYES;
                                oUserObjectMD.EnhancedFormColumns.ColumnIsUsed      = BoYesNoEnum.tYES;
                                oUserObjectMD.EnhancedFormColumns.ChildNumber       = numerofilho;
                                voltaNovo++;
                            }
                        }
                    }

                    numerofilho++;
                }
            }



            oUserObjectMD.RebuildEnhancedForm = tabela.Udos.RebuildEnhancedForm;

            oUserObjectMD.FormSRF = tabela.Udos.Formulario;

            intRetCode = oUserObjectMD.Add();

            //mata objeto para reutilizar senao trava
            Marshal.FinalReleaseComObject(oUserObjectMD);
            oUserObjectMD = null;
            GC.Collect();


            //verifica e retorna erro
            if (intRetCode != 0 && intRetCode != -2035)
            {
                // B1Exception.throwException("MetaData.CriaCampos: ", new Exception(B1AppDomain.Company.GetLastErrorDescription()));
            }
            else if (intRetCode == 0)
            {
                controleUdo = true;
            }
            //else if(intRetCode == 0)
            //{
            //    oUserObjectMD = ((SAPbobsCOM.UserObjectsMD)(B1AppDomain.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD)));
            //    if(oUserObjectMD.GetByKey(tabela.Udos.Code))
            //    {
            //        oUserObjectMD.RebuildEnhancedForm = BoYesNoEnum.tNO;
            //        oUserObjectMD.FormSRF = tabela.Udos.Formulario;
            //        oUserObjectMD.Update();

            //    }

            //    //mata objeto para reutilizar senao trava
            //    Marshal.FinalReleaseComObject(oUserObjectMD);
            //    oUserObjectMD = null;
            //    GC.Collect();

            //}

            return(intRetCode);
        }
コード例 #4
0
ファイル: BD.cs プロジェクト: szarblewskiout/SapFramework
        public static int Tabela(Tabelas tabela)
        {
            int intRetCode = -1;

            try
            {
                #region Tabela de usuários
                if (tabela.Ttabela == Tipos.TipoTabela.Usuario)
                {
                    if (tabela.Operacao == OperacoesBd.Adiciona)
                    {
                        intRetCode = AddTabela(tabela.NomeTabela, tabela.DescricaoTabela, tabela.TipoTabelaSap);

                        if (intRetCode == 0 || intRetCode == -2035)
                        {
                            foreach (Campos campo in tabela.Campos)
                            {
                                if (campo.Operacao == OperacoesBd.Adiciona)
                                {
                                    intRetCode = AddCampo(campo.NomeCampo, campo.NomeTabela, campo.TipoCampo,
                                                          campo.SubTipos, campo.Tamanho, campo.Mandatory,
                                                          campo.DescricaoCampo, campo.ValorPadrao, campo.ValoresValidos,
                                                          tabela.Ttabela, campo.UdoReferencia, campo.TabelaReferencia);
                                }
                            }
                        }
                    }
                    else if (tabela.Operacao == OperacoesBd.Atualiza)
                    {
                        intRetCode = UpdateTabela(tabela.NomeTabela, tabela.DescricaoTabela);

                        if (intRetCode == 0 || intRetCode == -2035)
                        {
                            foreach (Campos campo in tabela.Campos)
                            {
                                if (campo.Operacao == OperacoesBd.Adiciona)
                                {
                                    intRetCode = AddCampo(campo.NomeCampo, campo.NomeTabela, campo.TipoCampo,
                                                          campo.SubTipos, campo.Tamanho, campo.Mandatory,
                                                          campo.DescricaoCampo, campo.ValorPadrao, campo.ValoresValidos,
                                                          tabela.Ttabela, campo.UdoReferencia, campo.TabelaReferencia);
                                }
                                else if (campo.Operacao == OperacoesBd.Atualiza)
                                {
                                    intRetCode = UpdateCampo(campo.NomeTabela, campo.NomeCampo, campo.Tamanho,
                                                             campo.Mandatory, campo.DescricaoCampo, campo.ValorPadrao,
                                                             campo.ValoresValidos);
                                }
                                else if (campo.Operacao == OperacoesBd.Deleta)
                                {
                                    intRetCode = DeleteCampo(campo.NomeTabela, campo.NomeCampo);
                                }
                            }
                        }
                    }
                    else if (tabela.Operacao == OperacoesBd.Deleta)
                    {
                        intRetCode = DeleteTabela(tabela.NomeTabela);
                    }
                }
                #endregion
                #region Tabela do Sistema
                else
                {
                    foreach (Campos campo in tabela.Campos)
                    {
                        if (campo.Operacao == OperacoesBd.Adiciona)
                        {
                            intRetCode = AddCampo(campo.NomeCampo, campo.NomeTabela, campo.TipoCampo,
                                                  campo.SubTipos, campo.Tamanho, campo.Mandatory,
                                                  campo.DescricaoCampo, campo.ValorPadrao, campo.ValoresValidos,
                                                  tabela.Ttabela, campo.UdoReferencia, campo.TabelaReferencia);
                        }
                        else if (campo.Operacao == OperacoesBd.Atualiza)
                        {
                            intRetCode = UpdateCampo(campo.NomeTabela, campo.NomeCampo, campo.Tamanho,
                                                     campo.Mandatory, campo.DescricaoCampo, campo.ValorPadrao,
                                                     campo.ValoresValidos);
                        }
                        else if (campo.Operacao == OperacoesBd.Deleta)
                        {
                            intRetCode = DeleteCampo(campo.NomeTabela, campo.NomeCampo);
                        }
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                B1Exception.throwException("Erro Tabela :: ", ex);
            }


            return(intRetCode);
        }