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

Re: disable columns in table control based on condition

$
0
0

TYPES: BEGINOF zhr_month,
        jun TYPEi,
        jul TYPEi,
        aug TYPEi,
      ENDOF zhr_month.
DATA: gt_table             TYPETABLEOF zhr_month,
          gw_table             LIKELINE  OF gt_table.

CONTROLS: tc_table TYPE TABLEVIEW USINGSCREEN0100.
DATA: cols LIKELINEOF tc_table-cols.
DATA: ok_code TYPE sy-ucomm,
          save_ok TYPE sy-ucomm.

CALLSCREEN100.

*----------------------------------------------------------------------*
*  MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
   SET PF-STATUS 'STAT1'.
   SETTITLEBAR'TITL1'.
ENDMODULE.                    "status_0100 OUTPUT


*----------------------------------------------------------------------*
*  MODULE user_command_0100 INPUT
*----------------------------------------------------------------------*

MODULE user_command_0100 INPUT.
   DATA w_month(2) TYPEc.
   DATA p_date TYPE datum.
   save_ok = ok_code.
   CLEAR ok_code.

   CASE save_ok.
     WHEN'BACK'.
       LEAVETOSCREEN0.


     WHEN'EXIT'.
       LEAVEPROGRAM.

     WHEN'CREATE'.
       w_month = sy-datum+4(2).
       PERFORM screen_setting.

     WHEN'MODIFY'.

* You can use any function module you want to get the month input from user.
       CALLFUNCTION'F4_DATE'
         EXPORTING
           date_for_first_month         = sy-datum
         IMPORTING
           select_date                  = p_date
         EXCEPTIONS
           calendar_buffer_not_loadable = 1
           date_after_range             = 2
           date_before_range            = 3
           date_invalid                 = 4
           factory_calendar_not_found   = 5
           holiday_calendar_not_found   = 6
           parameter_conflict           = 7
           OTHERS                       = 8.
       IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.

        w_month = p_date+4(2).
       PERFORM screen_setting.

      WHEN'SAVE'.
       LOOPAT gt_table INTO gw_table.
*        Save to database.
       ENDLOOP.
       LOOPAT tc_table-cols INTO cols.
         cols-screen-input = '0'.
         MODIFY tc_table-cols FROM cols INDEX sy-tabix.
       ENDLOOP.
   ENDCASE."CASE save_ok
   CLEAR save_ok.


ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*
*&      Form  screen_setting
*&---------------------------------------------------------------------*

FORM screen_setting.
   CASE w_month.
     WHEN'06'.
       LOOPAT tc_table-cols INTO cols.
         IF cols-screen-name = 'GW_TABLE-JUN' .
           cols-screen-input = '1'.
         ELSE.
           cols-screen-input = '0'.
         ENDIF.
         MODIFY tc_table-cols FROM cols INDEX sy-tabix.
       ENDLOOP.

     WHEN'07'.
       LOOPAT tc_table-cols INTO cols.
         IF cols-screen-name = 'GW_TABLE-JUL' .
           cols-screen-input = '1'.
         ELSE.
           cols-screen-input = '0'.
         ENDIF.
         MODIFY tc_table-cols FROM cols INDEX sy-tabix.

       ENDLOOP.

     WHEN'08'.
       LOOPAT tc_table-cols INTO cols.
         IF cols-screen-name = 'GW_TABLE-AUG' .
           cols-screen-input = '1'.
         ELSE.
           cols-screen-input = '0'.
         ENDIF.
         MODIFY tc_table-cols FROM cols INDEX sy-tabix.

       ENDLOOP.
   ENDCASE.

ENDFORM.                    "screen_setting

 

 

module tc_TABLE_modify input.
* Saving the contents of  table control
     modify gt_TABLE
     from gw_TABLE
     index tc_TABLE-current_line .

endmodule.


Viewing all articles
Browse latest Browse all 8667

Trending Articles