none
Resgatando um Documento (Download da MFD) RRS feed

  • Discussão Geral

  • E aí pessoal,

     

    neste post, vou fazer uma rápida explicação de como resgatar um documento já emitido numa impressora fiscal.

    Primeiro: este resgate só é possível em impressoras que possuam MFD (Memória Fita Detalhe).

    Muitas vezes necessitamos resgatar documentos já emitidos na impressora. Este processo é conhecido por Download da MFD. Neste Download da MFD podemos resgatar desde um documento específico (1 (um) único documento já emitido) até todos os documentos já impressos. Ou seja, podemos realizar o Download da MFD de quantos documentos desejarmos.

    Ao realizar o Download da MFD, nas impressoras Daruma, você deverá especificar no comando qual o COO inicial e qual o COO final (Relembrando: COO = Contador de Ordem de Operação. Cada documento possui seu COO).

     

    Um algoritmo seria:

    String: COO_Inicial, COO_Final;

    COO_Inicial = "000003";

    COO_Final = "000006";

    DownloadDaMFD(COO_Inicial, COO_Final);

     

    Como já comentei, este comando só irá funcionar com as impressoras que possuam MFD, no caso das impressoras daruma, são as FS600 e FS2100T (ambas impressoras térmicas. Nas impressoras matriciais, FS345 e FS2000, este comando não irá funcionar devido a estas impressoras não possuirem a MFD).

    Outro detalhe: como estamos resgatando um documento da MFD, no caso das impressora Daruma, este processo é um pouco demorado. Por que? Porque cada documento impresso é compactado para ser armazenado, num local aleatório, na MFD. Ao resgatarmos um documento (Download da MFD), estamos especificando este. Qual seria o processo executado pela impressora: ela iria pegar um documento da memória, descompactar e ver se é o documento desejado. Caso não seja, ela irá para o próximo documento (lembrando que estes documentos são armazenados em local aleatória na MFD). Quanto maior o número de documentos já emitidos (maior o número do COO), mais documentos a impressora terá que analisar, portanto, mais demorado será o processo.

    Abaixo, seguem os exemplos de implementação, do Download da MFD, em Delphi e VB.

     

    Delphi:

    var
        Str_Inicial: String;
        Str_Final: String;
        Str_TimeInicial:TTime;
        Str_TimeFinal: TTime;
        Str_TimeTotal: TTime;
    begin
       Str_Inicial := Trim(Tx_Inicial.Text);
       Str_Final := Trim(Tx_Final.Text);
       If (Str_Inicial= '') or (Str_Final= '')  then
       exit;
       Str_TimeInicial:= (Time);
       Int_Retorno := Daruma_FIMFD_DownloadDaMFD( pchar( Str_Inicial ), pchar( Str_Final ) );
       Str_TimeFinal:=(Time);
       Str_TimeTotal:= (Str_TimeFinal - Str_TimeInicial);
       ShowMessage ('Tempo de Download = ' + TimeToStr(Str_TimeTotal));
       Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
    end;

     

    VB:

       Dim Str_Inicial As String
       Dim Str_Final As String
       Dim Time1 As Date
       Dim Time2 As Date
       Dim TimeTotal(1) As Date
       Dim Str_TempoDownload As String
       Str_Inicial = (TX_Inicial.Text)
       Str_Final = (TX_Final.Text)
       Time1 = Time
       Int_Retorno = Daruma_FIMFD_DownloadDaMFD(Str_Inicial, Str_Final)
       Time2 = Time
       TimeTotal(0) = Time1 - Time2
       Str_TempoDownload = TimeTotal(0)
       MsgBox "Tempo de Download = " + Str_TempoDownload, vbInformation, "Daruma Framework"
       Daruma_MostrarRetorno

     

    Estou encaminhando um link: http://www.daruma.com.br/suporte/down_com_dll.asp

    Nesta página, vocês encontrarão o exemplo em Delphi e o exemplo em VB completo (com código fonte aberto).

     

    Atenciosamente,

    Badaz

    quinta-feira, 1 de fevereiro de 2007 11:34