Convertendo Sistema do GASPRO para Harbour

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

Moderador: Moderadores

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 »

Prezado Lauro, boa noite!

Fiz as alterações que você me orientou, aparentemente deu tudo certo.
Já está capturando a impressora, traz as opçoes de configuração de etiqueta, mais quando clico em prosseguir para enviar para impressora a etiqueta não imprime e não vai para o gerenciador de impressão do windows.
Poderia me enviar o codigo fontes desta função e qual as mudanças que deveram ser feitas no codigo fonte da etiqueta
(???_eoo1.prg).

Desde já agradeço

um grande abraço
LDOSISTEMAS
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 01 Set 2014 17:04
Localização: CLAUDIO/MG
Contato:

Convertendo Sistema do GASPRO para Harbour

Mensagem por LDOSISTEMAS »

coloque esse trecho dentro do gaspro40harbour e recompile o mesmo, então gere os fontes da sua aplicação e use o gas4harbour novmente ele ira fazer os ajustes em todos os modulos da etiqueta, claro

Código: Selecionar todos

if AT( " qtcar_", cBuf )!= 0 //ajusta etiquetas para impressão
     @ row()+1,0 say "Ajustando arquivo '"+upper(cArquivo)+"' ..."
     nArqCvt+=1
     //cBuf := StrTran( cBuf, "SET PRINTER TO (drvporta)", "" )
	  cBuf := StrTran( cBuf, "opcoes_etq", "opcoes_ehb" )
	  cBuf := StrTran( cBuf, "// mostra o arquivo gravado", "// mostra o arquivo gravado"+hb_eol()+"GRELA(99)" )
	  cBuf := StrTran( cBuf, "SET PRINT OFF", "SET PRINT OFF"+HB_EOl()+"SET PRINTER TO "+HB_EOl()+"set devi to scre" )
	  cBuf := StrTran( cBuf, "SET PRINT ON",  "SET PRINT ON "+HB_EOL()+"SET DEVI TO PRIN" )
	  cBuf := StrTran( cBuf, "EJEC" , "//EJECT " )
     hb_memoWrit( cArquivo, cBuf )
    endif
tem aqui tambem o codigo completo de uma etiqueta ja alterada para voce comparar

Código: Selecionar todos

/*
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 \ Empresa.: LDO SISTEMAS
 \ Programa: ETI_VEND.PRG
 \ Data....: 24-04-06
 \ Sistema.: CONTROLE INDUSTRIAL
 \ Funcao..: ETIQUETAS DE VENDEDORES
 \ Analista: LAURO DE OLIVEIRA
 \ Criacao.: GAS-Pro v4.0o
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
*/

#include "industri.ch"
LOCAL lin_:={}, cur_atual, i_, ct_, dele_atu
PARA lin_menu, col_menu
nucop=Numerocopias()

#ifdef COM_REDE
 IF !USEARQ("VENDEDOR",.f.,10,1)                   
  RETU                                             
 ENDI
#else
 USEARQ("VENDEDOR")                                
#endi

titrel:=criterio := ""                             
cpord=""
chv_rela:=chv_1:=chv_2 := ""
tps:=op_x:=ccop := 1
IF TYPE("drvti_vend")="C"                          
 qtlin_=VAL(SUBS(drvti_vend, 1,3))                 
 qtcol_=VAL(SUBS(drvti_vend, 4,3))                 
 qtcse_=VAL(SUBS(drvti_vend, 7,3))                 
 qtcar_=VAL(SUBS(drvti_vend,10,3))                 
 qtreg_=SUBS(drvti_vend,13)                        
ELSE                                               
 qtlin_=6                                          
 qtcol_=40                                         
 qtcse_=2                                          
 qtcar_=2                                          
 qtreg_="1"                                        
ENDI
fil_ini=""
IF !opcoes_ehb(lin_menu,col_menu,5,40,52,fil_ini)  
 CLOS ALL                                          
 RETU                                              
ENDI
lin_=ARRAY(qtlin_)                                 
IF tps=2                                           
 arq_=ARQGER()                                     
 IF EMPTY(arq_)                                    
  RETU                                             
 ENDI
ELSE
 arq_=drvporta                                     
