Foros del Web » Programación para mayores de 30 ;) » .NET »

Monto a letras (crystal reports xi)

Estas en el tema de Monto a letras (crystal reports xi) en el foro de .NET en Foros del Web. Buenas tardes amigos y hermanos. Recientemente me estoy introduciendo en el mundo de los de crystal, por cuanto estoy confeccionando un reporte pero necesito convertir ...
  #1 (permalink)  
Antiguo 27/01/2011, 14:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Monto a letras (crystal reports xi)

Buenas tardes amigos y hermanos.

Recientemente me estoy introduciendo en el mundo de los de crystal, por cuanto estoy confeccionando un reporte pero necesito convertir un campo de numero a letras

ejemplo: 250 (DOSCIENTOS CINCUENTA)


Les agradezco cualquier ayuda.
  #2 (permalink)  
Antiguo 28/01/2011, 07:47
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Monto a letras (crystal reports xi)

Que tal juan_18, para lo que necesitas Crystal Reports dispone de una función ToWords().



Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #3 (permalink)  
Antiguo 28/01/2011, 10:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Monto a letras (crystal reports xi)

Cita:
Iniciado por Carlojas Ver Mensaje
Que tal juan_18, para lo que necesitas Crystal Reports dispone de una función [URL="http://www.crystalreportsbook.com/Chapter06_XI.asp"]ToWords()[/URL].



Saludos.
Gracias hermano ya esta listo, solo un detalle el monto en letras me lo trae en ingle, pero veré como lo soluciono.


Gracias Mil hemano.
  #4 (permalink)  
Antiguo 28/01/2011, 10:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Monto a letras (crystal reports xi)

Cita:
Iniciado por juan_18 Ver Mensaje
Gracias hermano ya esta listo, solo un detalle el monto en letras me lo trae en ingle, pero veré como lo soluciono.


