Login
Buscar
Quem está conectado
Há 6 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 6 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 71 em 19/7/2010, 11:47
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| marcelofazan | ||||
| mfelis | ||||
| cabeludo | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| marcio |
Contagem Regressiva em tela de login
16/7/2010, 11:10 por Linghston
Ola amigos, esta é minha primeira participação neste forum e espero poder encontar aqui ajuda para ...
Comentários: 15
Estatísticas
Temos 926 usuários registradosO último usuário registrado atende pelo nome de Maria Tognetti
Os nossos membros postaram um total de 8596 mensagens em 1239 assuntos
Recibo
Página 1 de 1 • Compartilhe •
Recibo
Boa tarde Amigos(as)
Por favor alguem teria a rotina pra fazer a emissao de recibo que escreve por extenso o valor.
Fico no aguardo
Atenciosamente
Clodoaldo Cardoso de Oliveira
VFP 5.0
Por favor alguem teria a rotina pra fazer a emissao de recibo que escreve por extenso o valor.
Fico no aguardo
Atenciosamente
Clodoaldo Cardoso de Oliveira
VFP 5.0
ClodoaldoOliveira- Começando a Participar

Re: Recibo
Clodoaldo
Veja esse tópico que postei tem uma funça para escrever o valor por extenso.
[Você precisa estar registrado e conectado para ver este link.]
Veja esse tópico que postei tem uma funça para escrever o valor por extenso.
[Você precisa estar registrado e conectado para ver este link.]
Nelson Arcas- Participa Bastante

Ta pronto o recibo
Segue o codigo de como fazer o recibo por extenso, usando a funcao do Nelson Arcas, so acho que da para melhorar.
So quero receber a grana do recibo
Clodoaldo vc tem msn?
So quero receber a grana do recibo
- Código:
Set Safety Off
=valor_extenso(2452.34)
wre=valor_extenso(2452.34)
Create Cursor Tabla1 (Txt C(78))
Insert Into Tabla1 Values ("RECIBO ")
Insert Into Tabla1 Values ("======== ")
Insert Into Tabla1 Values ("Valor R$ 2,452.34")
Insert Into Tabla1 Values (wre)
Insert Into Tabla1 Values ("EU CLODOALDO fiz este Report sem abrir o FOX PRO, e mereco receber, esta grana ")
Insert Into Tabla1 Values ("Sao Paulo, 31/2/2010 ")
Insert Into Tabla1 Values (" ")
Insert Into Tabla1 Values ("======== ")
Create Report Reporte1 From Tabla1
Report Form Reporte1 Preview Nowait
FUNCTION valor_extenso
lPARAMETERS pvalor
local vextenso, flagbilhao, flagmilhao,flagcentavos
DIMENSION unidade[10], dez[10], dezena[10], centena[11]
STORE .F. TO flagbilhao,flagmilhao,flagcentavos
unidade[1] = ""
unidade[2] = "Um "
unidade[3] = "Dois "
unidade[4] = "Três "
unidade[5] = "Quatro "
unidade[6] = "Cinco "
unidade[7] = "Seis "
unidade[8] = "Sete "
unidade[9] = "Oito "
unidade[10] = "Nove "
dez[1] = "Dez "
dez[2] = "Onze "
dez[3] = "Doze "
dez[4] = "Treze "
dez[5] = "Quatorze "
dez[6] = "Quinze "
dez[7] = "Dezesseis "
dez[8] = "Dezessete "
dez[9] = "Dezoito "
dez[10] = "Dezenove "
dezena[1] = ""
dezena[2] = "Dez "
dezena[3] = "Vinte "
dezena[4] = "Trinta "
dezena[5] = "Quarenta "
dezena[6] = "Cinqüenta "
dezena[7] = "Sessenta "
dezena[8] = "Setenta "
dezena[9] = "Oitenta "
dezena[10] = "Noventa "
centena[1] = ""
centena[2] = "Cento "
centena[3] = "Duzentos "
centena[4] = "Trezentos "
centena[5] = "Quatrocentos "
centena[6] = "Quinhentos "
centena[7] = "Seiscentos "
centena[8] = "Setecentos "
centena[9] = "Oitocentos "
centena[10] = "Novecentos "
centena[11] = "Cem "
valorstr = STR(INT(pvalor * 100),14,0)
vextenso = " "
FOR i=1 TO 14
IF SUBSTR(valorstr,i,1) != " "
num = VAL(SUBSTR(valorstr,i,1))
DO CASE
* --- Bilhao
CASE i = 1
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = centena[11]
ELSE
vextenso = centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
flagbilhao = .T.
CASE i = 2
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
flagbilhao = .T.
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Bilhões" + IIF(VAL(SUBSTR(valorstr,4))>0,", "," ")
ENDIF
CASE i = 3
IF !(flagbilhao)
flagbilhao = IIF(num>1,.T.,.F.)
ENDIF
vextenso = vextenso + unidade[Num+1] + IIF(flagbilhao,"Bilhões","Bilhão") + IIF(VAL(SUBSTR(valorstr,4))>0,", "," ")
*---- Milhao
CASE i = 4
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = vextenso + centena[11]
ELSE
vextenso = vextenso + centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
flagmilhao = .T.
CASE i = 5
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
flagmilhao = .T.
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Milhões" + IIF(VAL(SUBSTR(valorstr,7))>0,", "," ")
ENDIF
CASE i = 6
IF !(flagmilhao)
flagmilhao = IIF(num>1,.T.,.F.)
ENDIF
vextenso = vextenso + unidade[Num+1] + IIF(flagmilhao,"Milhões","Milhão") + IIF(VAL(SUBSTR(valorstr,7))>0,", "," ")
*--- MILHAR
CASE i = 7
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = vextenso + centena[11]
ELSE
vextenso = vextenso + centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
CASE i = 8
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Mil" + IIF(VAL(SUBSTR(valorstr,10))>0,", "," ")
ENDIF
CASE i = 9
vextenso = vextenso + unidade[Num+1] + "Mil" + IIF(VAL(SUBSTR(valorstr,10))>0,", "," ")
*--- Reais
CASE i = 10
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = vextenso + centena[11]
ELSE
vextenso = vextenso + centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
CASE i = 11
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Reais" + IIF(VAL(SUBSTR(valorstr,13))>0," e "," ")
ENDIF
CASE i = 12
vextenso=vextenso+unidade[Num+1]+ IIF(EMPTY(vextenso) AND num=1,"Real","Reais") +IIF(VAL(SUBSTR(valorstr,13))>0," e "," ")
*---- CENTAVOS
CASE i = 13
IF num != 1
vextenso = vextenso + dezena[Num+1]
flagcentavos = IIF(num>1,.T.,.F.)
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Centavos"
flagcentavos = .T.
ENDIF
CASE i = 14
IF !(flagcentavos)
flagcentavos = IIF(num>1,.T.,.F.)
ENDIF
IF flagcentavos
vextenso = vextenso + unidade[Num+1] + IIF(flagcentavos,"Centavos","")
ELSE
IF num>0
vextenso = vextenso + unidade[Num+1] + "Centavo"
ENDIF
ENDIF
ENDCASE
ENDIF
ENDFOR
WAIT WINDOW 'vc digitou 2452.34 '+ALLTRIM(vextenso) TIMEOUT 0.2
RETURN ALLTRIM(vextenso)
***********************************
Clodoaldo vc tem msn?
alceu11- Participante Assíduo

