/// <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); }
/// <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); }
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); } }