cancel
Showing results for 
Search instead for 
Did you mean: 

Layout Cheque - Importe en Letras

Former Member
0 Kudos

Hola a Todos,

El monto a mostrar en el importe en letras del layout de cheques se ha realizado tomando una variable de sistema de cheque para el pago (82) y definiéndolo como "Monto en Letras", debido a que anteriormente tomábamos el Importe en Letras de la Base de Datos, pero cuando el importe era muy extenso, la frase se cortaba, ya que el campo tiene solo 100 caracteres.

Al principio funciono bien el usar el monto en letras en el Layout, pero estamos presentando problemas al momento de registrar cheques a partir de dos millones (2.000.000), ya que el layout interpreta este monto al pasarlo a letras como Dos Millón.

¿Existe alguna manera de que se pueda corregir esto?

Gracias de antemano

Accepted Solutions (1)

Accepted Solutions (1)

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

Estaba buscando una solución creando un campo fórmula para imprimirse si la cantidad a imprimir no comienza por U. El problema radica en que tendríamos que generar un campo fórmula para todas las cantidades.

Sería sencillísimo si el problema fuese al revés, que se imprimiese Un millones. Con dos campos fórmula lo solucionábamos. Pero en el caso que nos ocupa no sabemos donde tenemos que comenzar a concatenar para sustituir el literal millón por millones.

¿Qué ocurre si lo actualizas mediante un add-on? Una vez generado el cheque, si la cantidad es igual o superior a dos millones, cambiar el literal del campo para que se imprima correctamente.

Un saludo.

Agustí

Former Member
0 Kudos

Hola Agustín,

Gracias por tu interés,

Podrías darme información sobre ese add-on que tendría que usar si el importe si es >=2Millones.

Encontré un procedimiento almacenado para crear importes a partir de números, pero me da error al implementarlo, de manera que al crear un UDF en Pagos Efectuados, se cree el importe en letras del monto en este, y luego usarlo en el PLD de Cheques para el pago:

Al intentar correrlo (el SP) el mismo me da error

¿Alguna Sugerencia?

Saludos

Edited by: mariaem on Feb 1, 2011 4:41 PM

Edited by: mariaem on Feb 1, 2011 4:42 PM

former_member188440
Active Contributor
0 Kudos

Hola revisa este post por favor, ahi puse una solucion a un problema similar

[]

Former Member
0 Kudos

Hola Mauricio,

Gracias por el enlace...

Te comento que la situación que estoy presentando es la siguiente:

Anteriormente, el importe en letras en el PLD era proveniente del campo OCHO.TotalWords, el cual te provee del Total del Cheque en Letras, bien redactado, pero en casos de Cheques a emitir por 1.896.965,25, el campo de la tabla muestra "Un millón ochocientos noventa y seis mil novecientos sesenta y cinco Bolívares con Veinticinco Cént", ya que sólo contempla cien caracteres, así viene configurado.

Logramos definir el importe en letras del PLD,usando la variable 82 de Cheque para el Pago (Importe Vencido), el cual es el monto del cheque en Números, y seleccionamos la opción "Monto en Letras" en el PLD, este procedimiento no trunca los montos muy extensos (mayores a 100 caracteres), como el explicado con anterioridad, y al final aparece en el PLD el monto en letras completo, luego lo concatenamos con cero céntimos, en el caso de montos enteros.

El problema con esta nueva configuración, usando la función de monto en letras del PLD, es cuando el monto es mayor o igual a 2 millones, ya que el sistema traduce el mismo para un monto como 2.500.000 como "Dos Millón Quinientos con Cero Céntimos", lo cúal es incorrecto.

El idioma del sistema está configurado como Español Latinoamericano. Estamos usando SBO 2007 A SP:00 PL:49

¿Cómo puedo resolver el problema de los importes en letras del PLD de Cheques?

Saludos

former_member188440
Active Contributor
0 Kudos

por eso te comentaba el enlace, siguiendo esos pasos la logica de ahi, debe funcionarte sin problemas

Former Member
0 Kudos

Hola Mauricio,

Efectivamente revise tu mensaje, y no funciona el usar la formula DecimalLeft, por eso te explique nueva y detalladamente mi caso.

