Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Rotina de extenso
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00753694
Message ID:
00753703
Views:
16
This message has been marked as the solution to the initial question of the thread.
Alow Fadul...

Segue a rotina!
FUNCTION PorExtenso
PARAMETERS pe_valor
PRIVATE pe_texto, pe_valorform, pe_bilhao, pe_milhao, pe_milhar, pe_unidade, pe_cents
m.pe_texto1s = "Real"
m.pe_texto1p = "Reais"
m.pe_texto2s = "Centavo"
m.pe_texto2p = "Centavos"
pe_valorform	= STR(pe_valor*100,14)
pe_bilhao		= pe_escreve(SUBSTR(pe_valorform, 1, 3))
pe_milhao		= pe_escreve(SUBSTR(pe_valorform, 4, 3))
pe_milhar		= pe_escreve(SUBSTR(pe_valorform, 7, 3))
pe_unidade		= pe_escreve(SUBSTR(pe_valorform, 10, 3))
pe_cents		= pe_escreve("0"+SUBSTR(pe_valorform, 13, 2))
pe_texto		= ""
IF !EMPTY(pe_bilhao)
	pe_texto = pe_bilhao
	IF VAL(SUBSTR(pe_valorform, 1, 3)) <> 1
		pe_texto = pe_texto + " bilhões"
	ELSE
		pe_texto = pe_texto + " bilhão"
	ENDIF
ENDIF
IF !EMPTY(pe_milhao)
	IF !EMPTY(pe_texto)
		pe_texto = pe_texto + ", "
	ENDIF
	pe_texto = pe_texto + pe_milhao
	IF VAL(SUBSTR(pe_valorform, 4, 3)) <> 1
		pe_texto = pe_texto + " milhões"
	ELSE
		pe_texto = pe_texto + " milhão"
	ENDIF
ENDIF
IF !EMPTY(pe_milhar)
	IF !EMPTY(pe_texto)
		pe_texto = pe_texto + ", "
	ENDIF
	pe_texto = pe_texto + pe_milhar + " mil"
ENDIF
IF !EMPTY(pe_unidade)
	IF !EMPTY(pe_texto)
		pe_texto = pe_texto + ", "
	ENDIF
	pe_texto = pe_texto + pe_unidade
ENDIF
IF !EMPTY(pe_texto)
	IF INT(pe_valor) > 1
		pe_texto = pe_texto + " " + pe_texto1p
	ELSE
		pe_texto = pe_texto + " " + pe_texto1s
	ENDIF
ENDIF
IF !EMPTY(pe_cents)
	IF !EMPTY(pe_texto)
		pe_texto = pe_texto + " e "
	ENDIF
	pe_texto = pe_texto + pe_cents
	IF VAL(SUBSTR(pe_valorform, 13, 2)) <> 1
		pe_texto = pe_texto + " " + pe_texto2p
	ELSE
		pe_texto = pe_texto + " " + pe_texto2s
	ENDIF
ENDIF
pe_texto = UPPER(SUBSTR(pe_texto,1,1))+SUBSTR(pe_texto,2)
RETURN pe_texto
FUNCTION pe_escreve
PARAMETERS pe_digitos
PRIVATE pe_primeiro, pe_segundo, pe_terceiro, pe_texto
pe_primeiro	= VAL(SUBSTR(pe_digitos, 1, 1))
pe_segundo	= VAL(SUBSTR(pe_digitos, 2, 1))
pe_terceiro	= VAL(SUBSTR(pe_digitos, 3, 1))
DO CASE
	CASE pe_primeiro = 1
		IF pe_segundo = 0 .AND. pe_terceiro = 0
			pe_texto = "cem"
		ELSE
			pe_texto = "cento"
		ENDIF
	CASE pe_primeiro = 2
		pe_texto = "duzentos"
	CASE pe_primeiro = 3
		pe_texto = "trezentos"
	CASE pe_primeiro = 4
		pe_texto = "qüatrocentos"
	CASE pe_primeiro = 5
		pe_texto = "quinhentos"
	CASE pe_primeiro = 6
		pe_texto = "seicentos"
	CASE pe_primeiro = 7
		pe_texto = "setecentos"
	CASE pe_primeiro = 8
		pe_texto = "oitocentos"
	CASE pe_primeiro = 9
		pe_texto = "novecentos"
	CASE pe_primeiro = 0
		pe_texto = ""
ENDCASE
IF pe_segundo <> 0 .OR. pe_terceiro <> 0
	IF pe_primeiro <> 0
		pe_texto = pe_texto + " e "
	ENDIF
	IF pe_segundo = 1
		DO CASE
			CASE pe_terceiro = 0
				pe_texto = pe_texto + "dez"
			CASE pe_terceiro = 1
				pe_texto = pe_texto + "onze"
			CASE pe_terceiro = 2
				pe_texto = pe_texto + "doze"
			CASE pe_terceiro = 3
				pe_texto = pe_texto + "treze"
			CASE pe_terceiro = 4
				pe_texto = pe_texto + "quatorze"
			CASE pe_terceiro = 5
				pe_texto = pe_texto + "quinze"
			CASE pe_terceiro = 6
				pe_texto = pe_texto + "dezesseis"
			CASE pe_terceiro = 7
				pe_texto = pe_texto + "dezessete"
			CASE pe_terceiro = 8
				pe_texto = pe_texto + "dezoito"
			CASE pe_terceiro = 9
				pe_texto = pe_texto + "dezenove"
		ENDCASE
	ELSE
		DO CASE
			CASE pe_segundo = 2
				pe_texto = pe_texto + "vinte"
			CASE pe_segundo = 3
				pe_texto = pe_texto + "trinta"
			CASE pe_segundo = 4
				pe_texto = pe_texto + "qüarenta"
			CASE pe_segundo = 5
				pe_texto = pe_texto + "cinqüenta"
			CASE pe_segundo = 6
				pe_texto = pe_texto + "sessenta"
			CASE pe_segundo = 7
				pe_texto = pe_texto + "setenta"
			CASE pe_segundo = 8
				pe_texto = pe_texto + "oitenta"
			CASE pe_segundo = 9
				pe_texto = pe_texto + "noventa"
		ENDCASE
		IF pe_terceiro <> 0
			IF pe_segundo <> 0
				pe_texto = pe_texto + " e "
			ENDIF
			DO CASE
				CASE pe_terceiro = 1
					pe_texto = pe_texto + "um"
				CASE pe_terceiro = 2
					pe_texto = pe_texto + "dois"
				CASE pe_terceiro = 3
					pe_texto = pe_texto + "três"
				CASE pe_terceiro = 4
					pe_texto = pe_texto + "quatro"
				CASE pe_terceiro = 5
					pe_texto = pe_texto + "cinco"
				CASE pe_terceiro = 6
					pe_texto = pe_texto + "seis"
				CASE pe_terceiro = 7
					pe_texto = pe_texto + "sete"
				CASE pe_terceiro = 8
					pe_texto = pe_texto + "oito"
				CASE pe_terceiro = 9
					pe_texto = pe_texto + "nove"
			ENDCASE
		ENDIF
	ENDIF
ENDIF
RETURN pe_texto
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rodolfo Duarte
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform