Enter x Tab
Publicado por Marco (155 intervenciones) el 17/06/2014 14:27:19
Donde puedo conseguir los template Reemplazar enter x tab y pasar números a letras para Clarion 8?
Valora esta pregunta
0
#TEMPLATE(RH3,'Template para conversión números a letras'),Family('ABC')
#EXTENSION(Global_Num_Let,'Extensión global para incluir Números a Letras'),APPLICATION
#SHEET
#TAB('NUMALET')
#display('')
#Display('Agregar la función NumeroaLetra en esta aplicación')
#Display('')
#Display('Uso:')
#Display('Donde se requiera la conversión,')
#Display('Utilizar la función')
#Display('VarString=NumeroaLetra(Valor)')
#Display('')
#Display('Adaptado a template y modificado por: ')
#Display('Ing. Ramón Hernández D.')
#Display('Email:ramonh@vel.com.mx')
#Display('Modificado para manejar pesos')
#ENDTAB
#ENDSHEET
#ATSTART
#DECLARE(%ModuloNumalet)
#set(%ModuloNumalet,CLip(Left(%Program,LEN(Clip(%Program))-5)))
#SET(%ModuloNumalet,CLIP(LEFT(%ModuloNumalet,4))&'_NAL')
#ENDAT
#AT(%CustomGlobalDeclarations)
#PROJECT(%ModuloNumalet&'.CLW')
#ENDAT
#AT(%GlobalMap)
#INSERT(%GeneradorModuloNumalet)
#INSERT(%GeneradorIncludeNumalet)
#ENDAT
#!--------------------------------------------------------------------
#GROUP(%GeneradorModuloNumalet)
#MESSAGE('Generando Módulo: '& %ModuloNumalet&'.CLW',1)
#MESSAGE('Generando módulo Numalet',2)
#MESSAGE('',3)
#CREATE(%ModuloNumalet&'.$$$')
MEMBER('%Program')
#INSERT(%ImplementacionNumalet)
#CLOSE(%ModuloNumalet&'.$$$')
#REPLACE(%ModuloNumalet&'.CLW',%ModuloNumalet&'.$$$')
#REMOVE(%ModuloNumalet&'.$$$')
#!-----------------------------------------------------------------------
#GROUP(%GeneradorIncludeNumalet)
MODULE('%'ModuloNumalet.CLW')
#Insert(%ProtoNumalet)
END
#!-----------------------------------------------------------------------
#GROUP(%ProtoNumalet)
NumeroaLetra(REAL),STRING
#!----------------------------------------------------------------------
#GROUP(%ImplementacionNumalet)
NumeroaLetra PROCEDURE (Numero)
ModuloMillones LONG
Centimos REAL
Unidadess REAL
Decenas REAL
Centenas REAL
Valor REAL
SinCientos REAL
Respuesta STRING(255)
Modulo STRING(34)
Parcial STRING(34)
D_Unidades_G STRING(210)
D_Unidades STRING(10),DIM(21),OVER(D_Unidades_G)
D_Decenas_G STRING(72)
D_Decenas STRING(9),DIM(8),OVER(D_Decenas_G)
D_Centenas_G STRING(117)
D_Centenas STRING(13),DIM(9),OVER(D_Centenas_G)
CODE
D_Unidades_G = 'CERO ' | !Carga de Unidades
& 'UN ' |
& 'DOS ' |
& 'TRES ' |
& 'CUATRO ' |
& 'CINCO ' |
& 'SEIS ' |
& 'SIETE ' |
& 'OCHO ' |
& 'NUEVE ' |
& 'DIEZ ' |
& 'ONCE ' | ! Y de primera decena
& 'DOCE ' |
& 'TRECE ' |
& 'CATORCE ' |
& 'QUINCE ' |
& 'DIECISEIS ' |
& 'DIECISIETE' |
& 'DIECIOCHO ' |
& 'DIECINUEVE' |
& 'VEINTE '
D_Decenas_G = 'VEINTI ' | !Carga de Decenas
& 'TREINTA ' |
& 'CUARENTA ' |
& 'CINCUENTA' |
& 'SESENTA ' |
& 'SETENTA ' |
& 'OCHENTA ' |
& 'NOVENTA '
D_Centenas_G = 'CIENTO ' | !Carga de Centenas
& 'DOSCIENTOS ' |
& 'TRESCIENTOS ' |
& 'CUATROCIENTOS' |
& 'QUINIENTOS ' |
& 'SEISCIENTOS ' |
& 'SETECIENTOS ' |
& 'OCHOCIENTOS ' |
& 'NOVECIENTOS '
!--------------------------------------------------------------------------
Clear(Respuesta)
Valor = INT(Numero)
Centimos = (Numero - Valor) * 100 !Centavos
Valor = INT(Centimos+ 0.01)
IF INT(NUMERO)=1 THEN
Respuesta = ' PESO ' & FORMAT(Valor,@N02) & '/100 M.N.'
ELSE
Respuesta = ' PESOS ' & FORMAT(Valor,@N02) & '/100 M.N.'
END
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Valor = INT (Numero - (INT(Numero / 1000) *1000)) !Unidades
If Valor = 1 AND CENTIMOS<>0 Then
Respuesta = 'UN ' & Clip (Respuesta)
ELSIF Valor = 0 Then
Respuesta = 'CERO ' & Clip (Respuesta)
ELSIF Valor <> 0 Then
Do Calc_Modulo
Respuesta = Clip (Modulo) &' '&Clip (Respuesta)
END
Valor = INT (Numero / 1000) - (INT(Numero / 1000000) * 1000) !Miles
If Valor = 1 Then
Respuesta = 'MIL '&Clip (Respuesta)
ElsIf Valor <> 0 Then
Do Calc_Modulo
Respuesta = Clip (Modulo) &' MIL '&Clip (Respuesta)
end
ModuloMillones=Numero % 1000000 !RHD*** si es cero son millones redondos
Valor = INT (Numero / 1000000) !Millones
If Valor = 1 Then
if MOduloMIllones >0
Respuesta = 'UN MILLON '&Clip (Respuesta)
else
Respuesta = 'UN MILLON DE '&Clip (Respuesta)
end
ElsIf Valor <> 0 Then
Do Calc_Modulo
if ModuloMillones >0
Respuesta = Clip (Modulo) &' MILLONES '&Clip (Respuesta)
else
Respuesta = Clip (Modulo) &' MILLONES DE '&Clip (Respuesta)
end
end
Return(Respuesta)
!---------------------------------------------------------------------------
Calc_Modulo ROUTINE
If valor = 100 Then
Modulo = 'CIEN'
Else
Do Calc_Parcial
IF Valor > 100 Then
Valor = int(Valor / 100)
If SinCientos = 0 Then
Modulo = Clip(D_Centenas[Valor])
Else
Modulo = Clip(D_Centenas[Valor]) &' '& Clip(Parcial)
end
Else
Modulo = Clip(Parcial)
end
end
!---------------------------------------------------------------------------
Calc_Parcial ROUTINE
Centenas = Int(Valor/100)
Decenas = INT(Valor/10) - Centenas*10
Unidadess = Valor - (Decenas*10) - (Centenas*100) +1
SinCientos = (Decenas*10)+ Unidadess - 1
Case SinCientos
Of 0 to 20
Parcial = Clip(D_Unidades[SinCientos+1])
Of 21 to 99
If Unidadess = 1 Then
Parcial = Clip(D_Decenas[Decenas-1])
ElsIF Decenas > 2 Then
Parcial = Clip(D_Decenas[Decenas-1]) & ' Y '& Clip(D_Unidades[Unidadess])
Else
Parcial = Clip(D_Decenas[Decenas-1]) & Clip(D_Unidades[Unidadess])
end
end
#!--------------------------------------------------------------------------------------------