Impressão com VDOPrint

Delphi

25/09/2008

Olá pessoal estou tentando imprimir um comprovante de venda com o VDOPrint so q o mesmo na hora de imprimir aparece uma tela dizendo Imprimirndo, Pro Favor, Aguarde...

e não sai dai fica assim sem fazer nada, não imprime e naum faz nada...

alguem saberia m dizer oq pode ser isso....

obrigado...


Tchucky

Tchucky

Curtidas 0

Respostas

Microbios

Microbios

25/09/2008

Tchucky;

Posta aí sua rotina pra gente dar uma olhada! Certamente é algum comando que você esqueceu, tipo um Table.Next ou coisa parecida... Isso já aconteceu comigo.

até!

R.Vital.


GOSTEI 0
Tchucky

Tchucky

25/09/2008

amigo a minha função é essa ai...

tenho uma procedure q inicia o relatorio q contem o

VDOPrinter1.BeginDoc;

e uma outra procedure q termina o relatorio q contem o
iSoftPrinter1.EndDoc;

e a procedure de impressão é essa a baixo

procedure TFrmVendaExpressa.BtnImprimirClick(Sender: TObject);
begin

  If  db_vendas.IsEmpty then
  Begin
     Informar(´não há dados para Imprimir´);
     Exit;
  end;

  IniciaRelatorio;
  db_Clientes.close;
  db_Clientes.open;
  
  VDOPrinter1.Print(01,01, StringOfChar(´-´, 79) );
  VDOPrinter1.DotMatrixSets.Font.Style :=[fsDmBold];
  VDOPrinter1.Print(02,01, Centrar(FrmPrincipal.db_empresa.FieldByName(´NOME´).AsString,79)  );
  VDOPrinter1.DotMatrixSets.Font.Style :=[];
  VDOPrinter1.Print(03,01, Centrar(FrmPrincipal.db_empresa.FieldByName(´ENDERECO´).AsString,79) );
  VDOPrinter1.Print(04,01, Centrar(FrmPrincipal.db_empresa.FieldByName(´ENDERECO2´).AsString+´    ´+FrmPrincipal.db_empresa.FieldByName(´FONE´).AsString,79) );
  VDOPrinter1.Print(05,01, StringOfChar(´_´, 79) );
  VDOPrinter1.Print(06,01, ´Nº Controle.: ´+db_vendas.FieldByName(´CODIGO´).AsString +´ - ´+
                             ´Data: ´+db_vendas.FieldByName(´EMISSAO´).AsString        +´ - ´+
                              Copy(TimeToStr(time),1,5)+´h  - ´+
                             ´Vendedor: ´ + Copy(db_vendas.FieldByName(´NomeVendedor´).AsString,1,22)  );
  //====================================================================================================================
  VDOPrinter1.Print(07,01, ´CNPJ/CPF....: ´ + db_Clientes.FieldByName(´CPF_CNPJ´).AsString );
  VDOPrinter1.Print(07,50, ´I.E:/R.G: ´ + db_Clientes.FieldByName(´RG_IE´).AsString );
  //====================================================================================================================
  VDOPrinter1.Print(08,01, ´Cliente.....: ´ + db_Clientes.FieldByName(´CODIGO´).AsString+´-´+db_Clientes.FieldByName(´NOME´).AsString );
  VDOPrinter1.Print(09,01, ´Endereco....: ´ + copy(db_Clientes.FieldByName(´ENDERECO´).AsString,1,35)    );
  VDOPrinter1.Print(09,55, ´CEP..: ´ + db_Clientes.FieldByName(´CEP´).AsString );
  VDOPrinter1.Print(10,01, ´Bairro......: ´ + copy(db_Clientes.FieldByName(´BAIRRO´).AsString,1,40) );
  VDOPrinter1.Print(10,55, ´Fone.: ´ + db_Clientes.FieldByName(´FONE´).AsString );
 VDOPrinter1.Print(11,01, ´Cidade/UF...: ´ + db_Clientes.FieldByName(´NOME_CIDADE´).AsString+´-´+db_Clientes.FieldByName(´UF´).AsString );
  VDOPrinter1.Print(12,01, ´Transp......: ´ + copy(db_vendas.FieldByName(´NomeTransportadora´).AsString,1,30) );
  VDOPrinter1.Print(12,35, ´Referencia..: ´ + db_Clientes.FieldByName(´REFERENCIA´).AsString );
  //====================================================================================================================

  VDOPrinter1.DotMatrixSets.Font.Style:=[];
  VDOPrinter1.DotMatrixSets.Font.Size  := fsDefault;
  VDOPrinter1.Print(13,01, StringOfChar(´-´, 79) );
  VDOPrinter1.DotMatrixSets.Font.Style :=[fsDmBold];
  VDOPrinter1.DotMatrixSets.Font.Size  := fsCondensed;
  //VDOPrinter1.Print(15,01, ´Codigo:            Descricao:                         Qtd:   Vl. Unit:  Subtotal:´ );
  VDOPrinter1.Print(14,01, ´Codigo:       Descricao:                         Qtd:   Vl. Unit:  Subtotal:´ );

  VDOPrinter1.DotMatrixSets.Font.Style:=[];
  VDOPrinter1.DotMatrixSets.Font.Size  := fsDefault;

  VDOPrinter1.Print(15,01, StringOfChar(´-´, 79) );
  //====================================================================================================================
  wInteger[0] :=15;
  wFloat[0]   :=0;
  db_VendasItens.first;
  while not db_VendasItens.eof do
  begin
     wFloat[0] := wFloat[0] + db_VendasItens.FieldByName(´QTDE´).AsFloat ;

     inc(wInteger[0]);
     VDOPrinter1.Print(wInteger[0],01,   CampoTexto(db_VendasItens.FieldByName(´PRODUTO´).AsString,     11)+StringOfChar(´ ´, 3)+
                                           CampoTexto(db_VendasItens.FieldByName(´DESCRICAO´).AsString,   33)+
                                           CampoCodigo(db_VendasItens.FieldByName(´QTDE´).AsString,       05){+StringOfChar(´ ´, 1)}+
                                           CampoValor(db_VendasItens.FieldByName(´VLR_UNIT´).AsFloat,     12)+
                                           CampoValor(db_VendasItens.FieldByName(´VLR_TOTAL´).AsFloat,    11) );

     db_VendasItens.next;
  End;
  db_VendasItens.first;

  VDOPrinter1.DotMatrixSets.Font.Style:=[];
  VDOPrinter1.DotMatrixSets.Font.Size  := fsDefault;
  inc(wInteger[0]);
  VDOPrinter1.Print(wInteger[0],01,  StringOfChar(´-´, 79) );

  inc(wInteger[0]);
  VDOPrinter1.Print(wInteger[0],01,  ´Total............: ´+CampoValor(db_vendas.FieldByName(´TOTAL_NF´).AsFloat,08 ) );

  inc(wInteger[0]);
  VDOPrinter1.Print(wInteger[0],01,  StringOfChar(´-´, 79) );


 // if FrmPrincipal.ADO_Parametros.FieldByName(´IMPRIMEFATURA´).AsString=´S´ then
  begin

     db_faturasimprimir.close;
    
     db_faturasimprimir.open;
     if db_faturasimprimir.RecordCount>0 then
     begin
        inc(wInteger[0]);
        VDOPrinter1.Print(wInteger[0],01,  Centrar(´DADOS DAS FATURAS´,79));

        inc(wInteger[0],1);
       VDOPrinter1.Print(wInteger[0],01, ´Forma Pagamento..: ´+db_vendas.FieldByName(´NomeFormapagto´).AsString );
   
        inc(wInteger[0],1);
        VDOPrinter1.Print(wInteger[0],01, ´Fatura:    Data:         Vencimento:         Valor:       Situacao:           ´ );
        inc(wInteger[0]);
        VDOPrinter1.Print(wInteger[0],01, StringOfChar(´-´, 79) );
   
        db_faturasimprimir.first;
        while not db_faturasimprimir.eof do
        begin
   
           inc(wInteger[0]);
           VDOPrinter1.Print(wInteger[0],01, CampoTexto(db_faturasimprimir.FieldByName(´DOCUMENTO´).AsString ,   11)+
                                                 CampoTexto(db_faturasimprimir.FieldByName(´DATA´).AsString,        14)+
                                                 CampoTexto(db_faturasimprimir.FieldByName(´VENCIMENTO´).AsString,  13)+
                                                 CampoValor(db_faturasimprimir.FieldByName(´VALOR´).AsFloat,        13)+StringOfChar(´ ´, 7)+
                                                 CampoTexto(db_faturasimprimir.FieldByName(´QUITADO´).AsString,     12) );
   
           db_faturasimprimir.next;
        End;
        db_faturasimprimir.close;

      //***
     end;

  End;   

  inc(wInteger[0],3);
  VDOPrinter1.Print(wInteger[0],01,  Centrar(´_________________________________________´,79) );
  inc(wInteger[0]);
  VDOPrinter1.Print(wInteger[0],01,  Centrar(´Assinatura do Cliente´,79) );


  // avançar linhas