Mi problema no es separar decimales, ni definir céntimos, sino lo que hace la función de parametrización "Total en Letras" del PLD cuando el monto es mayor o igual a 2.000.000, ya que redacta o muestra una ortografía errada (dos millón), sea que lo definas con la función DecimalLeft como sugieres, o no, como es mi caso.

¿Alguien ha logrado solucionar un caso así?

Agradeciendo todas sus sugerencias...

Saludos,

Former Member
0 Kudos

Estimados yo lo resolví así.

en el editor de Layout

en propiedades de campo

carpeta General

puse ancho = 450

en carpeta Contenido

tipo fuente = Base de Datos

Tabla = Cheques para el Pago

Columna = Total en Letras

en carpeta Formato

Salto de linea = ajustar a Celda

Largo = 400 Caracter = *

espero les sirva

Saludos Cordiales

Rodolfo Castañeda

Former Member
0 Kudos

Hola Rodolfo,

Gracias por tu interés en mi caso,

Te comento que tu sugerencia funciona para el caso en que se tengan importes en el cheque de millones, ya que el total en letras de la base de datos está redactado correctamente, que es el que tú planteas usar.

El problema se presenta en el caso de un cheque con importes largos, como por ejemplo 1.764.276,71, el cual en su total en letras en la base de datos (OCHO.TotalWords) es de "Un millón setecientos sesenta y cuatro mil doscientos setenta y seis Bolívares con Setenta y un Cén", ya que el tamaño del campo en sistema es de (100), más la línea de asteriscos que propones:

Un millón setecientos sesenta y cuatro mil doscientos setenta y seis Bolívares con Setenta y un Cén***************************************************************************************************************

********************************************************************************************************************

Mucho les agradecería sus sugerencias para solucionar esta situación,

Saludos Cordiales

Former Member
0 Kudos

Ok mi estimada, perdon por no haber leido detenidamente tu caso...

creo esto lo debes de pner en un caso de soporte a SAP para pedir la ampliacion de este campo en la base de datos y en Gui de la aplicacion, asi usarlo con el estandar de SAP

pueden haber soluciones alternas por ejemplo

hacer funcionos de conversion de numeros a letras y estas ejecutarlas para almacenar en un campo definido por el usuario al momento de grabar el cheque y luego utilizarlo en Layout de impresion del mismo...

pero esto se saldria del estandar de SAP.

Saludos

Rodolfo Castañeda

Former Member
0 Kudos

Hola,

Gracias por tus sugerencias, de hecho traté de usar una función para convertir números a letras, pero el mismo no me ha funcionado hasta ahora, de manera que actualice un UDF en Pagos Efectuados que pueda usar en el PLD. Si existe alguna sugerencia de como implementar algo similar, lo agradecería.

Lo de solicitar a Soporte SAP que me actualice el tamaño del campo OCHO.TotalWords, lo verificaré...sería ideal que ese campo tuviera 120 caracteres, como mínimo.

Saludos

Former Member
0 Kudos

Ok Mi estimada ya lo resolví...ojala esta solución se pegue a tu necesidad.

en este ejercicio fue necesario realizar el siguiente flujo de documentos

1 Crear la siguiente función

USE

GO

/****** Object: UserDefinedFunction .[f_CV_NL] Script Date: 02/02/2011 14:30:06 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author: RC

-- Create date: 20110202

-- Description: Convert Numbers To Words

-- =============================================

CREATE FUNCTION .[f_CV_NL]

(

-- Add the parameters for the function here

@Numero Numeric(20,2)

)

RETURNS nVarchar(400)

AS

BEGIN

-- Declare the return variable here

DECLARE @Result nVarchar(400)

DECLARE @lnEntero INT,

@lcRetorno VARCHAR(512),

@lnTerna INT,

@lcMiles VARCHAR(512),

@lcCadena VARCHAR(512),

@lnUnidades INT,

@lnDecenas INT,

@lnCentenas INT,

@lnFraccion INT

SELECT @lnEntero = CAST(@Numero AS INT),

@lnFraccion = (@Numero - @lnEntero) * 100,

@lcRetorno = '',

@lnTerna = 1

WHILE @lnEntero > 0

BEGIN /* WHILE */

-- Recorro terna por terna

