¿Cómo convertir números a letras en un formulario de Visual Fox Pro?
Sabes como convertir números a letras en un formulario de foxpro Puedes mandarme un ejemplo con un formulario y lo demás mi correo en [email protected]
1 respuesta
Respuesta
1
1
Anónimo
La función que yo utilizo tiene el siguiente código, te recomiendo que la copies, la pegues en algún PRG o Método, y cada vez que la llames le pases por parámetro el número a convertir: LPARAMETERS tnnumero && Recibe el número a convertir DIMENSION unid(9) unid(1) = "UNO" unid(2) = "DOS" unid(3) = "TRES" unid(4) = "CUATRO" unid(5) = "CINCO" unid(6) = "SEIS" unid(7) = "SIETE" unid(8) = "OCHO" unid(9) = "NUEVE" DIMENSION dieci(10) dieci(1) = "DIEZ" dieci(2) = "ONCE" dieci(3) = "DOCE" dieci(4) = "TRECE" dieci(5) = "CATORCE" dieci(6) = "QUINCE" dieci(7) = "DIECISEIS" dieci(8) = "DIECISIETE" dieci(9) = "DIECIOCHO" dieci(10) = "DIECINUEVE" DIMENSION dec(9) dec(3) = "TREINTA" dec(4) = "CUARENTA" dec(5) = "CINCUENTA" dec(6) = "SESENTA" dec(7) = "SETENTA" dec(8) = "OCHENTA" dec(9) = "NOVENTA" DIMENSION cen(9) cen(2) = "DOSCIENTOS" cen(3) = "TRESCIENTOS" cen(4) = "CUATROCIENTOS" cen(5) = "QUINIENTOS" cen(6) = "SEISCIENTOS" cen(7) = "SETECIENTOS" cen(8) = "OCHOCIENTOS" cen(9) = "NOVECIENTOS" p_entera = INT(tnnumero) p_decimal = ROUND(tnnumero - p_entera,2) numcad = ALLTRIM(STR(p_entera)) texto = "" valant = 0 FOR k = 1 TO LEN(numcad) lugar = SUBSTR(numcad,LEN(numcad)-k+1,1) && Lugar Actual IF k # LEN(numcad) despu = SUBSTR(numcad,LEN(numcad)-k,1) && Lugar Pr¢ximo valdes = VAL(despu) ELSE despu = "" valdes = 0 ENDIF valug = VAL(lugar) agre = "" DO CASE CASE k = 1 .OR. k = 4 DO CASE CASE valdes = 1 IF valug = 0 agre = "DIEZ" ELSE agre = dieci(valug + 1) ENDIF CASE valdes = 2 IF valug = 0 agre = "VEINTE" ELSE IF k = 4 .AND. valug = 1 agre = "VEINTIUN" ELSE agre = "VEINTI"+unid(valug) ENDIF ENDIF OTHERWISE IF valdes # 0 agre = dec(valdes) + IIF(valug # 0," Y ","") ENDIF IF valug # 0 IF k = 4 .AND. valug = 1 agre = agre + "UN" ELSE agre = agre + unid(valug) ENDIF ENDIF ENDCASE IF k = 4 IF LEN(numcad) = 7 .AND. SUBSTR(numcad,2,3) = "000" agre = agre + " " ELSE agre = agre + " MIL " ENDIF ENDIF CASE k = 3 .OR. k = 6 IF valug = 1 DO CASE CASE k = 6 .AND. SUBSTR(numcad,LEN(numcad)-4,2)="00" vasolo = .T. CASE k = 3 .AND. SUBSTR(numcad,LEN(numcad)-1,2)="00" vasolo = .T. OTHERWISE vasolo = .F. ENDCASE IF EMPTY(texto) .OR. vasolo agre = "CIEN" ELSE agre = "CIENTO" + " " ENDIF ELSE IF valug # 0 agre = cen(valug) + " " ENDIF ENDIF CASE k = 7 IF valug = 1 agre = "UN MILLON " ELSE agre = unid(valug)+" MILLONES " ENDIF ENDCASE texto = agre + texto valant = valug ENDFOR texto = ALLTRIM(texto) p_decimal = p_decimal * 100 texto = texto + " c/" + TRANSFORM(p_decimal,"99") + " centavos" RETURN ( texto ) *Salu2!