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); }
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); }
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); }
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"); }