public bool Pesquisa(string sintaxe, bool ehpesquisa) { bool PesquisaCorreta = false; string[] strResultado = { "", "", "", "", "" }; int parte = 0; try { DataRow[] dr1 = dtTabelaPA.Select(sintaxe); int intTmp001 = dr1.Length; if (sintaxe != "") { double dblTmp001 = 0; for (int i = 0; i < intTmp001; i++) { int intColArea = dtTabelaPA.Columns[strPrmAdicional[5]].Ordinal;//int.Parse(tmp001); int intColShape = dtTabelaPA.Columns[strPrmAdicional[6]].Ordinal; string strTmp001 = dr1[i][intColArea].ToString(); dblTmp001 = dblTmp001 + System.Double.Parse(strTmp001); string ColunaDataTipo = dtTabelaPA.Columns[strPrmAdicional[6]].DataType.ToString(); if (strResultado[parte].Length > 0) { if (ColunaDataTipo == "System.String") { strResultado[parte] = strResultado[parte] + " OR " + strPrmAdicional[0] + "='" + dr1[i][intColShape].ToString() + "'"; } else { strResultado[parte] = strResultado[parte] + " OR " + strPrmAdicional[0] + "=" + dr1[i][intColShape].ToString() + ""; } } else { if (ColunaDataTipo == "System.String") { strResultado[parte] = strPrmAdicional[0] + "=" + dr1[i][intColShape].ToString(); } else { strResultado[parte] = strPrmAdicional[0] + "=" + dr1[i][intColShape].ToString() + ""; } } if (strResultado[parte].Length > 30000) { parte = parte + 1; } } string strResulFim = strResultado[0] + "*" + strResultado[1] + "*" + strResultado[2] + "*" + strResultado[3] + "*" + strResultado[4]; //dblTmp001 = dblTmp001 / 10000; dblTmp001 = Math.Round(dblTmp001, 1); switch (intTmp001) { case 0: MessageBox.Show("A sintaxe está correta, entretanto, não foram encontrados polígonos" + " que satisfaçam as condições da sintaxe elaborada."); break; default: Dados dd = new Dados(); int temp001 = int.Parse(strPrmAdicional[4]); MessageBox.Show("A área encontrada é de " + dblTmp001.ToString() + " " + dd.RetornaUnidade(0, temp001)); if (ehpesquisa) { PesquisaCorreta = true; prpStrAvancada = strResulFim; } if (chkRelatorio.Checked) { frmFormatRel FormataRelatorio = new frmFormatRel(sintaxe, dtTabelaPA, strParametrosPesquisa, strPrmAdicional); FormataRelatorio.prpFalso = this.prpRel; FormataRelatorio.ShowDialog(this); } break; }//switch }//if else { if (chkRelatorio.Checked) { frmFormatRel FormataRelatorio = new frmFormatRel(sintaxe, dtTabelaPA, strParametrosPesquisa, strPrmAdicional); FormataRelatorio.prpFalso = this.prpRel; FormataRelatorio.ShowDialog(this); } else { MessageBox.Show("A caixa de pesquisa está vazia."); } } }//try catch (Exception Ex) { MessageBox.Show(Ex.Message + "\r\nOcorreu um erro com a sintaxe. Verifique"); } //this.UseWaitCursor = false; return PesquisaCorreta; }
public bool AreaEstudo(string sintaxe, bool ehAreaEstudo) { // e agora? bool PesquisaCorreta = false; string[] strResultado = { "", "", "", "", "" }; int parte = 0; try { //DataRow[] dr1 = dtTabelaPB.Select(sintaxe); DataTable dtTemp = dtTabelaPB.Copy(); DataRow[] drTemp = dtTemp.Select(sintaxe); int intTmp001 = drTemp.Length; // testa se há sintaxe escrita if (sintaxe != "") { // remove as linhas que satisfazem a pesquisa inicial //isso para gerar a mascara no externo, que é o resto //da pesquisa for (int i = 0; i < intTmp001; i++) { dtTemp.Rows.Remove(drTemp[i]); } DataRow[] dr2 = dtTemp.Select(); //refaz a pesquisa inicial pra evitar erros DataRow[] dr1 = dtTabelaPB.Select(sintaxe); PesquisaAreaEstudo(dr1); // ========================================================= intTmp001 = dr2.Length; for (int i = 0; i < intTmp001; i++) { int intColArea = dtTemp.Columns[strPrmAdicional[5]].Ordinal;//int.Parse(tmp001); int intColShape = dtTemp.Columns[strPrmAdicional[6]].Ordinal; //string strTmp001 = dr1[i][intColArea].ToString(); //dr1 pq é o conteúdo original //dblTmp001 = dblTmp001 + System.Double.Parse(strTmp001); string ColunaDataTipo = dtTemp.Columns[strPrmAdicional[6]].DataType.ToString(); // *** Montagem da sintaxe de seleção da área *** if (strResultado[parte].Length > 0) { if (ColunaDataTipo == "System.String") { strResultado[parte] = strResultado[parte] + " OR " + strPrmAdicional[0] + "='" + dr2[i][intColShape].ToString() + "'"; } else { strResultado[parte] = strResultado[parte] + " OR " + strPrmAdicional[0] + "=" + dr2[i][intColShape].ToString() + ""; } } else { if (ColunaDataTipo == "System.String") { strResultado[parte] = strPrmAdicional[0] + "=" + dr2[i][intColShape].ToString(); } else { strResultado[parte] = strPrmAdicional[0] + "=" + dr2[i][intColShape].ToString() + ""; } } if (strResultado[parte].Length > 30000) { parte = parte + 1; } } string strResulFim = strResultado[0] + "*" + strResultado[1] + "*" + strResultado[2] + "*" + strResultado[3] + "*" + strResultado[4]; if (ehAreaEstudo) { PesquisaCorreta = true; prpStrBasica = strResulFim; } if (chkRelatorio.Checked) { frmFormatRel FormataRelatorio = new frmFormatRel(sintaxe, dtTabelaPB, strParametrosPesquisa, strPrmAdicional); FormataRelatorio.prpFalso = this.prpRel; FormataRelatorio.ShowDialog(this); } // ************************************************************** } else { if (chkRelatorio.Checked) { frmFormatRel FormataRelatorio = new frmFormatRel(sintaxe, dtTabelaPB, strParametrosPesquisa, strPrmAdicional); FormataRelatorio.prpFalso = this.prpRel; FormataRelatorio.ShowDialog(this); } else { MessageBox.Show("A caixa de pesquisa está vazia."); } } }//try catch (Exception Ex) { MessageBox.Show(Ex.Message + "\r\nOcorreu um erro com a sintaxe. Verifique"); } return PesquisaCorreta; }