Gracias Mil hemano.
Aun no logro que el monto en letras me salga en español :(
  #5 (permalink)  
Antiguo 29/01/2011, 00:37
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Monto a letras (crystal reports xi)

Yo lo hago con esta funcion, creo que la obtuve del Guille (costasol.net).

Public Function Letras(ByVal numero As String) As String
'-----------------------------------------
' Rutina para obtener importe de numeros a letras PARA LA FACTURA
'-----------------------------------------
'********Declara variables de tipo cadena************
Dim palabras, entero, dec, flag As String
palabras = ""

'********Declara variables de tipo entero***********
Dim num, x, y As Integer

flag = "N"

'**********Número Negativo***********
If Mid(numero, 1, 1) = "-" Then
numero = Mid(numero, 2, numero.ToString.Length - 1).ToString
palabras = "menos "
End If

'**********Si tiene ceros a la izquierda*************
For x = 1 To numero.ToString.Length
If Mid(numero, 1, 1) = "0" Then
numero = Trim(Mid(numero, 2, numero.ToString.Length).ToString)
If Trim(numero.ToString.Length) = 0 Then palabras = ""
Else
Exit For
End If
Next

'*********Dividir parte entera y decimal************
For y = 1 To Len(numero)
If Mid(numero, y, 1) = "." Then
flag = "S"
Else
If flag = "N" Then
entero = entero + Mid(numero, y, 1)
Else
dec = dec + Mid(numero, y, 1)
End If
End If
Next y

If Len(dec) = 1 Then dec = dec & "0"

'**********proceso de conversión***********
flag = "N"

If Val(numero) <= 999999999 Then
For y = Len(entero) To 1 Step -1
num = Len(entero) - (y - 1)
Select Case y
Case 3, 6, 9
'**********Asigna las palabras para las centenas***********
Select Case Mid(entero, num, 1)
Case "1"
If Mid(entero, num + 1, 1) = "0" And Mid(entero, num + 2, 1) = "0" Then
palabras = palabras & "cien "
Else
palabras = palabras & "ciento "
End If
Case "2"
palabras = palabras & "doscientos "
Case "3"
palabras = palabras & "trescientos "
Case "4"
palabras = palabras & "cuatrocientos "
Case "5"
palabras = palabras & "quinientos "
Case "6"
palabras = palabras & "seiscientos "
Case "7"
palabras = palabras & "setecientos "
Case "8"
palabras = palabras & "ochocientos "
Case "9"
palabras = palabras & "novecientos "
End Select
  #6 (permalink)  
Antiguo 29/01/2011, 00:37
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Monto a letras (crystal reports xi)

... continua


Case 2, 5, 8
'*********Asigna las palabras para las decenas************
Select Case Mid(entero, num, 1)
Case "1"
If Mid(entero, num + 1, 1) = "0" Then
flag = "S"
palabras = palabras & "diez "
End If
If Mid(entero, num + 1, 1) = "1" Then
flag = "S"
palabras = palabras & "once "
End If
If Mid(entero, num + 1, 1) = "2" Then
flag = "S"
palabras = palabras & "doce "
End If
If Mid(entero, num + 1, 1) = "3" Then
flag = "S"
palabras = palabras & "trece "
End If
If Mid(entero, num + 1, 1) = "4" Then
flag = "S"
palabras = palabras & "catorce "
End If
If Mid(entero, num + 1, 1) = "5" Then
flag = "S"
palabras = palabras & "quince "
End If
If Mid(entero, num + 1, 1) > "5" Then
flag = "N"
palabras = palabras & "dieci"
End If
Case "2"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "veinte "
flag = "S"
Else
palabras = palabras & "veinti"
flag = "N"
End If
Case "3"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "treinta "
flag = "S"
Else
palabras = palabras & "treinta y "
flag = "N"
End If
Case "4"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "cuarenta "
flag = "S"
Else
palabras = palabras & "cuarenta y "
flag = "N"
End If
Case "5"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "cincuenta "
flag = "S"
Else
palabras = palabras & "cincuenta y "
flag = "N"
End If
Case "6"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "sesenta "
flag = "S"
Else
palabras = palabras & "sesenta y "
flag = "N"
End If
Case "7"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "setenta "
flag = "S"
Else
palabras = palabras & "setenta y "
flag = "N"
End If
Case "8"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "ochenta "
flag = "S"
Else
palabras = palabras & "ochenta y "
flag = "N"
End If
Case "9"
If Mid(entero, num + 1, 1) = "0" Then
palabras = palabras & "noventa "
flag = "S"
Else
palabras = palabras & "noventa y "
flag = "N"
End If
End Select
Case 1, 4, 7
'*********Asigna las palabras para las unidades*********
Select Case Mid(entero, num, 1)
Case "1"
If flag = "N" Then
If y = 1 Then
palabras = palabras & "uno "
Else
palabras = palabras & "un "
End If
End If
Case "2"
If flag = "N" Then palabras = palabras & "dos "
Case "3"
If flag = "N" Then palabras = palabras & "tres "
Case "4"
If flag = "N" Then palabras = palabras & "cuatro "
Case "5"
If flag = "N" Then palabras = palabras & "cinco "
Case "6"
If flag = "N" Then palabras = palabras & "seis "
Case "7"
If flag = "N" Then palabras = palabras & "siete "
Case "8"
If flag = "N" Then palabras = palabras & "ocho "
Case "9"
If flag = "N" Then palabras = palabras & "nueve "
End Select
End Select

'***********Asigna la palabra mil***************
If y = 4 Then
If Mid(entero, 6, 1) <> "0" Or Mid(entero, 5, 1) <> "0" Or Mid(entero, 4, 1) <> "0" Or _
(Mid(entero, 6, 1) = "0" And Mid(entero, 5, 1) = "0" And Mid(entero, 4, 1) = "0" And _
Len(entero) <= 6) Then palabras = palabras & "mil "
End If

'**********Asigna la palabra millón*************
If y = 7 Then
If Len(entero) = 7 And Mid(entero, 1, 1) = "1" Then
palabras = palabras & "millon " ' sin acento x que sera mayuscula
Else
palabras = palabras & "millones "
End If
End If
Next y

'**********Une la parte entera y la parte decimal*************
If dec <> "" Then
Letras = palabras & " PESOS " & dec & "/100 M.N."
Else
Letras = palabras & " PESOS 00/100 M.N."
End If
' Convierte a mayusculas
Letras = Letras.ToUpper()
Else
Letras = ""
End If
End Function

Etiquetas: crystal, letras, monto, reports
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:35.