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;
        }
Exemple #2
0
        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;
        }