Convertendo Sistema do GASPRO para Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Convertendo Sistema do GASPRO para Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
Eu vi seu código. Vc precisa jogar(direcionar) a saida para um arquivo texto, neste caso.
Essas duas funções uma liga a impressão em arquivo, a outra desliga.
Vc imprime da mesma forma que eu aqui, usando ? e ??
Screenshot_20231206_174322.png

Código: Selecionar todos

*******************************
Function CriaArqImpressao(cArq)
*******************************
*
*
if pcount() = 0
   cArq     := "etiquetas.txt"
endif

IF hb_vfExists(cArq)
   DO WHILE !Empty(hb_vfErase(cArq))
      alert("Falha apagando o arquivo: "+cArq)
   ENDDO
ENDIF

set printer to &cArq
set print on
set console off
set Printer on

Return cArq

*********************
Function FecharImpres
*********************
*
*
set margin to 0
set print off
set printer to
set console on
set Printer off
return .t.
Depois use Win_PrintFileRaw

Código: Selecionar todos

**********************************
Function Imprime(cArq,cPrint,cTit)
**********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST()
hb_default(@cPrint,win_PrinterGetDefault())
hb_default(@cTit,"PEDIDO")

If Empty(cArq)
   alert('Informe algo p/ imprimir.')
   Return .F.
EndIf
If empty(aPrn)
   alert('Não há impressoras instaladas')
   Return .F.
EndIf
//alert( "win_printerStatus(): " + hb_ntos( win_printerStatus(cPrint) ) )

 nRet := Win_PrintFileRaw(cPrint,cArq,cTit)
 if nRet < 1
    cMsg := 'Erro Imprimindo: '
   SWITCH nRet
      CASE -1
         cMsg += "Parâmetro inválido passado" ; EXIT
      CASE -2
         cMsg += "WinAPI OpenPrinter() Falha na chamada"      ; EXIT
      CASE -3
         cMsg += "WinAPI StartDocPrinter() Falha na chamada"  ; EXIT
      CASE -4
         cMsg += "WinAPI StartPagePrinter() Falha na chamada" ; EXIT
      CASE -5
         cMsg += "WinAPI malloc() of memory failed"      ; EXIT
      CASE -6
         cMsg += "Arquivo " + cArq + " não Localizado"   ; EXIT
      //DEFAULT
      //   cMsg += cFile + " PRINTED OK!!!"
      END

     alert(cMsg)
 EndIf
Return .T.
A impressora pode está na USB ou COM ou LPT, precisa está cadastrada e ou compartilha no windows.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
alxsts
Colaborador
Colaborador
Mensagens: 3108
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Convertendo Sistema do GASPRO para Harbour

Mensagem por alxsts »

Olá!
Itamar M. Lins Jr. escreveu:Depois use Win_PrintFileRaw
Fiz um teste com esta função Imprime(cArq,cPrint,cTit) que você postou. Retornou o valor 1. Criou o arquivo "Pedido.PDF". Ao abri-lo (Chrome), dá erro. Verifiquei que o arquivo está com zero bytes...

A impressora padrão é "Microsoft Print to PDF"
Itamar M. Lins Jr. escreveu:A impressora pode está na USB ou COM ou LPT, precisa está cadastrada e ou compartilha no windows.
Tem algo a ver com isto? Onde estou errando?

Edit: mandei imprimir um arquivo .PRG, gerado pelo Visual Studio Code...
[]´s
Alexandre Santos (AlxSts)
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Convertendo Sistema do GASPRO para Harbour

Mensagem por bcm »

No código fonte da etiqueta que te enviei tem a opção de imprimir o teste de posicionamento, geralmente eu escolho a opção de imprimir direto, praticamente ele não executa esse código. Meu maior problema está no fato de travar quando envio a etiqueta e não consigo imprimir.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Convertendo Sistema do GASPRO para Harbour

Mensagem por JoséQuintas »

De uns tempos pra cá, citam migração graspro mas não tem nada a ver.
bcm escreveu:estou precisando gerar etiquetas de produtos com a impressão das barras do código de barras, mas está travando,
É mais do que óbrio travar: o default de impressão é pra matricial conectada na porta LPT1, o que não deve existir.
Resolver o travamento não vai resolver o código de barras, e talvez nem sem código de barras imprima, se não for impressora com texto, geralmente modelos antigos de impressora.
Já foi passada a alternativa pra impressoras USB, por exemplo, mas lembrando que precisa ter o recurso de texto.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Convertendo Sistema do GASPRO para Harbour

Mensagem por bcm »

Ok!

Vou ver se altero o código fonte a adapto com as funções que me enviou.
Assim que eu conclui te retorno .

desde de já te agradeço pela força.
alxsts
Colaborador
Colaborador
Mensagens: 3108
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Convertendo Sistema do GASPRO para Harbour

Mensagem por alxsts »

