Ir para conteúdo
  • Cadastre-se

dev botao

Impressão evento CTe sem mostrar relatório Fortes


jonasfronchetti
  • Este tópico foi criado há 3083 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Eu fiz uma correção na impressão do evento do Cte na Trunk2.

Quando colocar as opções MostrarPreview e PrintDialog como false do componente ACBrCTeDACTeRL, que seria para não mostrar o relatório e imprimir ele sem mostrar o dialog da impressora, no evento mesmo assim mostra o dialog da impressora, funcionando apenas no relatório do cte.

Eu precisaria que essas alterações fossem adicionadas.

** A correção que eu fiz foi na classe ACBrCTeDAEventoRL adicionei o que esta em negrito nas linhas 98, 126, 153

  public
    class procedure Imprimir(AEventoCTe: TInfEventoCollectionItem; ALogo: string = '';
      ANumCopias: integer = 1; ASistema: string = '';
      AUsuario: string = ''; AMostrarPreview: boolean = True;
      AMargemSuperior: double = 0.7; AMargemInferior: double = 0.7;
      AMargemEsquerda: double = 0.7; AMargemDireita: double = 0.7;
      AImpressora: string = ''; ACTe: TCTe = nil; APrintDialog: boolean = False);

 

class procedure TfrmCTeDAEventoRL.Imprimir(AEventoCTe: TInfEventoCollectionItem;
  ALogo: string = '';
  ANumCopias: integer = 1;
  ASistema: string = '';
  AUsuario: string = '';
  AMostrarPreview: boolean = True;
  AMargemSuperior: double = 0.7;
  AMargemInferior: double = 0.7;
  AMargemEsquerda: double = 0.7;
  AMargemDireita: double = 0.7;
  AImpressora: string = '';
  ACTe: TCTe = nil;
  APrintDialog: boolean = False
);
begin
  with Create(nil) do
    try
      FEventoCTe := AEventoCTe;
      FLogo := ALogo;
      FNumCopias := ANumCopias;
      FSistema := ASistema;
      FUsuario := AUsuario;
      FMostrarPreview := AMostrarPreview;
      FMargemSuperior := AMargemSuperior;
      FMargemInferior := AMargemInferior;
      FMargemEsquerda := AMargemEsquerda;
      FMargemDireita := AMargemDireita;
      FImpressora := AImpressora;

      if ACTe <> nil then
        FCTe := ACTe;

      if FImpressora > '' then
        RLPrinter.PrinterName := FImpressora;

      if FNumCopias > 0 then
        RLPrinter.Copies := FNumCopias
      else
        RLPrinter.Copies := 1;

      RLCTeEvento.PrintDialog := APrintDialog;
      if FMostrarPreview = True then
        RLCTeEvento.PreviewModal
      else
        RLCTeEvento.Print;
    finally
  //    RLCTeEvento.Free;
  //    RLCTeEvento := nil;
      Free;
    end;
end;

 

** Também mudei na classe que chama essa procedure que é a ACBrCTeDACTeRLClass adicionando na linha 288 o que esta em negrito

 

procedure TACBrCTeDACTeRL.ImprimirEVENTO(CTe: TCTe);
var
  i, j: integer;
  Impresso: boolean;
begin
  frmCTeDAEventoRL := TfrmCTeDAEventoRLRetrato.Create(Self);

  if TACBrCTe(ACBrCTe).Conhecimentos.Count > 0 then
  begin
    for i := 0 to (TACBrCTe(ACBrCTe).EventoCTe.Evento.Count - 1) do
    begin
      Impresso := False;
      for j := 0 to (TACBrCTe(ACBrCTe).Conhecimentos.Count - 1) do
      begin
        if OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items[j].CTe.infCTe.Id) = TACBrCTe(ACBrCTe).EventoCTe.Evento.Items.InfEvento.chCTe then
        begin
          frmCTeDAEventoRL.Imprimir(TACBrCTe(ACBrCTe).EventoCTe.Evento.Items,
            FLogo,
            FNumCopias,
            FSistema,
            FUsuario,
            FMostrarPreview,
            FMargemSuperior,
            FMargemInferior,
            FMargemEsquerda,
            FMargemDireita,
            FImpressora,
            TACBrCTe(ACBrCTe).Conhecimentos.Items[j].CTe,
            FPrintDialog
);
          Impresso := True;
          Break;
        end;
      end;

 

Também em anexo as classes que eu alterei.

Att

Jonas Fronchetti

ACBrCTeDACTeRLClass.pas

ACBrCTeDAEventoRL.pas

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3083 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.