Página 1 de 1

Ajuda com impressao - WIN32.PRN

Enviado: 20 Mar 2010 12:19
por jcsprog
Gostaria de passar esta impressao p/ WIN32PRN
Estou usando Harbour X MiniGui - Agradeço a ajuda

Obs: tenho esta impressao -> SELECT BY DIALOG PREVIEW, que o unico erro e que nao pode saltar pg. pois e impressao em bobinas de pizzarias , teria que controlar as linhas, sempre imprimindo na posicao da impressora

agradeço a atenção

Código: Selecionar todos

*******************************
PROCEDURE ImpriMatri
*******************************
Private nFont := 10
Private cArquivo := "" 
 
   VEMP:=EMP->DESCR 
   LCP_2.Btn_SLCP.Enabled := .F. 

   If MsgYesNo ( "Confirma Impressão ?","Impressão Pedido Nº"+STRZERO(NNPEDI,6))
      DO WHILE .T.
  
         Set Printer TO LPT1
         Set Printer ON
         Set Console OFF

        ? REPLICATE("=",48) 
        ? EMP->DESCR 
        ? EMP->END 
        ? "Bairro:"+EMP->BAIRRO+" Fone:"+EMP->TEL 

        CLI->(DBSETORDER(1))
        CLI->(DBSEEK(LCP_2.T_TELRESD.VALUE))

        ? REPLICATE("=",48) 
        ? "Pedido:"+STRZERO(NNPEDI,10)+" Data:"+DTOC(FXP->DTPED)+" Hr:"+SUBSTR(FXP->HRPED,1,5) 
        ? "Cliente :"+ALLTRIM(CLI->CONTATO)+" -Fone:"+CLI->TELRESD 
        ? "Endereco:"+ALLTRIM(CLI->END) 
        ? "Bairro  :"+CLI->BAIRRO 
        ? "Referencia:"+ALLTRIM(CLI->COMPL)+"-"+CLI->CEP 
        ? REPLICATE("=",48) 
        ? " Cod. Qte Descricao           R$Unit.Sb.Total"  
        ? REPLICATE("=",48) 

        LCP->(DBSEEK(STR(NNPEDI,10)))
        DO WHILE LCP->(!EOF()) .AND. STR(LCP->NPEDI,10)=STR(NNPEDI,10)
             ? STR(LCP->CODITE,4,2)+"   "
            ?? STRZERO(LCP->QTEPED,2)+" "
            ?? SUBSTR(LCP->PEDIDO,1,17)+" "
            ?? STR(LCP->PVEND,7,2)+" "
            ?? STR(LCP->QTEPED*LCP->PVEND,7,2)+" "
           IF SUBSTR(LCP->MUDANCA,1,2)#SPACE(02)
              ? "Obs.:"+ALLTRIM(LCP->MUDANCA)
           ENDIF   
           LCP->(DBSKIP())
       ENDDO
         ? REPLIC("=",48)  
         ? "Total Pedido    ->"+TRANSFORM(FXP->TTPD,"@E 9,999.99") 
         ? "Acrescimo       ->"+TRANSFORM(FXP->ACRE,"@E 9,999.99") 
         ? "Desconto        ->"+TRANSFORM(FXP->DESCON,"@E 9,999.99") 
         ? "Taxa de Entrega ->"+TRANSFORM(FXP->FRETE,"@E 9,999.99") 
         ? "Total A Pagar   ->"+TRANSFORM(FXP->TTPD+FXP->FRETE+FXP->ACRE-FXP->DESCON,"@E 9,999.99") 
         ? "Valor Pago      ->"+TRANSFORM(FXP->PAGO,"@E 9,999.99") 
         ? "Troco  ->"+TRANSFORM(FXP->TROCO,"@E 9,999.99") 
        VIPREC:=" "
        FPG->(DBSETORDER(1))
         ? "Forma Pgto ->"+IF(FPG->(DBSEEK(STR(FXP->FGTO,2))),FPG->DSTP,"") 
         VIPREC:=FPG->IPREC
        FPG->(DBSETORDER(1))
         ? "Motoboy->" 
         GCOL=10
         MOT->(DBGOTOP())
         DO WHILE MOT->(!EOF())
            ? "["+STR(MOT->CDMT,2)+"]" 
            GCOL:=GCOL+2
            MOT->(DBSKIP())
         ENDDO
         ? REPLIC("=",20)+"Jcs Soft-ME F:7378-8895 ===" 
         IF VIPREC = "S"
            ? REPLIC("=",48) 
            ? EMP->DESCR 
            ? REPLIC("=",48) 
            ? "*********** CONTRA VALE ***********" 
            ? "Ref.Pedido N§:"+STRZERO(NNPEDI,10)+" Data:"+DTOC(FXP->DTPED) 
            ? REPLIC("*",48) 
            ? "Valor do Contra Vale ->"+TRANSFORM(FXP->TROCO,"@E 9,999.99") 
            ? REPLIC("=",48) 
            ? "ASS........................." 
            ? EMP->DESCR 
            ? REPLIC("=",48) 
         ENDIF
         FOR Y:=1 TO 10
             ? "." 
         NEXT    

         Set Printer TO 
         Set Printer OFF
         Set Console ON

         If MsgYesNo ( "Confirma Reimpressão ?","Deseja Reimpressão Pedido Nº"+STRZERO(NNPEDI,6))
            LOOP
         ELSE
           EXIT
        ENDIF		   
      ENDDO   
 ENDIF	
