23581 - Mensagem de "Indexando fora dos limites".
Problema:
Solução:
Descrição do Problema: Ao executar um relatório é retornado a mensagem => Indexando fora dos limites.
Rotina / Tela: Geração de relatórios.
Solução:
Solução 23581: Essa situação ocorre quando é utilizado lista vetorial em relatório e a quantidade de registro acaba estourando o limite indexado.
Exemplo:
Ao utilizar regra conforme trecho abaixo ocorre o erro Indexador fora dos limites
Definir Alfa xTexto[2];
xTexto[1] = Texto um;
xTexto[2] = Texto dois;
Pois em algum momento está listando no relatório registros maior do que 2 (limite do indexador).
Para essa situação deverá ser utilizado uma Lista Dinâmica.
O conceito do vetor em alfa é que ao definir definir alfa xTexto[2] não estará criando duas variáveis chamadas xTexto como uma lista, será criada uma única alfa com 2 posições referentes ao vetor de char que compõe a alfa.
Exemplo:
Definir Alfa xTeste[5];
xTexto = Teste;
xTexto[1] será T
xTexto[2] será e
xTexto[3] será s
xTexto[4] será t
xTexto[5] será e
Se atribuir valor: xTexto[3] = S;
A string alfa ficará TeSte;
A documentação de como utilizar lista dinâmica está no Ferramentas de Apoio => https://documentacao.senior.com.br/tecnologia/6.2.34/index.htm#lsp/funcoes/lista-dinamica-nas-regras.htm