Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Campos numericos en SQL Server Fito PowerCOBOL (ActiveX, v4 - v11) 4 17 de septiembre de 2020 09:02
[Duda] Definir Valores TableControl Recato53 PowerCOBOL (ActiveX, v4 - v11) 1 12 de agosto de 2017 19:04
[Sintaxis] Equivalencia de formato de campos numéricos Galileo COBOL - General 1 29 de enero de 2016 09:19
[Sintaxis] Como descifrar valores de COM-EXCEPTION Kuk PowerCOBOL y COM/OLE 5 20 de abril de 2015 18:36
[Sintaxis] Valores ASCII Recato53 PowerCOBOL (ActiveX, v4 - v11) 3 3 de abril de 2015 10:43

Respuesta
 
Herramientas

  #1
Antiguo 23 de marzo de 2015, 08:13
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8
Predeterminado Valores numericos y editados
0 Inactivo Inactivo

Hola amigos.


Tengo un reporte en un fichero con campos numericos que debo efectuar calculos.
al leerlo del fichero lo coloco en una tabla y me da el valor correcto.

por ejemplo:
Código COBOL:
  1. 01 tarifa1  pic x(7)  value "123,48".
  2. 01 tarifa redefines  tarifa1 pic 9(4)v99.

Pero a la hora de efectuar calculos con tarifa1, me da un valor erroneo.

He hecho multiples combinaciones, pero no hay manera, siempre me calcula mal.
Como deberia hacerlo ?

POWER COBOL 9.0
Breew is offline   Responder Con Cita
  #2
Antiguo 23 de marzo de 2015, 09:11
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, nunca he usado campos alfanumericos para guardar numeros pero de todos modos por que le haces un REDEFINES, con MOVE no funciona? Deberia funcionar. Pero si no, yo lo que probaria es primero moverlo a un PIC ZZZZ9,99 y luego desde aqui ya a un campo numerico.
Pero MOVE, no REDEFINES. En este caso yo diria que el REDEFINES no sirve de nada.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 23 de marzo de 2015, 12:30
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 21.09.2026 07:20
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Yo empezaría por mirar la alineación del campo alfanumérico, ésta es a la izquierda y los numéricos, es a la derecha, y en lo que has puesto, cuando pasas los números de un campo a otro, como son seis números y el tamaño es 7, se debe de hacer la picha un lío y en el primero o en el último, quizas te meta un null, si es éste el caso, pon un JUSTIFIED RIGHT al alfanumérico y prueba a ver, sino, la solución de Kuk puede funcioar también.

Un saliudo.-
Josber is offline   Responder Con Cita
  #4
Antiguo 23 de marzo de 2015, 14:15
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120

Yo haria lo siguiente:
Código COBOL:
  1. 01 Tarifa.
  2.      02  cpo-1    pic 999.
  3.      02  cpo-2    pic x
  4.      02  cpo-3    pic 99.
  5.  01 valor1   pic 9(5).
  6.  01 valor2   pic 999v99.
  7.      move cpo-1 to valor1(01:03)
  8.      move cpo-3 to valor1(04:02)
  9.      move valor1 to valor2

En valor dos es un campo numero que sirve para hacer cualquier tipo de cuenta.

Saludos y espero que sirva.
Hrmcobol is offline   Responder Con Cita
  #5
Antiguo 23 de marzo de 2015, 14:51
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Hrmcobol, esto es en caso de que la coma decimal sea siempre fija. Si en algun caso hay 1 solo decimal o 3 ya no serviria y habria que montar un buscle para buscar la coma.

Por cierto, amigo Hrm, usa el TAG [ COBOL ] para codigo fuente



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #6
Antiguo 23 de marzo de 2015, 18:51
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120

Si hay qu hacer un blucle para ubicar la coma,
Se me ocurre Otra, que pasa si defines un CmText con el RenderText de 999999,9999, le mueves el texto al "text" y luego el POW-NUMERIC a un campo pic 999999v9999 eso funciona, y no hay que hacer nada.



Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  campo pic x(7) value "123,48".
  3.  01  numer pic 9(6)v9(4).
  4.  01  zetas pic 999999,9999.
  5.  PROCEDURE       DIVISION.
  6.       move campo to "Text" OF cmtext1
  7.       MOVE POW-NUMERIC OF cmtext1  TO numer.
  8.       move numer to zetas.
  9.       display zetas
Hrmcobol is offline   Responder Con Cita
  #7
Antiguo 25 de marzo de 2015, 23:06
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8
Predeterminado Valores numericos
0 Inactivo Inactivo

Hola Amigos.
Tengo el torpe subido , no lo consigo. Os detallo mas el tema.
Tengo un fichero plano con los valores.
ej .
Articulo1 18,36

Leo el fichero y defino el campo del valor como ZZZ9,99 o bien pic X(7).
Con dicho valor me gustaria operar con el , por ejemplo multiplicarlo por 4, y poder visualizar el resultado con formato de edicion Z.ZZ9,99.

El render text cuando le pongo un campo 9999v99 o bien ZZZ9,99 me da error:
Cita:
---------------------------
RenderTexts
---------------------------
RenderText properties cannot be set.

There is a possibility that the text adjustment made will not take effect.
---------------------------
Lo siento, estoy cabezon, cabezon.

Añadido despues de 9 minutos
Perdonar, he conseguido que opere bien, pero no consigo visualizar el resultado en un formato con coma decimal.
1836 en lugar de 18,36

Última edición por Breew fecha: 25 de marzo de 2015 a las 23:15. Razón: Post añadido
Breew is offline   Responder Con Cita
  #8
Antiguo 26 de marzo de 2015, 09:23
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 21.09.2026 07:20
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

¿Has definido en SPECIAL-NAMES?

Código COBOL:
  1. SPECIAL-NAMES.
  2.          DECIMAL-POINT IS COMMA.

Un saludo.-
Josber is offline   Responder Con Cita
  #9
Antiguo 27 de marzo de 2015, 15:13
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Ostras, pues no.

Una vez definido, calcula bien, por fin. Pero tengo el problema de que no me deja modificar el Render.

El render text, cuando le pongo un campo 9999v99 o ZZZ9,99 me da error:
---------------------------
RenderTexts
---------------------------
RenderText properties cannot be set.

There is a possibility that the text adjustment made will not take effect.
---------------------------

Citación del post de Josber Ver Mensaje
¿Has definido en SPECIAL-NAMES?

Código COBOL:
  1. SPECIAL-NAMES.
  2.          DECIMAL-POINT IS COMMA.

Un saludo.-
Breew is offline   Responder Con Cita
  #10
Antiguo 27 de marzo de 2015, 16:16
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Breew,

Antes de mudar o RenderText poe espaços na Caption.
A Caption tem by default texto e não deixa colocar "pic 9" ou "pic Z" enquanto não limpar.

Saludos,
Rui Pinto
Rapinto is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:17.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.