Convertendo Sistema do GASPRO para Harbour

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

Convertendo Sistema do GASPRO para Harbour

Mensagem por marrari »

Colegas Toledo e jairo,

Acho que achei o problema, mas ainda não achei a solução. Mensagem de erro não dá nenhuma, mas o problema é quando o índice tem campo numérico. No gas, quanto tem campo numérico é usado a função STR no índice. Ou seja, se for usar a função DESCEND() no campo numérico "num" com tamanho 3 (no exemplo aqui sem casas decimais), ficaria assim: DESCEND(STR(num,3,0)). Funciona certinho no Gas, mas quando converte pro Harbour, não. Experimente fazer uma ordenação em uma consulta que tem campo numérico usando a forma decrescente e verão que não funciona.

Estou tentando contornar, se conseguirem achar a solução, agradeço se postarem.
marrari
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 24 Fev 2005 10:56

Convertendo Sistema do GASPRO para Harbour

Mensagem por marrari »

Colegas,

Como relatei na mensagem anterior, acredito que a forma como o Gas trata os índices decrescentes com chaves numéricas utilizando as funções DESCEND() e STR() não tem o efeito esperado no Harbour. Consegui contornar a situação da seguinte maneira:

1-Em todos os programas com índices numéricos decrescentes, incorporei a função STRTRAN() na chave:

DESCEND(STR(var_num,[<ntamanho>],[<ndecimais>])) // padrão do Gás

Subsitituir por

DESCEND(STRTRAN(STR(var_num,[<ntamanho>],[<ndecimais>]),’ ‘,’0’))

Explicando: Como o Harbour não está conseguindo tratar os espaços em branco gerados pela função STR(), substituímos então os mesmos espaços por zero. Aí ele consegue fazer a ordenação corretamente.

2-Na função TRANSCAMPO(), no programa XXX_FUN2 (XXX=três primeiras letras de seu programa principal), algumas linhas tem que ser alteradas para se funcionar corretamente a ordenação nas telas de consulta, quando utilizamos a opção de ORDENAÇÃO DESCRECENTE. São elas:

cp_=STR(&chv_.)
substituir por
cp_=STRTRAN(STR(&chv_.),' ','0')

cp_=STR(&chv_.,estr_dbf[indcp_,3],estr_dbf[indcp_,4])
substiruir por
cp_=STRTRAN(STR(&chv_.,estr_dbf[indcp_,3],estr_dbf[indcp_,4]),' ','0')

cp_="STR("+chv_+")"
substituir por
cp_="STRTRAN(STR("+chv_+"),' ','0')"

cp_="STR("+chv_+","+LPAD(estr_dbf[indcp_,3],2,"0")+","+LPAD(estr_dbf[indcp_,4],2,"0")+")"
substituir por
cp_="STRTRAN(STR("+chv_+","+LPAD(estr_dbf[indcp_,3],2,"0")+","+LPAD(estr_dbf[indcp_,4],2,"0")+"),' ','0')"

Colega Toledo, se quiser atualizar o conversor GAS4HARBOUR com o passo 2, fique à vontade. Nossa comunidade agradece.

Espero ter contribuído com esse fórum, o qual me serve como referência pela qualidade quando tenho minhas dúvidas.
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á Marrari,

Acabei por acaso descobrindo algo interessante. Como você disse, em Clipper funciona ok a função Descend() junto com a Str(), mas no harbour ao usar a função Descend() num campo numérico, somente ficará correta a ordem se não usar a função Str().

Abra uma tabela que tenha campo numérico, e ao invés de deixar o Gas montar a tabela, use o Critério Livre, e digite:

Código: Selecionar todos

Descend( variavel_numerica )
Veja que sem o Str() a ordenação fica ok.
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
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Convertendo Sistema do GASPRO para Harbour

Mensagem por Toledo »

Olá Marrari, esta semana não vou ter tempo, pois estarei em suporte em um cliente em Campinas, mas quando voltar eu faço testes e atualizou o Gas4Harbour.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
vagnerbauru
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 20 Ago 2013 22:50
Localização: Bauru/SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por vagnerbauru »

Caros colegas... preciso de uma ajudinha de vocês...

criei uma função que de qualquer estado do programa eu aperto "ALT+P" abre a função edita e consulta produtos, nessa consulta abre somente as colunas "Descrição" e "Preço Unitário".

Gostaria que nessa consulta, não funcionasse as teclas de rotinas "P - Procura, F - Filtragem e etc. e também não aparece-se a tecla F10 no final da tela" só a função pesquisa, ou seja, assim que o usuário digitasse já iria no registro, igual a função VDBF.

Espero que tenha me entendido!!

