Pré-Venda - Ocultar grade padrão na impressão do pré-venda

Criado por Paulo Henrique em 29/06/2022 20:04  ·  Atualizado em 30/06/2022 20:05  ·  Leitura: 2 min

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.

 

 

 

Após isso será possível imprimir normalmente.