Olá!
alxsts escreveu:Onde estou errando?
Acho que entendi. Precisa passar um arquivo aberto para a função. Depois vou testar.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Convertendo Sistema do GASPRO para Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
geralmente eu escolho a opção de imprimir direto,
Neste caso não pode, pois quem controla a impressão é o gerenciador do windows.
Precisa usar as novas funções do Harbour(windows) para isso.
Basicamente existe duas formas, TXT ou arquivo com meta dados.(?) -> Já desenhado via a classe WIN_PRN().
Criou o arquivo "Pedido.PDF". Ao abri-lo (Chrome),
Não entendi nada. Alxsts
Mas Win_PrintFileRaw() é enviado texto puro para o gerenciador do windows.
Para gerar em PDF use a classe WIN_PRN().

Código: Selecionar todos

*********************************
Function PrintWinPrn(cArq,cPrint)
*********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST(), n := 0
if empty(aPrn)
   alert('Não há impressoras instaladas')
   return .f.
endif
If cPrint == Nil
   cPrint := win_PrinterGetDefault()
EndIf

oPrn := win_prn():New(cPrint)
oPrn : LandScape := .F.
oPrn : FormType  := WIN_DMPAPER_A4 
oPrn : Copies    :=  1
oPrn : CharSet(255)
//oPrn : setfont('Courier New',,10,{ 4, -70 },,,255)
oPrn : SetFont( "Lucida Console", 8, { 4, -70 } )
If !oPrn:Create()
   alert("Não foi criado documento")
   Return Nil
EndIf
If !oPrn:startDoc("Imprimindo Documento")
   alert("Erro na Impressora")
   Return Nil
EndIf

HB_CDPSelect("PT850")
  //setprc(7,0)
  cText := memoread(cArq)
  nLinh := mlcount(cText)
  oPrn:NewLine()
  oPrn:NewLine()
  For n := 1 to nLinh
     oPrn:Textout(WIN_ansitooem(memoline(cText,,n)),.t.)
  Next
  oPrn:EndDoc()

HB_CDPSelect( "PTISO")

Return .t.
Ajustar a fonte de letra conforme 132/80/60 colunas.
Ps. No caso das etiquetas, a impressora precisa aceitar modo RAW texto puro, estou me referindo a ARGOX 214 por exemplo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Convertendo Sistema do GASPRO para Harbour

Mensagem por bcm »

Bom dia!

A impressora que eu preciso imprimir a etiqueta é a Bematech L42 DT.
A impressão é de etiquetas de produtos com o código de barras.
Eu consegui fazer imprimir, mas o código de barras não está saindo, está substituindo as barras por outros caracteres.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Convertendo Sistema do GASPRO para Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
Verifique a pagina de código do sistema.
Tem que imprimir no arquivo da forma que manda para impressora quando era DOS.
Teste com o CLIPPER mandando para arquivo e jogando para impressora. Compare com a mesma impressão do Harbour.
Deve ser a página de código, o padrão do clipper é 437.
Mude para:

Código: Selecionar todos

HB_CDPSelect("CP437")
Antes de mandar imprimir.
Depois volte para sua PTISO, que é o português.(não sei se está usando assim).

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Impressão de Etiqueta na Bematech / Elgin L42 DT

Mensagem por bcm »

Bom dia!
Estou precisando imprimir etiquetas de produtos com o código de barras na Impressão de Etiqueta na Bematech / Elgin L42 DT, alguém teria um exemplo de código fonte feito em harbour que pudesse me enviar. Detalhe, meu sistema era desenvolvido em clipper e gaspro 4.0 e eu compilei para harbour, está em modo console.
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Convertendo Sistema do GASPRO para Harbour

Mensagem por bcm »

Boa tarde!

Meu sistema era feito em gaspro40 eu compilei em modo console.
No windows 7 e 10 roda perfeitamente.
Alguém sabe me dizer se ele rodaria normalmente no windows 11?
Anexos
tela sistcom.png
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

Convertendo Sistema do GASPRO para Harbour

Mensagem por marco.prodata »

bcm escreveu:Boa tarde!

Meu sistema era feito em gaspro40 eu compilei em modo console.
No windows 7 e 10 roda perfeitamente.
Alguém sabe me dizer se ele rodaria normalmente no windows 11?
99,999999% que sim
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Convertendo Sistema do GASPRO para Harbour

Mensagem por bcm »

Boa tarde!

Obrigado amigo.

Um grande abraço.
bcm
Usuário Nível 3
Usuário Nível 3
Mensagens: 101
Registrado em: 02 Set 2012 00:48
Localização: volta redonda/rj

Convertendo Sistema do GASPRO para Harbour

Mensagem por bcm »

Meu sistema era feito em gaspro40 eu compilei em modo console e sempre carrega um tela preta antesde carregar o sistema.
Teria como maneira de não aparecer está tela?
Anexos
tela.png
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Convertendo Sistema do GASPRO para Harbour

Mensagem por JoséQuintas »

Adicione na compilação -GUI
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder