Página 7 de 19

Convertendo Sistema do GASPRO para Harbour

Enviado: 13 Set 2012 17:49
por Toledo
Olá Jairo, segue em anexo o arquivo GASP40HB.PRG com as correções.

Incluir no XXX_PUBL.CH:
drvautohelp:=.t.
arq_:=""
Mou_Lin_S:= Mou_Col_S := Mou_Lin_I := Mou_Col_I := 0
Incluir no arquivo CH principal (NomeProjeto.ch):
#define opcoes_rel(l_m,c_m,op_rel,sos_cod,fil_ini) OPCOES_RHB(l_m,c_m,op_rel,sos_cod,fil_ini)
#command IMP_BRW( ) => IMP_BRWHB( )
#command MONTA_LIN(<qtlin_>,<qttab_>) => MONTA_LINHB(<qtlin_>,<qttab_>)

#command SET PRINTER TO <(file)> [<add: ADDITIVE>] => ;
Set_Printer( <(file)>, <.add.> )

Link para download da última versão do Gas4Harbour

Abraços,

Convertendo Sistema do GASPRO para Harbour

Enviado: 13 Set 2012 19:04
por Jairo Maia
Olá Toledo,

Ulalá.... Fantástico cara...

Show de bola... Quem sabe, sabe mesmo, e não se discute...

Todos os testes tanto em LPT e USB e também em impressora da rede funcionaram corretamente, quer seja para relatórios ou consultas.

