Necesito que cuando ingrese un monto se muestre en otro static text en letras

Tengo esta pregunta:
Estoy realizando un sistema que imprima un cheque determinado lo que necesito es que cuando ingrese por ejemplo un monto 1,200.00 me muestre en otro static text pero en letras MIL DOSCIENTOS pero AUTOMÁTICAMENTE gracias por la ayuda se los agradeceré...

1 respuesta

Respuesta
1
Declara una función y pásale como parámetro "nimp" es un double. Ponele que te retorne un string y en la función escribí el siguiente código:
long        nUni, nDec, nCen, nA, nMil
int         li_dec
string     lsHasta29[], lsCentenas[], lsDecenas[]
lsHasta29[1]  = ''
lsHasta29[2]  = ' uno'
lsHasta29[3]  = ' dos'
lsHasta29[4]  = ' tres'
lsHasta29[5]  = ' cuatro'
lsHasta29[6]  = ' cinco'
lsHasta29[7]  = ' seis'
lsHasta29[8]  = ' siete'
lsHasta29[9]  = ' ocho'
lsHasta29[10] = ' nueve'
lsHasta29[11] = ' diez'
lsHasta29[12] = ' once'
lsHasta29[13] = ' doce'
lsHasta29[14] = ' trece'
lsHasta29[15] = ' catorce'
lsHasta29[16] = ' quince'
lsHasta29[17] = ' dieciseis'
lsHasta29[18] = ' diecisiete'
lsHasta29[19] = ' dieciocho'
lsHasta29[20] = ' diecinueve'
lsHasta29[21] = ' veinte'
lsHasta29[22] = ' veintiuno'
lsHasta29[23] = ' veintidos'
lsHasta29[24] = ' veintitres'
lsHasta29[25] = ' veinticuatro'
lsHasta29[26] = ' veinticinco'
lsHasta29[27] = ' veintiseis'
lsHasta29[28] = ' veintisiete'
lsHasta29[29] = ' veintiocho'
lsHasta29[30] = ' veintinueve'
lsDecenas[3] = ' treinta'
lsDecenas[4] = ' cuarenta'
lsDecenas[5] = ' cincuenta'
lsDecenas[6] = ' sesenta'
lsDecenas[7] = ' setenta'
lsDecenas[8] = ' ochenta'
lsDecenas[9] = ' noventa'
lsCentenas[1]  = ''
lsCentenas[2]  = ' ciento'
lsCentenas[3]  = ' doscientos'
lsCentenas[4]  = ' trescientos'
lsCentenas[5]  = ' cuatrocientos'
lsCentenas[6]  = ' quinientos'
lsCentenas[7]  = ' seiscientos'
lsCentenas[8]  = ' setecientos'
lsCentenas[9]  = ' ochocientos'
lsCentenas[10] = ' novecientos'
String  sA, sImp
sImp = Left( String( nImp, '000000000000.00' ), 12 )
For nA = 1 to 4
   nMil = Long( Mid( sImp, nA * 3 - 2, 3 ) )
   nCen = Int( nMil / 100 )
   nDec = Int( ( nMil - nCen * 100 ) / 10 )
   nUni = nMil - nCen * 100 - nDec * 10
   If nMil = 100 Then
      sA = sA + ' cien'
   ElseIf nDec < 3 Then
      If nUni = 1 and ( nA = 1 or nA = 3 ) Then
            choose case nDec
            case 0
                 sA = sA + lsCentenas[nCen + 1] + ' un'                
            case 1
                 sA = sA + lsCentenas[nCen + 1] + ' once'                                
            case 2
                 sA = sA + lsCentenas[nCen + 1] + ' veintiún'                                
        end choose
      Else
         sA = sA + lsCentenas[nCen + 1] + lsHasta29[nDec*10+nUni + 1]
      End If
   Else
      sA = sA + lsCentenas[nCen + 1] + lsDecenas[nDec]
      If nUni <> 0 Then
         If nUni = 1 and ( nA = 1 or nA = 3 ) Then
            sA = sA + ' y un'
         Else
            sA = sA + ' y' + lsHasta29[nUni + 1]
         End If
      End If
   End If
   If ( nA = 1 or nA = 3 ) and nMil <> 0 Then
      sA = sA + ' mil'
   End If
   If nA = 2 and sA <> '' Then
      If sA = ' uno' Then
         sA = ' un millon'
      Else
         sA = sA + ' millones'
      End If
   End If
   If nA = 4 and sA = '' Then
      sA = ' cero'
   End If
Next
li_dec = abs((round(nImp,2) - truncate(nImp,0)) *100)
if li_dec > 0 and li_dec < 100 then
    sImp = f_nume_a_letra(li_dec)
   sA = sA + ' con ' + sImp
end if
Return  sA
Cualquier duda o consulta no dudes en consultarme.
Consutor "Power Builder"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas