Ir para conteúdo
  • Cadastre-se

gleisonpauloc

Membros
  • Total de ítens

    2
  • Registro em

  • Última visita

gleisonpauloc's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputação

  1. Exatamente. Ele não retorna a data correta. Usando a classe TACBrECFSwedaSTX para retornar a data do movimento no EMULADOR Sweda Connect/SIM sem Redução Z (simulando uma impressora nova) ele esta me retornando a data do Ultimo Reinício de Operação ao invés da Data do Movimento. Explicando: O protocolo STX da Sweda retorna as seguintes informações ao solicitar o comando A2 (Dados Fiscais - Redução Z): Data da última Redução Z Horário da última Redução Z Data do início do movimento Horário do início do movimento Data do último reinício de operação Horário do último reinício de operação Data do último documento emitido Horário do último documento emitido O método GetDataMovimento faz um Copy(RetCmd,22,10); que esta correto em relação as informações retornadas. Entretanto se a impressora não possui Redução Z a Data e Hora da Redução Z vem com os bytes 0 na resposta da impressora. Caso aplicamos um Trim nessa resposta todas posições em relação a Data e Hora da Redução Z, os primeiros 22 bytes, são removidos. E o comando Copy faz o retorno da Data do último reinício de operação. Em resumo é um ato um pouco perigoso aplicar um Trim em respostas da Impressora no protocolo STX se efetuamos um copy de uma posição fixa pois a mesma pode retornar ou não byte 0 no início. O LOG não esta retornando o problema de forma visível. A grande diferença pode se observada se solicitamos a Data do Movimento usando as classes ACBr do protocolo ESC e o protocolo STX da Sweda. O protocolo ESC vai retornar a data correta. O protocolo STX esta retornando a data de último reinício de operação. A string de resposta do comando RetornaInfoECF('A2'), que informei no post anterior, exemplifica muito bem isso. No primeiro caso observe que possui somente 3 datas (Não tem a data da última Redução Z). No segundo caso existe 4 datas (Possui a data da última redução Z conforme formato do Protocolo STX). No segundo caso o comando Copy funcionava perfeitamente porque o comando TRIM não removeu as informações da data da última redução Z.
  2. Encontrei um problema ao usar o Simulador da Sweda sem redução Z ao retornar a data do movimento: Ao executar RetornaInfoECF('A2') sem Redução Z a String retornada é: #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'28/11/2013'#0'17:28:20'#0#0'21/11/2013'#0'15:26:16'#0#0'28/11/2013'#0'17:28:30'#0#0#3'¹'#2'934+0000CA˜À’€€A2' Ao executar RetornaInfoECF('A2') Com Redução Z a String retornada é: '29/11/2013'#0'16:41:00'#0#0'29/11/2013'#0'16:42:08'#0#0'29/11/2013'#0'16:41:26'#0#0'29/11/2013'#0'16:42:16'#0#0#3#5#2'934+0000AA˜À’€€A2' No primeiro caso a função Trim esta eliminando as informações da primeira data (Redução Z). Neste caso creio que o correto seria o uso de RemoveNulos() no lugar de Trim. function TACBrECFSwedaSTX.GetDataMovimento: TDateTime; Var RetCmd : AnsiString ; OldShortDateFormat: AnsiString; sData:String; begin // RetCmd := Trim(RetornaInfoECF('A2')); RetCmd := RemoveNulos(RetornaInfoECF('A2')); OldShortDateFormat := ShortDateFormat ; try sData := Copy(RetCmd,22,10); ShortDateFormat := 'dd/mm/yyyy' ; Result := StrToDate(sData); finally ShortDateFormat := OldShortDateFormat ; end ; end;
×
×
  • 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...