Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol COBOL - General
COBOL - General Discusiones de temática general sobre el lenguaje COBOL y todo lo relacionado con él.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] sumar numeros de una lista Breew COBOL - General 12 3 de junio de 2020 22:34
Imprimir cálculo con decimales Kuk Sistemas operativos 0 24 de octubre de 2018 11:20
[Componente] Número de más de 4 decimales en Textbox Fito PowerCOBOL (ActiveX, v4 - v11) 6 22 de abril de 2016 17:28

Respuesta
 
Herramientas

  #1
Antiguo 31 de diciembre de 2022, 11:06
Socavi
Forero
Última Actividad 05.07.2022 17:01
Posts Posts: 78
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18
Predeterminado Sumar decimales
1 Inactivo Inactivo

Tengo un problema que no he podido resolver, sumar una columna de ListView.
La variable global, la tengo definida como : TOTSUP PIC S9(5)V99 COMP-5 (He probado con COMP-3 y COMP-4) pero no me suma la columna o no aparece la suma donde tengo previsto.
Trabajo en Windos-11 con PWCobol v.9

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Comarcas.jpg
Vistas: 46
Tamaño:  62,5 KB  
Socavi is offline   Responder Con Cita
  #2
Antiguo 31 de diciembre de 2022, 16:56
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Hola @Socavi, dos cuestiones sin ver el codigo , la primera la columna 4 del ListView es declarada como numerica?
segunda el campo donde debes mostrar el total de las superficies esta visible es decir POW-TRUE



De todas maneras te paso un simple ejemplo que suma las columnas 3 , 4 , 5 y las muestra en un TextBox


Saludos ....

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  ListView.png
Vistas: 41
Tamaño:  10,4 KB   Pulsar la imagen para la versión amplia
Nombre:  TextBox.png
Vistas: 39
Tamaño:  9,6 KB  
Archivos Adjuntos
Tipo de Archivo: rar Sumar.rar (5,3 KB)Descargas: 27
fastpho is offline   Responder Con Cita
  #3
Antiguo 31 de diciembre de 2022, 17:57
Socavi
Forero
Última Actividad 05.07.2022 17:01
Posts Posts: 78
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18

Buenas tardes Fastpho y muchas gracias por tu ayuda. A mi me resulta extraño que sume correctamente la columna(3) de la población, pero no la (4) de Superficie
las variables global creo que estan bien declaradas y no se dónde encontrar el error.

Código COBOL:
  1.      OPEN INPUT MUNICI
  2.      invoke Lista 'Clear'
  3.      move ' ' to finfic move 0 to cuantos
  4.      perform until finfic = 's'
  5.         read MUNICI NEXT RECORD AT END MOVE 's' to finfic
  6.            not at end
  7.            IF MUNICOM = WZMU
  8.               INVOKE Lista 'Add' USING 1 1 RETURNING RETORNO
  9.               MOVE 'ListItems'(RETORNO) OF Lista TO LINEA
  10.               MOVE MUNICOD TO 'Text'   (1) OF LINEA
  11.               MOVE MUNINOM TO 'Text'   (2) OF LINEA
  12.               MOVE MUNIPOB TO 'Numeric'(3) OF LINEA
  13.               MOVE MUNISUP TO 'Numeric'(4) of linea
  14.               PERFORM CALCUL THRU FI-CALCUL
  15.               move V-COE   TO 'Numeric'(5) OF LINEA
  16.               MOVE MUNIALT TO 'Numeric'(6) OF LINEA
  17.               MOVE IDESCAT TO 'Numeric'(7) OF LINEA
  18.               ADD  MUNIPOB TO TOTPOB
  19.               ADD  MUNISUP TO TOTSUP
  20.               add 1 to cuantos
  21.            END-IF
  22.         end-read
  23.      end-perform.
  24.      close MUNICI.
  25.      move cuantos   TO 'Caption'   of CmStatic32.
  26.      move TOTPOB  TO pow-numeric OF V-TOTPOB.
  27.      MOVE TOTSUP  TO pow-numeric OF V-TOTSUP.
  28.      PERFORM COMPROVA THRU FI-COMPROVA.
  29.      
  30.      EXIT PROGRAM.

Feliz y Próspero Año Nuevo 2.023 !!!
Socavi is offline   Responder Con Cita
  #4
Antiguo 31 de diciembre de 2022, 18:41
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 22.09.2026 16:20
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

@Socavi, supongo que sí pero, tienen la misma PICTURE en la WORKING que en la tabla, ¿no?, de todas maneras, creo recordar que el listview, trabaja a 4 decimales, le pongas lo que le pongas.

Un salu2.-
Josber is offline   Responder Con Cita
  #5
Antiguo 31 de diciembre de 2022, 22:27
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Citación del post de Socavi Ver Mensaje
Buenas tardes Fastpho y muchas gracias por tu ayuda. A mi me resulta extraño que sume correctamente la columna(3) de la población, pero no la (4) de Superficie
las variables global creo que estan bien declaradas y no se dónde encontrar el error.

