Descobrir o FieldByName usando o DisplayName

Delphi

29/11/2019

Olá a todos, tenho uma função para add os displaylabel de um dataset em um combobox, esse combobox uso para saber qual campo o usuario vai usar para filtrar os dados, so que para montar a consulta preciso descobrir a qual field esse displaylabel pertence. Agradeço a atenção de todos
Felipe

Felipe

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

29/11/2019


uma das formas seria você fazer isso a partir de um array.
ao preencher o combobox, você preenche também um array, para referenciar o campo.

crie um array para guardar o conteúdo
arrayfiels: array of array[0..1] of string;

depois, no momento do preenchimento do combo, preencha também o array:
var
  i: integer;
begin
  SetLength(arrayfiels, 0);

  for i := 0 to ClientDataSet1.Fields.Count-1 do
  begin
    // adiciona o campo no combobox
    ComboBox1.Items.Add(ClientDataSet1.Fields[i].DisplayName);

    // adiciona o campo no array
    SetLength(arrayfiels, Length(arrayfiels)+1);
    arrayfiels[High(arrayfiels),0] := ClientDataSet1.Fields[i].Name;
    arrayfiels[High(arrayfiels),1] := ClientDataSet1.Fields[i].DisplayName;
  end;


não sei como você implementou a busca, mas é possível procurar no array pelo index do combo (que seria o mesmo do array), ou pelo displaylabel, que está contido no array.
GOSTEI 1

Mais Respostas

Felipe

Felipe

29/11/2019

muito obrigado parceiro
GOSTEI 0
POSTAR