Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Duda] Recorrer Control Table sin modificar datos (https://www.cobolforo.es/showthread.php?t=240)

Begoguay 20 de septiembre de 2015 16:18

Recorrer Control Table sin modificar datos
 
Hola

Tengo un problema con una tabla: Tengo una tabla llena con datos de un fichero. Luego necesito hacer una consulta de los datos que hay en la tabla, pero no quiero modificarlos. ¿Como consigo poder moverme por la tabla pero que no me deje editar ninguna celda de la tabla? Es decir, yo quiero que me deje manejar las flechas de arriba y abajo, la tecla 'enter', pero que no me deje escribir en ninguna celda de la tabla.

Un saludo.

Josber 20 de septiembre de 2015 17:25

1 Archivos Adjunto(s)
No sé si te he entendido bien, pero cuando defines la tabla, donde defines las columnas, hay una propiedad que es "writable", si la marcas, impides que se pueda modificar el contenido. Fíjate en la imágen que adjunto.

Un saludo.-

Begoguay 20 de septiembre de 2015 17:56

Hola Josber
Ya he probado con esa propiedad, pero entonces no me funcionan las flechas para avanzar dentro de la tabla

Lo que yo quiero es que no me deje escribir nada en ninguna celda, pero si moverme y situarme en la celda que yo quiera con el ratón o las flechas

Kuk 20 de septiembre de 2015 21:57

Begoguay, El control Table no permite lo que tu quieres hacer. Si simplemente necesitas poder marcar la celda (o la linea) en la que te encuentras, puedes usar el ejemplo que he dejado: Selección de línea en Table control - COBOL Foro

En este ejemplo el CmTable marca la linea, como en el ListView. Puedes modificarlo para que se marque la celda y no la linea.

También para facilitar la vista de los datos, puedes alternar el BackColor: AltBackColor en el control Table - COBOL Foro

Lo unico, PowerCOBOL 9 no acepta colores en formato RGB, tienes que modificar los valores X'rrggbb00' por constantes o recuperando los valores numericos de colores personalizados.

Hrmcobol 21 de septiembre de 2015 00:31

1 Archivos Adjunto(s)
Hola Amigos, yo resolví ese tema duplicando las columnas y haciendo de un "ancho" pequeño al pares, ejemplo: Width: 100, Width: 2, también saque la opción de writable a las impares, por lo tanto me puedo mover por toda la tabla.
les adjunto un ejemplo.
Saludos

Begoguay 21 de septiembre de 2015 21:56

Hola

Para resolverlo, me he creado una 'columna fantasma' en la tabla que no muestro y a la que mando el foco siempre que se pincha en cualquier celda de la tabla o bien se va a alguna celda con las teclas de arriba / abajo.

Gracias por vuestras respuestas

Galileo 20 de diciembre de 2015 13:19

Cita:

Citación del post de Begoguay (Mensaje 1060)
Hola

Para resolverlo, me he creado una 'columna fantasma' en la tabla que no muestro y a la que mando el foco siempre que se pincha en cualquier celda de la tabla o bien se va a alguna celda con las teclas de arriba / abajo.

Gracias por vuestras respuestas

Este es un sencillo truco que también he utilizado alguna vez en PowerCOBOL 3.0. ¡Me encantan las soluciones sencillas!

Otra solución que he implementado para poder recorrer las celdas sin entrar en modo edición es incluir éste código en el evento EDIT de la tabla:

Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.     WORKING-STORAGE SECTION.
  4.     77  FILA    PICTURE 9.
  5.     77  FILA-O  PICTURE 9.
  6.     77  COLUMNA PICTURE 9.
  7.  PROCEDURE   DIVISION.
  8.         MOVE POW-ROW OF MATRIZ TO FILA-O, FILA.
  9.         MOVE POW-COL OF MATRIZ TO COLUMNA.
  10.         IF FILA < 8 THEN
  11.             ADD 1 TO FILA
  12.         ELSE
  13.             MOVE 1 TO FILA
  14.         END-IF
  15.         MOVE POW-OFF TO POW-ENABLE OF MATRIZ.
  16.         CALL SELECTCELL OF MATRIZ USING FILA, COLUMNA.
  17.         CALL SELECTCELL OF MATRIZ USING FILA-O, COLUMNA.
  18.         MOVE POW-ON TO POW-ENABLE OF MATRIZ.
  19.         MOVE SPACES TO POW-STRING OF LISTA-RASGOS.
  20.         MOVE POW-OFF TO POW-VISIBLE OF L-DIANA.
  21.         MOVE SPACES TO POW-TEXT OF L-COMENTARIO.
  22.         CALL "CARGA-IMAGEN".       
  23.  
  24. * Con esta operación evitamos entrar en el modo de edición al hacer doble-click o enter sobre una celda

Si alguien quiere verlo funcionando (recuerdo que es PowerCOBOL 3.0) que le eche un vistazo al programa "Mapa lunar" que mandé a la sección de rutinas de ESCOBOL http://www.escobol.com/modules.php?n...p=getit&lid=78

Kuk 20 de diciembre de 2015 15:13

Galileo, no des enlaces a otras WEB si puedes colgarlo aquí. Si mañana dicha WEB desaparece, se pierde lo que hayas aportado.

Galileo 21 de diciembre de 2015 09:34

3 Archivos Adjunto(s)
Cita:

Citación del post de Kuk (Mensaje 1389)
Galileo, no des enlaces a otras WEB si puedes colgarlo aquí. Si mañana dicha WEB desaparece, se pierde lo que hayas aportado.

El proyecto, compimido en formato zip, es de 1,27 Mb, así que supera el límite establecido para los ficheros de este tipo. Puesto que las fotografías son lo que se llevan la mayor parte de dicho espacio (1,23 Mb), lo he dividido todo en tres ficheros comprimidos: MapaLunar-2 (donde se encuentra el proyecto); y Fotos1 y Fotos2, que deberán descomprimirse dentro de la subcarpeta Fotos.

Kuk, lo de poner el enlace era por no sobrecargar innecesariamente el dominio, ya que en otro post tuyo creo que dijiste que éste era gratuito y limitado en capacidad. Además, mi experiencia me dice que no hay nada seguro y perdurable en Internet. Por ejemplo, durante años colaboré mandando código al foro forum.basicprogramming.org y hace poco este dominio expiró. Lo mismo puede acabar ocurriendo con ESCOBOL o, tal vez un día, a COBOLFORO.ES.

Pero bueno, bien pensado, así tendré este huevo en tres "cestos": mi ordenador, ESCOBOL y aquí.

Un saludo.


La franja horaria es GMT +2. Ahora son las 03:03.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.