public static TList_Cad_Report Buscar(decimal vID_Report, string vDS_Report, string vModulo, string vNM_Classe, string vIdent, decimal vVersao, string vId_rdc, bool vNaoBuscarRelClasse, bool vBuscarHomologacao, bool vBuscarDTSParam) { TpBusca[] filtro = new TpBusca[0]; if (vID_Report > 0) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.ID_Report"; filtro[filtro.Length - 1].vVL_Busca = vID_Report.ToString(); filtro[filtro.Length - 1].vOperador = "="; } if (!string.IsNullOrEmpty(vDS_Report)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.DS_Report"; filtro[filtro.Length - 1].vVL_Busca = "'%" + vDS_Report.Trim() + "%'"; filtro[filtro.Length - 1].vOperador = "LIKE"; } if (!string.IsNullOrEmpty(vModulo)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.Modulo"; filtro[filtro.Length - 1].vVL_Busca = "'" + vModulo.Trim() + "'"; filtro[filtro.Length - 1].vOperador = "="; } if (!string.IsNullOrEmpty(vNM_Classe)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.NM_Classe"; filtro[filtro.Length - 1].vVL_Busca = "'" + vNM_Classe.Trim() + "'"; filtro[filtro.Length - 1].vOperador = "="; } if (!string.IsNullOrEmpty(vIdent)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.Ident"; filtro[filtro.Length - 1].vVL_Busca = "'" + vIdent.Trim() + "'"; filtro[filtro.Length - 1].vOperador = "="; } if (vVersao > 0) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.Versao"; filtro[filtro.Length - 1].vVL_Busca = vVersao.ToString(); filtro[filtro.Length - 1].vOperador = "="; } if (vNaoBuscarRelClasse) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "isnull(a.NM_Classe,'')"; filtro[filtro.Length - 1].vVL_Busca = "''"; filtro[filtro.Length - 1].vOperador = "="; } if (vBuscarHomologacao) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.ID_RDC"; filtro[filtro.Length - 1].vVL_Busca = "null"; filtro[filtro.Length - 1].vOperador = "="; } if (!string.IsNullOrEmpty(vId_rdc)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.id_rdc"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = "'" + vId_rdc.Trim() + "'"; } TList_Cad_Report lReport = new TCD_Cad_Report().Select(filtro, 0, string.Empty); if (vBuscarDTSParam) { //BUSCA OS DATASOURCES foreach (TRegistro_Cad_Report regReport in lReport) { regReport.lConsulta = TCN_Cad_Consulta.Busca(0, string.Empty, string.Empty, regReport.ID_Report); foreach (TRegistro_Cad_Consulta regConsulta in regReport.lConsulta) { regConsulta.lParamClasse = TCN_Cad_ParamClasse.BuscaParamClasseSQLString(regConsulta.DS_SQL); } } } return(lReport); }
public static string GravarReportConsulta(TRegistro_Cad_Report val, TObjetoBanco banco) { bool st_transacao = false; TCD_Cad_Report qtb_Report = new TCD_Cad_Report(); try { if (banco == null) { st_transacao = qtb_Report.CriarBanco_Dados(true); } else { qtb_Report.Banco_Dados = banco; } //GRAVA O REPORT string retorno = qtb_Report.GravarReport(val); val.ID_Report = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_REPORT")); //DELETA AS ANTIGAS AMARRAÇÕES new CamadaDados.TDataQuery(qtb_Report.Banco_Dados).executarSql("DELETE TB_CON_Report_X_Consulta " + "WHERE id_report = " + val.ID_Report, null); new CamadaDados.TDataQuery(qtb_Report.Banco_Dados).executarSql("UPDATE TB_DIV_MENU set DS_Menu = '" + val.DS_Report + "' " + "WHERE id_report = " + val.ID_Report, null); //GRAVA OS DTS val.lConsulta.ForEach(p => { p.Login = Utils.Parametros.pubLogin; string ret_cons = TCN_Cad_Consulta.GravaConsulta(p, qtb_Report.Banco_Dados); TCN_Cad_Report_X_Consulta.GravarReport_X_Consulta( new TRegistro_Cad_Report_X_Consulta() { ID_Report = val.ID_Report, ID_Consulta = CamadaDados.TDataQuery.getPubVariavel(ret_cons, "@P_ID_CONSULTA") }, qtb_Report.Banco_Dados); p.lParamClasse.ForEach(v => TCN_Cad_ParamClasse.GravarParamClasse(v, qtb_Report.Banco_Dados)); }); if (st_transacao) { qtb_Report.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_Report.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar relatorio: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_Report.deletarBanco_Dados(); } } }