Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3678 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá amigos, boa tarde.

Estou com um pequeno problema aqui em um aplicativo que estou desenvolvendo para ser executado no Android (estou usando o Delphi XE5). Liguei o Listbox, usando o Livebindings, no Field da Query, e quando executo o aplicativo só exibe os primeiros 200 registros. Já ajustei a propriedade AutoBufferCount do LinkFillControlToField para True e mesmo assim não resolveu.

Alguem teria uma dica ?

Obrigado.

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Postado

experimente popular os dados via código que fica até mais eficiente. É assim que faço e não tem erro.

  • Curtir 1

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

  • Moderadores
Postado

Olá amigos, boa tarde.

Estou com um pequeno problema aqui em um aplicativo que estou desenvolvendo para ser executado no Android (estou usando o Delphi XE5). Liguei o Listbox, usando o Livebindings, no Field da Query, e quando executo o aplicativo só exibe os primeiros 200 registros. Já ajustei a propriedade AutoBufferCount do LinkFillControlToField para True e mesmo assim não resolveu.

Alguem teria uma dica ?

Obrigado.

Sérgio

 

Este limite é intencional você pode ler mais a respeito dele aqui: http://docwiki.embarcadero.com/RADStudio/XE5/en/Release_Notes_for_XE5#LiveBindings_Limit, se quiser trazer mais dados teria que puxar via programação.

 

Você pode tentar alterar a propriedade BufferCount para o count do dataset, forçando a leitura.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Solivan, boa tarde. Tentei fazer como você orientou, mas o demorou mais de um minuto para exibir os registros.
Veja: 

procedure TfrmProdutos.FormShow(Sender: TObject);
begin
qProdutos.Open;
with qProdutos do
  while not Eof do begin
    ListBox1.Items.Add(Fields.Fields[1].AsString);
    Next;
  end;
end; 

A tabela tem cerca de 800 registros, o sql ta bem simples (select codigo, descricao, preco from produtos order by descricao) e estou usando o sqlite.

Alguma outra dica ?

Obrigado.

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Postado (editado)

Você deve limitar a sua query em pelo menos 100 registros independente do resultado encontrado como por exemplo;

 

Na instrução SQL procure usar 'select TOP 100 codigo, descricao, preco from produtos order by descricao' e abaixo vou colocar o trecho do meu codigo;

 

 

procedure Tf_ListaClientes.AdicionaClientesLista();
var
  LItem: TListViewItem;
  I: Integer;
begin
  lvListaClientes.BeginUpdate;
  try
    tbConsClientes.First ;
    lvListaClientes.Items.Clear ;

    for I := 1 to tbConsClientes.RecordCount do
      begin
        LItem := lvListaClientes.Items.Add;

        LItem.Objects.TextObject.Font.Size := 12 ;
        LItem.Objects.TextObject.TextColor := System.UIConsts.claBlue ;
        LItem.Objects.DetailObject.Font.Size := 10 ;
        LItem.Objects.DetailObject.TextColor := System.UIConsts.claBrown ;

        LItem.Text := tbConsClientes.FieldByName('Cliente').AsString ;
        LItem.ButtonText := FormatFloat('0000', tbConsClientes.FieldByName('Codigo').AsInteger ) ;
        LItem.Detail := ValidaEnder(tbConsClientes.FieldByName('Endereco').AsString, False) +
        ValidaEnder(tbConsClientes.FieldByName('Numero').AsString, False) +
        ValidaEnder(tbConsClientes.FieldByName('Bairro').AsString, False) +
        ValidaEnder(tbConsClientes.FieldByName('Cidade').AsString, True) ;

        if not tbConsClientes.FieldByName('Sync').AsBoolean then
           LItem.Bitmap := imgClienteNovo.Bitmap
        else
           LItem.Bitmap := ImgAntigo.Bitmap ;

        tbConsClientes.Next ;
      end;

  finally
    lvListaClientes.EndUpdate;
  end;
end;

 

use um ListView pra popular os dados.
 

Espero ter ajudado.

Editado por Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

  • Este tópico foi criado há 3678 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...