quinta-feira, 10 de novembro de 2016

Imprimir em uma impressora matricial



  // Matricial 40 COLUNAS
    1 : begin
        with dmPesqVenda, cdsDuplicata do
          Begin
            // Pega Porta
            AssignFile(Arq,sPORTAPRINT);
            //  Abre o aquivo para gravacao
            Rewrite(Arq);

            Close;
            CommandText := 'select * from LstDuplicata where codmov=' + IntToStr(cdsPesqMovCODMOV.asinteger);
            CommandText :=  CommandText + 'order by dtcadpedmov';
            open;



            //--------------------------- Grava dados da empresa --------------------------
         
            Writeln(Arq,'   '+  cdsDuplicatanomeemp.AsString );
            Writeln(Arq,'  '+' TELS.:'+ cdsDuplicatafoneemp.AsString );

            Writeln(Arq,'  '+'---------------------------------------');

            //--------------------------- Grava dados da Cliente --------------------------
         
            Writeln(Arq,'  '+' PEDIDO : ' + Formatfloat('00,000,00', cdsDuplicatacodmov.Asinteger));
            Writeln(Arq,'  '+' EMISSAO: ' + FormatDateTime('dd"/"mm"/"yyyy hh:mm', cdsDuplicatadtcadpedmov.AsDateTime));
            Writeln(Arq,'  '+' VEND.:   ' + cdsDuplicatanomeusu.AsString );
            Writeln(Arq,'  '+' CLIENTE: ' + cdsDuplicatanomecli.AsString );
            Writeln(Arq,'  '+' END.:    ' + cdsDuplicataendcli.AsString );
            Writeln(Arq,'  '+' TELS.:   ' + cdsDuplicatafonecli.AsString);

            if cdsDuplicatanomeemp.AsString 0 then 
                        buffer:=' '+cdsDuplicatanomemodelo.AsString+'-'
                     else
                        buffer:=' '+formatfloat('000000',cdsDuplicatacodprod.AsInteger)+'-';  

                if length( cdsDuplicatanomelinmov.AsString) >30 then
                  buffer:=buffer+copy(cdsDuplicatanomelinmov.AsString,1,30)
                else
                  buffer:=buffer+cdsDuplicatanomelinmov.AsString;

                Writeln(Arq,'  '+buffer);

                // ------------ Inserir Qtd + Valor Unit + Desconto - Total --------------
                             
                buffer:=' '+floattostr(cdsDuplicataqtdmov.AsFloat)+
                  copy('   ',1,3-length(floattostr(cdsDuplicataqtdmov.AsFloat)))+'X';
               
                buffer:=buffer+copy('           ',1,8-length(formatfloat('####0.00',cdsDuplicataprvendamov.AsFloat)))+
                  formatfloat('####0.00',cdsDuplicataprvendamov.AsFloat)+' Desc.:';

                tp:=(1- cdsDuplicatavldescmov.AsFloat/100)*(cdsDuplicataqtdmov.AsFloat*cdsDuplicataprvendamov.AsFloat);

                buffer:=buffer+copy('           ',1,7-length(formatfloat('##0.00%',cdsDuplicatavldescmov.AsFloat)))+
                  formatfloat('##0.00%',cdsDuplicatavldescmov.AsFloat);

                buffer:=buffer+'= '+copy('           ',1,8-length(formatfloat('####0.00',tp)))+ formatfloat('####0.00',tp);

                buffer:=copy(buffer,1,40);
             
                Writeln(Arq,'  '+buffer);
             
                Next;
              end;

              //--------------------------- Inicia Rodape do Cupom --------------------------

              Writeln(Arq,'  '+'---------------------------------------');
              Writeln(Arq,'  '+'ITENS : '+inttostr(cdsDuplicataitensmov.AsInteger));
              Writeln(Arq,'  '+' ');

              ///imprimir modalidade
              Writeln(Arq,'  '+' MODALIDADE: '+ cdsDuplicataNomemod.AsString);
              Writeln(Arq,'  '+' ');
              buffer:=  '  SUBTOTAL            '+
                copy('              ',1,10-length(formatfloat('####0.00',cdsDuplicatavlbrutomov.AsFloat )))+
                formatfloat('####0.00', cdsDuplicatavlbrutomov.AsFloat);

              Writeln(Arq,'  '+buffer);

              buffer:=  '  DESCONTO            '+
                copy('              ',1,7-length(floattostr(cdsDuplicatavldescmov.AsFloat)))+
                formatfloat('####0.00',(cdsDuplicatavldescmov.AsFloat));
              Writeln(Arq,'  '+buffer);

              buffer:=  '  TOTAL               '+
                copy('              ',1,10-length(formatfloat('####0.00',cdsDuplicatavlliquidomov.AsFloat)))+
                formatfloat('####0.00',cdsDuplicatavlliquidomov.AsFloat );

              if cdsDuplicatacodmod.asinteger <>1 then
                begin
                  Writeln(Arq,'  '+buffer);
                  Writeln(Arq,'  '+'');
                  Writeln(Arq,'  '+'');
                  Writeln(Arq,'  '+'');
                  Writeln(Arq,'  '+'---------------------------------------');
                  Writeln(Arq,'  '+'         ASSINATURA DO CLIENTE         ');
                  Writeln(Arq,'  '+'');
                end;

              Writeln(Arq,'  '+'         NAO E DOCUMENTO FISCAL         ');
              Writeln(Arq,'  '+' OBS:'+cdsDuplicataobsmov.AsString);
              Writeln(Arq,'  '+'     '+cdsDuplicataobsmov2.AsString);

              {for i:=1 to strtoint(espacos) do
                Writeln(Arq,'');}

              // Fecha o arquivo
              CloseFile(Arq);
          end;
        end;

Fica assim.:
=====================================================
LOJAS LALALAL
   TELS.:(92) 3333-3333
  ---------------------------------------
   PEDIDO : 0.000.003
   EMISSAO: 28/12/2007 00:00
   VEND.:   VAP
   CLIENTE: SERGIO GUEDES
   END.:    RUA GURUPI
   TELS.:  
   EMPRESA: LOJAS tiforum

           NAO E DOCUMENTO FISCAL      
  ---------------------------------------
   000001-TESTE
   2  X    1,50 Desc.:  0,00%=     3,00
  ---------------------------------------
  ITENS : 1
 
   MODALIDADE: DINHEIRO
 
    SUBTOTAL                  3,00
    DESCONTO                  0,00
           NAO E DOCUMENTO FISCAL        
   OBS:

=====================================================

Nenhum comentário:

📌 Tela de Splash, Tela de Login e Tela Principal em Delphi: Aprendendo na Prática

  No desenvolvimento de sistemas, a experiência do usuário começa muito antes de utilizar as principais funcionalidades do software. Elemen...