Página 2 de 2

Enviado: 09 Abr 2006 16:31
por Hasse
Olá amigos.

Pelo que entendí o nossa amigo está com problema de formatação do
resultado na tela.
Existem várias maneiras de exibir o valor de uma váriável numérica
na tela, tanto com SAY quanto com GET.

1) com máscara fixa:
a := 55.678
b := STR(MyFunc(a),10,05)
@ x,y SAY b
===>> saída: [ 32.44300] && só para exemplo.


2) com máscara fixa:
a := 55.678
@ x,y SAY STR(MyFunc(a),10,05)
===>> saída: [ 32.44300] && só para exemplo.


3) com máscara fixa e com zeros à esquerda:
a := 55.678
b := STRZERO(MyFunc(a),10,05)
@ x,y SAY b
===>> saída: [0032.44300]


4) com máscara fixa e com zeros à esquerda:
a := 55.678
@ x,y SAY STRZERO(MyFunc(a),10,05)
===>> saída: [0032.44300]


5) com máscara variável:
a := 55.678
b := "99999.99999"
@ x,y SAY TRANSFORM(MyFunc(a),b)
===>> saída: [ 32.44300]


6) com máscara varável usando GET (ver NOTA abaixo)
a := 55.678
b := "99999.99999"
@ x,y GET a PICT b VALID MyFunc(a) WHEN .f.
===>> saída: [ 32.44300]

NOTA: A cláusula WHEN falsa evita o acesso do cursor aquele campo, mas
o valor é impresso na tela. Como não testei esta forma, é possível que
a Função não seja acessada quando a cláusula WHEN seja falsa, como é o
presente caso. É neccessário testar para ver no que dá.

Um grande abraço.

Enviado: 10 Abr 2006 00:17
por And
Para resolver:

**************************************
* TESTANDO SALDO DE GET
**************************************
LOCAL VN_TOTAL, VN_PAGO
PRIVATE VN_TROCO, VN_SALDO

CLS

VN_TOTAL := 0000000
VN_PAGO := 0000000
VN_TROCO := 0000000
VN_SALDO := 0000000

@ 10,10 SAY "TOTAL ...:" GET VN_TOTAL PICT "9999.99"
@ 12,10 SAY "PAGO ....:" GET VN_PAGO PICT "9999.99"
@ 14,10 SAY "TROCO ...:" GET VN_TROCO PICT "9999.99" WHEN(FUNCAO(VN_TOTAL,VN_PAGO))
@ 16,10 SAY "SALDO ...:" GET VN_SALDO PICT "9999.99" WHEN(SALDO(VN_TOTAL,VN_PAGO))
READ




FUNCTION FUNCAO(VN_TOTAL,VN_PAGO)

VN_TROCO := (VN_TOTAL-VN_PAGO)

RETURN(.F.)



FUNCTION SALDO(VN_TOTAL,VN_PAGO)

VN_SALDO := (VN_TOTAL-VN_PAGO)

RETURN(.T.)


Obs: Em caso de duvidas poste aqui.


:xau

Enviado: 10 Abr 2006 20:16
por support sistemas
Descupe, mais ainda nao entendi direito, se for o que estou pensando
de nao aceitar o saldo e so verificar se saldo e valido e trabalhar com o when

Pular o get

Enviado: 11 Abr 2006 09:32
por Josmar dos Santos
Ola Support Sistemas.
E identico que vc falow. Veja bem, quando a função e declarada na rotina do saldo_rec, ele executa a subtração e jogo o valor no mesmo, so não quero que o cursor acione o saldo, ou seja, jogue somente o valor da função e ja cadastra o valor no saldo_rec. Falo isso porque não quero o usuário tenha acesso nesse saldo_rec para não mudar o valor, porque uso essa variavel como determinante do setfilter...entendeu ?...Mas as informações que os colegas passaro -me , ja são excelentes. Da para trabalhar legal, mas e claro se vier mais, melhor. O conhecimento e a unica coisa que ninguem podera tirar de nos, portando se vc tiver mais alguma coisa a nos declarar, sera muito bem vinda !
grato Josmar

Enviado: 11 Abr 2006 09:44
por filizola
OLHEM O POST QUE EU HAVIA COLOCADO ANTEIORMENTE !!!!!!

@ lin,col get valor_rec pict "@ez 99,999.99" valid(IFU03011(valor_rec,@saldo_rec))

function ifu03011(valor_rec_f, saldo_rec_f)

saldo_rec_f=saldo_rec_f-valor_rec_f
@ lin,col say saldo_rec_f pict "@ez 99,999.99"
return(.t.)

Pular o get

Enviado: 12 Abr 2006 00:10
por Josmar dos Santos
Ola galera...testei todas as rotinas e praticamente todas funcionou, mas a que mais deu certo ao meu sistema foi do "and"....mas quero lembrar que todas as rotinas serao guardadas aqui comigo, porque todas sao super validas.....gostaria de agradecer a todos pela força e pela atenção e pra mim esse assunto esta encerrado, a menos, e claro que alguem queira proceguir com ele...valew mais uma vez galera......
Um abraço a todos...
josmar

Enviado: 16 Abr 2006 22:03
por support sistemas
Josmar descupe a demora no retorno


e isso mesmo que eu uso no valid eu chamo a funcao no get anterior e no get do saldo eu trato o when ex: se valor for =0 ele para senao foi


entendeu

uso isso direto
qual coisa mande email roberto_support@hotmail.com