예제 #1
0
        /// <summary>
        /// <para>Retorna valores unicos para cada coluna pesquisada (III)</para>
        /// <param name="PosAnalise">Posição da coluna a ser analisada</param>
        /// </summary>
        private string[] pesquisa(int PosAnalise)
        {
            DataRow[] Linhas = DT_Dados.Select(Sintaxe);


            string[] tempTXT = new string[Linhas.Length];
            string[] ValUnicos;

            for (int b = 0; b < Linhas.Length; b++)
            {
                tempTXT[b] = Linhas[b][PosAnalise].ToString();
            }
            Dados dd = new Dados();

            ValUnicos = dd.GetDistinctValues(tempTXT);
            ArrayList valoresOrdenados = new ArrayList(ValUnicos);

            valoresOrdenados.Sort();

            for (int b = 0; b < valoresOrdenados.Count; b++)
            {
                ValUnicos[b] = valoresOrdenados[b].ToString();
            }

            return(ValUnicos);
        }
예제 #2
0
        /// <summary>
        /// <para>Retorna valores unicos para cada coluna pesquisada (I)</para>
        /// <param name="nivelSup"> valor do grupo a ser pesquisado</param>
        /// <param name="PosSup"> Posicao da coluna correspondente ao nivel hierarquico superior</param>
        /// <param name="PosAnalise">Posição da coluna a ser analisada</param>
        /// </summary>
        private string[] pesquisa(string nivelSup, int PosSup, int PosAnalise)
        {
            DataRow[] Linhas = DT_Dados.Select(Sintaxe);

            //string tmpTXT1 = "";
            string[] tempTXT = new string[Linhas.Length];
            string[] ValUnicos;
            int      valor = 0;


            for (int b = 0; b < Linhas.Length; b++)
            {
                if (Linhas[b][PosSup].ToString() == nivelSup)
                {
                    tempTXT[b] = Linhas[b][PosAnalise].ToString();
                    if (tempTXT[b] != null)
                    {
                        valor += 1;
                    }
                }
            }
            string[] valores = new string[valor];
            int      V2      = 0;

            for (int a = 0; a < Linhas.Length; a++)
            {
                if (Linhas[a][PosSup].ToString() == nivelSup)
                {
                    valores[V2] = Linhas[a][PosAnalise].ToString();
                    V2         += 1;
                }
            }


            Dados dd = new Dados();

            ValUnicos = dd.GetDistinctValues(valores);
            ArrayList valoresOrdenados = new ArrayList(ValUnicos);

            valoresOrdenados.Sort();

            for (int b = 0; b < valoresOrdenados.Count; b++)
            {
                ValUnicos[b] = valoresOrdenados[b].ToString();
            }


            //Type TipoArray = ValUnicos.GetType();
            //ValUnicos = valoresOrdenados.;
            return(ValUnicos);
        }
