Página 1 de 1

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

Enviado: 02 Jun 2007 17:27
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

Enviado: 02 Jun 2007 18:12
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

Enviado: 04 Jun 2007 00:30
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

Enviado: 04 Jun 2007 21:51
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.

Enviado: 04 Jun 2007 21:52
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.

Enviado: 04 Jun 2007 22:07
por fladimir
Vlw Vagner, obrigado por mais esta dica... vou analisar e ver qual se encaixa melhor...


Sucesso a todos nós

:)Pos