Ir para conteúdo
  • Cadastre-se

dev botao

TACBrTipoOcorrencia - Sets may have at most 256 elements


Ver Solução Respondido por Claudiney Cogo,
  • Este tópico foi criado há 1790 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde a todos,

Um ótimo ano novo!

Pergunta: sempre que atualizo o acbr eu caio nessa mensagem no momento da compilação:

[dcc32 Error] uRecebimentoemloteNew.pas(593): E2028 Sets may have at most 256 elements

Sei que existe o limite de 256 elementos em um Set. Para fugir disso eu sempre comento os elementos que não estou utilizando. Mas dá um bom trabalho toda a vez, já que a lista é bem grande.

Como vocês tem lidado com isso? Existe alguma outra forma de fugir dessa situação toda vez que atualizar? 

Estou usando Delphi XE8.

Obrigado desde já pela ajuda.

Abraços a todos!

Claudiney Cogo

Neo TI

  • Moderadores
Postado
27 minutos atrás, Claudiney Cogo disse:

[dcc32 Error] uRecebimentoemloteNew.pas(593): E2028 Sets may have at most 256 elements

Sei que existe o limite de 256 elementos em um Set. Para fugir disso eu sempre comento os elementos que não estou utilizando. Mas dá um bom trabalho toda a vez, já que a lista é bem grande.

Como vocês tem lidado com isso? Existe alguma outra forma de fugir dessa situação toda vez que atualizar? 

Pelo erro é uma unit do seu projeto e não do ACBr.

O que você precisa modificar nos fontes do ACBr?

  • Curtir 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Olá BigWings,

Acredito que você esteja certo sim. Talvez a maneira como estou utilizando o componente. Na verdade me desculpe.. acabei não dando mais detalhes do problema. Isso acontece onde tento usar o TACBrTipoOcorrencia, no arquivo de retorno.

Faço assim:

Defino uma variável para isso assim:

                  Liquidacao: set of TACBrTipoOcorrencia; (aqui vem o erro, justamente porque TACBrTipoOcorrencia tem mais de 256 elementos)

Depois inicializo essa variável com os elementos que quero utilizar:

       Liquidacao := [toRetornoLiquidado,
                                 toRetornoLiquidadoEmCartorio,
                                 toRetornoLiquidadoParcialmente,
                                 toRetornoLiquidadoSaldoRestante,
                                 toRetornoLiquidadoSemRegistro,
                                 toRetornoLiquidadoPorConta,
                                 toRetornoLiquidadoEmCartorio,
                                 toRetornoLiquidadoAposBaixaOuNaoRegistro];

E por fim uso nos meus testes:

      For i:=0 to ACBrBoleto1.ListadeBoletos.Count -1 do
             if ACBrBoleto1.ListadeBoletos.OcorrenciaOriginal.Tipo in Liquidacao then
                 begin

                 end;

Já entendi que a forma está errada. Funciona, porém na definição sempre tem esse erro a menos que eu reduza os elementos para 256.

Como eu poderia definir essa situação para fugir desse problema?

Obrigado mais uma vez pelo retorno.

Abraço

Claudiney.

  • Solution
Postado (editado)

Fiz a seguinte alteração:

removi a definição da variável Liquidação e sua inicialização e alterei o teste dessa forma:

  For i:=0 to ACBrBoleto1.ListadeBoletos.Count -1 do
    if ACBrBoleto1.ListadeBoletos.OcorrenciaOriginal.Tipo in [toRetornoLiquidado,
                                                                 toRetornoLiquidadoEmCartorio,
                                                                 toRetornoLiquidadoParcialmente,
                                                                 toRetornoLiquidadoSaldoRestante,
                                                                 toRetornoLiquidadoSemRegistro,
                                                                 toRetornoLiquidadoPorConta,
                                                                 toRetornoLiquidadoEmCartorio,
                                                                 toRetornoLiquidadoAposBaixaOuNaoRegistro] then
      begin      

      end;

Pelo menos não existiu nenhum erro na compilação. Acredito que funcione sem problemas. Seria uma boa prática? Só penso no caso de existir a necessidade de teste em mais lugares. Teria que reescrever sempre.

Obrigado.

Claudiney

Editado por Claudiney Cogo
  • Moderadores
Postado
10 minutos atrás, Claudiney Cogo disse:

                  Liquidacao: set of TACBrTipoOcorrencia; (aqui vem o erro, justamente porque TACBrTipoOcorrencia tem mais de 256 elementos)

Realmente não vai aceitar uma variável desse tipo.

2 minutos atrás, Claudiney Cogo disse:

Fiz a seguinte alteração:

removi a definição da variável Liquidação e sua inicialização e alterei o teste dessa forma:

  For i:=0 to ACBrBoleto1.ListadeBoletos.Count -1 do
    if ACBrBoleto1.ListadeBoletos.OcorrenciaOriginal.Tipo in [toRetornoLiquidado,
                                                                 toRetornoLiquidadoEmCartorio,
                                                                 toRetornoLiquidadoParcialmente,
                                                                 toRetornoLiquidadoSaldoRestante,
                                                                 toRetornoLiquidadoSemRegistro,
                                                                 toRetornoLiquidadoPorConta,
                                                                 toRetornoLiquidadoEmCartorio,
                                                                 toRetornoLiquidadoAposBaixaOuNaoRegistro] then
      begin      

end;

Parece a melhor opção.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1790 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...