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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Convertendo Sistema do GASPRO para Harbour

Mensagem por Alexandre Silva »

Eu é que agradeço a todos... :{
Ha uma semana comecei com harbour, tendo que converter meu maior projeto. que é feito em gas. por isso tem muitas funcoes que nao foram escritas por mim, fora a LIB que nao está 100 %
Essa dos browses achei que nao tinha jeito..
Nao me importo de alterar apos o gas gerar os fontes.. ja tinha que fazer ajustes..

Hoje fiz os primeiros testes no cliente, codigo de barras, mandar e-mail, impressao,
alguns ajustes, tá quase fechado.

Um Problema que senti, foi que nao posso atualizar o sistema, se tem alguem usando..antes bastava que o micro onde fosse atualizado estivesse fora.. tem mais de 20 usuarios usando, será que tem alternativa ??

Peço ao Moderador, se possivel, mudar o titulo para algo como, Convertendo GASPRO, ja que varios assuntos foram tratados aqui

Voces que baixaram o aplicativo, se gerarem um relatorio em aquivo/video e ver na tela ou ALT_V
Funcao browse_rel() do rom_proc.prg , vejam que aparece um coluna de caracteres
?
?
?
?
O que esta gerando isso ?
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Convertendo Sistema do GASPRO para Harbour

Mensagem por Pablo César »

Peço ao Moderador, se possivel, mudar o titulo para algo como, Convertendo GASPRO, ja que varios assuntos foram tratados aqui
Feito ! Também achei necessário mudar o título, obrigado pela sua iniciativa.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por sygecom »

Alexandre Silva escreveu: Um Problema que senti, foi que nao posso atualizar o sistema, se tem alguem usando..antes bastava que o micro onde fosse atualizado estivesse fora.. tem mais de 20 usuarios usando, será que tem alternativa ??
Uma maneira de contornar isso é renomear o arquivo que está sendo usado na rede e colocar no AR o novo EXE. Não é a melhor solução, mas funciona.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Alexandre, eu não consegui gerar relatorio usando o que vc enviou. Quando pede para gerar, ele simplesmente não gera, e não mostra erro.

Com minha aplicação não consigo ver o que vc diz, pois como já disse, ela tem muita alteração e não é versão 4.

Como posso gerar aqui pra visualizar?
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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Alexandre Silva »

Na versao que coloquei ai (p1 e p2) apenas compile normalmente com harbour, eu uso essa bat R.BAT
que invoca o hbmk2
nao gere novamente no GAS, use as fontes que estao ai...
Entre no sistema
Vá em rel produtos. tire do Romaneio 2 (por.exemplo) gere em arquivo/video
veja os ? (pontos de interrogacao) no final do arquivo..
se abrir com outro editor ou gerar PDF com o Dosprint, na há problema
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá Alexandre,

Ok, não tive problema pra gerar o exe. Inclusive, para desencargo, limpei a pasta que usei para fazer os testes do browser, descompactei novamente os fontes para descartar alguma possivel alteração que havia feito enquanto verificava o problema e recompilei.

Nada mudou, e não consigo ver o problema.
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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Convertendo Sistema do GASPRO para Harbour

Mensagem por Alexandre Silva »

Comigo acontecem coisas estranhas.. :%
essa do caracter
?
?
?

Além disso as vezes (10 %),quando entro no sistema Gas (na versao em Harbour)
as opcoes do Menu ficam piscando... tb uso setmode(25,80) mas nao adianta.

PS: Como colocar a imagem da tela, sem ser anexo ??
Nota de Moderação:
por Pablo César: Foi substituído o arquivo xls que estava em anexo pela imagem abaixo
Veja a sua tela, primeiro foi hospedada e depois disponibilizado o link + TAG
Imagem
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Convertendo Sistema do GASPRO para Harbour

Mensagem por Pablo César »

?
?
?
?
O que esta gerando isso ?
Alexandre, verifique o PRINTERS.DBF, o GAS e provavelmente na sua palicação esteja utilizando esse arquivo para obter os comandos de impressão. Veja se existe algum comando (provavelmente: line_feed ou algo assim) que contenha "?"
PS: Como colocar a imagem da tela, sem ser anexo ??
Precisa primeiramente a imagem estar hospedada na internet. Pode utilizar o 4Shared ou qualquer outro site de armazenamento. Depois de estar hospedada, você pega o link da imagem, cola na mensagem aqui no fórum, marca o bloco desse link e clica no botão "Img".
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Alexandre Silva »

Oi.
Voce tem a funcaao mudafonte() e a naopisca(), ? porque na versao da lib que eu tenho essa funcoes nao voltam nada..
acho que pode ser alguma coisa de fonte...
Já tentei por horas, e só no GAS com harbour dá esse problema ..

?
?
?
?
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá Alexandre,

Nos fontes que vc enviou está como relatório, por acaso em seu projeto real está como etqueta?

Caso seja isso, há diferença.
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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Alexandre Silva »

E relatorio.. olha o que acabei fazendo...na funcao proc_monta_lin do sist_proc.prg

Código: Selecionar todos


STATIC PROC MONTA_LIN(qtlin_,qttab_)  // le/imprime linhas do arquivo binario
LOCAL t_, i_, x_, j_, lin_, buf_, tambuf_, ini_, fim_, qts_:=0,;
      tp_cmd:="pcomtcompc20tc20pelitelipenftenfpexptexppde8tde8landport"
IF qtlin_!=0                                     // quer le outras linhas?
   tambuf_=MIN(ABS(qtlin_)*2700,32000)           // buffer maximo do tamnho das linhas
   IF qtlin_<0 .AND. offset_ini>1                // quer voltar linhas e nao esta no topo
      IF offset_ini<tambuf_                      // se o tamanho buffer e maior do que
         tambuf_=offset_ini                      // ja foi lido, ajusta seu tamanho
      ENDI
      FSEEK(area_,offset_ini-tambuf_)            // posiciona poteiro para a leitura
      buffer_=SPAC(tambuf_)                      // inicializa o buffer e
      FREAD(area_,@buffer_,tambuf_)              // le o arquivo...
      buffer_=STRTRAN(buffer_,CHR(12)+CHR(13),CHR(13)+CHR(10))
      tambuf_++                                  // incrementa tamanho do buffer
      buf_=tambuf_                               // salva tamanho original
      FOR t_ = qtlin_ TO -1                      // faz p/ todas as linhas requeridas
         IF tambuf_ > 1                          // se nao esta no inicio do buffer
            tambuf_-=3                           // tira o CR+LF do fim da linha
            i_=tambuf_                           // acha o ultimo CR+LF
            tambuf_=RAT(CHR(13)+CHR(10),SUBS(buffer_,1,tambuf_))
            tambuf_=IF(tambuf_>0,tambuf_+2,1)    // se achou desconta o CR+LF
            IF l_arq[maxlin_]!=CHR(0)            // se a linha a excluir for do arquivo
               offset_fim-=LEN(l_arq[maxlin_])+2 // decrementa seu tamanho do offset do
            ENDI                                 // fim do arquivo (acresentando o CR+LF)
            AINS(l_arq,1)                        // insere um linha no top do arranjo
            i_=i_-tambuf_+1
            l_arq[1]=SUBS(buffer_,tambuf_,i_)    // inicializa a linha com a linha do arq
            qts_--                               // qtde de linhas do scroll
         ELSE                                    // se chegou no inicio do tamanho do
            EXIT                                 // buffer lido, cai fora...
         ENDI
      NEXT
      offset_ini-=buf_-tambuf_                   // ajusta offset da linha inicio da janela

   ELSEIF l_arq[2]!=CHR(0)                       // quer avancar linhas e nao esta no fim do arq
      FSEEK(area_,offset_fim)                    // posiciona o ponteiro na ultima lin lida
      IF offset_fim+tambuf_>fim_arq_             // se o resto do arquivo e menor do que
         tambuf_=fim_arq_-offset_fim             // o tamanho do buffer, ajusta seu tamanho
      ENDI
      buffer_=SPAC(tambuf_)                      // inicializa o buffer e
      FREAD(area_,@buffer_,tambuf_)              // le o arquivo...
      buffer_=STRTRAN(buffer_,CHR(12)+CHR(13),CHR(13)+CHR(10))
      FOR t_ = 1 TO qtlin_                       // mostra proximas linhas requeridas
         IF l_arq[1]!=CHR(0)                     // se for uma linha lida do arquivo
            offset_ini+=LEN(l_arq[1])+2          // ajusta offset do inicio
         ENDI
         ADEL(l_arq,1)                           // apaga a 1a. linha do arranjo
         qts_++                                  // qtde de linhas que sera feita o scroll
         IF LEN(buffer_)<3                       // se nao tem mais linha para montar a tela
            l_arq[maxlin_]=""   // CHR(0) 
***
**     se colcar chr(0) ficava ponto de interrogacao na tela
**
            IF l_arq[2]=CHR(0)                   // se o fim do arq esta na 1a. linha
               EXIT                              // nao tem mais linha para mostrar
            ENDI
         ELSE                                    // caso contrario pega linha corrente
            l_arq[maxlin_]=PARSE(@buffer_,CHR(13)+CHR(10))
            offset_fim+=LEN(l_arq[maxlin_])+2    // ajusta offset do fim da janela
         ENDI
      NEXT
   ENDI
ENDI
i_=0
FOR t_ = 1 TO maxlin_                            // pega o tamanho da maior linha
   i_=MAX(i_,LEN(l_arq[t_]))
NEXT
IF (qttab_<0 .AND. tablin_>1) .OR.;              // quer rolar horizontalmente?
   (qttab_>0 .AND. tablin_<i_-10)
   tablin_+=qttab_                               // soma/diminui tabulacao atual
   qts_=maxlin_                                  // forca remontagem de toda a janela
ENDI
IF qts_!=0                                       // se leu alguma linha
   SCROLL(lsup_,csup_,linf_,cinf_,qts_)          // rola a tela
   ini_=IF(qts_>0,maxlin_-qts_+1,1)              // inicio e fim das linhas
   fim_=IF(qts_>0,maxlin_,ABS(qts_))             // que foram lidas
   i_=cinf_-csup_+1                              // tamanho da janela
   FOR t_=ini_ TO fim_                           // imprime linhas lidas
      lin_=l_arq[t_]
      IF !EMPTY(lin_) .AND.!OK_PRINT(lin_)        // tem caraceter de controle?
         IF AT(" "+CHR(8),lin_)>0                // tira efeito especial da frente da linha
            lin_=SUBS(lin_,AT(" "+CHR(8),lin_)+2)
         ENDI
         FOR j_=1 TO 56 STEP 4                   // testa todos os carc de controle
            x_="drv"+SUBS(tp_cmd,j_,4)             // monta o nome do efeito
            x_=&x_.
            IF !EMPTY(x_)                          // tem efeito configurado?
               lin_=STRTRAN(lin_,TRANS(&x_.,""),"")   // retira-o da linha
            ENDI
         NEXT
      ENDI
      @ lsup_+t_-1,csup_ SAY SUBS(lin_,tablin_,i_)
   NEXT
ENDI
buffer_=""
RETU
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá Alexandre,

Vi a solução que vc deu para o relatório... Mas "ainda" não tive esse problema, meus fontes tem diferença.
Alexandre Silva escreveu:Voce tem a funcaao mudafonte() e a naopisca(), ? porque na versao da lib que eu tenho essa funcoes nao voltam nada..
acho que pode ser alguma coisa de fonte...
Veja na LIB do gas, que elas estão neutralizadas, porém, quanto a NAOPISCA, descobri por acaso um atalho, mas também não tenho a solução. Quando começa a piscar o menu, basta vc pressionar ALT+TAB, exibir a tela do windows e voltar. Quando volta o vagalume some.
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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Compactar arq. com DBT

Mensagem por Alexandre Silva »

Opa..
Essa de piscar é bem raro e sempre em da/tela cheia..

Hoje coloquei a versao para rodar no cliente...
Maior problema
1-Eliminar Reg.Apagados, Se o Arquivo tem arquivo DBT na compactacao aparece arq.nao encontrado Arquivo.SMT
O sistema cai e o arquivo em questacao fica corrompido, perda total..
Como tratar os DBT no Harbour ?

2-Mudar o sistema com os usuarios usando.. O servidor é Seven 64, as estacoes seven 32
vc pode até renomerar o aplicativo para outro nome e trocar o executavel..
mas algumas estacoes na entrada do sistema dá a msg:
Outro usuario acessando arquivo Parametros, ai vc insiste um pouco e acaba entrando..
E voce nao consegue apagar o arq. que foi renomeado até que o usuario saia do sistema.

3-Supondo que a saida esteja para Epson em LPT2, e naquele PC nao tenha LPT2, se o usuario escolher Arquivo/Video, o arquivo é gerado. mas no final quando for usado o comando set printer to (drvporta)
Erro Term/2014, Erro no DOS Numero 2, arquvo LPT2., claro a porta nao existe..
Como vc faria para contornar isso de maneira generica..

4-Nao dá para usar o TAMEDOS, entao fica sem a tela cheia com opcoes de Fontes, etc.

Mas o problema maior é a compactacao de arquivo com DBT
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Jairo Maia »

Olá Alexandre,
Alexandre Silva escreveu:Hoje coloquei a versao para rodar no cliente...
Maior problema
1-Eliminar Reg.Apagados, Se o Arquivo tem arquivo DBT na compactacao aparece arq.nao encontrado Arquivo.SMT
O sistema cai e o arquivo em questacao fica corrompido, perda total..
Como tratar os DBT no Harbour ?
Verifiquei rapidamente essa questão, mas eu acho que vc não atualizou sua LIBG2.PRG ainda. Pelo menos quando vc enviou os dados ela estava errada para a forma que vc trabalha. Vc esta com o RDD DBFNSX.

A lib atual, está escrita para o RDD DBFCDX.

Os Arquivos Memo para o seu caso são SMT e não FPT. Altere a função: EXTENSAO(xArg1), no arquivo LIBG2.PRG da seguinte forma:

Código: Selecionar todos

Function EXTENSAO(xArg1)

   Local xVar1
   xVar1:= Upper(indexext())
   xArg1:= IIf(xArg1 = Nil,.T.,xArg1)
   If (!xArg1)
      If (xVar1 = ".NSX")  // de .CDX para .NSX
         xVar1:= ".SMT"    // de .FPT para .SMT
      Else
         xVar1:= ".DBT"
      EndIf
   EndIf
   Return xVar1
Altere essa função e veja se funciona. Aqui fiz a compactação usando seu exemplo e funcionou.
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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Convertendo Sistema do GASPRO para Harbour

Mensagem por Alexandre Silva »

Amigo. Agradeco sua atencao..e paciencia...
To sofrendo muito para passar o gas para harbour..

No caso deu certo pra vc, porque nao tem arquivos memo no exemplo que te passei..
estou anexando outro...ok
parte 1
xx.rar
(65.11 KiB) Baixado 576 vezes
parte 2
xx2.rar
parte 2 (gas com arq.dbt)
(87.13 KiB) Baixado 426 vezes

Tenho a seguinte colocacos
1- no caso da tua funcao acho que se for .NSX deve ser DBT nao é ??

2- Fiz com a sua funcao e depois mudei, se for NSX usa DBT, mesmo assim da o mesmo erro do bendito .SMT
se vc compilar o anexo e compactar vai ver que o exigencia do SMT aparece na funcao USEARQ()

3- Como ja usava NSX no blinker, e continuo no Harbour teria mais alguma coisa para mudar na GASLIB
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Responder