Olá colegas programadores.... minha questão é a seguinte: possuo em meu sistema, qdo quero informar a máscara de um campo meu chamado Saldo, da seguinte forma:
#include "sisger.ch"
.
.
.
.
@ 10,05 SAY "Saldo: " GET cSaldo PICTURE cMascSald
// Onde cMascSald esta declarado no SISGER.CH como
// #define cMascSald "@E 999,999"
A questão é a seguinte tenho o sistema rodando em alguns clientes normalmente... O q ocorre é q agora um novo cliente no qual coloquei um demo do sistema gostou só q pediu uma alteração pq ele trabalha com quantidades fracionadas e eu cabeçudo ao invés de prever isto desenvolvi todo meu sistema para trabalhar com valores inteiros através da máscara cMascSald.
Meu sistema tem uma opção onde coloco os parametros do sistema... estava pensando em colocar um parametro para não afetar os outros clientes onde fosse escolhido se iria trabalhar com quantidades inteiras ou fracionadas, e escolhendo Fracionadas mudasse todo o sistema...
Tentei utilizar a diretiva #ifdef no início dos prgs para q se o parametro do sistema estiver configurado para Fracionada mude a máscara para:
cMascSald "@E 999,999.999"
Mas não consegui... alguém tem alguma idéia de como poderia resolver esta questão....
Agredeço desde já a pronta atenção dispensada, Sucesso a todos....
:xau
Mudar INCLUDE ou RESOLUÇÃO Quantidade Fracionada...
Moderador: Moderadores
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Fladimir,
Eu colocaria isto no seu SISGER.CH:
No PRG exemplo, note compo eu fiz:
Agora se quiser editar o seu GET numérico de forma que alinhe de direita para esquerda na casa inteira e só se posiciona na casa decimal, só quando pressiona-se o ponto ou vírgula: daí eu apontaria para você tuilizar o GETSYS.PRG aperfeiçoado pelo colega Daniel, segue abaixo:
https://pctoledo.org/forum/viewto ... nhar#23499
Daí é só compilar o GETSYS.PRG acima indicado junto com o seu sistema.
Um clip-abraço :)Pos
Eu colocaria isto no seu SISGER.CH:
Código: Selecionar todos
#define cMascSaldec "@E 999,999.999"
#define cMascSalint "@E 999,999"Código: Selecionar todos
#include "sisger.ch"
IF FILE("DECIMAL.SYS")
cMascSald:=cMascSaldec
ELSE
cMascSald:=cMascSalint
ENDIF
var1:=0
cls
@ 12,00 GET VAR1 PICT cMascSald
READhttps://pctoledo.org/forum/viewto ... nhar#23499
Daí é só compilar o GETSYS.PRG acima indicado junto com o seu sistema.
Um clip-abraço :)Pos
Obrigado Pablo por vossa aten??o, desculpe estar tomando vosso tempo, mas rapaz achei muito legal a forma como vc resolveu o problema, ? uma forma simples objetiva e vou testar mas assim de olho acredito q vai resolver tranquilo.... ? impressionante como as vezes conseguimos resolver coisas que para n?s s?o aparentemente t?o complexas, talvez pela ?tica aplicada, e para outras pessoas t?o simples.... Vlw mesmo vou testar e depois posto os coment?rios... s? vou demorar um pouco pois vou viajar e volto em 3 dias...
Obrigado... Sucesso a todos n?s... :)Pos
Obrigado... Sucesso a todos n?s... :)Pos
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Bom, se você quer fazer isto em tempo de compilação use.
Para compilar passe a definição
CLIPPER FONTE.PRG -DINTEIRO para usar numeros inteiro ou simplesmente CLIPPER FONTE.PRG para usar numeros fracionados.
Código: Selecionar todos
#ifdef INTEIRO
cMaskSald:="@E 99,999,999"
#lese
cMaskSald:="@E 99,999.999"
#endif
CLIPPER FONTE.PRG -DINTEIRO para usar numeros inteiro ou simplesmente CLIPPER FONTE.PRG para usar numeros fracionados.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Bom, se você quer fazer isto em tempo de compilação use.
Para compilar passe a definição
CLIPPER FONTE.PRG -DINTEIRO para usar numeros inteiro ou simplesmente CLIPPER FONTE.PRG para usar numeros fracionados.
Código: Selecionar todos
#ifdef INTEIRO
cMaskSald:="@E 99,999,999"
#lese
cMaskSald:="@E 99,999.999"
#endif
CLIPPER FONTE.PRG -DINTEIRO para usar numeros inteiro ou simplesmente CLIPPER FONTE.PRG para usar numeros fracionados.