Parabéns! Isto vai facilitar e muito quem for migrar sistemas construidos com o GASPRO e sem muita burrocracia.
:-Y :{

Convertendo Sistema do GASPRO para Harbour

Enviado: 13 Set 2012 20:01
por Toledo
Jairo, como já disse minha intensão é mexer o mínimo possível nos arquivos gerados pelo GAS, então se você ou algum dos amigos (Alexandre Silva, clipsis, bcm, etc) que estão a mais tempo nesta converção, possa relacionar as alterações que tiveram que fazer no código gerado pelo GAS para converter para o Harbour. Principalmente as alterações que podem se perder quando se gerar novamente o projeto no GAS. É claro, tirando estas alterações que eu já fiz no arquivo GASP40HB.

Abraços,

Convertendo Sistema do GASPRO para Harbour

Enviado: 13 Set 2012 23:14
por Jairo Maia
Legal Toledo,

Da minha parte, vou sim dedicar tempo para relacionar as alterações dos fontes que fiz, tentando seguir na mesma linha que você está seguindo, e assim que possível reporto.

Convertendo Sistema do GASPRO para Harbour

Enviado: 15 Set 2012 00:42
por Toledo
Amigos, montei um pequeno programinha para facilitar esta conversão de sistemas GASPRO40 para Harbour.

Com este programa não é necessário fazer qualquer alteração nos arquivos gerados pelo GASPRO40, basta apenas seguir estas instruções:

1 - Descompactar o arquivo em anexo dentro da pasta onde estão os arquivos (PRG,LNK,CH,etc) do programa gerado pelo GASPRO40.
2 - Copiar o arquivo GETSYS.PRG (que está na pasta C:\GASPRO40) também para a pasta do programa.
3 - Deletar os arquivos de índices dos arquivos de senhas (PWGRUPO1.NTX, PWTABEL1.NTX, PWUSUA1.NTX e PWUSUA2.NTX)

Feito isto, basta digitar: Gas4Harbour <NomedoArquivoLNK>

<NomedoArquivoLNK> = É o nome do arquivo LNK gerado pelo GASPRO40.

Obs.: é claro que o HARBOUR deve estar instalado e configurado, bem como o BCC55 ou MingW.

Bom, o que este programa faz é simplesmente montar o arquivo HBP e alterar os arquivos XXX.CH, XXX_PUBL.CH e XXX.PRG (arquivo fonte principal) com os comandos necessários para a conversão e depois fazer a compilação.

Espero que seja útil!

Link para download da última versão do Gas4Harbour

Abraços,

Convertendo Sistema do GASPRO para Harbour

Enviado: 15 Set 2012 09:02
por vailton
F A N T A S T I C O ! ! !
Parabens Toledo pela iniciativa, muito bom mesmo!

Convertendo Sistema do GASPRO para Harbour

Enviado: 15 Set 2012 09:43
por Toledo
Obrigado Vailton!

Existem ainda alguns comandos/funções gerados pelo GASPRO que ainda não foram convertidos no GASCOMP, mas conforme os amigos forem relatando os problemas, vamos tentando corrigir.

Abraços,

Convertendo Sistema do GASPRO para Harbour

Enviado: 15 Set 2012 10:16
por Jairo Maia
Olá Toledo,

Fiz algumas alterações no GasComp, e gostaria que você analizasse.

[Editado]

As alterações estão nas linhas 13, linhas 91 a 98, linha 113, linhas 137 a 181. Obrigado.

Convertendo Sistema do GASPRO para Harbour

Enviado: 15 Set 2012 14:43
por Toledo
Jairo, perfeito! Fiz também algumas alterações estruturais e segue em anexo uma nova versão do GASCOMP.

Falta agora resolver o problema do arquivo ERROS.DBF. Ví uma solução em um outro tópico aqui no fórum, mas o ideal seria conseguir decifrar como as funções ENCRIPT e DECRIPT do GAS funcionam.

Link para download da última versão do Gas4Harbour

Abraços,

Convertendo Sistema do GASPRO para Harbour

Enviado: 16 Set 2012 10:40
por Jairo Maia
Olá Toledo,

Foi necessário um pequeno ajuste novamente no GASCOMP, para corrigir um problema que não tinha visto antes, a saber: Quando ele faz os ajustes nos PRGs, ele altera também o GASCOMP.PRG distribuido no pacote. Peço desculpas e sua paciência.

Apenas acrescentei no laço FOR/NEXT que ajusta os PRGs, logo abaixo da linha que pega o nome do arquivo o seguinte:

Código: Selecionar todos

If Upper( cArquivo ) = "GASCOMP.PRG"
 Loop
Endi
Isso permite que o fonte do GASCOMP permaneça sempre intacto. Novamente, desculpe o inconveniente e conto com sua compreensão.

Quanto ao arquivo de erros, penso que a solução que você viu foi a questão de descriptografar o DBF de erros e depois criptografar com a nova função. Usei assim e substituo no cliente com o instalador, uma vez que sempre uso instalador nos meus sistemas para atualização no cliente.

Agora, se conseguir entender o funcionamento do DECRIPT e ENCRIPT dos GAS ficaria muito bom. Também vou tentar novamente isso e ver onde podemos chegar, pois seria muito legal resolver isso também, e de quebra, nem mesmo as senhas dos clientes se perderiam na mudança para Harbour.

Convertendo Sistema do GASPRO para Harbour

Enviado: 17 Set 2012 11:45
por Toledo
Jairo Maia escreveu:Apenas acrescentei no laço FOR/NEXT que ajusta os PRGs...
Bem lembrado Jairo, eu já atualizei minha cópia!

Olha, consegui decifrar em partes as funções DECRIPT e ENCRIPT, mas foi o suficiente para ler os arquivos de senha e o ERROS.DBF. Então estes dois problemas já foram resolvidos, tive apenas que deletar os arquivos NTX das senhas!

As funções DECRIPT e ENCRIPT, nos testes que eu fiz, estão funcionando 100% sem a utilização da senha (segundo parâmetro destas funções). Para descriptografar o arquivo ERROS.DBF, que usa uma senha, montei uma condição específica para a senha utilizada na criptografia. Se a senha passada para as funções for diferente da utilizada na encriptação do arquivo ERROS.DBF, é utilizado então a função alternativa CRIPTOGRAFA().

Bom, vou fazer mais algumas outras alterações em relação ao BACKUP/RESTAURA e depois posto uma nova atualização do GASCOMP.

Abraços,

Convertendo Sistema do GASPRO para Harbour

Enviado: 21 Set 2012 09:47
por clipsis
Olá e bom dia a todos

Primeiro obrigado e parabéns pela iniciativa.
Ajduará e muito quem quer "Converter" sistemas gerados pelo GasPro.

Gerei um sistema para testar tanto o GASCOMP como o GASPROHB.

Executei o GASCOMP e ele alterou os fonte e gerou o script para compilação corretamente. O estranho é que quando tentei executar o programa ele simplesmente volta ao prompt e não aparece a tela do programa.

O que fiz de errado ?

Abraços

Convertendo Sistema do GASPRO para Harbour

Enviado: 21 Set 2012 10:42
por Jairo Maia
Olá clipsis,
clipsis escreveu:simplesmente volta ao prompt e não aparece a tela do programa
Pois é... A razão eu também não consigo entender, e com sistemas gerados pelo GAS ainda não aconteceu comigo.

Porém, essa situação estranha me parece que é porque ele não lê a função Main(). Tente fazer o seguinte para ver se é isso:

1- Edite seu PRG principal e comente a linha Function Main()
2- Sem usar o GASCOMP, para que esta linha não seja reconstruída, compile assim: HBMK2 Nome_Arquivo.HBP. Veja se vai funcionar.

NOTA: Como você já leu, o GASCOMP ainda é versão Beta, então se você for usá-lo após essa alteração sem que tenha gerado os fontes novamente, descomente a linha Function Main(), se não, o GASCOMP duplica algumas informações no PRG principal.

[Editado]
Desculpe pessoal. Falei bobagem. O que coloquei em NOTA, ocorre somente se EXCLUIR a chamada ao arquivo hbgtinfo.ch.

Convertendo Sistema do GASPRO para Harbour

Enviado: 01 Out 2012 08:05
por clipsis
Olá Jairo Maia e a todos

Desculpe a demora na resposta mas esses dias foram de muito trabalho por aqui.

Fiz o que você mencionou sobre comentar a linha //Function Main(). Porém não resolveu.
Continua tendo o mesmo comportamento: Quando executo o programa ele simplesmente volta ao prompt e não aparece a tela do programa.

Alguém teria mais alguma sugestão ?

Vou fazer mais alguns testes se conseguir algum progresso posto aqui

Abraços

Convertendo Sistema do GASPRO para Harbour

Enviado: 03 Out 2012 12:01
por clipsis
Olá e bom dia a todos!

Consegue encontrar o problema de executar e voltar ao prompt.

O que estava ocasionando o problema era a linha:
REQUEST HB_GT_WVT_DEFAULT
Acontece que quandotiro essa linha o programa apresenta erro na linha:
HB_GtInfo( HB_GTI_ISFULLSCREEN, .T. )

Código: Selecionar todos

Erro irrecuperável 9003: Muitas chamadas recursivas ao manipulador de erros
Called from TYPE(0)
Called from ERROMSG(1074) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from DBOX(1657) in GASP40HB.PRG
Called from ERROMSG(1161) in GASP40HB.PRG
Called from (b)ERRORSYS(2457) in SIS_PROC.PRG
Called from MAIN(25) in SISBANHO.PRG
Comentando essas 2 linhas o programa executa normalmente.
Do restante parece estar tudo ok.

Abrãços