Página 16 de 19

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Fev 2017 18:30
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

Convertendo Sistema do GASPRO para Harbour

Enviado: 07 Mar 2017 21:04
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

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 12:51
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!!!

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 13:09
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.

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 13:49
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

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 15:54
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.

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 16:21
por JoséQuintas
O que chama de etiqueta?
Algo como isto?

https://github.com/JoseQuintas/JoseQuin ... lclass.prg

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 21:44
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

Convertendo Sistema do GASPRO para Harbour

Enviado: 28 Out 2017 23:55
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

Convertendo Sistema do GASPRO para Harbour

Enviado: 29 Out 2017 10:49
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.

Convertendo Sistema do GASPRO para Harbour

Enviado: 03 Nov 2017 12:31
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!!

Convertendo Sistema do GASPRO para Harbour

Enviado: 06 Nov 2017 15:38
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.

Convertendo Sistema do GASPRO para Harbour

Enviado: 07 Nov 2017 11:42
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!

Convertendo Sistema do GASPRO para Harbour

Enviado: 20 Jun 2021 18:47
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?

Convertendo Sistema do GASPRO para Harbour

Enviado: 20 Jun 2021 22:03
por alxsts
Olá!

Poste um exemplo do código mostrando como está fazendo...