Nuriev_ii

falv error

Jun 13th, 2020
1,528
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZTORO_TEST
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT ZTORO_TEST.
  10. *DATA: sflight TYPE STANDARD TABLE OF sflight.
  11. TYPES: BEGIN OF ty_data_general_additional,
  12.   miwarpl type mhio-warpl,
  13.   mabnum  type mhio-ABNUM,
  14.  
  15.   row_color type char4,
  16. END OF   ty_data_general_additional.
  17. TYPES: BEGIN OF ty_data_general,
  18.   iwerk type viaufks-IWERK,
  19.   swerk type viaufks-SWERK,
  20.   bukrs type viaufks-bukrs,
  21.   auart type viaufks-auart,
  22.   aufnr type viaufks-aufnr,
  23.   ktext type viaufks-ktext,
  24.   gstrp type viaufks-gstrp,
  25.   gltrp type viaufks-gltrp,
  26.  
  27.   ftrms type viaufks-ftrms,
  28.   addat type viaufks-addat,
  29.   tplnr type viaufks-tplnr,
  30.   pltxt type iflotx-pltxt,
  31.   equnr type viaufks-equnr,
  32.   eqktx type eqkt-eqktx,
  33.   bautl type viaufks-bautl,
  34.   plnty type viaufks-plnty,
  35.   plnnr type viaufks-plnnr,
  36.   plnal type viaufks-plnal,
  37.   zaehl type viaufks-zaehl,
  38.   strat type plko-strat,
  39.   warpl type viaufks-warpl,
  40.   wapos type viaufks-wapos,
  41.   abnum type mhio-abnum,
  42.   plandate type mhio-gstrp,
  43.   mzaehl type mhis-zaehl,
  44.   zpuffn type t351p-puffn,
  45.   zsttag type mpos-zsttag,
  46. *  kzyk1 type t351p-kzyk1,
  47.  
  48.  
  49.   point type mmpt-point,
  50.   kridate type imrg-idate,
  51.   checkidate type imrg-idate
  52.   .
  53.         include TYPE ty_data_general_additional.
  54. TYPES: END OF ty_data_general.
  55. data: gt_data type TABLE OF   ty_data_general.
  56. CLASS lcl_test DEFINITION INHERITING FROM zcl_falv.
  57.   PUBLIC SECTION.
  58.     class-data:
  59.     mr_changed type REF TO CL_ALV_CHANGED_DATA_PROTOCOL,
  60.     mo_container type REF TO CL_GUI_CONTAINER,
  61.     mo_bdc TYPE REF TO zalrcl_bdc_ext.
  62.     methods: get_data,
  63.              prepare_layout.
  64.  
  65.   PROTECTED SECTION.
  66.     "redefinition of event handler
  67.  
  68.     METHODS:
  69.             EVF_MENU_BUTTON REDEFINITION ,
  70.            evf_user_command REDEFINITION ,
  71.            menu_1_1,
  72.            menu_1_2,
  73.            menu_1_3,
  74.            menu_1_4,
  75.            menu_1_5,
  76.            menu_1_6,
  77.            menu_1_7,
  78.            menu_1_8,
  79.            hide_additional IMPORTING iv type abap_bool OPTIONAL.
  80.  
  81.   PRIVATE SECTION.
  82.     METHODs show_applog.
  83.     METHODs hide_applog .
  84. ENDCLASS.                    "lcl_test DEFINITION
  85. DATA falv TYPE REF TO lcl_test.
  86. DATA: lo_falv TYPE REF TO zcl_falv.
  87. CLASS lcl_test2 DEFINITION INHERITING FROM zcl_falv.
  88.   PUBLIC SECTION.
  89.   PROTECTED SECTION.
  90.   PRIVATE SECTION.
  91. ENDCLASS.
  92. *----------------------------------------------------------------------*
  93. *       CLASS lcl_test IMPLEMENTATION
  94. *----------------------------------------------------------------------*
  95. *
  96. *----------------------------------------------------------------------*
  97. CLASS lcl_test IMPLEMENTATION.
  98. *  METHOD EVF_BEFORE_USER_COMMAND.
  99. *  BREAK-POINT.
  100. *  ENDMETHOD.
  101.   METHOD menu_1_1.
  102.     data:
  103.      lt_ROW_NO    TYPE LVC_T_ROID,
  104.      lv_warpl     type rmipm-warpl,
  105.      lv_LRMDT     type rmipm-LRMDT
  106.      .
  107.  
  108.  
  109.     FIELD-SYMBOLS: <fs_outab> like LINE OF gt_data,
  110.                    <fs_no> like LINE OF lt_ROW_NO.
  111.  
  112.     me->GET_SELECTED_ROWS(
  113.       importing
  114.         ET_ROW_NO     = lt_ROW_NO
  115.     ).
  116.     LOOP AT  lt_ROW_NO ASSIGNING <fs_no> .
  117.       CLEAR: lv_warpl, lv_LRMDT.
  118.       READ TABLE gt_data  ASSIGNING <fs_outab> INDEX <fs_no>-ROW_ID.
  119.       CASE <fs_outab>-WARPL.
  120.         WHEN space.
  121.           mr_changed->ADD_PROTOCOL_ENTRY(
  122.              exporting
  123.                I_MSGID     = 'ZALR_BC'
  124.                I_MSGTY     = 'E'
  125.                I_MSGNO     = 000
  126.                I_MSGV1     = 'Работы не подлежат планированию в ППР/ нет плана '
  127.                I_FIELDNAME = 'WARPL'
  128.                I_ROW_ID    = <fs_no>-ROW_ID
  129.            ).
  130.           CONTINUE.
  131.         WHEN OTHERS.
  132.           lv_warpl = <fs_outab>-WARPL.
  133.           CASE <fs_outab>-POINT.
  134.             WHEN space.
  135.               data: lt_fields TYPE TABLE OF SVAL.
  136.               FIELD-SYMBOLS: <fs_sval> like LINE OF lt_fields.
  137.               APPEND INITIAL LINE TO lt_fields ASSIGNING <fs_sval>.
  138.               <fs_sval>-TABNAME     = 'MPOS'.
  139.               <fs_sval>-FIELDNAME   = 'ZSTTAG'.
  140.  
  141.               CALL FUNCTION 'POPUP_GET_VALUES'
  142.                 EXPORTING
  143. *                     NO_VALUE_CHECK        = ' '
  144.                   POPUP_TITLE           = 'Введите дата начала ППР'
  145. *                     START_COLUMN          = '5'
  146. *                     START_ROW             = '5'
  147. *                   IMPORTING
  148. *                     RETURNCODE            =
  149.                 TABLES
  150.                   FIELDS                = lt_fields
  151.                EXCEPTIONS
  152.                  ERROR_IN_FIELDS       = 1
  153.                  OTHERS                = 2
  154.                         .
  155.               IF SY-SUBRC <> 0.
  156. * Implement suitable error handling here
  157.                 mr_changed->ADD_PROTOCOL_ENTRY(
  158.              exporting
  159.                I_MSGID     = sy-MSGID
  160.                I_MSGTY     = sy-MSGTY
  161.                I_MSGNO     = sy-MSGNO
  162.               I_MSGV1     = sy-MSGV1
  163.               I_MSGV2     = sy-MSGV2
  164.               I_MSGV3     = sy-MSGV3
  165.               I_MSGV4     = sy-MSGV4
  166.                I_FIELDNAME = 'ZSTTAG'
  167.                I_ROW_ID    = <fs_no>-ROW_ID
  168. *                   I_TABIX     = lv
  169.            ).
  170.               else.
  171.                 READ TABLE lt_fields ASSIGNING <fs_sval> INDEX 1.
  172.                 LV_LRMDT = <fs_outab>-ZSTTAG  = <fs_sval>-VALUE.
  173.               ENDIF.
  174.  
  175.             WHEN OTHERS.
  176.               "! Нужно спросить у консультанта
  177.               mr_changed->ADD_PROTOCOL_ENTRY(
  178.               exporting
  179.                 I_MSGID     = 'ZALR_BC'
  180.                 I_MSGTY     = 'E'
  181.                 I_MSGNO     = 000
  182.                 I_MSGV1     = 'Для заказа Торо '
  183.                 I_MSGV2     = <fs_outab>-AUFNR
  184.                 I_MSGV3     = ' нет даты начального пкета ППР/дата КР'
  185.                 I_FIELDNAME = 'AUFNR'
  186.                 I_ROW_ID    = <fs_no>-ROW_ID
  187.             ).
  188.               CONTINUE.
  189.           ENDCASE.
  190.  
  191.       ENDCASE.
  192.     ENDLOOP.
  193.   ENDMETHOD.
  194.   METHOD menu_1_2.
  195.   endmethod.
  196.   METHOD menu_1_3.
  197.   endmethod.
  198.   METHOD menu_1_4.
  199.   endmethod.
  200.   METHOD menu_1_5.
  201.   endmethod.
  202.   METHOD menu_1_6.
  203.   endmethod.
  204.   METHOD menu_1_7.
  205.   endmethod.
  206.   METHOD menu_1_8.
  207.  
  208.     DATA falv2 TYPE REF TO lcl_test2.
  209.     DATA: lo_falv2 TYPE REF TO zcl_falv.
  210.     LCL_TEST2=>create( exporting  i_subclass = cl_abap_classdescr=>describe_by_name( p_name = 'LCL_TEST2' )
  211.       I_POPUP = abap_true
  212.                 CHANGING ct_table = gt_data  rv_falv = lo_falv2   ) .
  213.     falv2 ?= lo_falv2.
  214.     falv2->display(  ).
  215.     me->DISPLAY( ).
  216.   endmethod.
  217.   METHOD prepare_layout.
  218.     me->hide_additional(  ).
  219.     me->layout->SET_SEL_MODE( IV_VALUE = 'A' ).
  220.     me->LAYOUT->SET_INFO_FNAME( 'ROW_COLOR' ).
  221.     "In default when we use full screen FALV, Grid toolbar is switched off, we must turn it on )
  222.     me->layout->set_no_toolbar( abap_false ).
  223.  
  224.     me->add_button(
  225.       EXPORTING
  226.         iv_function  = zcl_falv_dynamic_status=>b_01
  227.         iv_icon      = icon_activate
  228.         iv_butn_type = me->BUTTON_MENU
  229.          iv_text      = 'Операции'
  230.     ).
  231.  
  232.     me->add_button(
  233.       EXPORTING
  234.         iv_function  = zcl_falv_dynamic_status=>b_02
  235.         iv_icon      = icon_active_inactive
  236.         iv_butn_type = me->BUTTON_MENU
  237.          iv_text      = 'Массовые операции'
  238.     ).
  239.  
  240.     mo_container = me->split_container->GET_CONTAINER(  ROW       = 2   COLUMN    = 1     ).
  241.     CREATE OBJECT mr_changed
  242.       EXPORTING
  243.         I_CALLING_ALV = me.
  244.  
  245.     FIELD-SYMBOLS: <fs_fcat> like LINE OF me->FCAT.
  246.     LOOP AT me->FCAT ASSIGNING <fs_fcat>.
  247.       <fs_fcat>-COLTEXT = <fs_fcat>-SCRTEXT_L.
  248.     ENDLOOP.
  249.     mr_changed->MT_FIELDCATALOG = me->FCAT.
  250.  
  251.  
  252.   ENDMETHOD.
  253.   METHOD hide_additional.
  254.     data:
  255.     lo_struct_descr type REF TO cl_abap_structdescr,
  256.     lt_struct_fields type cl_abap_structdescr=>COMPONENT_TABLE,
  257.     ls type TY_DATA_GENERAL_ADDITIONAL.
  258.     FIELD-SYMBOLS: <fs_struct> like LINE OF LT_STRUCT_FIELDS.
  259.     CASE IV.
  260.       WHEN abap_true.
  261.  
  262.         lo_struct_descr ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( ls ).
  263.         LT_STRUCT_FIELDS = lo_struct_descr->GET_COMPONENTS( ).
  264.  
  265.         LOOP AT LT_STRUCT_FIELDS ASSIGNING <fs_struct>.
  266.           me->COLUMN( |{ <fs_struct>-NAME }| )->SET_NO_OUT( abap_true  ).
  267.         ENDLOOP.
  268.       WHEN OTHERS.
  269.  
  270.     ENDCASE.
  271.   ENDMETHOD.
  272.   method get_data.
  273.     FIELD-SYMBOLS: <fs> like LINE OF gt_data.
  274.     SELECT *
  275.   from viaufks
  276.   into CORRESPONDING FIELDS OF TABLE gt_data.
  277.  
  278.  
  279.  
  280.  
  281.   ENDMETHOD.
  282.   METHOD hide_applog.
  283.     IF split_container IS NOT INITIAL.
  284.       split_container->set_row_sash(
  285.         EXPORTING
  286.           id                =  1   " Row Splitter Bar ID
  287.           type              =  split_container->type_sashvisible   " Attribute
  288.           value             =  0   " Value
  289.         EXCEPTIONS
  290.           cntl_error        = 1
  291.           cntl_system_error = 2
  292.           OTHERS            = 3
  293.       ).
  294.       IF sy-subrc <> 0.
  295.       ENDIF.
  296.       split_container->set_row_height(
  297.         EXPORTING
  298.           id                =   2 " Row ID
  299.           height            =   0  " Height
  300.         EXCEPTIONS
  301.           cntl_error        = 1
  302.           cntl_system_error = 2
  303.           OTHERS            = 3
  304.       ).
  305.       IF sy-subrc <> 0.
  306.       ENDIF.
  307.     ENDIF.
  308.   ENDMETHOD.                    "hide_applog
  309.   METHOD show_applog.
  310.     IF split_container IS NOT INITIAL.
  311.       split_container->set_row_sash(
  312.         EXPORTING
  313.           id                =  1   " Row Splitter Bar ID
  314.           type              =  split_container->type_sashvisible   " Attribute
  315.           value             =  1   " Value
  316.         EXCEPTIONS
  317.           cntl_error        = 1
  318.           cntl_system_error = 2
  319.           OTHERS            = 3
  320.       ).
  321.       IF sy-subrc <> 0.
  322.       ENDIF.
  323.       split_container->get_row_height(
  324.         EXPORTING
  325.           id                =  2   " Row ID
  326.         IMPORTING
  327.           result            =  height   " Result Code
  328.         EXCEPTIONS
  329.           cntl_error        = 1
  330.           cntl_system_error = 2
  331.           OTHERS            = 3
  332.       ).
  333.       IF sy-subrc EQ 0 AND height EQ 0.
  334.         split_container->set_row_height(
  335.           EXPORTING
  336.             id                =   2 " Row ID
  337.             height            =   15  " Height
  338.           IMPORTING
  339.             result           = result
  340.           EXCEPTIONS
  341.             cntl_error        = 1
  342.             cntl_system_error = 2
  343.             OTHERS            = 3
  344.         ).
  345.         IF sy-subrc <> 0.
  346.         ENDIF.
  347.       ENDIF.
  348.     ENDIF.
  349.   ENDMETHOD.
  350.   METHOD EVF_MENU_BUTTON.
  351.     CASE e_ucomm.
  352.       WHEN zcl_falv_dynamic_status=>b_01.
  353.         e_object->ADD_FUNCTION(
  354.           exporting
  355.             FCODE             = 'Menu_1_1'
  356.             TEXT              = 'Рассчитать плановые даты ППР' ).
  357.  
  358.         e_object->ADD_FUNCTION(
  359.           exporting
  360.             FCODE             = 'Menu_1_2'
  361.             TEXT              = 'Создать отзывы ППР за период').
  362.  
  363.         e_object->ADD_FUNCTION(
  364.          exporting
  365.          FCODE             = 'Menu_1_3'
  366.          TEXT              = 'Изменить плановые даты' ).
  367.  
  368.         e_object->ADD_FUNCTION(
  369.           exporting
  370.           FCODE             = 'Menu_1_4'
  371.           TEXT              = 'Пропуск отзыва' ).
  372.  
  373.         e_object->ADD_FUNCTION(
  374.            exporting
  375.            FCODE             = 'Menu_1_5'
  376.            TEXT              = 'Ввести дату последего КР' ).
  377.  
  378.         e_object->ADD_FUNCTION(
  379.            exporting
  380.            FCODE             = 'Menu_1_6'
  381.            TEXT              = 'Новый отсчет наработки после КР' ).
  382.  
  383.         e_object->ADD_FUNCTION(
  384.            exporting
  385.            FCODE             = 'Menu_1_7'
  386.            TEXT              = 'Добавить данные ППР' ).
  387.  
  388.         e_object->ADD_FUNCTION(
  389.            exporting
  390.            FCODE             = 'Menu_1_8'
  391.            TEXT              = 'Открыть данные о наработке' ).
  392.  
  393.       WHEN zcl_falv_dynamic_status=>b_02.
  394.         e_object->ADD_FUNCTION(
  395.           exporting
  396.             FCODE             = 'MyMenuFunc2'
  397.             TEXT              = 'MyMenuFunc2'
  398.   ).
  399.     ENDCASE.
  400.   ENDMETHOD.
  401.   METHOD evf_user_command.
  402.  
  403.     IF mr_changed is not INITIAL.
  404.       mr_changed->REFRESH_PROTOCOL( ).
  405.       mr_changed->FREE( ).
  406.     ENDIF.
  407.  
  408.     CASE e_ucomm.
  409.       WHEN 'Menu_1_1'.
  410.         me->menu_1_1( ).
  411.       WHEN 'Menu_1_2'.
  412.         me->menu_1_2( ).
  413.       WHEN 'Menu_1_3'.
  414.         me->menu_1_3( ).
  415.       WHEN 'Menu_1_4'.
  416.         me->menu_1_4( ).
  417.       WHEN 'Menu_1_5'.
  418.         me->menu_1_5( ).
  419.       WHEN 'Menu_1_6'.
  420.         me->menu_1_6( ).
  421.       WHEN 'Menu_1_7'.
  422.         me->menu_1_7( ).
  423.       WHEN 'Menu_1_8'.
  424.         me->menu_1_8( ).
  425.     ENDCASE.
  426.  
  427.     me->SOFT_REFRESH( ).
  428.     IF mr_changed->mt_protocol IS NOT INITIAL.
  429.       mr_changed->DISPLAY_PROTOCOL(
  430.         exporting
  431.             I_CONTAINER        = mo_container ).
  432.       show_applog( ).
  433.     ELSE.
  434.       hide_applog( ).
  435.     ENDIF.
  436.  
  437.  
  438.   ENDMETHOD.                    "evt_user_command
  439.  
  440. ENDCLASS.                    "lcl_test IMPLEMENTATION
  441. CLASS LCL_TEST2 IMPLEMENTATION.
  442. ENDCLASS.
  443.  
  444. START-OF-SELECTION.
  445.  
  446.  
  447.  
  448.   lcl_test=>create( exporting  i_subclass = cl_abap_classdescr=>describe_by_name( p_name = 'LCL_TEST' )
  449.       i_applog_embedded = 'X'
  450.           CHANGING ct_table = gt_data  rv_falv = lo_falv   ) .
  451.   falv ?= lo_falv.
  452.   falv->title_v1 = 'ZDEMO_FALV05'.
  453.  
  454.   falv->gui_status->fully_dynamic = abap_true .
  455.   falv->GET_DATA( ).
  456.   falv->prepare_layout(  ).
  457.   falv->display( ).
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×