Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8411

Re: Adding text(sgtxt) field to transaction MB25

$
0
0

HELLO DEAR

 

I WAS TRYING TO ADD IT BUT BEFORE ME SOME IS DID IT THE SAME NOW I JUST WANT TO ADD SGTXT FIELD ONLY IN IT HOW IT WILL POSSIBLE

 

************************************************************************

* Report: Reservationlist

* The one and only list for reservations in Inventory Management.

* Uses logical database MMIMRKPFRESB for data selection.

*

* History:

* 02.06.2000: Note 308124: Multiple selection for display in MB23

* 05.11.1999: Release

************************************************************************

 

REPORT rm07resl.

ENHANCEMENT-POINT RM07RESL_G4 SPOTS ES_RM07RESL STATIC.

*$*$-Start: RM07RESL_G4-------------------------------------------------------------------------$*$*

ENHANCEMENT MGV_GENERATED_RM07RESL.    "active version

INITIALIZATION.

DATA: mgv_matnr_prog LIKE rsvar-report,

       mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.

FIELD-SYMBOLS <mgv_matnr_selopt_conv> TYPE STANDARD TABLE.

ENDENHANCEMENT.

*$*$-End:   RM07RESL_G4-------------------------------------------------------------------------$*$*

ENHANCEMENT-POINT RM07RESL_G5 SPOTS ES_RM07RESL.

*$*$-Start: RM07RESL_G5-------------------------------------------------------------------------$*$*

ENHANCEMENT MGV_GENERATED_RM07RESL.    "active version

mgv_matnr_prog = sy-repid.

mgv_matnr_selopt_tab-name = 'MATNR' .

append mgv_matnr_selopt_tab.

call function 'MGV_SELOP_AFTER_INITIALIZATION'

      EXPORTING

          PROGRAM        = mgv_matnr_prog

      TABLES

          SELOP          = mgv_matnr_selopt_tab

      EXCEPTIONS

          NO_PROGRAMNAME = 1

          OTHERS         = 2

           .

ENDENHANCEMENT.

*$*$-End:   RM07RESL_G5-------------------------------------------------------------------------$*$*

ENHANCEMENT-POINT RM07RESL_G6 SPOTS ES_RM07RESL STATIC.

*$*$-Start: RM07RESL_G6-------------------------------------------------------------------------$*$*

ENHANCEMENT MGV_GENERATED_RM07RESL.    "active version

START-OF-SELECTION.

ENDENHANCEMENT.

*$*$-End:   RM07RESL_G6-------------------------------------------------------------------------$*$*

ENHANCEMENT-POINT RM07RESL_G7 SPOTS ES_RM07RESL.

*$*$-Start: RM07RESL_G7-------------------------------------------------------------------------$*$*

ENHANCEMENT MGV_GENERATED_RM07RESL.    "active version

   LOOP AT mgv_matnr_selopt_tab.

     CONCATENATE mgv_matnr_selopt_tab-name'[]' INTO

     mgv_matnr_selopt_tab-name.

     ASSIGN (mgv_matnr_selopt_tab-name) TO <mgv_matnr_selopt_conv>.

     IF sy-subrc IS INITIAL.

       CALL FUNCTION 'MGV_SELOP_AFTER_START_OF_SEL'

            EXPORTING

                 SELOPT_NAME = mgv_matnr_selopt_tab-name

            TABLES

                 RANGE       = <mgv_matnr_selopt_conv>.

     ENDIF.

   ENDLOOP.

ENDENHANCEMENT.

*$*$-End:   RM07RESL_G7-------------------------------------------------------------------------$*$*

 

* Tables declarations for the logical database

   TABLES: rkpf, resb, prps, makt, t156t.

 

* Authorization checks

   CLASS cl_mmim_auth DEFINITION LOAD.

 

* Internal tables.

* Attention: This structure must be identical to the one defines

