programacion en fox

Páginas: 5 (1088 palabras) Publicado: 8 de mayo de 2013

codigo que permite pasar un valor númerico a cadena de caracteres, por ejemplo cuando en una empresa se generan recibos o cheques con valores.
FUNCTION montoesc

PARAMETERS cifra

private all *

****************INICIALIZACION DE VARIABLES*************************

literal = ' '

STORE 0.01 TO minimo

STORE 999999999999.99 TO maximo

STORE ' ' TO val_literal

********ARREGLO QUE CONTIENE MILESMILLONES, MILLONES, MILES Y PESOS**

DIMENSION num_a_lite(4,2)

STORE '' TO num_a_lite

*

****PARA CONTENER EL VALOR DE LOS CENTAVOS****

STORE 'CON '       TO parte_con

STORE '/100 MCTE.' TO parte_100

*

*****CARGA UNAS TABLAS PARA UTILIZAR EN LA IMPRESION DEL MONTO

DIMENSION tabla_unid(9)

STORE 'UN '        TO tabla_unid(1)

STORE 'DOS '       TOtabla_unid(2)

STORE 'TRES '      TO tabla_unid(3)

STORE 'CUATRO '    TO tabla_unid(4)

STORE 'CINCO '     TO tabla_unid(5)

STORE 'SEIS '      TO tabla_unid(6)

STORE 'SIETE '     TO tabla_unid(7)

STORE 'OCHO '      TO tabla_unid(8)

STORE 'NUEVE '     TO tabla_unid(9)

*

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

DIMENSION tabla_dece(9)

STORE 'DIEZ '      TO tabla_dece(1)

STORE 'VEINTE '    TOtabla_dece(2)

STORE 'TREINTA '   TO tabla_dece(3)

STORE 'CUARENTA '  TO tabla_dece(4)

STORE 'CINCUENTA ' TO tabla_dece(5)

STORE 'SESENTA '   TO tabla_dece(6)

STORE 'SETENTA '   TO tabla_dece(7)

STORE 'OCHENTA '   TO tabla_dece(8)

STORE 'NOVENTA '   TO tabla_dece(9)

*

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

DIMENSION tab_11_15 (5)

STORE 'ONCE '      TO tab_11_15(1)

STORE 'DOCE '      TOtab_11_15(2)

STORE 'TRECE '     TO tab_11_15(3)

STORE 'CATORCE '   TO tab_11_15(4)

STORE 'QUINCE '    TO tab_11_15(5)

*****************************FIN INICIALIZACION***************

*

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

**********PROGRAMA PRINCIPAL******************

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

*

IF (cifra < minimo .OR. cifra > maximo)literal = iif(cifra=0,[CERO PESOS CON 00/100 MCTE.],[**])

ELSE  

DO conv_a_l

ENDIF  

RETURN(literal)

**********FIN PROGRAMA PRINCIPAL**************

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

PROCEDURE conv_a_l



*

cifra_alfa = trans(cifra,[@L 999999999999.99])

fraccion  = RIGHT(cifra_alfa,2)

milmillon = SUBSTR(cifra_alfa,1,3)

millon    =SUBSTR(cifra_alfa,4,6)

miles     = SUBSTR(cifra_alfa,7,9)

pesos     = SUBSTR(cifra_alfa,10,12)

centenas  = 0

decenas   = 0

unidades  = 0

i         = 0



IF milmillon > '000'

I = I + 1

STORE 'MIL ' TO num_a_lite(I,2)

if millon = [000]

num_a_lite(I,2)=num_a_lite(I,2)+[MILLONES ]  

endif  

if millon+miles+pesos = [000000000]

num_a_lite(I,2)=num_a_lite(I,2)+[DE ]  endif

DO ce_de_un WITH milmillon

DO num_a_le

STORE val_literal TO num_a_lite(I,1)

ENDIF



IF millon > '000'

I = I + 1

*

** ALMACENA TITULO DE MILLON**

DO CASE

CASE millon+miles+pesos = '001000000'

STORE 'MILLON DE ' TO num_a_lite(I,2)

CASE millon=[001] .and. miles+pesos # [000000]

STORE 'MILLON ' TO num_a_lite(I,2)

case millon # [001] .and.miles+pesos=[000000]

STORE 'MILLONES DE ' TO num_a_lite(I,2)

case millon # [001] .and. miles+pesos#[000000]

STORE 'MILLONES ' TO num_a_lite(I,2)

endcase

******    

DO ce_de_un WITH millon

DO num_a_le

STORE val_literal TO num_a_lite(I,1)

ENDIF



IF miles > '000'

I = I + 1

STORE 'MIL ' TO num_a_lite(I,2)

DO ce_de_un WITH miles

DO num_a_le

STORE val_literal TOnum_a_lite(I,1)

ENDIF



IF pesos > '000'

I = I + 1

DO ce_de_un WITH pesos

DO num_a_le

STORE val_literal TO num_a_lite(I,1)

ENDIF



nu_conv_a_l=[]

IF milmillon+millon+miles+pesos == [000000000000]

nu_conv_a_l= fraccion + parte_100

ELSE

*

***************FORMA EL MONTO ESCRITO*****************

*

** NU_CONV_A_L CONTIENE EL MONTO ESCRITO SIN TENER

** EN...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion En Fox
  • Programacion basica con visual fox 9.0
  • Programacion con visual fox pro
  • Programacion visual fox pro
  • El Fox
  • Vicente fox
  • Vicente fox
  • De Salinas A Fox

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS