¿ Quieres imprimir esta página ? Volver a la página principal de Recursos iSeries AS400 ¿ Necesitas ayuda ? En pruebas
System i5 iSeries AS400 Recursos. Compartiendo generamos conocimiento
Novedades en Recursos iSeries AS400
Noticias tecnológicas
Documentos
Mover el contenido de un campo numérico con decimales a texto, conservando la coma y eliminando los ceros innecesarios

En este documento Rainer nos explica con dos ejemplos como mover el contenido de un campo numérico con decimales a texto, conservando la coma y eliminando los ceros innecesarios.

En el primer ejemplo Rainer soluciona el problema con programación en RPG

E EDT 1 25 06 E X 50 01 E Y 30 01 E EDTX 18 01 * I DS * Codigos I I '1234ABCDJKLMNOPQYZ' 1 18 EDXX I DS I 1 06 DTA I 1 02 VZ1 I 3 03 DZ I 4 04 KMA I 5 06 VZ2 IDX DS I 1 30 Y I 1 300YN * C *ENTRY PLIST C PARM FLD 300 I: Campo num C PARM STLN 20 O: Longitud editado C PARM DEZI 20 I: digitos decimales C PARM EDTCD 1 I: codigo edicion C PARM X O: valor editado * C Z-ADDDEZI DEZI2 20 KOMAS C MOVELEDXX EDTX C CLEARX C Z-ADDFLD YN * C FLD IFLT *ZERO C YN MULT -1 YN C END C EDTCD IFEQ 'Y' C MOVELY,30 X,50 C MOVELY,29 X,49 C MOVELY,28 X,47 C MOVELY,27 X,46 C MOVELY,26 X,44 C MOVELY,25 X,43 C MOVEL'.' X,48 C MOVEL'.' X,45 C Z-ADD8 LNY 20 C YN IFEQ *ZERO C CLEARX C END C ELSE C EXSR VERA C END C Z-ADDLNY STLN C SETON LR *---------------------------------------------------------------- C VERA BEGSR *---------------------------------------------------------------- * C Z-ADD0 W 20 C EDTCD:1 SCAN EDXX:1 W 99 1 C 99 W IFGT *ZERO C MOVELEDT,W DTA 2 C FLD IFLT *ZERO C MOVE VZ2 X,50 C MOVELVZ2 X,49 2 C END C Z-ADD48 G 20 C Z-ADD30 G2 20 C EDTCD IFEQ 'Z' C Z-ADD50 G 20 2 C END C VRLP1 TAG 2 C DEZI2 IFGT *ZERO C MOVELY,G2 X,G C SUB 1 G 20 C SUB 1 G2 20 C SUB 1 DEZI2 C GOTO VRLP1 2 C END 2 C DEZI IFGT *ZERO 2 C KMA ANDNE*BLANKS C MOVELKMA X,G C SUB 1 G 2 C END C Z-ADD0 G3 20 C VRLP2 TAG 2 C G2 IFGT *ZERO C MOVELY,G2 X,G C SUB 1 G 20 C SUB 1 G2 20 C ADD 1 G3 3 C G3 IFEQ 3 4 C DZ IFNE *BLANKS C MOVELDZ X,G C Z-ADD0 G3 C SUB 1 G 20 4 C END 3 C END C GOTO VRLP2 2 C END C 50 SUB G LNY 20 C Z-ADD1 G C VRLP3 TAG 2 C G IFLE 50 3 C X,G IFEQ '0' 3 C X,G OREQ DZ 3 C X,G OREQ *BLANKS C MOVEL*BLANKS X,G C ADD 1 G C GOTO VRLP3 3 C ELSE C GOTO BOT 3 C END 2 C END C BOT TAG C SUB 1 G C FLD IFLT *ZERO C G ANDLT50 C MOVE VZ1 X,G C SUB 1 G C MOVELVZ1 X,G 1 C END 1 C END C ENDSR ** VORZEICHEN DEZIMALE KOMMA NACHZ ,. ,. . . ,.CR ,.CR .CR .CR ,.- ,.- .- .- -,. -,. - . - . . . Comprobar el programa EDIT * 1: 1234567,89 EDTCDE(2) C Z-ADD0 EXT 300 C MOVE 123456789 EXT C Z-ADD2 DEZ 20 C Z-ADD0 ELEN 20 C MOVEL'2' ECODE 1 C MOVE *BLANK RTNVAL 50 * C CALL 'EDIT' C PARM EXT C PARM ELEN C PARM DEZ C PARM ECODE C PARM RTNVAL * C RTNVAL DSPLY * * 2: 0,000001- EDTCDE(J) C Z-ADD0 EXT C MOVE 1 EXT C MULT -1 EXT C Z-ADD6 DEZ C Z-ADD0 ELEN C MOVEL'K' ECODE C MOVE *BLANK RTNVAL * C CALL 'EDIT' C PARM EXT C PARM ELEN C PARM DEZ C PARM ECODE C PARM RTNVAL * C RTNVAL DSPLY * C SETON LR C RETRN

 

En el segundo lo soluciona utilizando el tipo de fichero SPECIAL

FEDTFILE UF F 256 SPECIAL EDIT * IEDTFILE NS I 1 10 EDTNUM I 11 18 EDTDTE I 19 30 EDTWRD * C Z-ADD1234,56 NUM 62 * C EXCPTEDIT * C READ EDTFILE 99 * C DSPLY EDTNUM C DSPLY EDTDTE C DSPLY EDTWRD * C MOVE *ON *INLR * OEDTFILE E EDIT O NUM K 10 O UDATE Y 18 O NUM 30 ' $0 . ' Programa EDIT: IERRDS DS I 1 50ERROR * C *ENTRY PLIST *-> O=OPEN C=CLOSE R=READ W=WRITE D=DELETE U=UPDATE C PARM OPTION 1 *-> 0=NORMAL 1=EOF 2=ERROR C PARM STATUS 1 *-> 5-DIGIT ERROR CODE C PARM ERRDS *-> BUFFER C PARM FIELD 256 * C Z-ADD*ZERO ERROR C MOVE '0' STATUS *-> CLOSE DOWN IF THE FILE IS CLOSED C OPTION IFEQ 'C' C MOVE *ON *INLR C END * C RETRN

Ejemplo enviado por Rainer

Puedes ver los ejemplos en formato texto aquí (2kb)

Octubre 2003

Comentarios de usuarios

Nombre:
Mail:
Comentario:
 

Subir a la parte superior de la web

 

 

NUESTRA COMUNIDAD EN
ÚNETE Y.... ¡¡ PARTICIPA !!
Dossiers técnicos iSeries y AS400
- Seguridad
- Alta disponibilidad.
Nuestros links favoritos
- Tendencias tecnologías de la información
Expertos en tecnologías de la información, nos dan su punto de vista sobre las tendencias actuales y futuras
- Los últimos anuncios sobre hardware-software para iSeries AS400 realizados por IBM
- Freeware y shareware para el iSeries AS400
- Utilidades para el iSeries AS400 realizadas por profesionales
- Documentos. Trucos e ideas para resolver tus problemas
- Los manuales y links más interesantes del iSeries AS400

  Links patrocinados
  •  
  •  

[ Soy nuevo |   Profesionales |   AS qué |   Empresas |    Foros |   Recomiéndanos |    Productos ]
 
Recursos iSeries AS400. Es una web de: PUBLICACIONES HELP400, S.L. CIF:B-60-202827 Gran Vía de les Corts Catalanes, núm. 715, Entresuelo – 3ª - Barcelona - Tel.+34.932.310.049