// for xAvanco:=0 to (FrmPrincipal.ADO_Parametros.FieldByName(´LINHA_AVANCAR´).AsInteger) do
  begin
     inc(wInteger[0]);
     VDOPrinter1.Print(wInteger[0],01,  ´ ´ );
  end;

  db_Clientes.close;
  TerminaRelatorio;
 end;



GOSTEI 0
Microbios

Microbios

25/09/2008

Tchucky;

Cara, que estranho... que versao é essa do VDO onde voce indica, linha e coluna a serem impressas? [b:aeab4d9654] VDOPrinter1.Print(01,01, [/b:aeab4d9654]
A que eu uso nao é necessário indicar a linha, voce coloca o comando, por exemplo:

[b:aeab4d9654]
VDOPrinter1.Print(01, Centrar(FrmPrincipal.db_empresa.FieldByName(´NOME´).AsString,79),true );

Onde, 01 e a coluna, e o true no final indica que é para saltar para a próxima linha.
Vai ver é esse o seu problema....

Dá uma checada no DEMO do VDO e certifique-se de que a sua versao é pra indicar linha e coluna mesmo. :wink: [/b:aeab4d9654]


GOSTEI 0
Tchucky

Tchucky

25/09/2008

microbios

eu estou usando a ultima versão do VDOPrint...

ja olhei os exemplos todos e naum entendi o pq o meu sempre aparece aquele mensagem e naum gera nada...


GOSTEI 0
Walter Faria

Walter Faria

25/09/2008

Tente usar antes :

VDODmPrinter1.BeginDoc;


VDOPrinter1.Print(01,01, StringOfChar(´-´, 79) );
VDOPrinter1.DotMatrixSets.Font.Style :=[fsDmBold];
VDOPrinter1.Print(02,01, Centrar(FrmPrincipal.db_empresa.FieldByName(´NOME´).AsString,79) );
VDOPrinter1.DotMatrixSets.Font.Style :=[];
VDOPrinter1.Print(03,01, Centrar(FrmPrincipal.db_empresa.FieldByName(´ENDERECO´).AsString,79) );
VDOPrinter1.Print(04,01, Centrar(FrmPrincipal.db_empresa.FieldByName(´ENDERECO2´).AsString+´ ´+FrmPrincipal.db_empresa.FieldByName(´FONE´).AsString,79) );


VDODmPrinter1.EndDoc(false);


GOSTEI 0
Dedi

Dedi

25/09/2008

Colega, o problema ao meu ver é que vc não esta finalizando a impressão que começou
tenho uma procedure q inicia o relatorio q contem o VDOPrinter1.BeginDoc; e uma outra procedure q termina o relatorio q contem o iSoftPrinter1.EndDoc;


o correto seria finalizar o mesmo que começou no caso VDOPrinter1.EndDoc;


GOSTEI 0
POSTAR