Alguns ajustes em sistema Gaspro convertido

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

Moderador: Moderadores

marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Boa tarde.

Estou convertendo um sistema gerado em Gaspro4.0o e clipper 5.2e. Estou encontrando os seguintes problemas:

1 - Conforme orientação deste fórum, incluí no arquivo MeuProjeto.CH a linha abaixo (onde Meuprojeto é o nome do projeto em questão):
#define drvautohelp .f.
Resolveu o problema do erro em tempo de execução, mas o recurso de autoajuda não funciona mais. Mesmo que eu defina tal variável com o valor lógio .t. não habilita tal recurso.

2 - Antes da conversão, nas telas de cadastramento de dados, quando um campo do tipo CARACTER tinha a máscara 999 o tamanho do campo era ajustado com zeros à esquerda sempre que o conteúdo digitado era menor do que a largura do campo. Ou seja, se digtado "1" numa largura igual a 3 resultaria "001". Após a conversão não funcino mais, ou seja, digitando-es "1" resulta-se "1 ".

3 - A tecla F8, utilizada para comandos especiais (tipo abrir uma tela com dados de outro registo) não funciona (ao teclar, não acontece nada).

4 - Toda tela que tem campo ou variável com pré-validação dá o seguinte erro em tempo de execução:
Erro Base/1066 variável/função conditional.
Mesmo testando com qualquer função boba, tipo "1>0" (que daria verdadeiro) dá o erro. Ao tirar a pré-validação fica normal, mas prejudica o andamento da rotina.

5 - As "fórmulas e campos externos" definidas em todas as telas só aparecem na Manutenção. Na inclusão, não aparecem.

Compilei o projeto com o HMG 3.0.35.

Alguma resolução para os problemas acima?

Desculpem se já foi relatado no fórum algumas das soluções, mas pesquisei e não encontrei.

Agradeço antecipadamente a atenção dos colegas.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Alguns ajustes em sistema Gaspro convertido

Mensagem por Jairo Maia »

Olá Marrari,

Quanto a voltar a funcionar o help de campo, você precisa copiar o arquivo GETSYS.PRG que fica na pasta principal do GASPRO. É ele que controla o help de campo, assim como o preenchimento de zeros a esquerda no caso de campo numeral (não numérico).

Além de copiar este arquivo para a pasta de cada projeto, você precisa acrescentá-lo em seu script de compilação, pois se você não o faz, o Harbour assume o arquivo padrão.

Já sobre o erro de pré-validação, esse não tenho idéia. O que sei é que as pre-validações são definidas no arquivo ???_ATRI.PRG. Assim, se você faz uma chamada num campo e estiver vazio a referência para ele, ocasiona este erro.

Primeiro insira o arquivo GETSYS.PRG e faça uma compilação usando o -rebuild. Veja quais problemas resolvem. Se persistir o erro de pré, tente dar mais detalhes.

NOTA: remova a linha #define drvautohelp := .f.. Onde você encontrou essa dica? Pergunto porque estou achando estranho.
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)
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Bom dia Jairo.

BINGO!!!

Você acertou na mosca. Todos os problemas relatados foram resolvidos com sua dica. Agradeço sua atenção e prontidão em ajudar os colegas menos experientes. Quanto à dica que mencionei sobre o #define, está no tópico abaixo, mas com valor .t. (diferente do que informei anteriormente... pelo menos entendi dessa forma. Se não for, desuculpe seu colega inexperiente).

viewtopic.php?f=4&t=11923&p=68266&hilit=drvautohelp#p68266

Mais uma vez, muito obrigado.

Um abraço.
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Jairo,

Ainda contiuno com problema na variável drvautohelp. Fiz como você orientou. Ao entrar no sistema pela primeira vez, tudo funciona normalmente. Mas depois, ele grava alguns parâmetros num arquivo de extensão SYS. Aí, se entrar na opção Configura Ambiente, já dá erro nessa variável. Tem como resolver?

Obrigado mais uma vez pela atenção.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Alguns ajustes em sistema Gaspro convertido

Mensagem por Jairo Maia »

Olá Marrari,

Primeiro, endenda porque isso acontece:
As funções MVSAVE() e MVRESTORE() foram mantidas no Harbour para compatibilidade. Ocorre que estas funções gravam somente os primeiros 10 caracteres da variável, assim como no Clipper, porém, o harbour lê variáveis com mais de 10 caracteres.

Assim, quando é salva a variavel drvautohelp, ela é salva como "drvautohel", e ao restaurar o arquivo de memória, ocorre o erro de variável não existente.

Você tem duas opções:
Substituir as chamadas pela do harbour, a saber: HB_MVSAVE() e HB_MVRESTORE(). Porém, num sistema gerado pelo GASPRO, seria complicado, além de não poder ler consultas gravadas.

A outra, que acho mais fácil, é vc editar seu arquivo "nome_do_projeto.ch", e inserir nele uma cláusula define:
#define drvautohelp drvautohel
Faça uma compilação geral (rebuild), para que todos PRGs assumam a nova definição.

Creio que se vc testar a abertura de consulta gravada, também ocorrerá um erro. Se vc ainda não fez a correção da variável ind_ord=db_&pas.ind_ord, leia o post do colega Alexandre Silva, que é o post acima do post que vc publicou o link mais acima.

Qualquer dúvida volte a publicar. Podendo, vamos tentando ajudar.
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)
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Jairo,

Agradeço a paciência. Então, vamos abusando... fiz como você relatou, e no arquivo SYS de fato agora é gravado com nome drvautohel (sem o p). Não dá mais erro, mas também não aparce mais a autoajuda, mesmo setando corretamente no menu de configurações. Talvez eu não esteja fazendo a compilação com o rebuild corretamente. Estou usando o HMG 3.0.35...onde coloco essa opção? Eu estou apagano a pasta .hbmk, mas não dá dando resultado.

