コード例 #1
0
        public static void IN_Tabela_Genérico(object Instância_Genérica)
        {  //Esse funciona no Frequentadores: ALDAL.gravaDados_Genérico(Classe_Genérica, Status);
            string Tabela, Parâmetros = "", Valores = "", Campo_Identity;

            // Retorna o nome da Classe(que é o mesmo nome da Tabela)
            Tabela = Instância_Genérica.GetType().Name;

            // Verifica se tem algum campo que é identity
            Campo_Identity = Reflection_BLL.Acha_Campo_Identity(Tabela);

            // Cria uma array de propriedades que pertencem a classe
            PropertyInfo[] Propriedades_Genéricas = Instância_Genérica.GetType().GetProperties();

            //Percorre todas as propriedades da classe
            for (int i = 0; i < Propriedades_Genéricas.Length; i++)
            {
                // Se o campo for identity(auto incrementado), não há necessidade de inserir no SET do UPDATE
                if (Campo_Identity == Propriedades_Genéricas[i].Name)
                {
                    i = i + 1;
                }

                Parâmetros = Parâmetros + Propriedades_Genéricas[i].Name + ",";

                Valores = Valores + Retorna_ValorPropriedade_Genérico(Propriedades_Genéricas[i].PropertyType.Name,
                                                                      Propriedades_Genéricas[i].GetValue(Instância_Genérica, null))
                          + ",";
            }
            //Retira o último caractere que é a vígula
            Parâmetros = Parâmetros.Substring(0, Parâmetros.Length - 1);
            Valores    = Valores.Substring(0, Valores.Length - 1);

            //Finalmente insere o registro na tabela
            ALDAL.Insere_Registro_Genérico(Tabela, Parâmetros, Valores);
        }
コード例 #2
0
        public static Panel Attr_Formulário_Genérico(Panel Panel_Genérico, object Instância_Genérica)
        {
            string Tipo_Campo;
            string Nome_Campo;
            string Campo_Identity;

            Campo_Identity = Reflection_BLL.Acha_Campo_Identity(Instância_Genérica.GetType().Name);

            for (int i = 0; i < Panel_Genérico.Controls.Count; i++)
            {
                // Descobre o tipo do controle (label, textbox, button ou qualquer outro)
                Tipo_Campo = Panel_Genérico.Controls[i].Name.Substring(0, 3);

                // A partir do nome do controle(ex: grpFREQUENTADORESsexo), essa função vai retornar "sexo", que é a propriedade
                Nome_Campo = Funções.fncRetornaNomePropriedade(Instância_Genérica.GetType().Name, Panel_Genérico.Controls[i].Name);

                // Padroniza o nome do campo para ficar igual ao nome da propriedade(ex: De "nome_crachá" Para "Nome_Crachá"
                Nome_Campo = Funções.fncConverteControle_Classe(Nome_Campo);

                try
                {
                    // Permite acessar a propriedade em questão
                    Propriedade_Genérica = Instância_Genérica.GetType().GetProperty(Nome_Campo);

                    switch (Tipo_Campo)
                    {
                    case "txt":
                        Attr_TextBox_Genérico(Panel_Genérico.Controls[i], Instância_Genérica);
                        break;

                    case "cmb":
                        Attr_ComboBox_Genérico(Panel_Genérico.Controls[i], Instância_Genérica);
                        break;

                    case "grp":
                        Attr_GroupBox_Genérico(Panel_Genérico.Controls[i], Instância_Genérica);
                        break;
                    }
                    // Se o campo for identity no banco de dados, o mesmo é desabilitado.
                    if (Nome_Campo == Campo_Identity)
                    {
                        Panel_Genérico.Controls[i].Enabled = false;
                    }
                }
                catch (Exception Err)
                {
                    string teste = Err.Message;
                }
            }
            return(Panel_Genérico);
        }
コード例 #3
0
        public static void UP_Tabela_Genérico(object Instância_Genérica, string TextoWHERE)
        {
            string Tabela, Parâmetros_Valores = "", Campo_Identity;

            // Retorna o nome da Classe(que é o mesmo nome da Tabela)
            Tabela = Instância_Genérica.GetType().Name;

            // Verifica se tem algum campo que é identity
            Campo_Identity = Reflection_BLL.Acha_Campo_Identity(Tabela);

            // Cria uma array de propriedades que pertencem a classe
            PropertyInfo[] Propriedades_Genéricas = Instância_Genérica.GetType().GetProperties();

            //Percorre todas as propriedades da classe
            for (int i = 0; i < Propriedades_Genéricas.Length; i++)
            {
                //Constrói o WHERE do UPDATE
                if (TextoWHERE == Propriedades_Genéricas[i].Name)
                {
                    TextoWHERE = Propriedades_Genéricas[i].Name + "=" +
                                 Retorna_ValorPropriedade_Genérico(Propriedades_Genéricas[i].PropertyType.Name,
                                                                   Propriedades_Genéricas[i].GetValue(Instância_Genérica, null));
                }

                // Se o campo for identity(auto incrementado), não há necessidade de inserir no SET do UPDATE
                if (Campo_Identity == Propriedades_Genéricas[i].Name)
                {
                    i = i + 1;
                }

                //Constrói o SET do UPDATE
                Parâmetros_Valores = Parâmetros_Valores +
                                     Propriedades_Genéricas[i].Name + "=" +
                                     Retorna_ValorPropriedade_Genérico(Propriedades_Genéricas[i].PropertyType.Name,
                                                                       Propriedades_Genéricas[i].GetValue(Instância_Genérica, null)) + ",";
            }

            //Retira o último caractere que é a vígula
            Parâmetros_Valores = Parâmetros_Valores.Substring(0, Parâmetros_Valores.Length - 1);

            //Finalmente atualiza o registro na tabela
            ALDAL.Atualiza_Registo_Genérico(Tabela, Parâmetros_Valores, TextoWHERE);
        }
コード例 #4
0
        public static string Inicializa_Formulário_Genérico(Panel Painel_Genérico, Formulários Formulário)
        {
            if (Formulário.Status == "C" || Formulário.Status == "E")
            {
                Desabilita_Formulário_Genérico(Painel_Genérico);
            }
            else if (Formulário.Status == "A" || Formulário.Status == "I")
            {
                //Se o campo Código for Identity(auto-incremento), o campo deverá ser desabilitado
                if (Reflection_BLL.Acha_Campo_Identity(Formulário.Nome_classe) == "Código")
                {
                    TextBox TextBox_Genérico = (TextBox)Painel_Genérico.Controls["txt" + Formulário.Nome_classe.ToUpper() + "código"];

                    //Desabilita o textbox Código
                    TextBox_Genérico.Enabled = false;
                }
            }

            return(Altera_Caption_Formulário_Genérico(Formulário.Status) + " de cadastro");
        }