SELECT @lcCadena = ''

SELECT @lnUnidades = @lnEntero % 10

SELECT @lnEntero = CAST(@lnEntero/10 AS INT)

SELECT @lnDecenas = @lnEntero % 10

SELECT @lnEntero = CAST(@lnEntero/10 AS INT)

SELECT @lnCentenas = @lnEntero % 10

SELECT @lnEntero = CAST(@lnEntero/10 AS INT)

-- Analizo las unidades

SELECT @lcCadena =

CASE /* UNIDADES */

WHEN @lnUnidades = 1 AND @lnTerna = 1 THEN 'UNO ' + @lcCadena

WHEN @lnUnidades = 1 AND @lnTerna <> 1 THEN 'UN ' + @lcCadena

WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadena

WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadena

WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadena

WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadena

WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadena

WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadena

WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadena

WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadena

ELSE @lcCadena

END /* UNIDADES */

-- Analizo las decenas

SELECT @lcCadena =

CASE /* DECENAS */

WHEN @lnDecenas = 1 THEN

CASE @lnUnidades

WHEN 0 THEN 'DIEZ '

WHEN 1 THEN 'ONCE '

WHEN 2 THEN 'DOCE '

WHEN 3 THEN 'TRECE '

WHEN 4 THEN 'CATORCE '

WHEN 5 THEN 'QUINCE '

ELSE 'DIECI' + @lcCadena

END

WHEN @lnDecenas = 2 AND @lnUnidades = 0 THEN 'VEINTE ' + @lcCadena

WHEN @lnDecenas = 2 AND @lnUnidades <> 0 THEN 'VEINTI' + @lcCadena

WHEN @lnDecenas = 3 AND @lnUnidades = 0 THEN 'TREINTA ' + @lcCadena

WHEN @lnDecenas = 3 AND @lnUnidades <> 0 THEN 'TREINTA Y ' + @lcCadena

WHEN @lnDecenas = 4 AND @lnUnidades = 0 THEN 'CUARENTA ' + @lcCadena

WHEN @lnDecenas = 4 AND @lnUnidades <> 0 THEN 'CUARENTA Y ' + @lcCadena

WHEN @lnDecenas = 5 AND @lnUnidades = 0 THEN 'CINCUENTA ' + @lcCadena

WHEN @lnDecenas = 5 AND @lnUnidades <> 0 THEN 'CINCUENTA Y ' + @lcCadena

WHEN @lnDecenas = 6 AND @lnUnidades = 0 THEN 'SESENTA ' + @lcCadena

WHEN @lnDecenas = 6 AND @lnUnidades <> 0 THEN 'SESENTA Y ' + @lcCadena

WHEN @lnDecenas = 7 AND @lnUnidades = 0 THEN 'SETENTA ' + @lcCadena

WHEN @lnDecenas = 7 AND @lnUnidades <> 0 THEN 'SETENTA Y ' + @lcCadena

WHEN @lnDecenas = 8 AND @lnUnidades = 0 THEN 'OCHENTA ' + @lcCadena

WHEN @lnDecenas = 8 AND @lnUnidades <> 0 THEN 'OCHENTA Y ' + @lcCadena

WHEN @lnDecenas = 9 AND @lnUnidades = 0 THEN 'NOVENTA ' + @lcCadena

WHEN @lnDecenas = 9 AND @lnUnidades <> 0 THEN 'NOVENTA Y ' + @lcCadena

ELSE @lcCadena

END /* DECENAS */

-- Analizo las centenas

SELECT @lcCadena =

CASE /* CENTENAS */

WHEN @lnCentenas = 1 AND @lnUnidades = 0 AND @lnDecenas = 0 THEN 'CIEN ' +

@lcCadena

WHEN @lnCentenas = 1 AND NOT(@lnUnidades = 0 AND @lnDecenas = 0) THEN

'CIENTO ' + @lcCadena

WHEN @lnCentenas = 2 THEN 'DOSCIENTOS ' + @lcCadena

WHEN @lnCentenas = 3 THEN 'TRESCIENTOS ' + @lcCadena

WHEN @lnCentenas = 4 THEN 'CUATROCIENTOS ' + @lcCadena

WHEN @lnCentenas = 5 THEN 'QUINIENTOS ' + @lcCadena