Re: Recibo
boa em nelson e alceu
parabens parceiros!
parabens parceiros!
_________________
A lingua é o chicote do corpo! Minhas feridas ainda doem!

hugo- Usuário 5 Estrelas

Re: Recibo
Mais uma function aí....
PS: Marcos Guedes, peço por favor que edite essa minha postagem e coloque dentro de um quadro, como a do Alceu. E depois me explique como faço pra postar direto dessa forma.
Muito grato
- Código:
function EXTENSO
LPARAMETERS numero
LOCAL LINHA1,LINHA2,vlc_item,vtexto,vtextoi
n01='UM '
n02='DOIS '
n03='TRES '
n04='QUATRO '
n05='CINCO '
n06='SEIS '
n07='SETE '
n08='OITO '
n09='NOVE '
n00=' '
n10='DEZ '
n11='ONZE '
n12='DOZE '
n13='TREZE '
n14='QUATORZE '
n15='QUINZE '
n16='DEZESSEIS '
n17='DEZESSETE '
n18='DEZOITO'
n19='DEZENOVE '
n20='VINTE '
n30='TRINTA '
n40='QUARENTA '
n50='CINQUENTA '
n60='SESSENTA '
n70='SETENTA '
n80='OITENTA '
n90='NOVENTA '
n000=' '
n100='CENTO '
n200='DUZENTOS '
n300='TREZENTOS '
n400='QUATROCENTOS '
n500='QUINHENTOS '
n600='SEISCENTOS '
n700='SETECENTOS '
n800='OITOCENTOS '
n900='NOVECENTOS '
mil='MIL '
milhao='MILHAO '
milhoes='MILHOES'
moeda='REAIS '
moeda1='REAL '
centavo='CENTAVO '
centavos='CENTAVOS '
if numero = 0
return
endif
numero1=str(numero,13,2)
cents=str((numero - int(numero)) * 100,2)
numero=int(numero)
contador=1
p1=substr(numero1,2,3)
p2=substr(numero1,5,3)
p3=substr(numero1,8,3)
p4=cents
texto1= ''
texto2= ''
texto3= ''
texto4= ''
linha1= ''
linha2= ''
linha3= ''
if val(p1) > 0
status1=iif(val(p1) > 1,'2','1')
else
status1= ' '
endif
do while contador <=4
vlc_item=str(contador,1)
grupo='P'+str(contador,1)
extenso=iif(&grupo='000','',ltrim(&grupo))
do case
case len(extenso)=3
if extenso = '100'
vtexto="texto"+vlc_item
&vtexto=&vtexto+'CEM '
contador=contador+1
loop
endif
if right(extenso,2)='00'
tab='N'+substr(extenso,1,1) + '00'
vtexto="texto"+vlc_item
&vtexto=&vtexto+&tab
contador=contador+1
loop
endif
tab='N'+left(extenso,1)+'00'
vtexto="texto"+vlc_item
&vtexto=&tab+ 'E '
dezena=val(right(extenso,2))
if dezena < 20
tab= 'N' + right(extenso,2)
vtexto="texto"+vlc_item
&vtexto=&vtexto+&tab
contador=contador+1
loop
else
tab= 'N' + substr(extenso,2,1) + '0'
vtexto="texto"+vlc_item
&vtexto=&vtexto+&tab
tab='N0' + right(extenso,1)
unidade=val(right(extenso,1))
if unidade > 0
vtexto="texto"+vlc_item
&vtexto=&vtexto + iif(val(extenso) > 10,'E ','')
endif
vtexto="texto"+vlc_item
&vtexto=&vtexto+iif(tab='N00',' ',&tab)
endif
case len(extenso)=2
dezena=val(right(extenso,2))
if dezena < 20
tab= 'N' + right(extenso,2)
vtexto="texto"+vlc_item
&vtexto=&vtexto+&tab
contador=contador+1
loop
else
tab='N' + substr(extenso,1,1) + '0'
vtexto="texto"+vlc_item
&vtexto=&vtexto + &tab
tab='N0' + Right(extenso,1)
unidade=val(right(extenso,1))
if unidade > 0
vtexto="texto"+vlc_item
&vtexto=&vtexto+'E '
ENDIF
vtexto="texto"+vlc_item
&vtexto=&vtexto+iif(tab='N00',' ',&tab)
endif
case len(extenso) = 1
tab='N0' + Right(extenso,1)
vtexto="texto"+vlc_item
&vtexto=&vtexto+iif(tab='N00',' ',&tab)
otherwise
vtexto="texto"+vlc_item
&vtexto= ''
endcase
contador=contador+1
enddo
if val(p1+p2+p3)=0 .and. val(p4) # 0
final=texto4+(iif(val(p4)=1,centavo,centavos))
endif
if val(p1+p2+p3) # 0
final= iif(len(texto1)=0,' ',texto1 + iif(status1= '1',MILHAO, ;
MILHOES))+' '+ iif(len(texto2)=0,' ', texto2+mil)+ texto3 ;
+ iif(val(p2+p3)=0, 'DE','')
final=final+iif(val(p1+p2+p3)=0,' ',iif(val(p1+p2+p3)=1, moeda1,moeda))
final=final+iif(val(p4)=0,'',iif(val(p1+p2+p3)=0,'','E ') + texto4 ;
+ (iif(val(p4)=1,centavo,centavos)))
endif
RETURN (final)
ENDFUNC
PS: Marcos Guedes, peço por favor que edite essa minha postagem e coloque dentro de um quadro, como a do Alceu. E depois me explique como faço pra postar direto dessa forma.
Muito grato

marcio- Participa Bastante

Re: Recibo
marcio escreveu:PS: Marcos Guedes, peço por favor que edite essa minha postagem e coloque dentro de um quadro, como a do Alceu. E depois me explique como faço pra postar direto dessa forma.
Marcio, fiz a alteração que pediu e criei um tópico relativo à sua dúvida:
[Você precisa estar registrado e conectado para ver este link.]
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Recibo
Resolveu o problema, Clodoaldo?
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum





» Gerador randomico de chave/senha VFP
» Help do VFP 9 desapareceu
» Acessos no Programação Brasil
» Niver do Alceu
» Report com comandos de impressão @ SAY
» VFP Studio
» Emulacao de MAC em PC
» Imagem
» Formação em produção de games 3D no Rio de Janeiro
» Trazer para frente uma aplicação em execução
» PictureBox com fundo transparente
» Report so imprime primeiro registro
» IE x VFP
» Aplicativos para Dispositivos moveis
» Problemas com Form MDI
» Dataset ou Datatable
» Desabafo de um idoso!
» Select criando cursor apresenta erro
» Comandos alterados de DOS para Visual