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

Re: save Change data to ztable

$
0
0

hi ,

 

i did the same ,but once i gave value to particular field and press save entry not getting posted on ztable.

 

here i will post my code,

*&---------------------------------------------------------------------*

*& Report  ZTEST_05

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

 

REPORT  ZTEST_05 .

TABLES: ZACINFIT017HFM.

DATA: ok_code LIKE sy-ucomm,

       save_ok like sy-ucomm,

       g_container TYPE scrfname VALUE 'ZCUST',

       grid1  TYPE REF TO cl_gui_alv_grid,

       g_custom_container TYPE REF TO cl_gui_custom_container,

       gs_layout TYPE lvc_s_layo,

       g_max type i value 100.

 

TYPES: BEGIN OF ty_hfm,

        hfm_gl_account TYPE zacinfit017hfm-hfm_gl_account,

         hfm_gl_account1 TYPE zacinfit006hfm-hfm_gl_account,

        HFM_GL_TRN_11 TYPE zacinfit006hfm-HFM_GL_TRN_11,

        HFM_GL_TRN_14 TYPE zacinfit006hfm-HFM_GL_TRN_14,

        HFM_GL_TRN_15 TYPE zacinfit006hfm-HFM_GL_TRN_15,

     END OF ty_hfm.

     TYPES: BEGIN OF TY_HFM15,

       bukrs TYPE zacinfit015hfm-bukrs,

       gjahr TYPE zacinfit015hfm-gjahr,

       monat TYPE zacinfit015hfm-monat,

              HFM_GL_AMT_LC TYPE ZACINFIT015HFM-HFM_GL_AMT_LC,

HFM_GL_ACC_TYPE TYPE ZACINFIT015HFM-HFM_GL_ACC_TYPE,

HFM_VALUE_TYPE TYPE ZACINFIT015HFM-HFM_VALUE_TYPE,

HFM_GL_ACCOUNT TYPE ZACINFIT015HFM-HFM_GL_ACCOUNT,

   END OF TY_HFM15,

   BEGIN OF TY_HFM17,

     HFM_VALUE_TYPE TYPE ZACINFIT017HFM-HFM_VALUE_TYPE,

     HFM_GL_AMT_LC_10 TYPE ZACINFIT017HFM-HFM_GL_AMT_LC_10,

     HFM_GL_AMT_LC_11 TYPE ZACINFIT017HFM-HFM_GL_AMT_LC_11,

     HFM_GL_AMT_LC_25 TYPE ZACINFIT017HFM-HFM_GL_AMT_LC_25,

     HFM_GL_AMT_LC_99 TYPE ZACINFIT017HFM-HFM_GL_AMT_LC_99,

   END OF TY_HFM17.

 

   DATA: GI_TABLE17 TYPE TABLE OF TY_HFM17,

       GI_TABLE TYPE TABLE OF TY_HFM15,

       GS_TABLE TYPE TY_HFM15,

       GS_TABLE17 TYPE TY_HFM17.

 

DATA: gt_outtab1 TYPE TABLE OF zacinfit017hfm,

       gs_outtab1 TYPE zacinfit017hfm.

 

*    DATA: BEGIN OF gi_hfm1 OCCURS 0.

*          INCLUDE TYPE ty_hfm.

*    DATA: END OF gi_hfm1.

     data: gi_hfm TYPE TABLE OF ty_hfm,

           gs_hfm TYPE ty_hfm,

           gi_hfm1 TYPE TABLE OF ty_hfm,

           gs_hfm1 TYPE ty_hfm,

           gi_hfm2 TYPE TABLE OF zacinfit017hfm,

           gs_hfm2 TYPE zacinfit017hfm.

DATA: BEGIN OF gt_outtab occurs 0"with header line

         include structure zacinfit017hfm.

DATA: celltab type LVC_T_STYL.

DATA: END OF gt_outtab.

DATA: BEGIN OF GT_OUT OCCURS 0.

        INCLUDE STRUCTURE ZACINFIT006HFM.

DATA: END OF GT_OUT.

DATA: gs_outtab like LINE OF gt_outtab,

       GS_OUT TYPE ZACINFIT006HFM.

