Mudar INCLUDE ou RESOLUÇÃO Quantidade Fracionada...

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mudar INCLUDE ou RESOLUÇÃO Quantidade Fracionada...

Mensagem por fladimir »

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

Mensagem por Pablo César »

Fladimir,

Eu colocaria isto no seu SISGER.CH:

Código: Selecionar todos

#define cMascSaldec    "@E 999,999.999"
#define cMascSalint    "@E 999,999"
No PRG exemplo, note compo eu fiz:

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
READ
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
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mensagem por fladimir »

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
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Bom, se você quer fazer isto em tempo de compilação use.

Código: Selecionar todos

#ifdef INTEIRO
   cMaskSald:="@E 99,999,999"
#lese
   cMaskSald:="@E 99,999.999"
#endif
Para compilar passe a definição

CLIPPER FONTE.PRG -DINTEIRO para usar numeros inteiro ou simplesmente CLIPPER FONTE.PRG para usar numeros fracionados.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Bom, se você quer fazer isto em tempo de compilação use.

Código: Selecionar todos

#ifdef INTEIRO
   cMaskSald:="@E 99,999,999"
#lese
   cMaskSald:="@E 99,999.999"
#endif
Para compilar passe a definição

CLIPPER FONTE.PRG -DINTEIRO para usar numeros inteiro ou simplesmente CLIPPER FONTE.PRG para usar numeros fracionados.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mensagem por fladimir »

Vlw Vagner, obrigado por mais esta dica... vou analisar e ver qual se encaixa melhor...


Sucesso a todos nós

:)Pos
Responder