Showing posts with label Tips And Tricks. Show all posts
Showing posts with label Tips And Tricks. Show all posts

Separar un texto largo cada X cantidad de char o por un símbolo de retorno de carro a una tabla

Esta función RKD_WORD_WRAP , nos permitirá partir un texto largo en X cantidad de caracteres y además podremos tener otro corte de control por un CHAR que le pasemos.

 

Ejemplo:

image

El resultado de esta corrida será una tabla de 7 registros, notese que si no existe el char de retorno de carro nos separará cada 5 chars, si encuentra el simbolo cortará en ese simbolo y comenzará otro renglón.

image

Pasar el signo negativo de la derecha a la izq

Esto puede resultar tonto, pero hay veces en que los clientes quieren que los números negativos tengan el signo a la izquierda y no a la der. Si bien esto podemos hacerlo trabajando con la cadena de caracteres hay una función que nos simplifica la vida.

CLOI_PUT_SIGN_IN_FRONT

Ejemplo:

image

Radio Buttons dinámicos y ocultar/mostrar grupos de parámetros de selección

Una vez necesite hacer una pantalla de selección dinámica, es decir que si elegía un radio button debía mostrar X cantidad de parámetros y ocultar otros, y viceversa sin la necesidad de que tengamos que apretar un ENTER para que se dispare el evento AT-SELECTION-SCREEN.

El siguiente código lo arme como modo ejemplo para que se den cuenta de como usarlo

 

REPORT ZRADIO_BUTTONS.
PARAMETERS: p_1(10) MODIF ID A,
                       p_2(2)   MODIF ID B,
                       p_3(5).
PARAMETERS: p_A RADIOBUTTON GROUP rad1 USER-COMMAND ACT DEFAULT 'X',
                       p_B RADIOBUTTON GROUP rad1.

AT SELECTION-SCREEN OUTPUT.
LOOP AT screen.
  IF p_A = 'X'.
     IF screen-group1 = 'B'.
     screen-active = 0.
     ENDIF.
  ELSEIF p_B = 'X'.
    IF screen-group1 = 'A'.
    screen-active = 0.
    ENDIF.
  ENDIF.

  MODIFY screen.
ENDLOOP.

 

El MODIF ID lo que hace es darle un identificador a cada parámetro por lo cual no es necesario ocultar cada uno de los parámetros, sino que es más práctico ocultar directamente todos los elementos de un grupo.

La adición USER-COMMAND es la que permite que la selección sea dinámica y que no haya que apretar un enter para ejecutar un PAI.

NOTA: Al usar este método es muy molesto tener parámetros de selección OBLIGATORIOS, porque de no estar completos nos va a saltar la validación y los radio button no funcionarán de la forma deseada. Así que de usar Radio buttons dinámicos la validaciones las deberemos hacer manualmente nosotros mismos.

Saltear falta de autorización para una transacción

Existe una función llamada: RS_HDSYS_CALL_TC_VARIANT

Ir a la SE37, ejecutar la función, en el parámetro TCODE ponemos la transacción deseada y le sacamos la X al parámetro AUTHORITY-CHECK.

 

NOTA: No es infalible, puede ser que igualmente no podamos usarlo y ojo porque queda en log el acceso.