ENDI
SET PRINTER TO (arq_)                              
cur_atual=SETCURSOR(0)
IF !EMPTY(drvtapg)                                 
 op_=AT("NNN",drvtapg)                             
 IF op_=0                                          
  msg="Configura‡„o do tamanho da p gina!"         
  DBOX(msg,,,,,"ERRO!")                            
  CLOSE ALL                                        
  RETU                                             
 ENDI                                              
 lpp_006=LEFT(drvtapg,op_-1)+LPAD(qtlin_,3,"0")+SUBS(drvtapg,op_+3)
 lpp_066=LEFT(drvtapg,op_-1)+"066"+SUBS(drvtapg,op_+3)
ELSE
 lpp_006:=lpp_066 :=""                             
ENDI
AFILL(lin_,"")
FOR i_=1 TO qtcar_                                 
 lin_[1]+=PADR("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",qtcol_+qtcse_)
 lin_[2]+=PADR("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",qtcol_+qtcse_)
 lin_[3]+=PADR("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",qtcol_+qtcse_)
 lin_[4]+=PADR("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX UF: XX",qtcol_+qtcse_)
 lin_[5]+=PADR("CEP:XXXXXXXXX   C.P:XXXXX",qtcol_+qtcse_)
NEXT
op_2=1
DO WHIL op_2=1 .AND. tps=1                         
 msg="Testar Posicionamento|Emitir a Etiqueta|"+;
     "Cancelar a Opera‡„o"
 op_2=DBOX(msg,,,E_MENU,,"EMISSŽO DE ETIQUETA")    
 IF op_2=0 .OR. op_2=3                             
  CLOSE ALL                                        
  RETU
 ELSEIF op_2=2                                     
  EXIT
 ELSE                                              
                                    
  SET DEVI TO PRIN                                     
  IMPCTL(lpp_006)                                  // seta pagina com 6 linhas
  IMPCTL(drvpeli)
  @ PROW()+1,0 SAY CHR(13)
  FOR i_=1 TO qtlin_
   @ PROW()+1,0 SAY RTRIM(lin_[i_])                              
   IF EMPTY(drvtapg) .OR. i_<qtlin_
    ?
   ENDI
  NEXT
  IF !EMPTY(drvtapg)                               
   //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EJECT T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T                                             
  ENDI
  IMPCTL(drvteli)
  IMPCTL(lpp_066)                                  // seta pagina com 66 linhas
                                    
  SET DEVI TO SCREEN
GRELA(99)                                    
 ENDI
ENDD
dele_atu:=SET(_SET_DELETED,.t.)                    
POE_GAUGE("[ESC] Interrompe","AGUARDE...","Emitidos:")
                                    
SET DEVI TO PRIN                                       
IMPCTL(lpp_006)                                    // seta pagina com 6 linhas
IMPCTL(drvpeli)
IF tps=2
 IMPCTL("' '+CHR(8)")
ENDI
BEGIN SEQUENCE
 DO WHIL ccop<=nucop                               
  INI_ARQ()                                        
  IF EOF()
   EXIT
  ENDI
  ccop++                                           
  DO WHIL !EOF()
   AFILL(lin_,""); ct_=0
   DO WHILE !EOF() .AND. ct_<qtcar_ .AND. POE_GAUGE()
    IF IN_KEY()=K_ESC
     IF canc()                                     
      BREAK                                        
     ENDI
    ENDI
    FOR t_=1 TO &qtreg_.
     ct_++
     lin_[1]+=TRAN(nome,"@!")+SPAC(qtcol_+qtcse_-40)
     lin_[2]+=endereco+SPAC(qtcol_+qtcse_-40)
     lin_[3]+=bairro+SPAC(qtcol_+qtcse_-30)
     lin_[4]+=cidade+" UF: "+TRAN(uf,"!!")+SPAC(qtcol_+qtcse_-37)
     lin_[5]+="CEP:"+TRAN(cep,"@R 99999-999")+"   C.P:"+cxpostal+SPAC(qtcol_+qtcse_-25)
     IF ct_>=qtcar_
      @ PROW()+1,0 SAY CHR(13)
      FOR i_=1 TO qtlin_
       @ PROW()+1,0 SAY RTRIM(lin_[i_])
       IF EMPTY(drvtapg) .OR. i_<qtlin_
        ?
       ENDI
      NEXT
      IF !EMPTY(drvtapg)                           
       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EJECT T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T                                         
      ENDI
      AFILL(lin_,""); ct_=0
     ENDI
    NEXT
    SKIP
   ENDD
   IF ct_>0                                        
    @ PROW()+1,0 SAY CHR(13)
    FOR i_=1 TO qtlin_                             // 
     @ PROW()+1,0 SAY RTRIM(lin_[i_])
     IF EMPTY(drvtapg) .OR. i_<qtlin_
      ?
     ENDI
    NEXT
    IF !EMPTY(drvtapg)                             
     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EJECT T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T                                           
    ENDI
   ENDI
  ENDD
 ENDD ccop
 IF EMPTY(drvtapg)
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EJECT T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T                                              
 ENDI
