PDA

Ver la Versión Completa : [Sintaxis] Utilización de ListBox


jmeza
28 de octubre de 2017, 19:22
Hola amigos de Cobol, necesito de su ayuda
Tengo que incorporar un Listbox dentro de un formulario, para eligir una opción dentro de un listado de alternativas, la eligida mostrarla en un campo del formulario.

Es la primera vez que voy a usar este control.
El ejemplo que me da el software no logro conseguir su funcionamiento.

Si me pueden ayudar con esto enviando un ejemplo de su rutina de programación.

Un Saludo

Juan Meza

Hrmcobol
28 de octubre de 2017, 21:20
Hola Juan, el ejemplo que viene en la instalación es muy claro, porque no logras que funcione?
Saludos
H

jmeza
29 de octubre de 2017, 02:02
Hola H, en realidad a mi no me funciona por falta de practica, estoy emigrando de rmcobol dos a pawercobol y es la primera vez que necesito incorporarla en un formulario.

Necesito registrar 10 unidades de medidas para elejir una

Con un pequeño ejemplo quedo claro

Saludos
JM

Kuk
29 de octubre de 2017, 10:42
jmeza, en este caso lo mejor sería un ComboBox. De todos modos ambos comparten los mismos métodos y propiedades:


ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 IDX-1 PIC S9(4) COMP-5.
01 WS-TEXTO PIC X(50).

PROCEDURE DIVISION.

*> AÑADIR LINEA
INVOKE CmCombo1 "AddString" USING WS-TEXTO
INVOKE CmList1 "AddString" USING WS-TEXTO

*> OBTENER TEXTO DE UNA LINEA CONCRETA
MOVE 1 TO IDX-1

MOVE "ListString"(IDX-1) OF CmCombo1 TO WS-TEXTO
MOVE "ListString"(IDX-1) OF CmList1 TO WS-TEXTO

*> OBTENER LINEA SELECCIONADA
MOVE "SelString" OF CmCombo1 TO WS-TEXTO
MOVE "SelString" OF CmList1 TO WS-TEXTO

jmeza
30 de octubre de 2017, 02:06
ok Kuk, lo voy a trabajar con ComboBox, que ya e usado anteriormente en lectura de un archivo para seleccionar un código.
Para este caso los datos son fijos asi que instentare declararlos en la WORKING
para mostrarlos en la busqueda y seleccionar uno.

Saludos
jm

Kuk
30 de octubre de 2017, 08:34
jmeza, no es obligatorio declarar variables, si los datos son fijos puedes hacer directamente:


INVOKE CmCombo1 "AddString" USING "Opción 1"
INVOKE CmCombo1 "AddString" USING "Opción 2"
INVOKE CmCombo1 "AddString" USING "Opción 3"
...

jmeza
30 de octubre de 2017, 15:08
ok Kuk, ahora me queda mas claro, así lo haré

Saludos

Gatomalo
1 de noviembre de 2017, 18:42
Usando el control ctlist del DBI
tal vez te sirva

01 DATOS.
02 COD PIC 9(6).
02 FILLER PIC X ";".
02 NOMBRE PIC X(50).
02 FILLER PIC X VALUE ";".
02 PRECIO PIC ZZ,ZZZ.ZZ.
01 IT PIC 99999.
PROCEDURE DIVISION.
MOVE LISTindex of ctlist1 TO it.
MOVE LISTtext( it ) of ctlist1 TO DATOS.
MOVE COD TO .....

Para selecciona un item en el ctlist.

INVOKE CTLIST1 "RemoveSelected".

para eliminar una linea

MOVE DATOS TO LISTTEXT( IT ) OF CTLIST1.

para reemplazar una linea

INVOKE CTLIST "ADDITEM" USING DATOS.

para adicionar datos.

MOVE IT TO MAX
COMPUTE MAX = MAX - 1.
INVOKE CTLIST1 "INSERTITEM" USING DATOS ,MAX.

para insertar una linea

:santa: