public void SalvarCampo(RelatorioCampo campo, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, _configSys.UsuarioRelatorio)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"select count(*) from tab_campo c where c.fato = (select t.id from TAB_FATO t where upper(t.tabela) = upper(:tabelafato)) and c.dimensao = (select t.id from TAB_DIMENSAO t where upper(t.tabela) = upper(:tabeladimensao) ) and upper(c.campo) = upper(:campoNome) " ); comando.AdicionarParametroEntrada("tabelafato", DbType.String, 40, campo.TabelaFato); comando.AdicionarParametroEntrada("tabeladimensao", DbType.String, 40, campo.TabelaDimensao); comando.AdicionarParametroEntrada("campoNome", DbType.String, 30, campo.Nome); if (bancoDeDados.ExecutarScalar <Decimal>(comando) == 0) { CriarCampo(campo, bancoDeDados); } else { EditarCampo(campo, bancoDeDados); } bancoDeDados.Commit(); } }
public void CriarCampo(RelatorioCampo campo, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, _configSys.UsuarioRelatorio)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into tab_campo(id, codigo, fato, dimensao, alias, campo, tipo_dado, campo_exibicao, campo_filtro, consulta, campo_consulta, sistema_consulta, campo_ordenacao) values (seq_campo.nextval, null, (select t.id from TAB_FATO t where upper(t.tabela) = upper(:tabelafato)), (select t.id from TAB_DIMENSAO t where upper(t.tabela) = upper(:tabeladimensao)), :alias, :campoNome, :tipo_dado, :campo_exibicao, :campo_filtro, :consulta, :campo_consulta, :sistema_consulta, :campo_ordenacao)" ); comando.AdicionarParametroEntrada("tabelafato", DbType.String, 40, campo.TabelaFato); comando.AdicionarParametroEntrada("tabeladimensao", DbType.String, 40, campo.TabelaDimensao); comando.AdicionarParametroEntrada("alias", DbType.String, 4000, campo.Alias); comando.AdicionarParametroEntrada("campoNome", DbType.String, 30, campo.Nome); comando.AdicionarParametroEntrada("tipo_dado", (int)campo.TipoDado, DbType.Int32); comando.AdicionarParametroEntrada("campo_exibicao", campo.Exibicao ? 1 : 0, DbType.Int32); comando.AdicionarParametroEntrada("campo_filtro", campo.Filtro ? 1 : 0, DbType.Int32); comando.AdicionarParametroEntrada("consulta", DbType.String, 4000, campo.ConsultaSql); comando.AdicionarParametroEntrada("campo_consulta", DbType.String, 40, campo.ConsultaCampo); comando.AdicionarParametroEntrada("sistema_consulta", (int)campo.ConsultaSistema, DbType.Int32); comando.AdicionarParametroEntrada("campo_ordenacao", campo.Ordenacao ? 1 : 0, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); bancoDeDados.Commit(); } }
public void EditarCampo(RelatorioCampo campo, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, _configSys.UsuarioRelatorio)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update tab_campo c set c.alias = :alias where c.fato = (select t.id from TAB_FATO t where upper(t.tabela) = upper(:tabelafato)) and c.dimensao = (select t.id from TAB_DIMENSAO t where upper(t.tabela) = upper(:tabeladimensao) ) and upper(c.campo) = upper(:campoNome) " ); comando.AdicionarParametroEntrada("tabelafato", DbType.String, 40, campo.TabelaFato); comando.AdicionarParametroEntrada("tabeladimensao", DbType.String, 40, campo.TabelaDimensao); comando.AdicionarParametroEntrada("campoNome", DbType.String, 30, campo.Nome); comando.AdicionarParametroEntrada("alias", DbType.String, 4000, campo.Alias); bancoDeDados.ExecutarNonQuery(comando); bancoDeDados.Commit(); } }
private void GerarColunasDinamicas() { #region Colunas Perguntas List <Dictionary <string, object> > colunasIds = _da.ObterPerguntaIds(); if (colunasIds != null && colunasIds.Count > 0) { SqlBuilderDa sqlBuilder = new SqlBuilderDa("dim_fisc_pergunta", "seq_dim_fisc_pergunta"); var lstColunas = sqlBuilder.ObterColunas(); colunasIds.Where(x => lstColunas.Exists(c => c.ColumnName == string.Format("P_TXT_{0}", x["PERGUNTA_ID"]))).ToList() .ForEach(x => { RelatorioCampo campoRelatorio = new RelatorioCampo(); campoRelatorio.TabelaFato = "fat_fiscalizacao"; campoRelatorio.TabelaDimensao = "dim_fisc_pergunta"; campoRelatorio.Alias = x["PERGUNTA_TEXTO"].ToString(); campoRelatorio.Nome = string.Format("P_RES_TXT_{0}", x["PERGUNTA_ID"]); campoRelatorio.TipoDado = eCampoTipoDado.String; _daRelatorio.SalvarCampo(campoRelatorio); }); colunasIds.Where(x => !lstColunas.Exists(c => c.ColumnName == string.Format("P_TXT_{0}", x["PERGUNTA_ID"]))).ToList() .ForEach(x => { sqlBuilder.AddColuna("dim_fisc_pergunta", string.Format("P_TXT_{0}", x["PERGUNTA_ID"]), "VARCHAR2(100)"); sqlBuilder.AddColuna("dim_fisc_pergunta", string.Format("P_TID_{0}", x["PERGUNTA_ID"]), "VARCHAR2(36)"); sqlBuilder.AddColuna("dim_fisc_pergunta", string.Format("P_RES_ID_{0}", x["PERGUNTA_ID"]), "NUMBER(38)"); sqlBuilder.AddColuna("dim_fisc_pergunta", string.Format("P_RES_TXT_{0}", x["PERGUNTA_ID"]), "VARCHAR2(100)"); sqlBuilder.AddColuna("dim_fisc_pergunta", string.Format("P_RES_TID_{0}", x["PERGUNTA_ID"]), "VARCHAR2(36)"); sqlBuilder.AddIndiceTxt("dim_fisc_pergunta", string.Format("P_TXT_{0}", x["PERGUNTA_ID"]), string.Format("idx_fisc_p{0}", x["PERGUNTA_ID"])); sqlBuilder.AddIndiceTxt("dim_fisc_pergunta", string.Format("P_RES_TXT_{0}", x["PERGUNTA_ID"]), string.Format("idx_fisc_pr{0}", x["PERGUNTA_ID"])); RelatorioCampo campoRelatorio = new RelatorioCampo(); campoRelatorio.TabelaFato = "fat_fiscalizacao"; campoRelatorio.TabelaDimensao = "dim_fisc_pergunta"; campoRelatorio.Alias = x["PERGUNTA_TEXTO"].ToString(); campoRelatorio.Nome = string.Format("P_RES_TXT_{0}", x["PERGUNTA_ID"]); campoRelatorio.TipoDado = eCampoTipoDado.String; campoRelatorio.Exibicao = true; campoRelatorio.Filtro = true; campoRelatorio.Ordenacao = true; campoRelatorio.ConsultaSistema = eSistemaConsulta.Relatorio; campoRelatorio.ConsultaSql = string.Format(" ( select distinct p.p_res_id_{0} id, p.P_RES_TXT_{0} texto from dim_fisc_pergunta p where p.P_RES_TXT_{0} is not null ) ", x["PERGUNTA_ID"]); campoRelatorio.ConsultaCampo = string.Format("P_RES_ID_{0}", x["PERGUNTA_ID"]); _daRelatorio.SalvarCampo(campoRelatorio); }); } #endregion #region Colunas Campos colunasIds = _da.ObterFiscCamposIds(); if (colunasIds != null && colunasIds.Count > 0) { SqlBuilderDa sqlBuilder = new SqlBuilderDa("dim_fisc_campo", "seq_dim_fisc_campo"); var lstColunas = sqlBuilder.ObterColunas(); colunasIds.Where(x => lstColunas.Exists(c => c.ColumnName == string.Format("C_VAL_{0}", x["INFRACAO_CAMPO_ID"]))).ToList() .ForEach(x => { RelatorioCampo campoRelatorio = new RelatorioCampo(); campoRelatorio.TabelaFato = "fat_fiscalizacao"; campoRelatorio.TabelaDimensao = "dim_fisc_campo"; campoRelatorio.Alias = string.Format("{0}{1}", x["TEXTO"], (String.IsNullOrEmpty(x["UNIDADE_TEXTO"].ToString()) ? String.Empty : " (" + x["UNIDADE_TEXTO"] + ")")); campoRelatorio.Nome = string.Format("C_VAL_{0}", x["INFRACAO_CAMPO_ID"]); campoRelatorio.TipoDado = ((Convert.ToInt32(x["TIPO"]) == 1) ? eCampoTipoDado.String : eCampoTipoDado.Real); _daRelatorio.SalvarCampo(campoRelatorio); }); colunasIds.Where(x => !lstColunas.Exists(c => c.ColumnName == string.Format("C_VAL_{0}", x["INFRACAO_CAMPO_ID"]))).ToList() .ForEach(x => { sqlBuilder.AddColuna("dim_fisc_campo", string.Format("C_VAL_{0}", x["INFRACAO_CAMPO_ID"]), ((Convert.ToInt32(x["TIPO"]) == 1) ? "VARCHAR2(100)" : "NUMBER")); if (Convert.ToInt32(x["TIPO"]) == 1) { sqlBuilder.AddIndiceTxt("dim_fisc_campo", string.Format("C_VAL_{0}", x["INFRACAO_CAMPO_ID"]), string.Format("idx_fisc_c{0}", x["INFRACAO_CAMPO_ID"])); } RelatorioCampo campoRelatorio = new RelatorioCampo(); campoRelatorio.TabelaFato = "fat_fiscalizacao"; campoRelatorio.TabelaDimensao = "dim_fisc_campo"; campoRelatorio.Alias = string.Format("{0}{1}", x["TEXTO"], (String.IsNullOrEmpty(x["UNIDADE_TEXTO"].ToString()) ? String.Empty : " (" + x["UNIDADE_TEXTO"] + ")")); campoRelatorio.Nome = string.Format("C_VAL_{0}", x["INFRACAO_CAMPO_ID"]); campoRelatorio.TipoDado = ((Convert.ToInt32(x["TIPO"]) == 1) ? eCampoTipoDado.String : eCampoTipoDado.Real); campoRelatorio.Exibicao = true; campoRelatorio.Filtro = true; campoRelatorio.Ordenacao = true; _daRelatorio.SalvarCampo(campoRelatorio); }); } #endregion }