validar checkbox

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • J_Delcanto
    Member
    • may
    • 84

    #1

    validar checkbox

    Holaaaaaaaaaaaaaaaa,

    Tengo un table control, uno de los campos del table es checkbox (Campo Padre). Ahora bien, lo que quiero es q al momento de guardar me permita solo guardar cuando exista un checkbox tildado, de caso contrario envie un mensaje de error.

    De antemano muchas gracias-
    Archivos Adjuntos
  • beltsoft
    Member
    • sep
    • 99

    #2
    Debes hacer el Loop a la tabla interna, una vez que tengas los datos en el Work area haces la validación que indicas.

    Saludos.
    SSE BeltSoft México
    Your Business, our motivation ...

    Comentario

    • J_Delcanto
      Member
      • may
      • 84

      #3
      hice lo siguiente:

      FORM check_checkbox.
      DATA: cuenta type i.

      CLEAR cuenta.

      LOOP AT t_tc_datosg_itab WHERE padre = 'X'.
      cuenta = cuenta + 1.
      ENDLOOP.

      IF cuenta > 1.
      MESSAGE ID 'ZFC' TYPE 'E' NUMBER '014'.

      ENDIF.

      ENDFORM.

      Me funciona bien pero me bloquea el table y lo que quiero es q en caso de equivocarme me permita sacar el tilde. El problema es q como es mensaje de error entonces no me deja modificar haciendole doble click. (no se si me entiendes) y la unica opcion que queda es hacer el ingreso de clientes TODO de nuevo... =/

      Agradecida por tu respuesta

      Comentario

      • beltsoft
        Member
        • sep
        • 99

        #4
        La verdad no te entiendo bien . . . Jjejejje

        Pero por lo que más o menos entendí me imagino que estas haciendo el Loop en un momento incorrecto, por eso te bloquea la pantalla.

        Mandas el mensaje y pones el cursor donde quieras que el usuario haga algo.

        Saludos.
        SSE BeltSoft México
        Your Business, our motivation ...

        Comentario

        • J_Delcanto
          Member
          • may
          • 84

          #5
          Originalmente publicado por beltsoft
          La verdad no te entiendo bien . . . Jjejejje

          Pero por lo que más o menos entendí me imagino que estas haciendo el Loop en un momento incorrecto, por eso te bloquea la pantalla.

          Mandas el mensaje y pones el cursor donde quieras que el usuario haga algo.

          Saludos.
          Mira primero mi pantalla esta como el adjunto (dibujo) luego si pongo dos tildes y guardar, me aparece el mensaje de error y se bloquea el table (dibujo2). Estuve leyendo y decia q una de las caracteristicas de los mensajes de error es q bloquean el programa (momentaneamente) a diferencia del warning q te permite seguir trabajando en el programa.

          La pregunta es como puedo hacer para que el mensaje sea de error pero si hago doble click en cualquier parte del table me deje editar y luego guardar. Lo que pasa es q sino perderia la informacion. Suponte que he ingresado 10 clientes y por error puse que dos de ellos eran padre, al momento de guardar me tirara el mensaje de error y no me dejara editar el table, entonces tendre q salir de la aplicacion entrar y realizar todo otra vez.

          Archivos Adjuntos

          Comentario

          • beltsoft
            Member
            • sep
            • 99

            #6
            Ahhhh muy sencillo:

            MESSAGE ID 'ZFC' TYPE 'S' NUMBER '014' DISPLAY LIKE 'E'.

            Saludos.
            SSE BeltSoft México
            Your Business, our motivation ...

            Comentario

            • J_Delcanto
              Member
              • may
              • 84

              #7
              Originalmente publicado por beltsoft
              Ahhhh muy sencillo:

              MESSAGE ID 'ZFC' TYPE 'S' NUMBER '014' DISPLAY LIKE 'E'.

              Saludos.
              mmm No me funciono, no me mostro ni mensaje y mas encima grabo igual los dos padre...

              a que te refieres con S? Warning?

              Mil gracias por responder =)

              Comentario

              • mysmb2
                Senior Member
                • ene
                • 406

                #8
                lo que indica beltsoft es que debes mostrar un mensaje de suceso o de advertencia como si fuera error por eso el DISPLAY LIKE 'E'. Ademas luego del mensaje ya que no es de error tenes que valoriza una bandera de error para luego controlar que no siga procesando y lo guarde.

                Saludos
                Sebastián Chiavia
                http://www.programacionabap.com.ar

                Comentario

                • J_Delcanto
                  Member
                  • may
                  • 84

                  #9
                  Originalmente publicado por mysmb2
                  lo que indica beltsoft es que debes mostrar un mensaje de suceso o de advertencia como si fuera error por eso el DISPLAY LIKE 'E'. Ademas luego del mensaje ya que no es de error tenes que valoriza una bandera de error para luego controlar que no siga procesando y lo guarde.

                  Saludos
                  Y como hago eso? :O

                  Gracias por tu respuesta.

                  Comentario

                  • mysmb2
                    Senior Member
                    • ene
                    • 406

                    #10
                    de la manera que indica beltsoft es la correcta. lo que te debe pasar es que se esta pisando ese mensaje con otro posterior cuando grabas y solo se muestra el ultimo.
                    La idea de la bandera es que si existió un error no dejes grabar ni mostrar el mensaje eso lo haces mediante variables simples. por ejemplo gv_error si es igual a X no graba y si es vacío si.
                    Sebastián Chiavia
                    http://www.programacionabap.com.ar

                    Comentario

                    Trabajando...