Código COBOL:
  1.      OPEN INPUT MUNICI
  2.      invoke Lista 'Clear'
  3.      move ' ' to finfic move 0 to cuantos
  4.      perform until finfic = 's'
  5.         read MUNICI NEXT RECORD AT END MOVE 's' to finfic
  6.            not at end
  7.            IF MUNICOM = WZMU
  8.               INVOKE Lista 'Add' USING 1 1 RETURNING RETORNO
  9.               MOVE 'ListItems'(RETORNO) OF Lista TO LINEA
  10.               MOVE MUNICOD TO 'Text'   (1) OF LINEA
  11.               MOVE MUNINOM TO 'Text'   (2) OF LINEA
  12.               MOVE MUNIPOB TO 'Numeric'(3) OF LINEA
  13.               MOVE MUNISUP TO 'Numeric'(4) of linea
  14.               PERFORM CALCUL THRU FI-CALCUL
  15.               move V-COE   TO 'Numeric'(5) OF LINEA
  16.               MOVE MUNIALT TO 'Numeric'(6) OF LINEA
  17.               MOVE IDESCAT TO 'Numeric'(7) OF LINEA
  18.               ADD  MUNIPOB TO TOTPOB
  19.               ADD  MUNISUP TO TOTSUP
  20.               add 1 to cuantos
  21.            END-IF
  22.         end-read
  23.      end-perform.
  24.      close MUNICI.
  25.      move cuantos   TO 'Caption'   of CmStatic32.
  26.      move TOTPOB  TO pow-numeric OF V-TOTPOB.
  27.      MOVE TOTSUP  TO pow-numeric OF V-TOTSUP.
  28.      PERFORM COMPROVA THRU FI-COMPROVA.
  29.      
  30.      EXIT PROGRAM.

Feliz y Próspero Año Nuevo 2.023 !!!
@Socavi viendo tu codigo , agrega esta linea para ver que valor tiene TOTSUP

Código COBOL:
  1.  
  2.    display "Total Superficie : " , TOTSUP
  3.    MOVE TOTSUP  TO pow-numeric OF V-TOTSUP
Saludos ....
fastpho is offline   Responder Con Cita
  #6
Antiguo 1 de enero de 2023, 11:04
Socavi
Forero
Última Actividad 05.07.2022 17:01
Posts Posts: 78
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18

Gracias Josber, confirmado, si están bien declaradas (creo),
Código COBOL:
  1.     02 TOTPOB PIC S9(7)      COMP-5.
  2.     02 TOTSUP PIC S9(5)V99 COMP-5.

Hola Fastpho, realizada la prueba sugerida, la Superficie muestra +0014575, sin separación de coma, pero sigue sin mostrarla en V-TOTSUP., Muchas gracias a ambos.
Socavi is offline   Responder Con Cita
  #7
Antiguo 1 de enero de 2023, 15:50
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Socavi, estás seguro que no se trata de un problema de muestreo del control? Estos componentes, incluído el V-TOTSUP los tienes en un CmFrame? Muevele un 0 tal cual al principio a ver si se ve, si no, al final del tratamiento, un simple
Código COBOL:
  1. MOVE 0 TO POW-NUMERIC OF V-TOTSUP
A ver qué tal



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
  #8
Antiguo 1 de enero de 2023, 16:38
Socavi
Forero
Última Actividad 05.07.2022 17:01
Posts Posts: 78
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18

Hola Kuk, puesta en practica tu sugerencia, no pasa el valor 0, y debería porque la variable, esta declarada en la Working-storage como

Código COBOL:
  1.  01 VARIABLES GLOBAL.    
  2.      02 TOTPOB PIC S9(7)      COMP-5.
  3.      02 TOTSUP PIC S9(5)V99 COMP-5.
Socavi is offline   Responder Con Cita
  #9
Antiguo 2 de enero de 2023, 11:38
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Socavi, la cuestión no es el valor sino la posición, el orden de capas. Me parece que el control que tengas con el nombre V-TOTSUP (imagino que es un CmStatic) se mete por detrás del CmFrame.

Haz lo siguiente, añade esta líne en tu código al final del tratamiento, después de moverle el 0

Código COBOL:
  1.      INVOKE V-TOTSUP "ZOrder" USING 0



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
  #10
Antiguo 2 de enero de 2023, 13:15
Socavi
Forero
Última Actividad 05.07.2022 17:01
Posts Posts: 78
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18

Buenos días Kuk, tampoco hace nada, es curioso, que el display que sugirio el amigo Fastpho da la suma correcta de la superficie, pero no la 'coloca en el lugar prevísto, cosa rara, pero es lo que hay, lo seguire intentando.
Socavi 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 22:13.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.