*            in LMIGOSR1.

   TYPES: BEGIN OF ty_s_list,

            box TYPE xselp.

            INCLUDE TYPE rkpf AS head RENAMING WITH SUFFIX _h.

            INCLUDE TYPE resb AS item RENAMING WITH SUFFIX _i.

   TYPES:   rstyp TYPE rstyp,

            maktx TYPE makt-maktx,

            btext TYPE t156t-btext,

            accou TYPE res_account_d,

            color TYPE char3,

            diffmg TYPE difmg_res.

""*""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2 ) Typ TY_S_LIST, End                                                                                                                           S

*$*$-Start: (2 )--------------------------------------------------------------------------------$*$*

ENHANCEMENT ZIBS_MB25.    "active version

   TYPES : parnr type ihpa-parnr,

          name1 TYPE kna1-name1,

          parnr1 TYPE ihpa-parnr,

          labst TYPE mard-labst,

          matnr TYPE mard-matnr,

          werks TYPE mard-werks,

          lgort TYPE mard-lgort,

          name2 TYPE kna1-name1.

ENDENHANCEMENT.

*$*$-End:   (2 )--------------------------------------------------------------------------------$*$*

   TYPES: END OF ty_s_list.

   DATA: t_list TYPE STANDARD TABLE OF ty_s_list WITH HEADER LINE.

 

* Structures to transport data from the T156T and MAKT events

* back to RESB LATE. As a matter of fact, RKPF is available, while

* the subordinate nodes are cleared.

   DATA: ls_makt  TYPE makt,

         ls_t156t TYPE t156t.

 

* User settings for the checkboxes

   DATA: oref_settings TYPE REF TO cl_mmim_userdefaults.

 

* Own selection screen: Only display variant

   SELECTION-SCREEN BEGIN OF BLOCK display WITH FRAME TITLE text-001.

     PARAMETERS:

       alv_def     LIKE disvariant-variant.

   SELECTION-SCREEN END OF BLOCK display.

 

* Dark fields

   PARAMETERS:

*   P_XCALL: X = multiple selection, A/D: single selection.

     p_xcall TYPE char1 NO-DISPLAY,

*   Do not save user defaults for checkboxes (because externally called)

     p_nosave TYPE char1 NO-DISPLAY,

*   Do not show the list but export it to memory and exit.

     p_nolist TYPE char1 NO-DISPLAY.

 

* Structures for anciental export techniques

   DATA: BEGIN OF seltab,

           rsnum LIKE rkpf-rsnum,

           rspos LIKE resb-rspos,

           rsart LIKE resb-rsart,

           xsele,

         END OF seltab.

 

   DATA: BEGIN OF seltab1 OCCURS 10,

           rsnum LIKE rkpf-rsnum,

           rspos LIKE resb-rspos,

           rsart LIKE resb-rsart,

           xexpl,

         END OF seltab1.

 

* Include for ALV functions: F4, check, default, ...

   INCLUDE rm07alvi.

 

* Data for ALV

   DATA: t_fc   TYPE slis_t_fieldcat_alv,

         t_sort TYPE slis_t_sortinfo_alv.

 

* Initialization. Get ALV default variant

   INITIALIZATION.

     PERFORM alv_init.

     PERFORM settings_init.

 

* Value-help for display variant

   AT SELECTION-SCREEN ON VALUE-REQUEST FOR alv_def.

     PERFORM alv_f4.

 

* Check some entered data for consistency

   AT SELECTION-SCREEN.

     CALL FUNCTION 'MMIM_ENTRYCHECK_MAIN'

      TABLES

        it_matnr = matnr

        it_werks = werks

        it_posid = posid

        it_usnam = usnam.

     PERFORM alv_check.

     PERFORM settings_save.

 

* Data selection

   START-OF-SELECTION.

*   Logical database...

 

* Reading the data from the logical database and filling them

* into the internal table.

   GET resb LATE.

     t_list-head  = rkpf.

     t_list-item  = resb.

     IF resb-matnr IS INITIAL.                 " Note: 606284

      ls_makt-maktx = resb-potx1.              " Note: 606284

     ENDIF.                                    " Note: 606284

     t_list-maktx = ls_makt-maktx.

     t_list-btext = ls_t156t-btext.

     APPEND t_list.

 

   CLEAR ls_makt.                              " Note: 628765

   CLEAR ls_t156t.                                             "n868851

 

 

   GET makt  FIELDS maktx.

     ls_makt-maktx = makt-maktx.

 

   GET t156t FIELDS btext.

     ls_t156t-btext = t156t-btext.

 

 

