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

Re: Smartforms with ALV

$
0
0

Hai,

 

Find the Sample Program,its working for me.

 

 

 

TABLES:eban.

TYPES:BEGIN OF ty_item,

      chk(1) TYPE c,

      icon   TYPE string,

      banfn TYPE eban-banfn,

      bnfpo TYPE eban-bnfpo,

      werks TYPE eban-werks,

      menge  TYPE eban-menge,

      matnr TYPE eban-matnr,

      meins TYPE eban-meins,

      txz01  TYPE eban-txz01,

      remark TYPE string,

      techs   TYPE string,

END OF ty_item.

DATA:it_item TYPE STANDARD TABLE OF ty_item WITH HEADER LINE,

      it_item1 TYPE STANDARD TABLE OF zprim WITH HEADER LINE.

DATA:lf_name TYPE rs38l_fnam.

DATA:wa_event    TYPE slis_alv_event,

it_events   TYPE slis_t_event,

it_line TYPE TABLE OF tline WITH HEADER LINE.

DATA: it_fieldcat TYPE lvc_t_fcat.

DATA: ls_fieldcat TYPE lvc_s_fcat.



DATA: gt_drpdwn1 TYPE lvc_t_drop,

      ls_drpdwn TYPE lvc_s_drop.

DATA: v_events TYPE slis_t_event.

*      wa_event TYPE slis_alv_event.

DATAcontrol TYPE ssfctrlop"Spool request control parameter

       w_function_name TYPE rs38l_fnam,

       department TYPE user_addr-department .



DATA: ref_grid TYPE REF TO cl_gui_alv_grid,

      g_custom_container TYPE REF TO cl_gui_custom_container,

      gt_fieldcat TYPE lvc_t_fcat,

      gs_layout TYPE lvc_s_layo,

      g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',

      g_grid  TYPE REF TO cl_gui_alv_grid,

      gd_layout    TYPE lvc_s_layo,     "slis_layout_alv,

      gd_repid     LIKE sy-repid,

       banfn TYPE eban-banfn.

DATA:lt_fcat TYPE lvc_t_fcat.

DATA ls_fcat TYPE lvc_s_fcat.





SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-t01.

SELECT-OPTIONS:s_banfn FOR eban-banfn OBLIGATORY.

SELECTION-SCREEN END OF BLOCK input.



PERFORM retrive_data.



ls_fieldcat-fieldname   = 'CHK'.

ls_fieldcat-scrtext_m   = 'SELECT'.

ls_fieldcat-col_pos     = 0.

ls_fieldcat-outputlen   = 6.

ls_fieldcat-emphasize   = 'X'.

ls_fieldcat-key         = 'X'.

ls_fieldcat-checkbox    = 'X'.

ls_fieldcat-edit        = 'X'.

APPEND ls_fieldcat TO it_fieldcat.

CLEAR  ls_fieldcat.



ls_fieldcat-fieldname = 'ICON'.

ls_fieldcat-scrtext_m = 'PRINT LABEL'.

ls_fieldcat-outputlen = 5.

ls_fieldcat-hotspot   = 'X'.   "X to declare the field as a hotspot

ls_fieldcat-icon      = 'X'.   "X to declare the field as an icon

ls_fieldcat-key         = 'X'.

APPEND ls_fieldcat TO it_fieldcat.

CLEAR  ls_fieldcat.



PERFORM display USING 'BANFN'  'Purchase Req No.' 10 ''.

PERFORM display USING 'WERKS'  'Plant.' 10 ''.

 

 

 

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

*&      Form  RETRIVE_DATA

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM retrive_data.

  SELECT banfn bnfpo matnr werks menge meins txz01 INTO CORRESPONDING FIELDS OF TABLE it_item FROM eban WHERE banfn IN s_banfn.

  LOOP AT it_item.

    it_item-icon = '@0X@'.

    MODIFY it_item  TRANSPORTING icon.

  ENDLOOP.

ENDFORM.  

 

 

 

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

*&      Form  user_command

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

*       text

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

*      -->R_UCOMM      text

*      -->RS_SELFIELD  text

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

FORM user_command USING r_ucomm LIKE sy-ucomm

                  rs_selfield TYPE slis_selfield.





  CASE rs_selfield-fieldname.

    WHEN 'ICON'.

      READ TABLE it_item  INDEX rs_selfield-tabindex.

      IF it_item-chk = 'X'.

*        PERFORM open_spool.

        PERFORM smartform_data.

        PERFORM fill_data.

*        PERFORM close_spool.

*        SELECT SINGLE

      ENDIF.

  ENDCASE.

ENDFORM.  

 

 

 

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

*&      Form  display

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

*       text

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

*      -->P_FNAME    text

*      -->P_TXT      text

*      -->P_FJUST    text

*      -->P_OLEN     text

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

FORM display USING fname

                   ftext

                   leng

                    p_edit.

  ls_fieldcat-fieldname   = fname.

  ls_fieldcat-coltext     = ftext.

  ls_fieldcat-outputlen  = leng.

  ls_fieldcat-edit = p_edit.

  APPEND ls_fieldcat TO it_fieldcat.

  CLEAR:ls_fieldcat.

ENDFORM.    

 

 

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

*&      Form  DISPLAY_ALV

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM display_alv.

  DATA: x_layout TYPE lvc_s_layo.

  SORT  it_item BY banfn.

  DELETE ADJACENT DUPLICATES FROM it_item COMPARING banfn.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

    EXPORTING

      i_callback_program      = sy-repid

*     i_callback_top_of_page  = 'TOP-OF-PAGE'

      is_layout_lvc           = gd_layout

      i_callback_user_command = 'USER_COMMAND'

      it_fieldcat_lvc         = it_fieldcat[]

      i_save                  = 'A'

    TABLES

      t_outtab                = it_item[]

    EXCEPTIONS

      program_error           = 1

      OTHERS                  = 2.

  IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

ENDFORM.                    "display_alv

 

 

 

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

*&      Form  CALL_FORM

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM call_form USING it_item1-banfn.

*  LOOP AT it_item1 WHERE banfn = it_item1-banfn.

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

    EXPORTING

      formname = 'ZHMMSJ_PR_FORM'

    IMPORTING

      fm_name  = lf_name.

  CALL FUNCTION lf_name

    EXPORTING

*     control_parameters = control

      department         = department

      banfn              = banfn

    TABLES

      it_item1           = it_item1.

  EXIT.

*  ENDLOOP.

ENDFORM.                    " CALL_FORM

 

 

 

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

*&      Form  SMARTFORM_DATA

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM smartform_data.

  SELECT banfn bnfpo matnr werks menge meins txz01 INTO CORRESPONDING FIELDS OF TABLE it_item1 FROM eban WHERE banfn = it_item-banfn."AND bnfpo = it_item-bnfpo.

  LOOP AT it_item1.

    SELECT SINGLE department INTO department FROM user_addr WHERE bname = sy-uname.

  ENDLOOP.

ENDFORM.                    " SMARTFORM_DATA

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

*&      Form  FILL_DATA

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM fill_data.

  LOOP AT it_item1.

    PERFORM call_form USING it_item1-banfn.

    EXIT.

  ENDLOOP.

ENDFORM.                    " F

 

After Executing the program,alv grid will display,click the check box,and the icon the form will display.


Viewing all articles
Browse latest Browse all 9076

Trending Articles



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