Ir para conteúdo
  • Cadastre-se

DeehZero

Membros
  • Total de ítens

    7
  • Registro em

  • Última visita

Posts postados por DeehZero

  1. Obrigado amigo, como utilizo o Delphi

     

     

    Olá estou utilizando este post pois é o que mais se relaciona com o problema que encontrei aqui na minha máquina.

    Fiz uma atualização hoje do acbr na minha máquina.

    Utilizo o DELPHI 6 e quando fui compilar estava dando erro na ACBRDFEUTIL em um metodo Formatdate conforme postado abaixo:

    class function DFeUtil.FormatDate(const AData: TDateTime): String;
    var  <-- erro aqui.
    {$IFDEF VER140} //delphi6
    {$ELSE}
      FFormato : TFormatSettings;
    {$ENDIF}
    begin
      try
    {$IFDEF VER140} //delphi6
        DateSeparator := '/';
        ShortDateFormat := 'dd/mm/yyyy';
    {$ELSE}
        FFormato.DateSeparator   := '-';
        FFormato.ShortDateFormat := 'yyyy-mm-dd';
    {$ENDIF}
        if AData = 0 then
          Result := ''
        else
          Result := DateToStr(AData);
      except
        Result := '';
      end;
    end;
    

    conforme está no codigo o var ficou antes da diretiva e isso ocasiona erro no delphi 6, pois não existe nenhuma variável sendo criada no dentro da diretiva para o Delphi 6.

    a correção para o problema está postado abaixo:

    class function DFeUtil.FormatDate(const AData: TDateTime): String;
    {$IFDEF VER140} //delphi6
    {$ELSE}
    var  <-- agora o var está no lugar certo.
      FFormato : TFormatSettings;
    {$ENDIF}
    begin
      try
    {$IFDEF VER140} //delphi6
        DateSeparator := '/';
        ShortDateFormat := 'dd/mm/yyyy';
    {$ELSE}
        FFormato.DateSeparator   := '-';
        FFormato.ShortDateFormat := 'yyyy-mm-dd';
    {$ENDIF}
        if AData = 0 then
          Result := ''
        else
          Result := DateToStr(AData);
      except
        Result := '';
      end;
    end;
    

     

    Obrigado amigo, como utilizo delphi 7 por isso não tive esse problema.

  2. Atualize o svn e teste! e me retorne aqui pois percebi que além da alteração mencionada havia outra quase no final dos dois arquivos

    confere senão ocorreu algum problema

     

    At revision: 6529

    Vou atualizar e já posto o resultado

     

    [EDIT]

     

    Agora sim, está tudo ok.

    Espero poder contribuir cada vez mais com esse projeto que tanto nos ajuda aqui na empresa.

  3. Não sei como funciona no ACBR, mas no nosso sistema a impressão de etiquetas é feita pela porta LPT1 (quando é USB, fazemos a captura da porta).

    Exemplo.

    1 - Compartilhamos a impressora na rede.

    2 - Abrir o CMD como Administrador (caso seja Windows 7 ++).

    3 - Digite o comando:

     net use lpt1: \\IP ou Nome da maquina\nomedaimpressora /PERSISTENT:YES

     

    Espero que te ajude.

    Caso funcione é só configurar um bat para iniciar com o sistema.

  4. Nós utilizávamos no sistema o RAVE para impressão das DANFES, acontece que um cliente pediu para que implementássemos o modo Retrato do Danfe também.

    Então resolvemos usar o RAVECB, que tem essa opção.. Porém ao utiliza-lo tivemos 1 problema.

    O problema que tivemos foi na Data de Saída do DANFE. Quando o cliente não colocava a Data de saída na NFe (que é um campo opcional), ao invés de ficar em branco era impresso “30/12/99”. Depois de alguns minutos analisando o código notei que o problema está na função FormatDate (linha 264) no arquivo ACBrDFeUtil.pas .

     

    No ACBrDANFeCBRaveRetrato.pas na linha 644 tem a seguinte linha.

    Box([fsTop,fsLeft],XPos,YPos,21,aHeigthPadrao,'Data de '+vEntSai,DFeUtil.FormatDate(DateToStr(Ide.DSaiEnt)),taCenter,True);

     

    Caso o valor seja "" (vazio) ele atribui a data "30/12/99" dependendo das configurações regionais da maquina, caso as configurações sejam diferentes de dd.mm.aaaa temos esse problema da data pois a variável Ide.DSaiEnt é carregada corretamente com zero, mas como a função DFeUtil.FormatDate exige uma variável string, é usada a DateToStr, que transforma o zero em “30/12/99”. Só que na função FormatDate, tem uma parte que transforma novamente a string em data, na linha 285:
    vTemp := StrToDate(AString);

     

    Para resolver, fiz um overload alterando o tipo de variável para TDateTime.

    Conforme mostrado abaixo:

    Na linha 93 substitui

     

    class function FormatDate(const AString: string): String;

     

    Por:

     class function FormatDate(const AString: string): String;overload;
     class function FormatDate(const AData: TDateTime): String;overload;

     

    Na linha 300 adicionei o seguinte função:

     

    class function DFeUtil.FormatDate(const AData: TDateTime): String;
    var
    {$IFDEF VER140} //delphi6
    {$ELSE}
      FFormato : TFormatSettings;
    {$ENDIF}
    begin
      try
    {$IFDEF VER140} //delphi6
        DateSeparator := '/';
        ShortDateFormat := 'dd/mm/yyyy';
    {$ELSE}
        FFormato.DateSeparator   := '-';
        FFormato.ShortDateFormat := 'yyyy-mm-dd';
    {$ENDIF}
        if AData = 0 then
          Result := ''
        else
          Result := DateToStr(AData);
      except
        Result := '';
      end;
    end;

     

    E já nos arquivos 

    - ACBrDANFeCBRaveRetrato.pas na linha 644 tem a seguinte linha:

    Box([fsTop,fsLeft],XPos,YPos,21,aHeigthPadrao,'Data de '+vEntSai,DFeUtil.FormatDate(DateToStr(Ide.DSaiEnt)),taCenter,True);

    Substitui  por:

    Box([fsTop,fsLeft],XPos,YPos,21,aHeigthPadrao,'Data de '+vEntSai,DFeUtil.FormatDate(Ide.DSaiEnt),taCenter,True);

     

    - ACBrDANFeCBRavePaisagem.pas na linha 656 te a seguinte linha:

    Box([fsTop,fsLeft],XPos,YPos,21,aWidthTituloBloco,'Data de '+vEntSai,DFeUtil.FormatDate(DateToStr(Ide.DSaiEnt)),taCenter,True);
    Substitui por:

    Box([fsTop,fsLeft],XPos,YPos,21,aWidthTituloBloco,'Data de '+vEntSai,DFeUtil.FormatDate(Ide.DSaiEnt),taCenter,True);

     

    Espero que ajude, resolveu o meu problema acredito que resolva o de vocês também.

     

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

The popup will be closed in 10 segundos...