* Evaluation of the result.

END-OF-SELECTION.

     PERFORM data_process.

     PERFORM alv_build.

     PERFORM list_display.

 

 

************************************************************************

* Initialization of the user defaults for the checkboxes

************************************************************************

FORM settings_init.

   IF oref_settings IS INITIAL.

     CREATE OBJECT oref_settings EXPORTING i_action = 'RM07RESL'.

     CALL METHOD oref_settings->preset( i_element = 'P_OPEN'

                                        i_active  = 'X' ).

     CALL METHOD oref_settings->preset( i_element = 'P_ISSUES'

                                        i_active  = 'X' ).

     CALL METHOD oref_settings->preset( i_element = 'P_RECEIP'

                                        i_active  = 'X' ).

   ENDIF.

   p_no_acc = oref_settings->get( 'P_NO_ACC' ).

   p_open   = oref_settings->get( 'P_OPEN' ).

   p_cancel = oref_settings->get( 'P_CANCEL' ).

   p_closed = oref_settings->get( 'P_CLOSED' ).

   p_issues = oref_settings->get( 'P_ISSUES' ).

   p_receip = oref_settings->get( 'P_RECEIP' ).

ENDFORM.

 

************************************************************************

* Save the user settings

************************************************************************

FORM settings_save.

* Save only if not rejected by the calling application

   CHECK p_nosave IS INITIAL.

   CALL METHOD oref_settings->set( i_element = 'P_NO_ACC'

                                   i_active  = p_no_acc ).

   CALL METHOD oref_settings->set( i_element = 'P_OPEN'

                                   i_active  = p_open ).

   CALL METHOD oref_settings->set( i_element = 'P_CANCEL'

                                   i_active  = p_cancel ).

   CALL METHOD oref_settings->set( i_element = 'P_CLOSED'

                                   i_active  = p_closed ).

   CALL METHOD oref_settings->set( i_element = 'P_ISSUES'

                                   i_active  = p_issues ).

   CALL METHOD oref_settings->set( i_element = 'P_RECEIP'

                                   i_active  = p_receip ).

 

   CALL METHOD oref_settings->flush.

ENDFORM.

 

 

************************************************************************

* Processing of the data.

* Colorization, calculating differences, moving accountings...

************************************************************************

FORM data_process.

   LOOP AT t_list.

*   T156 is buffered

     SELECT SINGLE rstyp INTO (t_list-rstyp) FROM t156

       WHERE bwart = t_list-bwart_h.

*   Copy account info from item to header for item accounted positions

     IF NOT t_list-pspel_i IS INITIAL.

       t_list-ps_psp_pnr_h = t_list-pspel_i.

     ENDIF.

     IF NOT t_list-kdauf_i IS INITIAL.

       t_list-kdauf_h = t_list-kdauf_i.

       t_list-kdpos_h = t_list-kdpos_i.

       t_list-kdein_h = t_list-kdein_i.

     ENDIF.

     IF NOT t_list-wempf_i IS INITIAL.

       t_list-wempf_h = t_list-wempf_i.

     ENDIF.

*   "Open" quantity

     t_list-diffmg = t_list-bdmng_i - t_list-enmng_i.

*   Fill the "Account" field

     CASE t_list-rstyp.

       WHEN 'A'.

         t_list-accou+0(12) = t_list-anln1_h.

         t_list-accou+12(4) = t_list-anln2_h.

       WHEN 'F'.

         t_list-accou = t_list-aufnr_h.

       WHEN 'N'.

         t_list-accou = t_list-nplnr_h.

       WHEN 'K'.

         IF NOT ( t_list-kostl_h IS INITIAL ).

           t_list-accou = t_list-kostl_h.

         ELSE.

           t_list-accou+0(8) = t_list-imkey_h.

           t_list-accou+8(8) = t_list-dabrz_h.

         ENDIF.

       WHEN 'P'.

         IF t_list-aufnr_h IS INITIAL.

           WRITE t_list-ps_psp_pnr_h TO t_list-accou.

         ELSE.

           WRITE t_list-aufnr_h TO t_list-accou.

         ENDIF.

       WHEN 'V'.

         t_list-accou+0(10) = t_list-kdauf_h.

         t_list-accou+10(6) = t_list-kdpos_h.

         t_list-accou+16(4) = t_list-kdein_h.

       WHEN 'U'.

         t_list-accou+0(4) = t_list-umwrk_h.

         t_list-accou+4(4) = t_list-umlgo_h.

     ENDCASE.