START-OF-SELECTION.

  SELECT  bukrs

          gjahr

          monat

          HFM_GL_AMT_LC

          HFM_GL_ACC_TYPE

          HFM_VALUE_TYPE

      HFM_GL_ACCOUNT

     FROM ZACINFIT015HFM

     INTO TABLE GI_TABLE

     WHERE HFM_GL_ACC_TYPE = 'BS'

     AND ( HFM_VALUE_TYPE = 02 OR HFM_VALUE_TYPE = 01 ).

 

     LOOP AT GI_TABLE INTO GS_TABLE.

         IF GS_TABLE-HFM_VALUE_TYPE = 02 AND GS_TABLE-HFM_VALUE_TYPE ne 01  and GS_TABLE-HFM_GL_ACC_TYPE = 'BS'.

           GS_TABLE17-HFM_GL_AMT_LC_10 = 0.

           MOVE GS_TABLE-HFM_GL_AMT_LC TO GS_TABLE17-HFM_GL_AMT_LC_99.

           MOVE-CORRESPONDING GS_TABLE TO gs_outtab1.

 

         ELSEIF GS_TABLE-HFM_VALUE_TYPE = 01 AND GS_TABLE-HFM_VALUE_TYPE ne 02 and GS_TABLE-HFM_GL_ACC_TYPE = 'BS'.

           GS_TABLE17-HFM_GL_AMT_LC_99 = 0.

            MOVE GS_TABLE-HFM_GL_AMT_LC TO GS_TABLE17-HFM_GL_AMT_LC_10.

            MOVE-CORRESPONDING GS_TABLE17 TO gs_outtab1.

        ENDIF.

 

        GS_TABLE17-HFM_GL_AMT_LC_25 = ( GS_TABLE17-HFM_GL_AMT_LC_99 - GS_TABLE17-HFM_GL_AMT_LC_10 ).

         MOVE-CORRESPONDING GS_TABLE17 TO gs_outtab1.

*       ENDIF.

        MOVE-CORRESPONDING GS_TABLE TO gs_outtab1.

        APPEND gs_outtab1 TO gt_outtab1.

       INSERT INTO ZACINFIT017HFM VALUES gs_outtab1.

        CLEAR gs_outtab1.

        ENDLOOP.

*---------------------------------------------------------------------*

*       MAIN                                                          *

*---------------------------------------------------------------------*

CALL SCREEN 9005.

*&      Module  STATUS_9005  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE STATUS_9005 OUTPUT.

*  SET PF-STATUS 'xxxxxxxx'.

*  SET TITLEBAR 'xxx'.

SET PF-STATUS 'MAIN100'.

   SET TITLEBAR 'MAIN100'.

   IF g_custom_container IS INITIAL.

     CREATE OBJECT g_custom_container

            EXPORTING container_name = g_container.

     CREATE OBJECT grid1

            EXPORTING i_parent = g_custom_container.

     PERFORM select_data_and_init_style.

 

*§3.Provide the fieldname of the celltab field by using field

*   STYLEFNAME of the layout structure.

    gs_layout-stylefname = 'CELLTAB'.

 

    CALL METHOD grid1->set_table_for_first_display

          EXPORTING i_structure_name = 'ZACINFIT017HFM'

                    is_layout        = gs_layout

          CHANGING  it_outtab        = gt_outtab[].

 

   ENDIF.

ENDMODULE.                 " STATUS_9005  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_9005  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_9005 INPUT.

save_ok = ok_code.

   clear ok_code.

   CASE save_ok.

     WHEN 'EXIT'.

       PERFORM exit_program.

     WHEN 'SWITCH'.

       PERFORM switch_edit_mode.

     WHEN 'SAVE'.

       PERFORM SAVE_DATA.

     WHEN OTHERS.

*     do nothing

   ENDCASE.

ENDMODULE.                 " USER_COMMAND_9005  INPUT

*&---------------------------------------------------------------------*

*&      Form  SELECT_DATA_AND_INIT_STYLE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM SELECT_DATA_AND_INIT_STYLE .

DATA: lt_HFM17 TYPE TABLE OF ZACINFIT017HFM WITH HEADER LINE,

       lt_HFM6 TYPE TABLE OF ZACINFIT006HFM WITH HEADER LINE,

         lt_celltab TYPE lvc_t_styl,

         ls_celltab TYPE lvc_t_styl,

         l_index TYPE i.

 

   SELECT * FROM ZACINFIT017HFM INTO TABLE lt_HFM17 UP TO g_max ROWS.

* move corresponding fields from lt_sflight to gt_outtab

   LOOP AT lt_HFM17.

     MOVE-CORRESPONDING lt_HFM17 TO gt_outtab.

     APPEND gt_outtab.

   ENDLOOP.

   SELECT * FROM ZACINFIT006HFM INTO TABLE LT_HFM6.

    LOOP AT lt_HFM6.

     MOVE-CORRESPONDING lt_HFM6 TO gt_out.

     APPEND gt_out.

   ENDLOOP.

 

loop at gt_outtab.

     l_index = sy-tabix.

     refresh lt_celltab.

     loop at gt_out.

     if gt_outtab-HFM_GL_ACCOUNT EQ Gt_OUT-HFM_GL_ACCOUNT.

*    if gi_hfm1-HFM_GL_ACCOUNT EQ Gi_hfm1-HFM_GL_ACCOUNT1.

         perform fill_celltab using 'p_mode' 'P_mode1' 'p_mode2' 'p_mode3'

                              changing lt_celltab.

*    else.

*        perform fill_celltab using 'p_mode' 'p_mode1' 'p_mode2'

*                             changing lt_celltab.

*    endif.

*§2c.Copy your celltab to the celltab of the current row of gt_outtab.

*    CLEAR: gt_outtab-celltab.

 

     INSERT LINES OF lt_celltab INTO TABLE gt_outtab-celltab .

