예제 #1
0
 private void DisplayOptions(Type type, StringBuilder sb)
 {
     FieldInfo[] fields = type.GetFields();
     foreach (FieldInfo info in fields)
     {
         if (info.FieldType == typeof(int) || info.FieldType == typeof(uint) || info.FieldType == typeof(double))
         {
             MinMaxAttribute minMaxAttribute = info.GetCustomAttribute(typeof(MinMaxAttribute)) as MinMaxAttribute;
             if (minMaxAttribute != null)
             {
                 sb.AppendLine("/" + info.Name + " = [" + minMaxAttribute.Min.ToString() + ", " + minMaxAttribute.Max.ToString() + "]");
             }
             else
             {
                 ValidValuesAttribute validValuesAttribute = info.GetCustomAttribute(typeof(ValidValuesAttribute)) as ValidValuesAttribute;
                 if (validValuesAttribute != null)
                 {
                     sb.AppendLine("/" + info.Name + " = " + string.Join(" | ", validValuesAttribute.ValidValues));
                 }
             }
         }
         else if (info.FieldType == typeof(bool))
         {
             sb.AppendLine("/" + info.Name + " = true | false");
         }
         else if (info.FieldType.IsEnum)
         {
             sb.AppendLine("/" + info.Name + " = " + string.Join(" | ", Enum.GetNames(info.FieldType)));
         }
     }
 }
예제 #2
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");
            }
        }