WHEN @lnCentenas = 6 THEN 'SEISCIENTOS ' + @lcCadena

WHEN @lnCentenas = 7 THEN 'SETECIENTOS ' + @lcCadena

WHEN @lnCentenas = 8 THEN 'OCHOCIENTOS ' + @lcCadena

WHEN @lnCentenas = 9 THEN 'NOVECIENTOS ' + @lcCadena

ELSE @lcCadena

END /* CENTENAS */

-- Analizo la terna

SELECT @lcCadena =

CASE /* TERNA */

WHEN @lnTerna = 1 THEN @lcCadena

WHEN @lnTerna = 2 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN

@lcCadena + ' MIL '

WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND

@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0 THEN @lcCadena + '

MILLON '

WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND

NOT (@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0) THEN @lcCadena

+ ' MILLONES '

WHEN @lnTerna = 4 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN

@lcCadena + ' MIL MILLONES '

ELSE ''

END /* TERNA */

-- Armo el retorno terna a terna

SELECT @lcRetorno = @lcCadena + @lcRetorno

SELECT @lnTerna = @lnTerna + 1

END /* WHILE */

IF @lnTerna = 1

SELECT @lcRetorno = 'CERO'

SELECT @Result = RTRIM(@lcRetorno) + ' CON ' + LTRIM(STR(@lnFraccion,2)) + '/100'

-- Return the result of the function

RETURN @Result

END

2. Crear un campo de usuario en pagos-títulos (micampo, tipo alfanumérico de 250 caracteres es el máximo)

3.Crear la siguiente consulta SELECT .[dbo].[f_CV_NL]($[OVPM.DocTotal])

4.Crear y saetear la Búsqueda Formateada para actualizar el campo de usuario micampo

5. Realizar un pago efectuado

6.veremos que se actualiza el campo de usuario con el valor en letras

7.modificar el Layout de impresión del cheque e indicarle que en el campo donde queremos que salga el valor en letras lo tome de la tabla OVPM-micampo

8.Crear el cheque para el pago e imprimirlo

NOTA: DBEXT es una base de datos externa para no crear objetos en la base de datos natural de SAP

Espero te sirva

Rodolfo Castañeda

Former Member
0 Kudos

Hola Rodolfo,

Gracias por tu respuesta, implemente la función y el campo de usuario con la búsqueda formateada de acuerdo a lo sugerido, y el detalle está en que la función devuelve los céntimos en formato numérico, por ejemplo:

Importe en Número: 24.032,71

Valor en Letras: VEINTICUATRO MIL TREINTA Y DOS CON 71/100

El concepto '/100' se puede sustituir en la sintaxis de la función al final de la misma por 'Céntimos'. Pero ¿Como logramos que la función devuelva dichos decimales con formato en letras?, por ejemplo

Importe en Número: 24.032,71

Valor en Letras: VEINTICUATRO MIL TREINTA Y DOS CON SETENTA Y UN CÉNTIMOS

Agradecida por todas las sugerencias,

Saludos

Former Member
0 Kudos

Estimada, revise nuevamente el escenario y creo que si puedes modificar la función incluyendo algunos ajustes... pero creo que no es necesario, realice otra prueba y a esta solo hay que afinarla en el Layout del cheque.. te comento:

1. en el Layout de impresión del cheque agregue un campo de tipo base de datos

2. en las propiedades del campo seleccione la tabla OCHO

3.luego la columna Importe del Cheque

4.en la pestaña Formato

5.puse Salto de Linea Ajustar a Celda

6.Largo 400 Carácter ***

7.Marque la casilla Total en Letras

8. lo corrí y todo funciono correcto.

9. podes crear otros campos dentro del layout para personalizar aun mas este resultado..

Espero te sirva

Si no te funciona te mandare corregida la función para que te devuelva el valor deseado.

Saludos Cordiales

Rodolfo Castañeda

Former Member
0 Kudos

Hola Rodolfo,

Muchísimas Gracias por el interés mostrado en mi caso.

