Roger, ya lo he solucionado, he encontrado el archivo y ya lo he leido, gracias.
Por otro lado, es muy sencillo de utilizar, en el evento "
ItemClick", es donde has de poner tu código, te paso el ejemplo de la prueba que estoy haciendo
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 POW-ARG-NITEM PIC S9(4) COMP-5.
01 POW-ARG-BARROW PIC S9(4) COMP-5.
PROCEDURE DIVISION USING POW-ARG-NITEM POW-ARG-BARROW.
EVALUATE POW-ARG-NITEM
WHEN 2
MOVE 0 TO AHIVA5
INVOKE POW-SELF "CallForm" USING "F-CON-TRANSPORTISTA" "M-TRANSPORTISTA"
MOVE AHIVA5 TO "Text" OF CAMPO1
IF AHIVA5 NOT = 0
MOVE AHIVA5 TO TRACOD
READ TRANSPORTISTA KEY IS XTCOD
INVALID KEY
INVOKE POW-SELF "Alarm"
ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "No existe el Registro, quizás haya sido borrado desde otro puesto ..."
WS-ATENCION
ESTILO
END-INVOKE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
NOT INVALID KEY
CALL "HABILITAR"
CALL "EXISTE"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-READ
ELSE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-IF
WHEN 4
INVOKE POW-SELF "OpenForm" USING "FORM-ACERCA" "M-ACERCA"
WHEN 6
CALL "PARASALIR"
WHEN 8
CALL "GRABAR"
WHEN 9
INVOKE POW-SELF "Alarm"
ADD POW-DMICONQUESTION POW-DMYESNO POW-DMDEFBUTTON2 GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "¿Cancelar?, Perderá la información no guardada ..."
WS-ATENCION
ESTILO
RETURNING RETORNO
END-INVOKE
IF RETORNO = POW-DMRNO
EXIT PROGRAM
END-IF
CALL "INHABILITAR"
CALL "VACIAR"
INVOKE CAMPO1 "SetFocus"
WHEN 10
MOVE 0 TO AHIVA5
INVOKE POW-SELF "CallForm" USING "F-CON-TRANSPORTISTA" "M-TRANSPORTISTA"
MOVE AHIVA5 TO "Text" OF CAMPO1
IF AHIVA5 NOT = 0
MOVE AHIVA5 TO TRACOD
READ TRANSPORTISTA KEY IS XTCOD
INVALID KEY
INVOKE POW-SELF "Alarm"
ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "No existe el Registro, quizás haya sido borrado desde otro puesto ..."
WS-ATENCION
ESTILO
END-INVOKE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
NOT INVALID KEY
CALL "HABILITAR"
CALL "EXISTE"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-READ
ELSE
MOVE SPACES TO WSCAPTION
MOVE TRACOD TO TRA-EDI
STRING "Transportistas - Nuevo Registro: "
TRA-EDI DELIMITED BY SIZE INTO WSCAPTION
END-STRING
MOVE WSCAPTION TO "Caption" OF POW-SELF
CALL "VACIAR"
CALL "INHABILITAR"
INVOKE CAMPO1 "SetFocus"
EXIT PROGRAM
END-IF
WHEN 11
CALL "BORRAR"
WHEN 13
CALL "IMPRIMIR"
WHEN 14
INVOKE POW-SELF "CallForm" USING "F-LIS-TRANSPORTISTA" "M-TRANSPORTISTA"
WHEN OTHER
EXIT PROGRAM
END-EVALUATE.
Ten en cuenta, que el menú empieza a numerear por 1 desde el primer elemento, en la imágen que adjunto, el primer elemento sería la opción "Menú", y que los separadores cuentan como un elemento en sí, por lo que has de tenerlo en cuenta a la hora de programar el
EVALUATE.
Para poder dehabilitar un elemento del menú, usa, por ejemplo:
Código COBOL:
MOVE 0 TO "ItemEnabled"(08) OF ctToolBar1.
MOVE 0 TO "ItemEnabled"(09) OF ctToolBar1.
MOVE 0 TO "ItemEnabled"(11) OF ctToolBar1.
MOVE 0 TO "ItemEnabled"(14) OF ctToolBar1.
Es decir, el número entre paréntesis es el elemento a inhabilitar.
Si tienes más dudas, indícalo.
Un saludo.-