Agradeço novamente a paceiência.

Marcelo.
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á

Alguns ajustes em sistema Gaspro convertido

Mensagem por Pablo César »

Estou usando o HMG 3.0.35...onde coloco essa opção?
Qual opção ?
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
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Alguns ajustes em sistema Gaspro convertido

Mensagem por Jairo Maia »

Pablo César escreveu:Qual opção ?
Pablo, é que pedi para ele compilar com a opção -rebuild. Ele quer saber como faz isso usando a HMG.

Marrari,
Eu não uso a HMG por enquanto, conheço pouco dela, mas quando você exclui a pasta .hbmk, o efeito é o mesmo.

As teclas ALT+F1 funciona como uma chave de liga-desliga do help de campo. Pressione ALT+F1, e veja se o help aparece. Se ele aparecer, tente apagar o arquivo .SYS, e abrir seu sistema. Ele será criado com as configurações padrão que você definiu.

Se o help não aparecer, você term que verificar seu código, pois em algum lugar o help está sendo desabilitado. Tem como forçar a habilitação permanente, mas antes, veja se você acha onde ele está sendo desabilitado, fora da opção de configuração de ambiente.
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
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á

Alguns ajustes em sistema Gaspro convertido

Mensagem por Pablo César »

Pablo, é que pedi para ele compilar com a opção -rebuild. Ele quer saber como faz isso usando a HMG.
É só clicar no executar ou run (se estiver em inglês) no botão da IDE ou pressionar F5. Mas isso já deve ter feito. O que cabe é saber qual das medidas que você indicou, ele tomou.
A outra, que acho mais fácil, é vc editar seu arquivo "nome_do_projeto.ch", e inserir nele uma cláusula define:
#define drvautohelp drvautohel
Faça uma compilação geral (rebuild), para que todos PRGs assumam a nova definição.
Se for esta, ele irá precisar criar o arquivo .ch e reditar TODOS os prgs que utiliza tais instruções e compilar. Acho que o erro delem está aí.
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
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Alguns ajustes em sistema Gaspro convertido

Mensagem por Jairo Maia »

Pablo César escreveu:Se for esta, ele irá precisar criar o arquivo .ch e reditar TODOS os prgs que utiliza tais instruções e compilar. Acho que o erro delem está aí.
Não Mestre. Ele não precisa editar nenhum .PRG

Quando o GASPRO gera os fontes de um projeto que ele definiu como VENDAS por exemplo, em cada arquivo .PRG já consta a chamada para o arquivo que ele próprio cria chamado "vendas.ch".

Assim, se ele definir uma constante manifesta nesse arquivo, tipo: #define drvautohelp drvautohel, todas as variáveis drvautohelp serão compiladas como drvautohel.

Ocorre que para que tenha efeito, é necessário fazer uma compilação global usando a opção -rebuild. Isso ele fez apagando a pasta .hbmk que tem o mesmo efeito.

O erro de "variável não existe" foi solucionado, mas creio que em algum lugar o autohelp do sistema está sendo desabilitado, por isso pedi para ele testar com as teclas ALT+F1.
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
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á

Alguns ajustes em sistema Gaspro convertido

Mensagem por Pablo César »

Ele não precisa editar nenhum .PRG
Ahhh sim lembrei agora, sorry. Mas convenhamos que a instrução do include .ch tem que estar em TODOS os prgs, certo ?
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.
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Colegas,

Revisando o programa GETSYS.PRG que copiei da pasta do Gaspro para dentro da pasta de meu projeto, observei que a linha 66 (listada abaixo) não estava sendo interpretada corretamente:

drvautohelp=IF(TYPE("drvautohelp")!="L",.f.,drvautohelp)

Provavelmente devido a variável drvautohelp estar entre aspas. A constante definida então no arquivo "MeuProjeto.ch" não estava fazendo efeito. Como esse programa não será regerado pelo gaspro quando precisar, então troquei no mesmo toda a variável "drvautohelp" por "drvautohel". Pelos teste executados até agora, a função de autoajuda está funcionando perfeitamente.

Agradeço o esforço em ajudar e fico contente se minha dica ajudar também.

Um abraço.

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

Alguns ajustes em sistema Gaspro convertido

Mensagem por Jairo Maia »

Olá Marrari,

Poxa vida cara... BINGO!

Você tem toda razão. Verifiquei nos arquivos GETSYS dos sistemas que migrei, e já está com esta alteração. Mas não me lenbrei mesmo.

PARABÉNS por ter encontrado onde estava o problema.

Uma definição de "Constante manifesta", atua somente sobre código literal. No caso, o compilador entende esta situação como string, então não altera. Assim, "drvautohelp" sempre retornava "U", por isso não exibia o Auto help.

NOTA: Não sei se você concorda, e não sei a opinião dos moderadores, mas acho que este tópico poderia ser adicionado ao tópico "Convertendo Sistema do GASPRO para HARBOUR", pois acho que esta sua dica enriqueceria muito aquele tópico.
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)
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Sem problemas Jairo. Por mim tudo bem, o importante é ajudar.

Um abraço e obrigado pelos elogios.
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Alguns ajustes em sistema Gaspro convertido

Mensagem por marrari »

Colegas,

Alguém tem os códigos das rotinas FILEATTRIB, RWRITE, SETRHS que se encontram no LIBGAS.PRG? É que uso uma função que chama essas rotinas, mas no LIBGAS.PRG as mesmas não são tratadas. Aproveito para perguntar se existe alguma forma de abir o essas LIB's do GAS para poder copiar as funções contidas nela.

Obrigado pela atenção.

Marcelo.
Responder