Te comento que probé tu solución a nivel de Layout, en el que cumplí todos los pasos de la prueba que realizaste, y funciona para los montos extensos (mayor a 100 caracteres) menores a dos millones, pero el problema se sigue repitiendo con los Millones, ya que al tener un importe de este valor y escoger "Monto en Letras", el sistema simplemente no traduce bien el monto, si es mayor o igual a dos millones, ya que el PLD no debería asumir Millón para todos.

¿Podrías corregir la función para que me devuelva el valor en decimales también en letras? Igual como lo hace con la parte entera.

Saludos

Former Member
0 Kudos

Hola fijate que he estado algo atareado en un proyecto... rapidamente lo que se me ocurrio fue lo siguiente

1. crear otra funcion que te trae en letras los decimales....

CREATE FUNCTION [dbo].[f_CV_NLD]
(
	-- Add the parameters for the function here
   @Numero Numeric(20,2)
)
RETURNS nVarchar(400)
AS
BEGIN
		DECLARE @Result nVarchar(400)

		DECLARE @lnEntero INT, 
				@lcRetornoD VARCHAR(512), 
				@lnTernaD INT, 
				@lcCadenaD VARCHAR(512), 
				@lnUnidades INT, 
				@lnDecenas INT, 
				@lnCentenas INT, 
				@lnFraccion INT


			SELECT @lnEntero = CAST(@Numero AS INT), 
				@lnFraccion = (@Numero - @lnEntero) * 100,
				@lcRetornoD = '', 
				@lnTernaD = 1 

			WHILE @lnFraccion > 0 
			BEGIN /* WHILE */ 
				-- Recorro terna por terna 
				SELECT @lcCadenaD = '' 
				SELECT @lnUnidades = @lnFraccion % 10 
				SELECT @lnFraccion = CAST(@lnFraccion/10 AS INT) 
				SELECT @lnDecenas = @lnFraccion % 10 
				SELECT @lnFraccion = CAST(@lnFraccion/10 AS INT) 
				SELECT @lnCentenas = @lnFraccion % 10 
				SELECT @lnFraccion = CAST(@lnFraccion/10 AS INT) 
				-- Analizo las unidades 
				SELECT @lcCadenaD = 
				CASE /* UNIDADES */ 
					WHEN @lnUnidades = 1 AND @lnTernaD = 1 THEN 'UNO ' + @lcCadenaD 
					WHEN @lnUnidades = 1 AND @lnTernaD <> 1 THEN 'UN ' + @lcCadenaD 
					WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadenaD 
					WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadenaD 
					WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadenaD 
					WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadenaD 
					WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadenaD 
					WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadenaD 
					WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadenaD 
					WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadenaD 
				ELSE @lcCadenaD 
				END /* UNIDADES */ 
			-- Analizo las decenas 
				SELECT @lcCadenaD = 
				CASE /* DECENAS */ 
					WHEN @lnDecenas = 1 THEN 
					CASE @lnUnidades 
					WHEN 0 THEN 'DIEZ ' 
					WHEN 1 THEN 'ONCE ' 
					WHEN 2 THEN 'DOCE ' 
					WHEN 3 THEN 'TRECE ' 
					WHEN 4 THEN 'CATORCE ' 
					WHEN 5 THEN 'QUINCE ' 
					ELSE 'DIECI' + @lcCadenaD 
				END 
					WHEN @lnDecenas = 2 AND @lnUnidades = 0 THEN 'VEINTE ' + @lcCadenaD 
					WHEN @lnDecenas = 2 AND @lnUnidades <> 0 THEN 'VEINTE Y ' + @lcCadenaD 
					WHEN @lnDecenas = 3 AND @lnUnidades = 0 THEN 'TREINTA ' + @lcCadenaD 
					WHEN @lnDecenas = 3 AND @lnUnidades <> 0 THEN 'TREINTA Y ' + @lcCadenaD 
					WHEN @lnDecenas = 4 AND @lnUnidades = 0 THEN 'CUARENTA ' + @lcCadenaD 
					WHEN @lnDecenas = 4 AND @lnUnidades <> 0 THEN 'CUARENTA Y ' + @lcCadenaD 
					WHEN @lnDecenas = 5 AND @lnUnidades = 0 THEN 'CINCUENTA ' + @lcCadenaD 
					WHEN @lnDecenas = 5 AND @lnUnidades <> 0 THEN 'CINCUENTA Y ' + @lcCadenaD 
					WHEN @lnDecenas = 6 AND @lnUnidades = 0 THEN 'SESENTA ' + @lcCadenaD 
					WHEN @lnDecenas = 6 AND @lnUnidades <> 0 THEN 'SESENTA Y ' + @lcCadenaD 
					WHEN @lnDecenas = 7 AND @lnUnidades = 0 THEN 'SETENTA ' + @lcCadenaD 
					WHEN @lnDecenas = 7 AND @lnUnidades <> 0 THEN 'SETENTA Y ' + @lcCadenaD 
					WHEN @lnDecenas = 8 AND @lnUnidades = 0 THEN 'OCHENTA ' + @lcCadenaD 
					WHEN @lnDecenas = 8 AND @lnUnidades <> 0 THEN 'OCHENTA Y ' + @lcCadenaD 
					WHEN @lnDecenas = 9 AND @lnUnidades = 0 THEN 'NOVENTA ' + @lcCadenaD 
					WHEN @lnDecenas = 9 AND @lnUnidades <> 0 THEN 'NOVENTA Y ' + @lcCadenaD 
				ELSE @lcCadenaD 
				END /* DECENAS */ 
			-- Analizo la terna 
			SELECT @lcCadenaD = 
				CASE /* TERNA */ 
				WHEN @lnTernaD = 1 THEN @lcCadenaD  ELSE '' END /* TERNA */ 
				-- Armo el retorno terna a terna 
				SELECT @lcRetornoD = @lcCadenaD + @lcRetornoD 
				SELECT @lnTernaD = @lnTernaD + 1 
			END /* WHILE */ 

			IF @lnTernaD = 1 
			SELECT @lcRetornoD = 'CERO' 
			
		-- Return the result of the function
		SELECT @Result = RTRIM(@lcRetornoD)  + ' CENTIMOS' 
	-- Return the result of the function
	RETURN @Result