LCP_2.T_TPPD.SETFOCUS
 :{ RETURN NIL
Nota de Moderação:
por Toledo: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: faq.php?mode=bbcode#f2r1
A mensagem também foi editada para formatação de texto em letras minúsculas
Veja as Regras do Fórum:
7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio. Letras maiúsculas equivalem a GRITAR e portanto são consideradas uma falta de respeito com os demais membros do fórum.

Re: Ajuda com impressao - WIN32.PRN

Enviado: 20 Mar 2010 12:48
por Toledo
Amigo, use a busca do fórum.... veja:

https://pctoledo.org/forum/viewto ... f=4&t=6465

Abraços,

Re: Ajuda com impressao - WIN32.PRN

Enviado: 20 Mar 2010 14:35
por jcsprog
Peguei o exemplo do link so que da erro veja

error: unresolved external "_hb_fun_getprinters" referenc from c:\teste
error: unresolved external "_hb_fun_win32prn" referenc from c:\teste
error: unresolved external "_hb_fun_win32bmp" referenc from c:\teste

como compilar ?

:-O
Nota de Moderação:
por Toledo: Mensagem editada para formatação de texto em letras minúsculas
Veja as Regras do Fórum:
7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio. Letras maiúsculas equivalem a GRITAR e portanto são consideradas uma falta de respeito com os demais membros do fórum.

Re: Ajuda com impressao - WIN32.PRN

Enviado: 20 Mar 2010 22:47
por sygecom
Qual versão do seu xHarbour ?

Re: Ajuda com impressao - WIN32.PRN

Enviado: 22 Mar 2010 13:08
por jcsprog
estou usando harbour 1.1.0

Re: Ajuda com impressao - WIN32.PRN

Enviado: 22 Mar 2010 13:54
por gvc
Só para manter a memória em dia: O HARBOUR tb tem a classe Win32prn? O xHarbour eu sei que tem.
Vejam que ele esta usando o Harbour.

Re: Ajuda com impressao - WIN32.PRN

Enviado: 22 Mar 2010 21:25
por sygecom
Sim, o harbour tem WIN32PRN também, porem essa versão do colega as chamadas da WIN32PRN ficam assim:

Código: Selecionar todos

#ifdef __XHARBOUR__
 local oPrinter := win32prn():New(cPrinter) // para xharbour
#else
 local oPrinter := win_prn():New(cPrinter)  //para harbour =1.1.0
#endif

#ifdef __XHARBOUR__
 oBMP:= Win32BMP():new()
#else
 oBMP:= Win_BMP():new()
#endif
Da getprinters() não tenho certeza, mas tente:
WIN_PRINTERLIST()

Re: Ajuda com impressao - WIN32.PRN

Enviado: 24 Mar 2010 11:59
por jcsprog
agradeço a ajuda estou testando valeu.

:))