*   Color: Quite simple: Reservations for goods receipt have

*          another color.

*   Invert sign.

     CASE t_list-shkzg_i.

       WHEN 'S'. t_list-color = 'C31'.

     ENDCASE.

     MODIFY t_list.

   ENDLOOP.

ENDFORM.

 

************************************************************************

* Creation of the data for ALV: Field catalog, layout, sorting...

************************************************************************

FORM alv_build.

   DATA: ls_fieldcat TYPE slis_fieldcat_alv.

   DEFINE def_add.

     clear ls_fieldcat.

     ls_fieldcat-fieldname     = &1.

     ls_fieldcat-ref_fieldname = &2.

     ls_fieldcat-ref_tabname   = &3.

     ls_fieldcat-no_out        = &4.

     ls_fieldcat-qfieldname    = &5.

     if &1 = 'RSNUM_I' or &1 = 'RSPOS_I'

                       or &1 = 'RSART_I'.                         "203543

       ls_fieldcat-key = 'X'.

     endif.

     append ls_fieldcat to t_fc.

   END-OF-DEFINITION.

 

* The fieldcatalog is maintained separately to have it in common

* with the one used in MIGO.

   INCLUDE rm07resl_fieldcat.

 

   alv_layout-info_fieldname = 'COLOR'.

 

* Show multiple selection in report mode (SPACE) to allow multiple

* display in MB23 and in selection mode for SAPMM07M

* (MB1A for reservation).

   IF p_xcall = space OR p_xcall = 'X'.                           "308124

     alv_layout-box_fieldname = 'BOX'.

   ENDIF.

 

ENDFORM.

 

************************************************************************

* Display the list

************************************************************************

FORM list_display.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 ) Form LIST_DISPLAY, Start                                                                                                                     D

*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*

ENHANCEMENT ZIBS_MB25.    "active version

   TYPES : BEGIN OF ty_aufk,

          aufnr TYPE aufk-aufnr,

          objnr TYPE aufk-OBJNR,

    END OF ty_aufk.

 

  data : it_aufk TYPE TABLE OF ty_aufk,

         wa_aufk TYPE ty_aufk.

  TYPES : BEGIN OF ty_parnr,

          parnr TYPE ihpa-parnr,

          objnr TYPE AUFK-objnr,

          parvw TYPe ihpa-parvw,

    END OF ty_parnr.

 

TYPES : BEGIN OF ty_kna1,

         kunnr TYPE ihpa-parnr,

         name1 TYPE kna1-name1,

   END OF ty_kna1.

 

   TYPES : BEGIN OF ty_mard,

         matnr TYPE mard-matnr,

         werks TYPE mard-werks,

         lgort TYPE mard-lgort,

         labst TYPE mard-labst,

     END OF ty_mard.

 

DATA : it_mard TYPE TABLE OF ty_mard,

        wa_mard TYPE ty_mard.

 

data : it_kna1 TYPE TABLE OF ty_kna1,

         wa_kna1 TYPE ty_kna1.

 

  data : it_parnr TYPE  TABLE OF ty_parnr,

         wa_parnr TYPE ty_parnr.

 

  data : wa_er_fieldcat like LINE OF t_fc.

  data : lines TYPE i.

data : it_afpo TYPE TABLE OF afpo,

        wa_afpo TYPE afpo.

* TYPES : begin of  ty_afpo,

*        aufnr TYPE afpo-aufnr,

*        posnr TYPE afpo-posnr,

*        projn TYPE afpo-projn,

*  END OF ty_afpo.

data : it_prps TYPE TABLE OF prps,

        wa_prps TYPE prps.

data : it_vbap TYPE TABLE OF vbap,

        wa_vbap TYPE vbap.

data : it_vbak TYPE TABLE OF vbak,

        wa_vbak TYPE vbak.

IF t_list is NOT INITIAL.

 

 

   SELECT aufnr objnr FROM aufk INTO CORRESPONDING FIELDS OF TABLE

     it_aufk FOR ALL ENTRIES IN t_list WHERE aufnr = t_list-aufnr_h.

 

   IF it_aufk[] is  NOT INITIAL.

 

       SELECT objnr parnr PARVW FROM ihpa

       INTO CORRESPONDING FIELDS OF TABLE it_parnr

       FOR ALL ENTRIES IN it_aufk WHERE  objnr = it_aufk-objnr AND PARVW IN ('AG','WE').

 

         SELECT * FROM afpo

         INTO CORRESPONDING FIELDS OF TABLE it_afpo "production order

         FOR ALL ENTRIES IN it_aufk

         WHERE aufnr = it_aufk-aufnr.

 

     IF it_afpo[] is not INITIAL.

         SELECT * FROM prps

        INTO CORRESPONDING FIELDS OF TABLE it_prps  "production order

        FOR ALL ENTRIES IN it_afpo

        WHERE pspnr = it_afpo-projn.

    ENDIF.

   ENDIF.

IF it_prps[] is not INITIAL.

         SELECT vbeln posnr ps_psp_pnr arktx  FROM vbap  "production order

         INTO CORRESPONDING FIELDS OF TABLE it_vbap

         FOR ALL ENTRIES IN it_prps

         WHERE ps_psp_pnr = it_prps-pspnr.

ENDIF.

IF it_vbap[] is not INITIAL.

SELECT vbeln

vkorg

kunnr                                 "production order

ps_psp_pnr FROM vbak

INTO CORRESPONDING FIELDS OF TABLE it_vbak

FOR ALL ENTRIES IN it_vbap

WHERE vbeln = it_vbap-vbeln.

ENDIF.

SELECT matnr werks lgort labst FROM mard INTO CORRESPONDING FIELDS OF TABLE it_mard

     FOR ALL ENTRIES IN t_list WHERE matnr = t_list-matnr_i

                               AND  lgort = t_list-lgort_i

                               AND werks = t_list-werks_i.

 

ENDIF.

 

LOOP AT t_list .

 

READ TABLE it_aufk INTO WA_AUFK WITH KEY AUFNR = T_LIST-aufnr_h.

 

IF SY-SUBRC = 0.

READ TABLE it_parnr Into wa_parnr WITH key objnr = wa_aufk-objnr parvw = 'AG' .

 

IF sy-subrc eq 0.

t_list-parnr = wa_parnr-parnr.

CLEAR wa_parnr.

ENDIF.

READ TABLE it_parnr Into wa_parnr WITH key objnr = wa_aufk-objnr parvw = 'WE' .

 

IF sy-subrc eq 0.

t_list-parnr1 = wa_parnr-parnr.

 

ENDIF.

   ENDIF.

 

IF t_list-parnr is INITIAL.

 

READ TABLE it_afpo INTO wa_afpo WITH key aufnr = t_list-aufnr_h.

IF sy-subrc eq 0.

READ TABLE it_prps INTO wa_prps WITH key pspnr = wa_afpo-projn.

IF sy-subrc eq 0.

READ TABLE it_vbap INTO wa_vbap WITH key ps_psp_pnr = wa_prps-pspnr.

IF sy-subrc eq 0.

READ TABLE it_vbak INTO wa_vbak WITH key vbeln = wa_vbap-vbeln.

IF sy-subrc eq 0.

t_list-parnr = wa_vbak-kunnr.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

 

IF t_list-parnr is not INITIAL.

select single name1 FROM kna1 into t_list-name1 WHERE

   kunnr = t_list-parnr.

ENDIF.

IF t_list-parnr1 is not INITIAL.

select single name1 FROM kna1 into t_list-name2 WHERE

   kunnr = t_list-parnr1.

ENDIF.

READ TABLE it_mard INTO wa_mard WITH KEY matnr = t_list-matnr_i

                                          werks = t_list-werks_i

                                          lgort = t_list-lgort_i .

if sy-subrc = 0.

   t_list-labst = wa_mard-labst.

endif.

modify t_list TRANSPORTING parnr name1 parnr1 NAME2 labst.

CLEAR t_list.

CLEAR wa_parnr.

CLEAR WA_AUFK.

CLEAR wa_mard.

ENDLOOP.

 

  DESCRIBE TABLE t_fc LINES lines.

 

    wa_er_fieldcat-col_pos = lines.

    wa_er_fieldcat-fieldname = 'PARNR'.

    wa_er_fieldcat-SELTEXT_L = 'Sold To Party'.

    wa_er_fieldcat-SELTEXT_m = 'Sold To Party'.

    wa_er_fieldcat-OUTPUTLEN = '15'.

    APPEND wa_er_fieldcat TO t_fc.

    CLEAR wa_er_fieldcat.

 

     wa_er_fieldcat-col_pos = lines.

    wa_er_fieldcat-fieldname = 'NAME1'.

    wa_er_fieldcat-SELTEXT_L = 'Sold To Party Name'.

    wa_er_fieldcat-SELTEXT_m = 'Sold To Party Name'.

    wa_er_fieldcat-OUTPUTLEN = '30'.

    APPEND wa_er_fieldcat TO t_fc.

    CLEAR wa_er_fieldcat.

 

    wa_er_fieldcat-col_pos = lines.

    wa_er_fieldcat-fieldname = 'PARNR1'.

    wa_er_fieldcat-SELTEXT_L = 'Ship to Party'.

    wa_er_fieldcat-SELTEXT_m = 'Ship to Party'.

    wa_er_fieldcat-OUTPUTLEN = '15'.

    APPEND wa_er_fieldcat TO t_fc.

    CLEAR wa_er_fieldcat.

 

     wa_er_fieldcat-col_pos = lines.

    wa_er_fieldcat-fieldname = 'NAME2'.

    wa_er_fieldcat-SELTEXT_L = 'Ship to Party'.

    wa_er_fieldcat-SELTEXT_m = 'Ship to Party Name'.

    wa_er_fieldcat-OUTPUTLEN = '30'.

    APPEND wa_er_fieldcat TO t_fc.

    CLEAR wa_er_fieldcat.

 

    wa_er_fieldcat-col_pos = lines.

    wa_er_fieldcat-fieldname = 'LABST'.

    wa_er_fieldcat-SELTEXT_L = 'Unrestricted Stock'.

    wa_er_fieldcat-SELTEXT_m = 'Unrestricted Stock'.

    wa_er_fieldcat-OUTPUTLEN = '30'.

    APPEND wa_er_fieldcat TO t_fc.

    CLEAR wa_er_fieldcat.

 

 

 

ENDENHANCEMENT.

*$*$-End:   (1 )--------------------------------------------------------------------------------$*$*

   IF p_nolist IS INITIAL.

     CALL FUNCTION alv_detail_func

       EXPORTING

         i_interface_check        = ' '

         i_callback_program       = alv_repid

         i_callback_pf_status_set = 'STATUS_SET'

         i_callback_user_command  = 'USER_COMMAND'

         is_layout                = alv_layout

         it_fieldcat              = t_fc

         it_sort                  = t_sort

         i_default                = 'X'

         i_save                   = 'A'

         is_variant               = alv_variant

         is_print                 = alv_print

       TABLES

         t_outtab                 = t_list.

   ELSE.

     EXPORT t_list TO MEMORY ID 'RM07RESL_RESULT'.

     LEAVE.

   ENDIF.

ENDFORM.

 

************************************************************************

* Status setting

************************************************************************