END

2. modificar la primer funcion en la ultima linea

SELECT @Result = RTRIM(@lcRetorno) + ' CON ' --+ LTRIM(STR(@lnFraccion,2)) + '/100'

3.modificar la busqueda formateada, te pongo un ejempo lazado desde SQL.

Declare @Numero numeric(20,2)
set @Numero = 275245325.26
SELECT [GenConsol].[dbo].[f_CV_NL] (@numero)+ [GenConsol].[dbo].[f_CV_NLD](@Numero)

4. El Resultado

DOSCIENTOS SETENTA Y CINCO MILLONES DOSCIENTOS CUARENTA Y CINCO MIL TRESCIENTOS VEINTE Y CINCO CON VEINTE Y SEIS CENTIMOS

Saludos Cordiales

Rodolfo Castañeda

Former Member
0 Kudos

Hola, fijate que lo puedes hacer mas sensillo, y disculpa por la respuesta anterior

1. modificar la funcion original en la antepenultima linea

SELECT @Result = RTRIM(@lcRetorno)
RETURN @Result

2. estructurar la consulta para la busqueda formateada de la siguiente forma

declare @numero numeric(20,2), @Entero int, @Decimal int
set @Numero = 125875884.25
set @Entero = CAST(@Numero AS INT)
set @Decimal = (@Numero - @Entero) * 100

SELECT [GenConsol].[dbo].[f_CV_NL] (@Entero)+' CON '+[GenConsol].[dbo].[f_CV_NL] (@Decimal) + ' DECIMOS'

NOTA: Puedes probarlo primero en SQL Server, Creo que esta seria la respuesta correcta para no crear mas objetos en la base de datos

Saludos Cordiales

Rodolfo Castañeda

Former Member
0 Kudos

Rodolfo,

Muchísimas gracias por todo el apoyo prestado, funciono muy bien.

Saludos Cordiales.

Former Member
0 Kudos

Estimado Rodolfo, la funcion esta super, ya la implemente solo tengo un problemita y es el siguiente

el numero 2.00

me da asi [dos 0/100]

y necesito que me de [dos 00/100]

es decir cuando los centavos son 00 solo me muestra un 0

y no dos

cuando los centavos son dos numeros mayores al 0 no hay problema

Si puedes ayudarme gracias

MArtin

Answers (0)