*       INSERT gt_outtab FROM TABLE lt_celltab ACCEPTING DUPLICATE KEYS.

     MODIFY gt_outtab INDEX l_index.

     ENDIF.

   ENDLOOP.

   ENDLOOP.

*  ENDIF.

ENDFORM.                    " SELECT_DATA_AND_INIT_STYLE

*&---------------------------------------------------------------------*

*&      Form  EXIT_PROGRAM

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM EXIT_PROGRAM .

   LEAVE PROGRAM.

ENDFORM.                    " EXIT_PROGRAM

*&---------------------------------------------------------------------*

*&      Form  SWITCH_EDIT_MODE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM SWITCH_EDIT_MODE .

  IF grid1->is_ready_for_input( ) eq 0.

* set edit enabled cells ready for input

     CALL METHOD grid1->set_ready_for_input

                      EXPORTING i_ready_for_input = 1.

       MOVE-CORRESPONDING gs_outtab to gs_outtab1.

     APPEND gs_outtab1 to gt_outtab1.

   ELSE.

* lock edit enabled cells against input

     CALL METHOD grid1->set_ready_for_input

                     EXPORTING i_ready_for_input = 0.

   ENDIF.

ENDFORM.                    " SWITCH_EDIT_MODE

*&---------------------------------------------------------------------*

*&      Form  FILL_CELLTAB

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_0184   text

*      <--P_LT_CELLTAB  text

*----------------------------------------------------------------------*

FORM FILL_CELLTAB  USING    VALUE(P_MODE)

                             VALUE(p_mode1)

                             VALUE(p_mode2)

                             VALUE(p_mode3)

                    CHANGING PT_CELLTAB TYPE lvc_t_styl.

  DATA: ls_celltab TYPE lvc_s_styl,

         l_mode type raw4,

         l_mode1 type raw4,

         l_mode2 type raw4,

         l_mode3 TYPE raw4.

  p_mode = gt_out-HFM_GL_TRN_11.

   p_mode1 = gt_out-HFM_GL_TRN_14.

   p_mode2 = gt_out-HFM_GL_TRN_15.

    p_mode3 = gt_out-HFM_GL_TRN_16.

* This forms sets the style of column 'PRICE' editable

* according to 'p_mode' and the rest to read only either way.

   IF p_mode EQ 'Y'.

*§2a.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell

*    to status "editable".

     l_mode = cl_gui_alv_grid=>mc_style_enabled.

   ELSEIF p_mode eq 'N'.

*§2b.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell

*    to status "non-editable".

     l_mode = cl_gui_alv_grid=>mc_style_disabled.

   ENDIF.

  if p_mode1 eq 'Y'.

       l_mode1 = cl_gui_alv_grid=>mc_style_enabled.

     ELSEIF p_mode1 eq 'N'.

        l_mode1 = cl_gui_alv_grid=>mc_style_disabled.

   ENDIF.

   if p_mode2 eq 'Y'.

       l_mode2 = cl_gui_alv_grid=>mc_style_enabled.

     ELSEIF p_mode2 eq 'N'.

        l_mode2 = cl_gui_alv_grid=>mc_style_disabled.

   ENDIF.

     if p_mode3 eq 'Y'.

       l_mode3 = cl_gui_alv_grid=>mc_style_enabled.

     ELSEIF p_mode3 eq 'N'.

        l_mode3 = cl_gui_alv_grid=>mc_style_disabled.

   ENDIF.

   ls_celltab-fieldname = 'BUKRS'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'GJAHR'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'MONAT'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'HFM_GL_ACCOUNT'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'HFM_VALUE_TYPE'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'HFM_GL_AMT_LC'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'HFM_GL_AMT_LC_10'.

   ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'HFM_GL_AMT_LC_11'.

   ls_celltab-style = l_mode.

   INSERT ls_celltab INTO TABLE pt_celltab.

   ls_celltab-fieldname = 'HFM_GL_AMT_LC_14'.

   ls_celltab-style = l_mode1.

   INSERT ls_celltab INTO TABLE pt_celltab.

    ls_celltab-fieldname = 'HFM_GL_AMT_LC_15'.

   ls_celltab-style = l_mode2.

   INSERT ls_celltab INTO TABLE pt_celltab.

    ls_celltab-fieldname = 'HFM_GL_AMT_LC_16'.

   ls_celltab-style = l_mode3.

   INSERT ls_celltab INTO TABLE pt_celltab.

ENDFORM.                    " FILL_CELLTAB

*&---------------------------------------------------------------------*

*&      Form  SAVE_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM SAVE_DATA .

   DATA:l_index TYPE i.

l_index = sy-tabix.

*loop at gt_outtab1 into gs_outtab1.

modify gt_outtab1 FROM gs_outtab1 INDEX l_index.

if sy-subrc eq 0.

   APPEND gs_outtab1 to gt_outtab1.

  ENDIF.

MODIFY zacinfit017hfm FROM TABLE gt_outtab1.

 

 

 

ENDFORM.                    " SAVE_DATA


Viewing all articles
Browse latest Browse all 8556

Trending Articles



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