Resultados 1 al 6 de 6

Tema: No funciona EXIT PROGRAM después de un "SetFocus"

  1. #1
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    691
    Última visita
    Hoy a las 10:20

    Agradecimientos
     
    Recibidos
    385
    Enviados
    314

    Citaciones y menciones
     
    Mentioned
    32 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    6 Post(s)
    Poder de Reputación
    35
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado No funciona EXIT PROGRAM después de un "SetFocus"

    A ver, supongamos que en el evento "opened" de un Form, tenemos algo así

    "opened"

    COBOL Código:
    1. CALL "COMPROBAR".

    y en la Sub-Rutina "COMPROBAR", tenemos

    COBOL Código:
    1. IF VALOR_N = 1
    2.    CALL "VALOR-BAJO"
    3.    INVOKE BOTON1 "SetFocus"
    4.    EXIT PROGRAM
    5. END-IF.

    y en la Sub-Rutina "VALOR-BAJO", tenemos

    COBOL Código:
    1. IF IMPORTE < 1000
    2.    INVOKE BOTON2 "SetFocus"
    3.    EXIT PROGRAM
    4. END-IF.

    Resulta que, en la rutina VALOR-BAJO, si el importe es < 1000, no me "ejecuta" el foco y el EXIT PROGRAM, por lo que, vuelve a la instrucción siguiente a CALL "VALOR-BAJO" de la rutina COMPROBAR, y ahí si me ejecuta el foco correctamente y "se va" a BOTON1, yo quiero que, independientemente del valor que tenga VALOR_N, si IMPORTE es menor de 1000, como le indico en VALOR-BAJO, que el foco lo recoja BOTON2.

    Obviamente, no son así las sentencias auténticas pero, es que las puestas, tampoco funcionan bien. En el montón de programas que tengo escritos, no me había pasado esto nunca, instrucciones tan simples como estas, siempre me han funcionado correctamente. Por si preguntáis, Win10 X64 virtualizado, con PWC9 y los Runtime del PWC10, aunque es lo mismo, con otros programas y esta configuración, funciona correctamente

    No sé si me explico correctamente.

    0 Not allowed!

  2. #2
      Senior
    Avatar de fastpho

    Registrado
    diciembre de 2016
    Ubicación
    Mendoza
    Edad
    52
    Mensajes
    266
    Última visita
    Ayer a las 16:11

    Agradecimientos
     
    Recibidos
    174
    Enviados
    163

    Citaciones y menciones
     
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    6 Post(s)
    Poder de Reputación
    19
    Concurso: Primer puesto / Point Value: 0

    Gadget

    Hola @Josber, de la forma que esta planteado , si haces un display sobre el boton2 en la Evento "GotFocus" seguro paso por ahi y se fue ..
    Yo lo que haria seria el Sub-Rutina "VALOR-BAJO" decida para donde ir
    COBOL Código:
    1.        IF IMPORTE < 1000 THEN
    2.           INVOKE BOTON2 "SetFocus"
    3.           EXIT PROGRAM
    4.        ELSE
    5.           INVOKE BOTON1 "SetFocus"
    6.           EXIT PROGRAM
    7.        END-IF.  
    es decir y NO Sub-Rutina "COMPROBAR"
    COBOL Código:
    1. IF VALOR_N = 1
    2.    CALL "VALOR-BAJO"
    3. *   INVOKE BOTON1 "SetFocus" *>ESTO NO
    4. *   EXIT PROGRAM
    5. END-IF.
    Saludos...

    0 Not allowed!

  3. #3
      Guardián del Foro
    Avatar de Fito

    Registrado
    febrero de 2015
    Ubicación
    Córdoba, Villa María
    Edad
    51
    Mensajes
    349
    Última visita
    Hoy a las 00:22

    Agradecimientos
     
    Recibidos
    184
    Enviados
    186

    Citaciones y menciones
     
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    24
    Agradecimientos / Point Value: 0 Guardián del Foro / Point Value: 0 Activista del Foro / Point Value: 0

    Predeterminado

    Hola:

    De acuerdo a tu rutina @Josber, pase lo que pase, siempre el foco va a quedar en BOTON1.

    El EXIT PROGRAM sale del prg donde está la instrucción, yo creo que vos lo querés usar para que salga del Opened.

    Como bien dice @fastpho, el foco pasa por BOTON2, pero el flujo del programa sigue, porque el EXIT PROGRAM de "VALOR-BAJO" termina con la ejecución de "VARLOR-BAJO" solamente.

    Espero haber sido claro. Cómo docente no soy muy bueno.

    Saludos

    Fito...

    0 Not allowed!

  4. #4
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    691
    Última visita
    Hoy a las 10:20

    Agradecimientos
     
    Recibidos
    385
    Enviados
    314

    Citaciones y menciones
     
    Mentioned
    32 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    6 Post(s)
    Poder de Reputación
    35
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    A ver, es un ejemplo creado "al vuelo", realmente, el original, lo que hace es llamar a la SUB1, la SUB1, llama a la SUB2, y la SUB2, debería salirse a un control específico con un EXIT PROGRAM, pero no lo hace, devuelve el controla la SUB1 y continua ejecutando ésta, yo lo que quiero es que en ciertas condiciones, se salga de la SUB2, sin más, dándole el foco al control pertinente. El caso es que en otro programas, lo tengo hecho de manera similar, y funciona a la perfección, pero aquí no funciona y, no sé si es fallo mío, porque estoy algo "espesillo" y no veo el problema o es otra cosa.

    Mil gracias.-

    0 Not allowed!

  5. #5
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    37
    Mensajes
    2,087
    Última visita
    Hoy a las 00:34

    Agradecimientos
     
    Recibidos
    908
    Enviados
    784

    Citaciones y menciones
     
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    12 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @Josber, lo que dices no se puede hacer. Como dice el amigo @Fito, el EXIT PROGRAM sólo termina el "script" en cuestión que se está ejecutando, devolviendo el control al "script" llamante. Esto lo que quiere decir es que tienes que organizar la lógica de tal manera que el foco se decida al mismo nivel y no en modo "escalera". Por ejemplo que el SUB2 haga un RETURNING y según el RC sea el SUB1 el que ponga el foco en Botón1 o Botón2.

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  6. #6
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    691
    Última visita
    Hoy a las 10:20

    Agradecimientos
     
    Recibidos
    385
    Enviados
    314

    Citaciones y menciones
     
    Mentioned
    32 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    6 Post(s)
    Poder de Reputación
    35
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    Cita Iniciado por Kuk Ver Mensaje
    Esto lo que quiere decir es que tienes que organizar la lógica de tal manera que el foco se decida al mismo nivel y no en modo "escalera" ...
    ¡¡Oñoooo!!, pues voy a mirar en otros programas como lo tengo hecho, porque, yo creo que lo tengo de la manera que digo, a ver si es que estoy equivocado

    Graciassssss

    0 Not allowed!

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Información] Call "CFURCOV" System error occurred. code = 0x25
    Por dmosca en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 19
    Último Mensaje: 06.08.2019, 16:29
  2. China quiere lanzar una "luna artificial" en 2020
    Por Kuk en el foro Espacio "Offtop"
    Respuestas: 0
    Último Mensaje: 20.10.2018, 22:52
  3. [Sintaxis] Error MOVE "Parent" de un nodo "Root" en TreeView
    Por dmosca en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 1
    Último Mensaje: 23.08.2017, 09:47
  4. [Aporte] CALL de cualquier DLL sin *.LIB ni "LoadLibrary"
    Por Kuk en el foro Cocina PowerCOBOL
    Respuestas: 20
    Último Mensaje: 30.07.2017, 00:33
  5. [Sintaxis] Imprimir PDF desde DOS (CALL "SYSTEM")
    Por Roger en el foro RM/COBOL
    Respuestas: 1
    Último Mensaje: 01.07.2016, 17:40

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •