Iniciar Sesión

Ver la Versión Completa : [Duda] Recorrer Control Table sin modificar datos


Begoguay
20 de septiembre de 2015, 16:18
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
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 (http://cobolforo.es/showthread.php?t=227)

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 (http://cobolforo.es/showthread.php?t=226)

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
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
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:

ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 FILA PICTURE 9.
77 FILA-O PICTURE 9.
77 COLUMNA PICTURE 9.
PROCEDURE DIVISION.
MOVE POW-ROW OF MATRIZ TO FILA-O, FILA.
MOVE POW-COL OF MATRIZ TO COLUMNA.
IF FILA < 8 THEN
ADD 1 TO FILA
ELSE
MOVE 1 TO FILA
END-IF
MOVE POW-OFF TO POW-ENABLE OF MATRIZ.
CALL SELECTCELL OF MATRIZ USING FILA, COLUMNA.
CALL SELECTCELL OF MATRIZ USING FILA-O, COLUMNA.
MOVE POW-ON TO POW-ENABLE OF MATRIZ.
MOVE SPACES TO POW-STRING OF LISTA-RASGOS.
MOVE POW-OFF TO POW-VISIBLE OF L-DIANA.
MOVE SPACES TO POW-TEXT OF L-COMENTARIO.
CALL "CARGA-IMAGEN".

* 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?name=Downloads&d_op=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
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.