Adicionar objetos externos à tabela
É possivel colocar objetos externos (como linhas, formas e figuras) na tabela de referência cruzada. Pode ser necessário mostrar alguns dados de forma gráfica, por exemplo. Vamos dar uma olhada em um exemplo que usa formas para exibir uma barra de progresso rudimentar:
Uma barra vermelho-escuro é exibida se o valor da célula for menor que 100, amarela se for menor que 3000 ou verde ser for maior que 3000.
Vamos começar com nosso relatório. Coloque um objeto "Tabela de Referência Cruzada de BD" na página do relatório e configure suas propriedades desta maneira:
Desative a propriedade "Tamanho Automático" e configure a largura das colunas conforme é exibido abaixo:
Agora adicione o objeto forma a nossa tabela. Selecione o objeto "Retângulo" na barra de ferramentas de objetos e coloque-o dentro da célula:
Modifique sua altura e largura para 0,2 cm e configure suas propriedades Top e left. Adicione dois retângulos parecidos.
Agora crie um script que exibirá o número correto de formas coloridas (dependendo do valor da célula). Para fazer isso, selecione a célula e crie um manipulador de evento "OnBeforePrint":
Escreva o código a seguir no manipulador de evento (preste atenção aos nomes das formas, de modo que eles correspondam a seus objetos):
procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);
begin
// 'Value' é o valor atual da célula atual
if Value < 100 then
begin
// primeiro objeto forma
DBCross1Object1.Color := clMaroon; // vermelho-escuro
// segundo objeto forma
DBCross1Object2.Color := clWhite;
// terceiro objeto forma
DBCross1Object3.Color := clWhite;
end
else if Value < 3000 then
begin
DBCross1Object1.Color := $00CCFF; // amarelo
DBCross1Object2.Color := $00CCFF;
DBCross1Object3.Color := clWhite;
end
else
begin
DBCross1Object1.Color := $00CC98; // verde
DBCross1Object2.Color := $00CC98;
DBCross1Object3.Color := $00CC98;
end;
end;
Isso é tudo. Visualize o relatório, que será parecido àquele que foi mostrado no início desta seção.