private void btnAddFiltro_Click(object sender, EventArgs e) { DataRow row = dtFiltro.NewRow(); Dicionario.Campos campo_avulso; if (dtFiltro.Rows.Count > 0) { if (cmbConjuncao.Text == "") { MessageBox.Show("É obrigatório selecionar a conjunção!"); return; } } row["ID"] = dtFiltro.Rows.Count + 1; var campos = Geral.banco.LerNoBanco <Dicionario.Campos>("Select * from Campos where Tabela = '" + cmbTabelaPlataforma.SelectedValue.ToString() + "'"); if (campos.Where(x => x.Campo == cmbCamposTabela.Text).Count() == 0) { DialogResult dr = MessageBox.Show("Deseja filtrar utilizando um campo avulso " + cmbCamposTabela.Text + "? (É necessário que o campo exista na query)", "Pergunta", MessageBoxButtons.YesNo); if (dr == DialogResult.No) { return; } campo_avulso = new Dicionario.Campos(); campo_avulso.Campo = cmbCamposTabela.Text; campo_avulso.CampoERP = cmbCamposTabela.Text; campo_avulso.Tabela = cmbTabelaPlataforma.SelectedValue.ToString(); list_campos_avulso.Add(campo_avulso); row["CAMPO"] = cmbCamposTabela.Text; } else { row["CAMPO"] = cmbCamposTabela.SelectedValue.ToString(); } row["CONDICAO"] = cmbCondicao.Text.ToString(); row["COMPARACAO"] = txtComparacao.Text; if (dtFiltro.Rows.Count > 0) { row["CONJUNCAO"] = cmbConjuncao.Text; } dtFiltro.Rows.Add(row); gridFiltros.DataSource = dtFiltro; }
private void CarregarCamposTabela() { if (cmbTabelaPlataforma.SelectedValue != null) { cmbCamposTabela.ValueMember = "Campo"; cmbCamposTabela.DisplayMember = "Campo"; var campos = Geral.banco.LerNoBanco <Dicionario.Campos>("Select * from Campos where Tabela = '" + cmbTabelaPlataforma.SelectedValue.ToString() + "'"); Dicionario.Campos campo_rownum = new Dicionario.Campos(); campo_rownum.Campo = "ROWNUM"; campo_rownum.CampoERP = "ROWNUM"; campo_rownum.Tabela = cmbTabelaPlataforma.SelectedValue.ToString(); campos.Add(campo_rownum); cmbCamposTabela.DataSource = campos; } }
private void btnDoFilter_Click(object sender, EventArgs e) { var tabela = Geral.banco.LerNoBanco <Dicionario.Tabelas>("Select * from Tabelas where Nome = '" + cmbTabelaPlataforma.SelectedValue.ToString() + "'").FirstOrDefault(); if (tabela == null) { MessageBox.Show("Configuração para a tabela " + cmbTabelaPlataforma.SelectedValue.ToString() + " não encontrada!"); return; } var campos = Geral.banco.LerNoBanco <Dicionario.Campos>("Select * from Campos where Tabela = '" + cmbTabelaPlataforma.SelectedValue.ToString() + "'"); Dicionario.Campos campo_rownum = new Dicionario.Campos(); campo_rownum.Campo = "ROWNUM"; campo_rownum.CampoERP = "ROWNUM"; campo_rownum.Tabela = cmbTabelaPlataforma.SelectedValue.ToString(); campos.Add(campo_rownum); if (list_campos_avulso != null) { foreach (var campo_avulso in list_campos_avulso) { campos.Add(campo_avulso); } } string query = ""; query = tabela.Query; foreach (DataRow row in dtFiltro.Rows) { var campo = campos.Where(x => x.Campo == row["CAMPO"].ToString()).FirstOrDefault(); if (campo != null) { if (row["ID"].ToString() == "1") { query = query + " AND "; } query += row["CONJUNCAO"] + " " + campo.CampoERP + " " + row["CONDICAO"] + " " + (campo.Tipo == "String" ? "'" : "") + row["COMPARACAO"] + (campo.Tipo == "String" ? "'" : ""); } } try { this.Cursor = Cursors.WaitCursor; gridResultado.DataSource = Geral.agilee.ExecutarQuery(query.Replace("\"", "'")); } catch (Exception ex) { this.Cursor = Cursors.Default; MessageBox.Show(ex.Message); } finally { this.Cursor = Cursors.Default; } }