예제 #3
0
        public void Preenche_cboValor(int indexSelecao)
        {
            //método destinado a encher o segundo listbox, com valores únicos e ordenados da coluna selecionada

            //LOG dispensado (valor insignificante)

            cboValor.Items.Clear();
            try
            {
                intListAtributos = indexSelecao;

                string strTmp001 = strParametrosPesquisa[indexSelecao, 1]; //pega o nome da coluna
                int intTmp001 = dtTabelaPA.Columns[strTmp001].Ordinal; // indica a posição da coluna na tabela
                //intTmp001 = ;
                string strTmp002 = dtTabelaPA.Columns[strTmp001].DataType.ToString(); //pega o tipo de dado da coluna
                //DataRow[] drLinhas = dtTabelaPB.Select(); //faz a seleção de todas as linhas (não sei pra que)
                Dados dd = new Dados();

                //segundo o tipo de dados da coluna, o programa inicia a montagem correta, 
                //incluindo aspas nas strings;

                switch (strTmp002)
                {
                    case "System.String":
                        string[] strLista = new string[dtTabelaPA.Rows.Count - 1];

                        //transporta os valores da coluna selecionada para um Array, para que possa ser ordenado
                        for (int i = 0; i < dtTabelaPA.Rows.Count - 1; i++) //resgata os valores da tabela em um array
                        {
                            //strLista[i] = drLinhas[i].ItemArray[intTmp001].ToString();
                            strLista[i] = dtTabelaPA.Rows[i].ItemArray[intTmp001].ToString();
                        }

                        //faz o retorno de apenas valores unicos e ordena os valores
                        int intTmp002 = dd.GetDistinctValues<string>(strLista).Length;
                        string[] strTmp003 = new string[intTmp002];
                        strTmp003 = dd.GetDistinctValues<string>(strLista);
                        Array.Sort(strTmp003);

                        //preenche o cboValor
                        for (int i = 0; i < intTmp002; i++)
                        {
                            cboValor.Items.Add("'" + strTmp003[i] + "'");
                        }
                        break;


                    case "System.Int":
                        int[] intLista = new int[dtTabelaPA.Rows.Count - 1]; // drLinhas.Length 

                        //transporta os valores da coluna selecionada para um Array, para que possa ser ordenado
                        for (int i = 0; i < dtTabelaPA.Rows.Count - 1; i++) //resgata os valores da tabela em um array (drLinhas.Length)
                        {
                            string strIntString = dtTabelaPA.Rows[i].ItemArray[intTmp001].ToString();
                            //drLinhas[i].ItemArray[intTmp001].ToString();
                            if (strIntString != "")
                            {
                                intLista[i] = System.Int32.Parse(strIntString);
                            }
                            else
                            {
                                intLista[i] = -1;
                            }
                        }

                        //faz o retorno de apenas valores unicos e ordena os valores
                        int intTmp003 = dd.GetDistinctValues<int>(intLista).Length;
                        int[] intTmp004 = new int[intTmp003];
                        intTmp004 = dd.GetDistinctValues<int>(intLista);
                        Array.Sort(intTmp004);

                        //preenche o cboValor
                        for (int i = 0; i < intTmp001; i++)
                        {
                            cboValor.Items.Add(intTmp004[i].ToString());
                        }
                        break;

                    case "System.Double":
                        double[] dblLista = new double[dtTabelaPA.Rows.Count - 1];

                        for (int i = 0; i < dtTabelaPA.Rows.Count - 1; i++) //resgata os valores da tabela em um array
                        {
                            string strDoubleString = dtTabelaPA.Rows[i].ItemArray[intTmp001].ToString();
                            //drLinhas[i].ItemArray[intTmp001].ToString();
                            if (strDoubleString != "")
                            {
                                dblLista[i] = System.Double.Parse(strDoubleString);
                            }
                            else
                            {
                                dblLista[i] = -1;
                            }
                        }
                        //faz o retorno de apenas valores unicos e ordena os valores

                        int intTmp003_d = dd.GetDistinctValues<double>(dblLista).Length;
                        double[] dblTmp004_d = new double[intTmp003_d];
                        dblTmp004_d = dd.GetDistinctValues<double>(dblLista);
                        Array.Sort(dblTmp004_d);

                        //preenche o cboValor
                        for (int i = 0;
                            i < intTmp003_d;
                            i++)
                        {
                            string strValor = dblTmp004_d[i].ToString();
                            strValor = strValor.Replace(',', '.');
                            cboValor.Items.Add(strValor);
                            //cboValor.Items.Add(dblTmp004_d[i].ToString());
                        }
                        break;
                    case "System.Decimal":
                        decimal[] dcmLista = new decimal[dtTabelaPA.Rows.Count - 1];

                        for (int i = 0; i < dtTabelaPA.Rows.Count - 1; i++) //resgata os valores da tabela em um array
                        {
                            string strDecimalString = dtTabelaPA.Rows[i].ItemArray[intTmp001].ToString();
                            //drLinhas[i].ItemArray[intTmp001].ToString();
                            if (strDecimalString != "")
                            {
                                dcmLista[i] = System.Decimal.Parse(strDecimalString);
                            }
                            else
                            {
                                dcmLista[i] = -1;
                            }
                        }
                        //faz o retorno de apenas valores unicos e ordena os valores

                        int intTmp003_dc = dd.GetDistinctValues<decimal>(dcmLista).Length;
                        decimal[] dblTmp004_dc = new decimal[intTmp003_dc];
                        dblTmp004_dc = dd.GetDistinctValues<decimal>(dcmLista);
                        Array.Sort(dblTmp004_dc);

                        //preenche o cboValor
                        for (int i = 0;
                            i < intTmp003_dc;
                            i++)
                        {
                            string strValor = dblTmp004_dc[i].ToString();
                            strValor = strValor.Replace(',', '.');
                            cboValor.Items.Add(strValor);
                            //cboValor.Items.Add(dblTmp004_dc[i].ToString());
                        }
                        break;


                    //=================
                    // pra baixo nao
                    //=================

                    case "System.Boolean":
                        bool[] boolLista = new bool[dtTabelaPA.Rows.Count - 1];

                        for (int i = 0; i < dtTabelaPA.Rows.Count - 1; i++) //resgata os valores da tabela em um array
                        {
                            string strBoolString = dtTabelaPA.Rows[i].ItemArray[intTmp001].ToString();
                            //drLinhas[i].ItemArray[intTmp001].ToString();
                            if (strBoolString != "")
                            {
                                boolLista[i] = System.Boolean.Parse(strBoolString);
                            }
                            else
                            {
                                boolLista[i] = false;
                            }
                        }
                        //faz o retorno de apenas valores unicos e ordena os valores

                        int intTmp003_b = dd.GetDistinctValues<bool>(boolLista).Length;
                        bool[] dblTmp004_b = new bool[intTmp003_b];
                        dblTmp004_b = dd.GetDistinctValues<bool>(boolLista);
                        Array.Sort(dblTmp004_b);

                        //preenche o cboValor
                        for (int i = 0;
                            i < intTmp003_b;
                            i++)
                        {
                            cboValor.Items.Add(dblTmp004_b[i].ToString());
                        }
                        break;
                }
                
            }
            catch (Exception Ex)
            {
                MessageBox.Show("Um erro ocorreu com este projeto. Entre em contato com seu desenvolvedor informando o erro: \r\n" +
                    Ex.Message);
            }
        }