Situação: Ocultar grade padrão na impressão do pré-venda.
Solução: É possível se configurar no pré-venda a impressão de grade dos produtos. Porém quando for vendido um produto que não tem grade o pré-venda vai trazer na informação "0000 - GRADE PADRÃO". A mesma situação acontece quando você configura a impressão do Lote/Série/Grades.
É possível remover essa informação na personalização do pré-venda para ele exibir apenas as grades que não forem a padrão.
Para fazer isso é necessário abrir as configurações do pré-venda, clicar no campo que está exibindo essas informações e ir nas propriedades dele. Nelas, na guia de Eventos você deve adicionar dois comandos. Um no evento BeforePrint e AfterPrint.
O layout da tela é o seguinte:
Os eventos BeforePrint e After print querem dizer que, a cada item que ele for imprimir ele vai executar o comando definido no BeforePrint antes da impressão e o AfterPrint depois.
A princípio esses campos vão estar em brando, então você pode clicar duas vezes neles para abrir a tela onde você vai setar o comando. Quando clicar ele vai para a guia Código.
A parte selecionada em azul será criada automaticamente quando você clicar em cada um dos Eventos. Então na área que está verde você digita o código do que ele fará em cada evento. No caso o código será para ocultar o campo antes da impressão e depois para exibir ele de volta após a impressão. O código final deve ficar assim:
procedure ItensDetalheLote_Serie_GradesOnBeforePrint(Sender: TfrxComponent);
begin
if <ItensDetalhe."Lote_Serie_Grades"> = 'Grade: 0000 - GRADE PADRÃO' then
ItensDetalheLote_Serie_Grades.Visible := False;
end;
procedure ItensDetalheLote_Serie_GradesOnAfterPrint(Sender: TfrxComponent);
begin
if <ItensDetalhe."Lote_Serie_Grades"> = 'Grade: 0000 - GRADE PADRÃO' then
ItensDetalheLote_Serie_Grades.Visible := True;
end;
A mesma situação pode ocorrer quando você realiza a configuração apenas da Grade e não do Lote_Série_Grade. Nesse caso o campo a ser inserido no pré-venda vai ser o Itens."Grade". E para ele o código vai ficar:
procedure ItensGradeOnBeforePrint(Sender: TfrxComponent);
begin
if <Itens."Grade"> = '0000 - GRADE PADRÃO' then
ItensGrade.Visible := False;
end;
procedure ItensGradeOnAfterPrint(Sender: TfrxComponent);
begin
if <Itens."Grade"> = '0000 - GRADE PADRÃO' then
ItensGrade.Visible := True;
end;
Após criar os eventos é necessário voltar no campo ir na setinha ao lado do evento e associar cada função a cada campo.