END SEQUENCE
SETCURSOR(cur_atual)
IMPCTL(drvteli)
IMPCTL(lpp_066)                                    // seta pagina com 66 linhas
                          
                                    
SET DEVI TO SCREEN
GRELA(99)                                      
IF tps=2                                           
 BROWSE_REL(arq_,2,3,MAXROW()-2,78,.f.)
ENDI      
                                    
SET DEVI TO SCREEN
GRELA(99)                                      
SET(_SET_DELETED,dele_atu)                         
RETU

* \\ Final de ETI_VEND.PRG
LAURO DE OLIVEIRA
Analista/Diretor
(37) 3381 32 11
www.ldosistemas.com.br
Imagem
luizpaulo.ssa
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 24 Mai 2014 12:57
Localização: Salvador/Bahia

Convertendo Sistema do GASPRO para Harbour

Mensagem por luizpaulo.ssa »

Olá, pessoal!!!

Recentemente converti um sistema feito em GASPRO.

Estou com um pequeno problema, a mensagem de erro não apresenta o número da linha.

Já pesquisei no fórum e não encontrei nada sobre.

Desde já agradeço!!!
Anexos
errorsys1.png
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá luizpaulo.ssa,

Bem vindo ao fórum.

Comente ou remova de seu arquivo .HBP o comando:

Código: Selecionar todos

-prgflag=/l
Esse comando suprime da compilação o número das linhas.

NOTA: Para que você possa a partir dai compilar sempre com as ID das linhas, na primeira vez remova também o comando:

Código: Selecionar todos

-inc
Esse comando faz com que seja compilado apenas os arquivos que foram modificados desde a ultima compilação. Mas nesse caso você precisa remover para que seja feita a compilação incondicional. Depois volta ele para agilizar a compilação a partir dai.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
luizpaulo.ssa
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 24 Mai 2014 12:57
Localização: Salvador/Bahia

Convertendo Sistema do GASPRO para Harbour

Mensagem por luizpaulo.ssa »

Olá, Jairo!

Funcionou perfeitamente!!!

Muito obrigado!

Também estou com problema na impressão de etiquetas, pesquisei alguns tópicos, mas não consegui fazer a impressão.

Se tiver alguma dica, que possa ajudar!!!!

Grande Abraço
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá luizpaulo.ssa,
luizpaulo.ssa escreveu:Também estou com problema na impressão de etiquetas, [...].
Se tiver alguma dica, que possa ajudar!!!!
Pior que não tenho. A única etiqueta que meu sistema emite são etiquetas de gôndola com a impressora Argox.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por JoséQuintas »

O que chama de etiqueta?
Algo como isto?

https://github.com/JoseQuintas/JoseQuin ... lclass.prg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Convertendo Sistema do GASPRO para Harbour

Mensagem por rubens »

Jairo
Pior que não tenho. A única etiqueta que meu sistema emite são etiquetas de gôndola com a impressora Argox.
Estou trabalhando nisso... sabe se tem alguma legislação para essas etiquetas de gondola?
Tem coo postar um exemplo da que você imprime?

Obg

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
luizpaulo.ssa
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 24 Mai 2014 12:57
Localização: Salvador/Bahia

Convertendo Sistema do GASPRO para Harbour

Mensagem por luizpaulo.ssa »

