ReportBuild

Delphi

23/12/2023

Pessoal estou utilizando Delphi 11 com ReportBuild , ao utilizar Groups , esta dando esse erro "List index out of bounds(32)". Alguém poderia me ajudar
Wilke Maia

Wilke Maia

Curtidas 0

Melhor post

P3rm4tr1p

P3rm4tr1p

25/12/2023

Pessoal estou utilizando Delphi 11 com ReportBuild , ao utilizar Groups , esta dando esse erro "List index out of bounds(32)". Alguém poderia me ajudar



O erro "List index out of bounds(32)" significa que você está tentando acessar um índice de uma lista que está fora do intervalo válido. No caso específico do ReportBuilder, isso pode acontecer se você estiver tentando acessar um grupo que não existe.

Para resolver esse erro, verifique se você está usando o grupo correto. Você pode fazer isso usando o método GroupIndex da classe TfrxReport. Esse método retorna o índice do grupo atual.

Se você estiver usando o grupo correto, verifique se o grupo contém dados. Você pode fazer isso usando o método Count da classe TfrxGroup. Esse método retorna o número de registros no grupo.

Se o grupo estiver vazio, você não poderá acessar nenhum de seus registros.

Aqui está um exemplo de como verificar se você está usando o grupo correto:

// Verifica se o grupo "Grupo1" está ativo
if frxReport.GroupIndex = frxReport.Groups["Grupo1"].GroupIndex then
begin
// O grupo "Grupo1" está ativo
end
else
begin
// O grupo "Grupo1" não está ativo
end


Aqui está um exemplo de como verificar se o grupo contém dados:

// Verifica se o grupo "Grupo1" contém dados
if frxReport.Groups["Grupo1"].Count > 0 then
begin
// O grupo "Grupo1" contém dados
end
else
begin
// O grupo "Grupo1" não contém dados
end


Se você tiver verificado todas essas coisas e ainda estiver recebendo o erro, pode ser um problema com o código do seu relatório. Nesse caso, você precisará fornecer mais informações sobre o seu código para que eu possa ajudá-lo a resolver o problema, é isso, Wilker.

GOSTEI 1

Mais Respostas

Wilke Maia

Wilke Maia

23/12/2023

Pessoal estou utilizando Delphi 11 com ReportBuild , ao utilizar Groups , esta dando esse erro "List index out of bounds(32)". Alguém poderia me ajudar



O erro "List index out of bounds(32)" significa que você está tentando acessar um índice de uma lista que está fora do intervalo válido. No caso específico do ReportBuilder, isso pode acontecer se você estiver tentando acessar um grupo que não existe.

Para resolver esse erro, verifique se você está usando o grupo correto. Você pode fazer isso usando o método GroupIndex da classe TfrxReport. Esse método retorna o índice do grupo atual.

Se você estiver usando o grupo correto, verifique se o grupo contém dados. Você pode fazer isso usando o método Count da classe TfrxGroup. Esse método retorna o número de registros no grupo.

Se o grupo estiver vazio, você não poderá acessar nenhum de seus registros.

Aqui está um exemplo de como verificar se você está usando o grupo correto:

// Verifica se o grupo "Grupo1" está ativo
if frxReport.GroupIndex = frxReport.Groups["Grupo1"].GroupIndex then
begin
// O grupo "Grupo1" está ativo
end
else
begin
// O grupo "Grupo1" não está ativo
end


Aqui está um exemplo de como verificar se o grupo contém dados:

// Verifica se o grupo "Grupo1" contém dados
if frxReport.Groups["Grupo1"].Count > 0 then
begin
// O grupo "Grupo1" contém dados
end
else
begin
// O grupo "Grupo1" não contém dados
end


Se você tiver verificado todas essas coisas e ainda estiver recebendo o erro, pode ser um problema com o código do seu relatório. Nesse caso, você precisará fornecer mais informações sobre o seu código para que eu possa ajudá-lo a resolver o problema, é isso, Wilker.


Amigo obrigado pela ajuda , poderia me dizer , em qual evento do ReportBuild , poderia testar essa condição?
GOSTEI 0
ɐɾǝɹƃi

ɐɾǝɹƃi

23/12/2023

Pessoal estou utilizando Delphi 11 com ReportBuild , ao utilizar Groups , esta dando esse erro "List index out of bounds(32)". Alguém poderia me ajudar



O erro "List index out of bounds(32)" significa que você está tentando acessar um índice de uma lista que está fora do intervalo válido. No caso específico do ReportBuilder, isso pode acontecer se você estiver tentando acessar um grupo que não existe.

Para resolver esse erro, verifique se você está usando o grupo correto. Você pode fazer isso usando o método GroupIndex da classe TfrxReport. Esse método retorna o índice do grupo atual.

Se você estiver usando o grupo correto, verifique se o grupo contém dados. Você pode fazer isso usando o método Count da classe TfrxGroup. Esse método retorna o número de registros no grupo.

Se o grupo estiver vazio, você não poderá acessar nenhum de seus registros.

Aqui está um exemplo de como verificar se você está usando o grupo correto:

// Verifica se o grupo "Grupo1" está ativo
if frxReport.GroupIndex = frxReport.Groups["Grupo1"].GroupIndex then
begin
// O grupo "Grupo1" está ativo
end
else
begin
// O grupo "Grupo1" não está ativo
end


Aqui está um exemplo de como verificar se o grupo contém dados:

// Verifica se o grupo "Grupo1" contém dados
if frxReport.Groups["Grupo1"].Count > 0 then
begin
// O grupo "Grupo1" contém dados
end
else
begin
// O grupo "Grupo1" não contém dados
end


Se você tiver verificado todas essas coisas e ainda estiver recebendo o erro, pode ser um problema com o código do seu relatório. Nesse caso, você precisará fornecer mais informações sobre o seu código para que eu possa ajudá-lo a resolver o problema, é isso, Wilker.


Amigo obrigado pela ajuda , poderia me dizer , em qual evento do ReportBuild , poderia testar essa condição?




São várias, OnBeforeGroupStart, OnAfterGroupStart, OnBeforeGroupEnd

Por exemplo, você pode usar o evento OnBeforeGroupStart para verificar se o grupo existe e, se não existir, exibir uma mensagem de erro:

procedure TForm1.ReportBuildOnBeforeGroupStart(Sender: TObject; Group: TfrxGroup);
begin
  // Verifica se o grupo existe
  if not ReportBuild.Groups.Exists(Group.Name) then
  begin
    // O grupo não existe
    ShowMessage("O grupo '" + Group.Name + "' não existe");
  end;
end;



Ou, você pode usar o evento OnAfterGroupStart para verificar se o grupo existe e, se existir, inicializar alguns valores para o grupo:

procedure TForm1.ReportBuildOnAfterGroupStart(Sender: TObject; Group: TfrxGroup);
begin
  // Verifica se o grupo existe
  if ReportBuild.Groups.Exists(Group.Name) then
  begin
    // O grupo existe
    // Inicializa alguns valores para o grupo
    Group.FieldValue("Total") := 0;
  end;
end;


A escolha do evento depende da sua necessidade específica.


GOSTEI 1
POSTAR