FORM status_set USING rt_extab TYPE slis_t_extab.

   IF cl_mmim_auth=>level( ) IS INITIAL.

     APPEND 'AUTH' TO rt_extab.

   ENDIF.

   IF cl_mmim_auth=>level( ) = cl_mmim_auth=>c_error.

     MESSAGE s124(m7).

   ENDIF.

   IF p_xcall IS INITIAL.

     APPEND 'TAKE' TO rt_extab.

   ELSE.

     APPEND 'RSNUM' TO rt_extab.

     APPEND 'RSPOS' TO rt_extab.

   ENDIF.

   SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.

ENDFORM.

 

************************************************************************

* User commands

************************************************************************

FORM user_command USING rf_ucomm LIKE sy-ucomm

                           rs TYPE slis_selfield.

 

* Double click

   IF rf_ucomm = '&IC1'.

     IF NOT p_xcall IS INITIAL.

       rf_ucomm = 'TAKE'.

     ELSE.

       IF rs-fieldname = 'RSPOS_I'.

         rf_ucomm = 'RSPOS'.

       ELSE.

         rf_ucomm = 'RSNUM'.

       ENDIF.

     ENDIF.

   ENDIF.

* Evaluation

   CASE rf_ucomm.

*   Deliver data to other applications

     WHEN 'TAKE'.

       READ TABLE t_list INDEX rs-tabindex.

       IF sy-subrc = 0.

         CLEAR seltab.

         MOVE-CORRESPONDING t_list-item TO seltab.

         CLEAR seltab-xsele.

         EXPORT seltab TO MEMORY ID 'SELTAB'.

       ENDIF.

       REFRESH seltab1.

       LOOP AT t_list WHERE box = 'X'.

         MOVE-CORRESPONDING t_list-item TO seltab1.

         APPEND seltab1.

       ENDLOOP.

       EXPORT seltab1 TO MEMORY ID 'SELTAB1'.

       LEAVE.

*   Display reservation

     WHEN 'RSNUM' OR 'RSPOS'.

*     Extract the marked lines.

       CLEAR seltab1.                                             "308124

       REFRESH seltab1.                                           "308124

       LOOP AT t_list WHERE box = 'X'.                            "308124

         MOVE-CORRESPONDING t_list-item TO seltab1.               "308124

         APPEND seltab1.                                          "308124

       ENDLOOP.                                                   "308124

       READ TABLE seltab1 INDEX 1.                                "308124

*     If no line was marked explicitly, read the line under the cursor.

       IF seltab1-rsnum IS INITIAL.                               "308124

         READ TABLE t_list INDEX rs-tabindex.                     "308124

         IF sy-subrc = 0.                                         "308124

           MOVE-CORRESPONDING t_list-item TO seltab1.             "308124

         ENDIF.                                                   "308124

       ENDIF.                                                     "308124

*     Display reservation: Clear item number.

       IF rf_ucomm = 'RSNUM'.                                     "308124

         CLEAR seltab1-rspos.                                     "308124

       ENDIF.                                                     "308124

*     If any data have been found, start MB23.

       IF NOT seltab1-rsnum IS INITIAL.                           "308124

         EXPORT seltab1 TO MEMORY ID 'MB23_SELTAB'.               "308124

         SET PARAMETER ID 'RES' FIELD seltab1-rsnum.              "308124

         SET PARAMETER ID 'RPO' FIELD seltab1-rspos.              "308124

         CALL TRANSACTION 'MB23' AND SKIP FIRST SCREEN.           "308124

       ENDIF.                                                     "308124

     WHEN 'MMBE'.

       READ TABLE t_list INDEX rs-tabindex.

       IF sy-subrc = 0.

         SET PARAMETER ID 'MAT' FIELD t_list-matnr_i.

         SET PARAMETER ID 'WRK' FIELD t_list-werks_i.

         SET PARAMETER ID 'LAG' FIELD space.

         SET PARAMETER ID 'CHA' FIELD space.

         CALL TRANSACTION 'MMBE' AND SKIP FIRST SCREEN.

       ENDIF.

     WHEN 'AUTH'.

       CALL METHOD cl_mmim_auth=>display.

   ENDCASE.

   CLEAR rf_ucomm.

ENDFORM.


Viewing all articles
Browse latest Browse all 8411

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>