Resolvi a questão da etiqueta, após dar uma olhada nas informações passadas por Lauro, nesse mesmo tópico.

Obrigado a todos

Luiz Paulo
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá Rubens,

Veja se esse exemplo ajuda. Nesse post tem também o manual PPLA: https://pctoledo.org/forum/viewto ... 08#p100508
rubens escreveu:sabe se tem alguma legislação para essas etiquetas de gondola?
Não especificamente a etiqueta de gôndola, mas em relação a obrigatoriedade de informar claramente os preços dos produto. Por se tratar de Legislação Fiscal, respondi no tópico: Obrigatoriedade de informar preços de produtos ao consumidor, no fórum de Legislação Fiscal e tributária.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
luizpaulo.ssa
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 24 Mai 2014 12:57
Localização: Salvador/Bahia

Convertendo Sistema do GASPRO para Harbour

Mensagem por luizpaulo.ssa »

Olá!!!!

Estou enfrentando problemas após a conversão. O sistema está perdendo dados de lançamentos, mas não de processamentos.

Acontece assim: ao lançar uma venda, a soma do valor é processada na conta do cliente, mas o lançamento no histórico do vendedor não aparece. Então quando olhamos a conta está com um valor total diferente da soma dos itens vendidos.

Isso não acontece em todos os clientes, e não encontrei uma causa ou uma lógica, para que possa corrigir.

NOTA: Estou usando NTX, pois utilizava o NSX no GASDOS, e percebi muito instável no Harbour.
Já o CDX, o ADAP simplesmente não funciona.


Agradeço a atenção de todos!!
LDOSISTEMAS
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 01 Set 2014 17:04
Localização: CLAUDIO/MG
Contato:

Convertendo Sistema do GASPRO para Harbour

Mensagem por LDOSISTEMAS »

Boa tarde, quanto aos lançamentos, tem alguma rotina avulsa em condições ou no preenchimento de algum dos campos ?
Quanto ao adapta não esta conseguindo gerar ou gera mas não faz a adaptação dos arquivos?
Eu também optei usar pelo NTX como índice, as rotinas de tratamento geradas pelo gas pra reindexão apagar não funcionam bem no caso dos CDX realmente também devido ao geração do adaptador ele não copia direito os arquivos memo em CDX.
Coloque mais detalhes que com certeza poderemos ajudar mais.
LAURO DE OLIVEIRA
Analista/Diretor
(37) 3381 32 11
www.ldosistemas.com.br
Imagem
luizpaulo.ssa
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 24 Mai 2014 12:57
Localização: Salvador/Bahia

Convertendo Sistema do GASPRO para Harbour

Mensagem por luizpaulo.ssa »

Olá , Lauro!!!

Notei que ao utilizar o F8 (consulta itens), o uso da cpu estava indo a 100%, e acredito que o problema estava aí.

Resolvi fazer algumas alterações, e estou analisando os resultados.

1 - No GASP40HB, alterei na Funciton INKY, estava xVar1:= InKey( ), ficou xVar1:= InKey(.1)

2 - Removi a opções utiliza mouse, do menu, e com isso precisei remover/comentar as linhas que tinha referência ao mouse, nos
nos XXX_FUNC.PRG, xxx_PROC.PRG, GASP40HP.PRG e GETSYS.PRG.

3 - Com essa alterações a impressão ficou lenta, precisei alterar em cada relatório IN_KEY para LASTKEY.

4 - Acrescentei no programa principal após a Function Main (na verdade alterei o GAS4HARBOUR e regerei o executável)
do while !eof()
gtProcessMessages()
enddo

Resultado uso da CPU 0% !!!!!!

Em relação ao ADAP, vou utilizar NTX mesmo e esta funcionando.

Obrigado pela atençã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 »

Boa tarde a todos!

Quando eu envio um relatório para impressora, sempre imprime uma folha em branco no final, eu já tirei o comando eject mas não adiantou nada.
Poderiam me ajudar?
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Convertendo Sistema do GASPRO para Harbour

Mensagem por alxsts »

Olá!

Poste um exemplo do código mostrando como está fazendo...
[]´s
Alexandre Santos (AlxSts)
Responder