Faça os seguintes ajustes no seu código:
Altere o escopo da variável oListBox1 de Local para Private.
Sempre que o array for repopulado, utilize o seguinte comando para forçar a atualização do ListBox (exemplo: ao final das funções busc1, busc2, etc):
oListBox1:SetArray(aVisit1)
oListBox1:bLine := { || {aVisit1[oListBox1:nAt,03], aVisit1[oListBox1:nAt,02], aVisit1[oListBox1:nAt,01]}}
oListBox1:Refresh()
Acredito que dessa forma o erro que você está informando será corrigido.
Observação: Verifiquei que em vários pontos do seu código você chama a função U_FVISITAA novamente para reexibir a tela. Essa não é uma boa prática, pois gera recursividade. Sempre uma nova tela é criada ao invés de você trabalhar com apenas uma tela. O ideal é chamar a U_FVISITAA apenas uma vez e atualizar seus componentes sempre que houverem atualizações, através do método Refresh().
Pior que mesmo ele retornando causando o erro de ter estourado o array, ainda retorna os dados corretos no listbox.
— Lucas de Paulo Santos 31 de Jan de 2024Provavelmente o erro está acontecendo no momento de preencher o array com os dados do banco. Poderia anexar o código completo para análise? O código em anexo está faltando diversas funções.
— Giordano Trabach Xavier 07 de Feb de 2024Opa Giordano , atualizei o arquivo pra você dar uma olhada, deve estar com sujeiras na minha tentativa de fazer funcionar, após ele a 1°vez o array, ele nao atualiza mais o numero de linhas.
— Lucas de Paulo Santos 07 de Feb de 2024