venerdì 21 giugno 2019

FM TRM_POPUP_TEXT_INPUT non esiste più in EHP8.

TRM_POPUP_TEXT_INPUT è una funzione che consente all'utente di inserire un testo libero, con la possibilità di rilevare un testo iniziale inviato come proposta.

L'avevo usata in un report che mostra la lista degli oggetti bloccati e consente di inviare un messaggio all'utente, purtroppo questo FM non esiste più nella versione EHP8.

Dopo l'upgrade a EHP8, infatti, non esiste più il gruppo funzioni STQE che conteneva appunto questo FM.

Ho cercato qualche funzione alternativa, ma nessuna consente di riprendere in modo semplice un testo proposto, per cui ho pensato di costruire un FM Z per copia dall'originale.


Questo un esempio di come funziona nel mio report sugli oggetti bloccati:


Avevo già creato un gruppo funzioni ZUTILITY per utilità varie, che ho esteso creando il FM Z_TRM_POPUP_TEXT_INPUT:

Definizione:


Importazione:


Modifica:


Testo sorgente:

FUNCTION z_trm_popup_text_input.
*"----------------------------------------------------------------------
*"*"Interfaccia locale:
*"  IMPORTING
*"     VALUE(SOURCETEXT) TYPE  TRM080-TEXT OPTIONAL
*"     VALUE(TITEL) LIKE  TRM060-TEXT OPTIONAL
*"     VALUE(START_COLUMN) DEFAULT 25
*"     VALUE(START_ROW) DEFAULT 6
*"  CHANGING
*"     VALUE(TARGETTEXT) LIKE  TRM080-TEXT OPTIONAL
*"----------------------------------------------------------------------
* Autore     : Fabio Giacobbe - 17/06/2019                             |
* Descrizione: Richiesta inserimento testo per copia.                  |
*----------------------------------------------------------------------+
* Modifiche  :            by                                           |
* Note       :                                                         |
*----------------------------------------------------------------------+
* NOTE:
*   Copiato da FM standard TRM_POPUP_TEXT_INPUT che non esiste più nella
*   versione EHP8.
*----------------------------------------------------------------------+
  DATA: X1 TYPE I VALUE 5,
        Y1 TYPE I VALUE 5,
        X2 TYPE I VALUE 19,
        Y2 TYPE I VALUE 15.

  X1 = START_COLUMN.
  X2 = X1       + 80.
  Y1 = START_ROW.
  Y2 = START_ROW + 2.

  gv_sourcetext = sourcetext.
  gv_targettext = targettext.
  gv_titel      = titel.

  CALL SCREEN 200 STARTING AT X1 Y1 ENDING AT X2 Y2.
*
  CASE OK_CODE.
    WHEN 'ENTE'.
      targettext = gv_targettext.
    WHEN 'CANC'.
      clear gv_targettext.
    WHEN OTHERS.
      clear gv_targettext.
  ENDCASE.

ENDFUNCTION.

Si deve poi creare il Dynpro 200:






Processi:

*&---------------------------------------------------------------------*
*&      Module  STATUS_0200  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
  SET PF-STATUS '0200'.
  SET TITLEBAR '200' WITH gv_TITEL.
ENDMODULE.

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0200  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0200 INPUT.

  CASE OK_CODE.
    WHEN 'ENTE'.
      IF GV_TARGETTEXT <> SPACE.
        SET SCREEN 0.
        LEAVE SCREEN.
      ELSE.
        message text-100 TYPE 'I'.
      ENDIF.
    WHEN 'CANC'.
      SET SCREEN 0.
      LEAVE SCREEN.
    when 'TCOP'.
      gv_targettext = gv_sourcetext.
  ENDCASE.

ENDMODULE.

Si deve creare lo status 0200:



Esempio di funzionamento:





Nessun commento:

Posta un commento