Esempio n. 1
0
        protected TableBase()
        {
            TableId = new List <string>();
            TablesAttribute      attribute         = null;
            FieldsAttribute      flAttribute       = null;
            UdoAttribute         udoAttribute      = null;
            UdoChildAttribute    udoChildAttribute = null;
            ValidValuesAttribute valoresValidos    = null;

            foreach (object obj2 in base.GetType().GetCustomAttributes(false))
            {
                #region Atributo Tabelas

                if (obj2 is TablesAttribute)
                {
                    attribute = obj2 as TablesAttribute;

                    if (!string.IsNullOrEmpty(attribute.Nome))
                    {
                        Tabelas tb = new Tabelas();
                        tb.NomeTabela      = attribute.Nome;
                        tb.DescricaoTabela = attribute.Descricao;
                        tb.TipoTabelaSap   = attribute.Tipo;
                        tb.Campos          = new List <Campos>();
                        tb.Ttabela         = attribute.TabelaSistema ? Tipos.TipoTabela.Sap : Tipos.TipoTabela.Usuario;

                        foreach (PropertyInfo info in this.GetType().GetProperties())
                        {
                            List <ValoresValidos> vlrs = new List <ValoresValidos>();
                            Campos cp = new Campos();
                            foreach (object field in info.GetCustomAttributes(true))
                            {
                                if (field is FieldsAttribute)
                                {
                                    flAttribute = field as FieldsAttribute;

                                    RelationalReader.verificaTipos(cp, info, flAttribute, tb.NomeTabela);
                                }

                                if (field is ValidValuesAttribute)
                                {
                                    valoresValidos = field as ValidValuesAttribute;
                                    vlrs.Add(new ValoresValidos()
                                    {
                                        Descricao = valoresValidos.Descricao, Valor = valoresValidos.Valor
                                    });
                                }
                            }

                            if (!string.IsNullOrEmpty(cp.NomeCampo))
                            {
                                if (vlrs.Count > 0)
                                {
                                    cp.ValoresValidos = vlrs;
                                }
                                tb.Campos.Add(cp);
                            }
                        }


                        B1AppDomain.RegisterTable(this, tb);
                    }
                }

                #endregion

                #region Atributo Udo

                if (obj2 is UdoAttribute)
                {
                    udoAttribute = obj2 as UdoAttribute;

                    if (!string.IsNullOrEmpty(udoAttribute.Code))
                    {
                        Udo ud = new Udo();
                        ud.TableName           = udoAttribute.TableName;
                        ud.Name                = udoAttribute.Name;
                        ud.Code                = udoAttribute.Code;
                        ud.Cancel              = udoAttribute.Cancel;
                        ud.Close               = udoAttribute.Close;
                        ud.CreateDefaultForm   = udoAttribute.CreateDefaultForm;
                        ud.Delete              = udoAttribute.Delete;
                        ud.Find                = udoAttribute.Find;
                        ud.YearTransfer        = udoAttribute.YearTransfer;
                        ud.ManageSeries        = udoAttribute.ManageSeries;
                        ud.ObjectType          = udoAttribute.ObjectType;
                        ud.Formulario          = udoAttribute.Formulario;
                        ud.EnableEnhancedform  = udoAttribute.EnableEnhancedform;
                        ud.RebuildEnhancedForm = udoAttribute.RebuildEnhancedForm;


                        B1AppDomain.RegisterUdo(this, ud);
                    }
                }

                #endregion

                #region Atributo UdoFilhos

                if (obj2 is UdoChildAttribute)
                {
                    udoChildAttribute = obj2 as UdoChildAttribute;

                    if (!string.IsNullOrEmpty(udoChildAttribute.TableName))
                    {
                        UdoFilhos udf = new UdoFilhos();
                        udf.TableName = udoChildAttribute.TableName;
                        udf.TabelaPai = udoChildAttribute.TabelaPai;

                        B1AppDomain.RegisterUdoChild(this, udf);
                    }
                }

                #endregion
            }
            if (attribute == null)
            {
                B1Exception.writeLog("Falha ao indexar Tabela. Por favor checar os atributos informados");
            }
        }
Esempio n. 2
0
        internal static bool VerificaCampo(Campos campo, CUFD registro)
        {
            bool mand = registro.NotNull == "Y";

            if (mand != (campo.Mandatory == BoYesNoEnum.tYES) && campo.TipoCampo != BoFieldTypes.db_Date && campo.TipoCampo != BoFieldTypes.db_Memo)
            {
                return(true);
            }
            if (campo.DescricaoCampo != registro.Descr)
            {
                return(true);
            }
            if (campo.NomeCampo != registro.AliasID)
            {
                return(true);
            }
            if (campo.SubTipos != RelationalReader.RetornaSubTipo(registro.EditType))
            {
                return(true);
            }
            if (campo.TabelaReferencia != null)
            {
                if (campo.TabelaReferencia != registro.RTable)
                {
                    return(true);
                }
            }

            if (campo.Tamanho != registro.EditSize && campo.TipoCampo == BoFieldTypes.db_Alpha && campo.TipoCampo == BoFieldTypes.db_Numeric)
            {
                return(true);
            }

            if (campo.ValorPadrao != null)
            {
                if (campo.ValorPadrao != registro.Dflt)
                {
                    return(true);
                }
            }

            if (campo.TipoCampo != RelationalReader.RetornaTipoCampo(registro.TypeID))
            {
                return(true);
            }
            if (campo.UdoReferencia != null)
            {
                if (campo.UdoReferencia != registro.RelUDO)
                {
                    return(true);
                }
            }

            if (campo.ValoresValidos != null)
            {
                foreach (UFD1 valor in UFD1.RetornaValores(campo.NomeTabela, campo.NomeCampo))
                {
                    if (campo.ValoresValidos.Where(p => p.Valor == valor.FldValue && p.Descricao == valor.Descr).Count() <= 0)
                    {
                        return(true);
                    }
                }


                //foreach (ValoresValidos vlr in campo.ValoresValidos)
                //{
                //    if (UFD1.RetornaValores(campo.NomeTabela, campo.NomeCampo).Where(p => p.FldValue == vlr.Valor && p.Descr == vlr.Descricao).Count() <= 0)
                //    {
                //        return true;
                //    }


                //}
            }



            return(false);
        }