OBRIGADO!!!
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á Vagner,

Seja bem vindo ao fórum.

Poste o código da sua função que é chamada por ALT+P para que possamos entender o que ela faz.

Desabilitar as funções de pesquisa requer mudança na função EDIT() e também na função BROWSE(). Talvez será mais fácil orientar você montar uma função independente para o que você quer.
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)
vagnerbauru
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 20 Ago 2013 22:50
Localização: Bauru/SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por vagnerbauru »

É bem simples....

Código: Selecionar todos

Procedure CONS_PROD
   pcam:={"p_desc","p_pvend"}
   pnomt:={"Descrição do Produto","Preço Unitário"}
   ltoc:="p_desc"
   lini:="FDMERVNAIOQGCTJX"
   op_sis=EVAL(qualsis,"PRODUTOS")
   USEARQ(sistema[op_sis,O_ARQUI,O_NOME])
   edita(3,3,maxrow()-2,77,lini,pcam,pnomt, ,ltoc)
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á Vagner,

Nesse caso, você precisará fazer algumas alterações na função MONTABRW(), que fica no arquivo xxx_FUNC.PRG. Veja que se necessário futuramente recriar os fontes, lembre-se de refazer as alterações.

Para ficar como você quer sugiro o seguinte:

1 - No arquivo xxx_publ.ch crie a seguinte variavel com valor .T.:

Código: Selecionar todos

lMostraRodapeBrw := .T.
2 - Altere sua função CONS_PROD() desta forma:

Código: Selecionar todos

Procedure CONS_PROD
   lMostraRodapeBrw := .F.  // não mostrar o rodapé na BRWFUNC()
   pcam:={"p_desc","p_pvend"}
   pnomt:={"Descrição do Produto","Preço Unitário"}
   ltoc:="p_desc"
   lini:="FDMERVNAIOQGCTJX"
   op_sis=EVAL(qualsis,"PRODUTOS")
   USEARQ(sistema[op_sis,O_ARQUI,O_NOME])
   edita(3,3,maxrow()-2,77,lini,pcam,pnomt, ,ltoc)
   lMostraRodapeBrw := .T.  // passar a mostrar o rodapé na BRWFUNC()
3 - Substitua a função MONTABRW() do arquivo xxx_FUNC.PRG pela que coloquei em anexo. Veja as condicionais referentes a variável lMostraRodapeBrw para ver as alterações.

Nota: Veja que é uma função STATIC, então tem que colocar no mesmo arquivo que ela está hoje, ou seja, o arquivo xxx_FUNC.PRG.
Anexos
MontaBrw.Prg
(2.01 KiB) Baixado 457 vezes
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)
vagnerbauru
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 20 Ago 2013 22:50
Localização: Bauru/SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por vagnerbauru »

Boa tarde Jairo, obrigado pela ajuda....

e pra consulta ficar sempre "{Procura}" no VDBF fica sempre lógico ".T." e nessa função, tem como ?

Obrigado!!!
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á Vagner,
vagnerbauru escreveu:e pra consulta ficar sempre "{Procura}" no VDBF fica sempre lógico ".T." e nessa função, tem como ?
Vagner, confesso que não entendi. Tente explicar melhor o que você quer.
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)
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.

Converti meu sistema gaspro40 para harbour, mais estou com o seguinte problema:
eu utilizo uma impressora hp deskjet D1460, quando imprimo um relatorio que estava comprimido, está imprimindo em modo normal.
Alguem poderia me enviar os comandos para imprimir em comprimido, negrito, italico, etc..Já procurei e não encontrei

um abraço
Moralles
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 16 Set 2013 17:48
Localização: Indaiatuba/SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por Moralles »

Amigos,
Como fazer para que as telas após conversão para o Harbour através Gas4harbour fiquem exatamente como eram no Gaspro40 ?.
Grato,
Moralles
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 »

Moralles, explique melhor. Mostre alguma figura exemplo para a gente entender...
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.
Moralles
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 16 Set 2013 17:48
Localização: Indaiatuba/SP

Convertendo Sistema do GASPRO para Harbour

Mensagem por Moralles »

Olá Pablo Cesar,
As letras ficam sem brilho, diferente das telas do sistema convertido. Quando converto os programas Clipper não Gas as telas ficam exatamente iguais ao original, o que não ocorre quando converto programas do Gaspro40.
É necessário alguma intervenção nos programas a serem convertidos, ou uso de de alguma outra versão do Harbour ?. Uso Harbour 3.0.0. programa Gas4harbour.prg de 14/09/12.
Grato por sua atenção.
Moralles
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 »

Poderias mostrar algumas telas capturadas ?
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.
Responder