Perform setting OOP ALV for multiple reports using Field Symbols

Hi, Abapers ... i try to write a programme which using ONE oop ALV but 2 different structure internal table. the last result should be 2 radio button. first button is r_wbs and 2ns r_kpi. r_wbs will display 4 column answer and r_kpi will display 10 columns answer with different column name. i successfully implemented using FIELDS SYMBOLS but the problems i failed to perform customized setting forALV (report's tittle, column name, different layout etc)  for 2 different reports.  this is the programme. Please Give Opinion, simple example will be more helpful. Thanks You Very Much
*&this report experimental how to print into ONE alv
*&with 2 diffrent structure internal table
REPORT  zfiroopalv.
SELECTION-SCREEN BEGIN OF BLOCK mode WITH FRAME TITLE text-002.
PARAMETERS r_wbs RADIOBUTTON GROUP mode DEFAULT 'X'.
PARAMETERS r_kpi RADIOBUTTON GROUP mode.
SELECTION-SCREEN END OF BLOCK mode.
CLASS lcl_main DEFINITION.
PUBLIC SECTION.
CLASS-DATA: md_wbs TYPE c LENGTH 1.
METHODS: process,
         write.
DATA: mdo_data TYPE REF TO data.
TYPES: BEGIN OF st_wbs,
rsnum TYPE zmeime002a-rsnum,
rspos TYPE zmeime002a-rspos,
a TYPE zmmgitab01-menge,
b TYPE zmeime002a-bdmng,
c TYPE zmeime002a-bdmng,
d TYPE zmeime002a-bdmng,
e TYPE zmeime002a-bdmng,
f TYPE zmmgitab01-menge,
g TYPE zmmgitab01-menge,
END OF st_wbs.
TYPES: BEGIN OF st_kpi,
regio TYPE zmeime002a-regio,
gsber TYPE zmeime002a-gsber,
gtext TYPE zmeime002a-gtext,
x TYPE zmmgitab01-menge,
y TYPE zmmgitab01-menge,
z TYPE zmmgitab01-menge,
END OF st_kpi.
CLASS-DATA: it_wbs TYPE TABLE OF st_wbs,
            wa_wbs LIKE LINE OF it_wbs.
CLASS-DATA: it_kpi TYPE TABLE OF st_kpi,
            wa_kpi LIKE LINE OF it_kpi.
PRIVATE SECTION.
DATA: set_display_setting TYPE REF TO cl_salv_table.
DATA: display_settings TYPE REF TO cl_salv_display_settings.
DATA: salv_table TYPE REF TO cl_salv_table.
DATA: error TYPE REF TO cx_root.
DATA: errtext TYPE string.
ENDCLASS.
CLASS lcl_kpi DEFINITION INHERITING FROM lcl_main.
PUBLIC SECTION.
METHODS: process_kpi.
PRIVATE SECTION.
ENDCLASS.
* C.L.A.S.S lcl_main D.E.F.I.N.I.T.I.O.N
CLASS lcl_wbs DEFINITION INHERITING FROM lcl_main.
PUBLIC SECTION.
METHODS: process_wbs.
PRIVATE SECTION.
ENDCLASS.
* m.a.i.n. .p.r.o.g.r.a.m.
START-OF-SELECTION.
  DATA: o_main TYPE REF TO lcl_main.
DATA: p_wbs TYPE c.
CREATE OBJECT o_main.
  CASE 'X'.
  WHEN r_wbs.
      o_main->md_wbs = 'X'.
  WHEN r_kpi.
      o_main->md_wbs = ' '.
  ENDCASE.
  o_main->process( ).
  o_main->write( ).
CLASS lcl_main IMPLEMENTATION.
*ENDMETHOD.
METHOD process.  " NOTE: public method
DATA: o_main TYPE REF TO lcl_main,
      o_wbs TYPE REF TO lcl_wbs,
      o_kpi TYPE REF TO lcl_kpi.
CREATE OBJECT: o_wbs,o_kpi.
  IF ( me->md_wbs = 'X' ).
      CALL METHOD o_wbs->process_wbs( ).  " NOTE: private method
      GET REFERENCE OF me->it_wbs INTO me->mdo_data.
  ELSE.
      CALL METHOD o_kpi->process_kpi( ).  " NOTE: private method
      GET REFERENCE OF me->it_kpi INTO me->mdo_data.
  ENDIF.
ENDMETHOD.
METHOD write.
FIELD-SYMBOLS:
  <lt_outtab>    TYPE table.
  ASSIGN me->mdo_data->* TO <lt_outtab>.
cl_salv_table=>factory(
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = salv_table
CHANGING
t_table = <lt_outtab>
salv_table->display( ).
ENDMETHOD.
ENDCLASS.
CLASS lcl_kpi IMPLEMENTATION.
METHOD process_kpi.
*********** run some select statement into it_kpi*******
ENDMETHOD.
ENDCLASS.
CLASS lcl_wbs IMPLEMENTATION.
METHOD process_wbs.
*********** run some select statement into it_wbs*******
ENDMETHOD.
ENDCLASS.

Hi,
I had similar requirement wherein I was supposed to display different data using 2 different internal tables on a subscreen area.
The screen consists of two parts: 1) selection-screen with few input fields and two buttons 2) Subscreen area where the report need to be displayed. This report is displayed based on the button that the user is selecting. For this I have done the following things:
1. Capture the sy-ucomm when user is clicking on any of the two buttons in PAI. Then perform data fetch operation.
         MODULE USER_COMMAND_9003 INPUT.
             CASE OK_CODE.
                 WHEN 'DETAIL'.
                   GV_RPT = OK_CODE.
                   PERFORM F_GET_DETAIL_DATA.
                 WHEN 'REPORT'.
                   GV_RPT = OK_CODE.
                   PERFORM F_GET_REPT_DATA.
               ENDCASE.
         ENDMODULE.                 " USER_COMMAND_9003  INPUT
2.  Declare two different ALV's with the fieldcat similar to 2 internal tables respectively. Use the above sy-ucomm PBO to call appropriate ALV.
         MODULE DISPLAY_ALV OUTPUT.
           IF GV_RPT EQ 'DETAIL'.
             PERFORM F_FIELDCAT_DETAIL.
             PERFORM F_LAYOUT_DETAIL.
             PERFORM F_EXCLUDE_TOOLBAR_DETAIL.
             PERFORM F_DISPLAY_ALV_DETAIL.
           ELSEIF GV_RPT EQ 'REPORT'.
             PERFORM F_FIELDCAT_REPT.
             PERFORM F_LAYOUT_REPT.
             PERFORM F_EXCLUDE_TOOLBAR_REPT.
             PERFORM F_DISPLAY_ALV_REPT.
           ENDIF.
         ENDMODULE.                 " DISPLAY_ALV  OUTPUT
3. Before displaying ALV you need to free the container and ALV.
FORM F_DISPLAY_ALV_DETAIL .
IF GC_CONTAINER_ES IS NOT INITIAL.
    CALL METHOD GC_CONTAINER_ES->FREE
      EXCEPTIONS
        CNTL_ERROR        = 1
        CNTL_SYSTEM_ERROR = 2
        OTHERS            = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.
  IF GC_ALV_GRID_ES IS NOT INITIAL.
    CALL METHOD GC_ALV_GRID_ES->FREE
      EXCEPTIONS
        CNTL_ERROR        = 1
        CNTL_SYSTEM_ERROR = 2
        OTHERS            = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.
  IF GC_CONTAINER_TB IS NOT INITIAL.
    CALL METHOD GC_CONTAINER_TB->FREE
      EXCEPTIONS
        CNTL_ERROR        = 1
        CNTL_SYSTEM_ERROR = 2
        OTHERS            = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.
  IF GC_ALV_GRID_TB IS NOT INITIAL.
    CALL METHOD GC_ALV_GRID_TB->FREE
      EXCEPTIONS
        CNTL_ERROR        = 1
        CNTL_SYSTEM_ERROR = 2
        OTHERS            = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.
  CREATE OBJECT GC_CONTAINER_ES
    EXPORTING
      CONTAINER_NAME              = 'CC_9003'
    EXCEPTIONS
      CNTL_ERROR                  = 1
      CNTL_SYSTEM_ERROR           = 2
      CREATE_ERROR                = 3
      LIFETIME_ERROR              = 4
      LIFETIME_DYNPRO_DYNPRO_LINK = 5
      OTHERS                      = 6.
  CREATE OBJECT GC_ALV_GRID_ES
    EXPORTING
      I_PARENT          = GC_CONTAINER_ES
    EXCEPTIONS
      ERROR_CNTL_CREATE = 1
      ERROR_CNTL_INIT   = 2
      ERROR_CNTL_LINK   = 3
      ERROR_DP_CREATE   = 4
      OTHERS            = 5.
  CALL METHOD GC_ALV_GRID_ES->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT                     = GS_LAYOUT_ES
      IT_TOOLBAR_EXCLUDING          = GT_TOOLBAR_ES
    CHANGING
      IT_OUTTAB                     = GT_ES_REPT
      IT_FIELDCATALOG               = GT_FIELDCAT_ES
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
ENDFORM.                    " F_DISPLAY_ALV_DETAIL
Similarly define the FORM F_DISPLAY_ALV_REPT.     
Hope this will be useful for you. If you have any more queries let me know.

Similar Messages

  • Re: Problem in ALV reports using Field symbols

    Hi Friends,
    Can you tell me how to convert a normal report using field symbols into ALV report
    can ypu please suggest me any solutions.I am sending the code along with this mail.
    Regards,
    Dinesh
    <b>Coding:</b>
    *& Report  YSDBTEMP                                                    *
    REPORT  YSDBTEMP                                .
    tables: ekko , ekpo .
    TYPE-POOLS: SLIS.
    *Internal Table Declaration
    data: begin of line ,
          ebeln like ekko-ebeln , "Purchasing Document No.
          bedat like ekko-bedat , "Purchasing Document Date
          matnr like ekpo-matnr , "Material No.
          netwr like ekpo-netwr , "Net Order Value in PO Currancy
          meins like ekpo-meins , "UOM
          change like ekpo-menge ,
    end of line .
    *Internal table Declaration
    DATA: IT_final like table of line  with header line.
    DATA :  FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV with header line.
    DATA :  V_REPID TYPE SYREPID.
    DATA :  IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    data :  i_layout type slis_layout_alv .
    Header for Main Grid Display
    data:i_header1 type slis_t_listheader with header line.
    Header for Interactive Report Display
    data:i_header2 type slis_t_listheader with header line.
    *Field Symbol declaration.
    FIELD-SYMBOLS: <FS> type any table.
    **select option Declaration
    selection-screen begin of block block.
    select-options: s_ebeln for ekko-ebeln .
    selection-screen end of block block .
    start-of-selection.
      perform get_data.
      perform field_cat.
      perform layout using i_layout .
      perform grid_display .
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    FORM get_data .
    SELECT EKKO~EBELN
      EKKO~BEDAT
      EKPO~EBELP
      EKPO~MATNR
      EKPO~NETWR
      EKPO~MEINS
      EKPO~MENGE
      EKPO~BPRME
      INTO CORRESPONDING FIELDS OF table IT_FINAL
      FROM EKKO INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
      WHERE EKKO~EBELN IN S_EBELN.
    ENDFORM.                    " get_data
    *&      Form  field_cat
          text
    -->  p1        text
    <--  p2        text
    FORM field_cat .
      fieldcatalog-fieldname = 'EBELN'.
      fieldcatalog-seltext_m = 'Purchase Order No'.
      fieldcatalog-col_pos = 1.
       append fieldcatalog .
      clear fieldcatalog.
      fieldcatalog-fieldname = 'BEDAT'.
      fieldcatalog-seltext_m = 'Purchasing Document Date'.
      fieldcatalog-col_pos = 2.
       append fieldcatalog .
      clear fieldcatalog.
      fieldcatalog-fieldname = 'MATNR'.
      fieldcatalog-seltext_m = 'Material No'.
      fieldcatalog-col_pos = 3.
       append fieldcatalog .
      clear fieldcatalog.
      fieldcatalog-fieldname = 'MATNR'.
      fieldcatalog-seltext_m = 'Net order'.
      fieldcatalog-col_pos = 4.
       append fieldcatalog .
      clear fieldcatalog.
    ENDFORM.                    " field_cat
    *&      Form  layout
          text
         -->P_I_LAYOUT  text
    FORM layout  USING    P_I_LAYOUT.
      i_layout-lights_tabname = 'IT_FINAL'.
      i_layout-box_tabname = 'IT_FINAL'.
    ENDFORM.                    " layout
    *&      Form  grid_display
          text
    -->  p1        text
    <--  p2        text
    FORM grid_display .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_PF_STATUS_SET = 'SET_PO_PF_STATUS'
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
      IS_LAYOUT = I_LAYOUT
      IT_FIELDCAT = FIELDCATALOG[]
    *IT_EVENTS = I_EVENT[]
      TABLES
      t_outtab = <fs>.
    endform.

    Hi,
    This is one sample program,
    Check this.
    I hope it is helpful to you.
    TABLES : zeastable_02,zeastable_04.
    TYPE-POOLS : slis.
    TYPES : BEGIN OF fieldst,
            name LIKE zeastable_02-name,
            znum LIKE zeastable_02-znum,
            empno LIKE zeastable_04-empno,
            zempsalary LIKE zeastable_04-zempsalary,
            END OF fieldst.
    DATA itab TYPE TABLE OF fieldst WITH HEADER LINE.
    DATA: w_report_id  LIKE sy-repid.            "Program name
    DATA: w_title   TYPE lvc_title VALUE    'Assignment 1 in ALV'.
    DATA: w_layout   TYPE slis_layout_alv.      "Layout setup
    DATA: w_fieldcat TYPE slis_t_fieldcat_alv.  "Field Catlog
    START-OF-SELECTION.
      SELECT-OPTIONS employee FOR zeastable_04-empno.
    SELECT zeastable_02name  zeastable_02znum
           zeastable_04empno zeastable_04zempsalary
           INTO CORRESPONDING FIELDS OF TABLE itab FROM
           zeastable_02 INNER JOIN zeastable_04 ON
           zeastable_02name = zeastable_04name
           WHERE  zeastable_04~empno IN employee.
    w_report_id = sy-repid.
    PERFORM i_layout CHANGING w_layout.
    PERFORM i_fieldcat CHANGING w_fieldcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
        i_callback_program                = 'ZEASALV_04'
         i_grid_title                      = w_title
         is_layout                         = w_layout
         it_fieldcat                       = w_fieldcat
         i_save                            = 'A'
        TABLES
          t_outtab                          = itab
       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.
      PERFORM i_layout CHANGING w_layout.
      PERFORM i_fieldcat CHANGING w_fieldcat.
    *&      Form  i_layout
          text
         <--P_W_LAYOUT  text
    form i_layout  changing p_w_layout.
    clear w_layout.
      w_layout-colwidth_optimize = 'X'.
      w_layout-edit = ' '.
    endform.                    " i_layout
    *&      Form  i_fieldcat
          text
         <--P_W_FEILDCAT  text
    form i_fieldcat  changing p_w_feildcat.
    data: l_line_fieldcat type slis_fieldcat_alv.
    clear l_line_fieldcat.
      l_line_fieldcat-fieldname = 'NAME'.
      l_line_fieldcat-ref_tabname = 'itab'.
      l_line_fieldcat-seltext_m = 'NAME'.
      l_line_fieldcat-key  = 'X'.
       append l_line_fieldcat to w_fieldcat.
      clear l_line_fieldcat.
      l_line_fieldcat-fieldname = 'ZNUM'.
      l_line_fieldcat-ref_tabname = 'itab'.
      l_line_fieldcat-seltext_m = 'NUMBER'.
      l_line_fieldcat-key  = 'X'.
      append l_line_fieldcat to w_fieldcat.
      clear l_line_fieldcat.
      l_line_fieldcat-fieldname = 'EMPNO'.
      l_line_fieldcat-ref_tabname = 'itab'.
      l_line_fieldcat-seltext_m = 'EMPLNUM'.
    *l_line_fieldcat-key  = 'X'.
      append l_line_fieldcat to w_fieldcat.
      clear l_line_fieldcat.
      l_line_fieldcat-fieldname = 'ZEMPSALARY'.
      l_line_fieldcat-ref_tabname = 'itab'.
      l_line_fieldcat-seltext_m = 'SALARY'.
    *l_line_fieldcat-key  = 'X'.
      append l_line_fieldcat to w_fieldcat.
    endform.                    " i_fieldcat
    Reward for useful answers.

  • Going for dump while using field symbols

    Hi all,
       I am using field symbols in my program. Program is going dump for some company codes and working fine for some company codes.
    I am confused. Please check this code where the error is shown.
    LOOP AT i_final ASSIGNING <fs_final>.
        AT NEW belnr.
         if  <fs_final>-wt_withcd  = 'SF' or  <fs_final>-wt_withcd  = 'XF' OR  <fs_final>-  wt_withcd  = 'WF'.
          MOVE <fs_final> TO wa_final1.
          g_qsatz = wa_final1-qsatz.
          APPEND wa_final1 TO i_final1.
          CLEAR wa_final1.
         ENDIF.
        ENDAT.
        READ TABLE i_final1 ASSIGNING <fs_final1> WITH KEY belnr = <fs_final>-belnr.
        IF <fs_final>-wt_withcd  = 'SF'.
          <fs_final1>-wt_withcd1 = <fs_final>-wt_withcd.
          <fs_final1>-wt_qbshb1  = <fs_final>-wt_qbshb.
          <fs_final1>-qsatz      = <fs_final1>-qsatz + <fs_final>-qsatz.
        ENDIF.
        IF <fs_final>-wt_withcd  = 'XF'.
          <fs_final1>-wt_withcd2 = <fs_final>-wt_withcd.
          <fs_final1>-wt_qbshb2  = <fs_final>-wt_qbshb.
          <fs_final1>-qsatz      = <fs_final1>-qsatz + <fs_final>-qsatz.
        ENDIF.
        IF <fs_final>-wt_withcd = 'WF'.
          <fs_final1>-wt_withcd = <fs_final>-wt_withcd.
          <fs_final1>-wt_qbshb  = <fs_final>-wt_qbshb.
          <fs_final1>-qsatz      = <fs_final1>-qsatz + <fs_final>-qsatz.
        ENDIF.
        AT END OF belnr.
          <fs_final1>-qsatz = <fs_final1>-qsatz - g_qsatz.
          clear g_qsatz.
        ENDAT.
      ENDLOOP.
    Please check the code and help me.
    Thanks in advance,
    Shalem

    HI Shalem
    Please check this code:
    LOOP AT i_final ASSIGNING <fs_final>.
      AT NEW belnr.
         if <fs_final>-wt_withcd = 'SF' or
            <fs_final>-wt_withcd = 'XF' OR
            <fs_final>- wt_withcd = 'WF'.
            MOVE <fs_final> TO wa_final1.
            g_qsatz = wa_final1-qsatz.
            APPEND wa_final1 TO i_final1.
            CLEAR wa_final1.
         ENDIF.
      ENDAT.
      READ TABLE i_final1 ASSIGNING <fs_final1> WITH KEY belnr = <fs_final>-belnr.
      IF sy-subrc EQ 0.
         CASE <fs_final>-wt_withcd.
         WHEN 'SF'.
              <fs_final1>-wt_withcd1 = <fs_final>-wt_withcd.
              <fs_final1>-wt_qbshb1 = <fs_final>-wt_qbshb.
         WHEN 'XF'.
              <fs_final1>-wt_withcd2 = <fs_final>-wt_withcd.
              <fs_final1>-wt_qbshb2 = <fs_final>-wt_qbshb.
         WHEN 'WF'.
              <fs_final1>-wt_withcd = <fs_final>-wt_withcd.
              <fs_final1>-wt_qbshb = <fs_final>-wt_qbshb.
         ENDCASE.
         <fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
         AT END OF belnr.
            <fs_final1>-qsatz = <fs_final1>-qsatz - g_qsatz.
            clear g_qsatz.
         ENDAT.
      ENDIF.
    ENDLOOP.
    Kind Regards
    Eswar

  • Setting OBDC info on multiple reports (batch)

    Hello,
    Is there a way to set OBDC info for multiple reports at once. I have users with 100+ reports and we just changed SQL server, so that each report need to be pointed to the new server. Doing it manually by opening each report and manually pointing it to the new server is a real pain.
    If there is a way we can do it in a batch that would save us a lot of time.
    TIA!

    since you're changing servers, just editing the existing odbc connection (i.e. in the 32 Bit ODBC  Data Source Administrator) to point to the new server should be all that is required as long as the table names and field names / types within those tables remains constant.
    otherwise, there are 3rd party tools (usually cost) like 'rpt inspector' where you can do this.

  • Using field-symbols giving dump " the output area is too small.  "

    Hi All,
    Good Afternoon.
    I  am creating a report using field-symbols. The purpose is :
    "This development involves extracting all the fields and the entire data, of any SAP table, and download it as a ‘;’ seperator file."
    For this I wrote following code:
    *& Report  ZTOOL
    REPORT  ztool1.
    Tables***************************************
    DATA : i_tab TYPE TABLE OF dfies WITH HEADER LINE.
    Variables***************************************
    DATA dref TYPE REF TO data.
    FIELD-SYMBOLS <ft> TYPE ANY TABLE." with header line.
    FIELD-SYMBOLS <fs> TYPE ANY .
    DATA: w_heading(5000),
         w_line(5000).
    CONSTANTS  sep TYPE c VALUE ';'.
    Selection Screen*********************************
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS : p_tab LIKE dfies-tabname OBLIGATORY.
    PARAMETERS : p_file(100) TYPE c .
    PARAMETERS : p_lfile(100) TYPE c .
    SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
      CALL FUNCTION 'GET_FIELDTAB'
       EXPORTING
         langu                     = sy-langu
      ONLY                      = ' '
         tabname                   = p_tab
      WITHTEXT                  = 'X'
    IMPORTING
      HEADER                    =
      RC                        =
        TABLES
          fieldtab                  = i_tab
    EXCEPTIONS
       internal_error            = 1
       no_texts_found            = 2
       table_has_no_fields       = 3
       table_not_activ           = 4
       OTHERS                    = 5
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
         SELECT * FROM (p_tab) INTO <fs> .       
         endselect.
         CREATE DATA dref TYPE STANDARD TABLE OF (p_tab).
           ENDSELECT.
          assign dref to <fs> casting.
         ASSIGN dref->* TO <ft>.
         SELECT & FROM (p_tab) INTO table <ft>.
         OPEN DATASET p_lfile FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    LOOP AT i_tab.
      IF sy-index = 1.
        w_heading = i_tab-fieldname.
      ELSE.
      CONCATENATE w_heading i_tab-fieldname INTO w_heading SEPARATED BY sep.
      ENDIF.
    ENDLOOP.
    TRANSFER w_heading TO p_lfile.
    LOOP AT <ft> into <ft>.
    clear w_line.
      LOOP AT i_tab.
             ASSIGN COMPONENT i_tab-fieldname OF STRUCTURE <ft> TO <fs>.
             IF sy-index = 1.
                  w_line = <fs> .
             ELSE.
                  CONCATENATE w_line <fs> into w_line SEPARATED BY sep.
             ENDIF.
      ENDLOOP.
      TRANSFER w_line TO p_file.
    ENDLOOP.
    The program is executed well till the statement :
    SELECT * FROM (p_tab) INTO <fs> .       
         endselect.
    But here it gives the following dump : 
    "Error analysis
        In an Open SQL select, the output area used t
        records must be at least as wide as the datab
        records are being read.
        In this particular case, the database table i
        but the output area is only 2 bytes wide."
    Can you please help me solve this problem.
    Thanks in advance.

    Hi Abhii,
    Both are having the same number of fields.
    The only problem is with the data and time (in my scenario). Here, actual length of date is 8 and maximum length is 10. and for time the actual length is 6 and maximum length is 8.
    So, my work area it is taking only the actual length but not the maximum length because of this it is going to dump.
    Can i have any thing which also considers the maximum length of any field at a domain level so that by work area bytes should match according to the db table byte length.
    Thanks
    rohith

  • Prompt used as view selector for multiple reports

    Hi All,
    Can a dashboard prompt be used as View Selector for multiple reports? If yes, please let me know how?
    Thanks
    Sumita

    Hi Sumita,
    You can do this with Dashboard prompts, but it's a little tricky. I'll highlight the process below. Keep In mind I assume you have three reports already created and have three views: View 1, View 2 and View 3.
    Phase I: The Dashboard Prompt
    1. Create a new dashboard prompt.
    2. Add any single column to your prompt. It doesn't really matter which one (just make sure nothing is prompted on it to be safe).
    3. For the sake of this example, I'll assume we added column: "Test Folder"."Test Field"
    4. Make sure your Operator is "is equal to/is in"
    5. Make sure the control is "Drop-down List"
    6. Change the Show to "SQL Results"
    7. Write a SQL statement similar to the following (TEST =<your subject area>, "Test Folder"."Test Field" = <your column>):
    SELECT CASE WHEN 1=2 THEN "Test Folder"."Test Field" ELSE 'View 1' END
    FROM TEST
    UNION
    SELECT CASE WHEN 1=2 THEN "Test Folder"."Test Field" ELSE 'View 2' END
    FROM TEST
    UNION
    SELECT CASE WHEN 1=2 THEN "Test Folder"."Test Field" ELSE 'View 3' END
    FROM TEST
    **Note: The reason why we need to do the CASE statement is because every logical query needs at least 1 presentation column. The case statement is a way to include the presentation column, but since the statement 1=2 is never true, we always use the ELSE condition.
    8. Set a presentation variable. Call it VIEW_PVAR
    9. Have the Prompt default to Specific Value: View 1
    10. Save the Dashboard Prompt and put it into the Dashboard with your reports.
    Phase II: Filter Reports
    1. Create a new Answer request
    2. Bring in your test column twice
    3. Change the formula (fx) on the second column to be: '@{VIEW_PVAR}{View 1}'
    4. Now add a filter to the presentation variable column
    5. Set the operator to "is equal to/is in' and set the value to: View 1
    6. Save the Request as "View 1 Filter"
    7. Change the value in the filter to: View 2
    8. Save the Request as "View 2 Filter"
    9. Change the value in the filter to: View 3
    10. Save the Request as "View 3 Filter"
    Phase III: Guided Navigation
    1. Create three sections in your dashboard
    2. Rename each section to: View 1, View 2 and View 3 respectively
    3. For each of the sections, do the following:
    3a. Click on properties
    3b. Click on Guided navigation
    3c. Set the Guided Navigation to the appropriate Filter report
    4. For each of the three sections, do the following:
    4a. Add in all three requests
    4b. Click on the request properties and select Show and the appropriate view for that section
    5. Save your changes to your Dashboard
    Good luck and if you found this post useful, please award points!
    Best regards,
    -Joe

  • Steps for Creating Report  using LDB

    hellow sirs
    can u please tell Step by Step method for creating Reports using LDB method...
    if possible with screen Shots..
    thanking You
    Rahul

    Hi,
    Please refer the code below:
    Use the PNP LDB for this program,
    *: Report:  ZP_POSTCODE                                                :
    *: Date  :  2004                                                       :
    *: Description: Displays report of employees by postcode area,         :
    *:              includes current travelling allowances (i.e. parking   :
    *:              permit or transport card etc..)                        :
    *: Use:         Help encourage the use of car sharing and public       :
    *:              transport where appropriate.                           :
    REPORT  zp_postcode.
    type-pools: slis.                                      "ALV Declarations
    NODES: pernr.
    INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0014, 0105, 0121.
    SELECTION-SCREEN BEGIN OF BLOCK pcode WITH FRAME TITLE text-s01.
    SELECT-OPTIONS: so_pcode FOR p0006-pstlz.
    SELECTION-SCREEN END OF BLOCK pcode.
    TYPES: BEGIN OF t_output,
      pernr       TYPE p0001-pernr,   "personnel name
      anredtxt    TYPE t522t-atext,   "title (based on p0002-anred)
      fname       TYPE p0002-vorna,   "first name
      lname       TYPE p0002-nachn,   "last name
      orgtx       TYPE t527x-orgtx,   "dept
      fte         TYPE p0008-bsgrd,   "fte
      parking(20) TYPE c,
      payslip     TYPE t526-sachn,        "payslip address
      telno       TYPE p0105-usrid_long,  "tel number(p0105-usrty = 0020)
      email       TYPE p0105-usrid_long,  "email (p0105-usrty = MAIL)
      postcode    type p0006-pstlz,
    END OF t_output.
    DATA: it_output TYPE STANDARD TABLE OF t_output INITIAL SIZE 0,
          wa_output TYPE t_output.
    *ALV data declarations
    data: fieldcatalog   type slis_t_fieldcat_alv with header line,
          gd_tab_group   type slis_t_sp_group_alv,
          gd_layout      type slis_layout_alv,
          gd_repid       like sy-repid,
          gt_events      type slis_t_event,
          gd_prntparams  type slis_print_alv,
          gd_count(6)    type n,
          gd_outtext(70) type c,
          gd_lines       type i.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    clear: gd_count.
    GET pernr.
    * Infotype 0121 is used to store multiple contracts for personnel.
    * Field p0121-hpern contains the personnel number for the main contract.
      PROVIDE * from p0121 between pn-begda and pn-endda.
    *   Check if main contract
        if p0121-pernr ne p0121-hpern.
          reject.
        endif.
      ENDPROVIDE.
      add 1 to gd_count.
      concatenate 'Processing personnel data'(m10) gd_count into gd_outtext
                separated by ' '.
    * Display indicator for employee count
      perform progress_indicator using gd_outtext.
    * Retrieve datd from infotypes
      rp_provide_from_last p0000 space pn-begda pn-endda.
      rp_provide_from_last p0001 space pn-begda pn-endda.
      rp_provide_from_last p0002 space pn-begda pn-endda.
      rp_provide_from_last p0006 space pn-begda pn-endda.
      rp_provide_from_last p0008 space pn-begda pn-endda.
      rp_provide_from_last p0014 space pn-begda pn-endda.
    * Check post code
      CHECK p0006-pstlz IN so_pcode.  "cp
    * Post code
      wa_output-postcode = p0006-pstlz.
    * Personnel number
      wa_output-pernr = pernr-pernr.
    * Personnel title
      SELECT SINGLE atext
        FROM t522t
        INTO wa_output-anredtxt
       WHERE sprsl EQ sy-langu AND
             anred EQ p0002-anred.
    * First name
      wa_output-fname = p0002-vorna.
    * Last name
      wa_output-lname = p0002-nachn.
    * Organizational Unit text (dept)
      SELECT SINGLE orgtx
        FROM t527x
        INTO wa_output-orgtx
       WHERE sprsl EQ sy-langu AND
             orgeh EQ p0001-orgeh AND
             endda GE sy-datum.
    * FTE
      wa_output-fte = p0008-bsgrd.
    * Parking / travel deducted?
      CASE p0014-lgart.
        WHEN '7180' OR '7181' OR '7182'.
          wa_output-parking = text-002.
        WHEN '7183'.
          wa_output-parking = text-001.
        WHEN '7171' OR '7172' or '7173' or '7174' or
             '7175' or '7176' or '7177' or '7178'.
          wa_output-parking = text-003.
      ENDCASE.
    * Payslip Address
      SELECT SINGLE sachn
        FROM t526
        INTO wa_output-payslip
       WHERE werks EQ p0001-werks AND
             sachx EQ p0001-sacha.
      PROVIDE * from p0105 between pn-begda and pn-endda.
    *   Telephone numbers
        if p0105-usrty = '0020'.
           wa_output-telno = p0105-usrid_long.
        endif.
    *   Email address
        if p0105-usrty = 'MAIL'.
           wa_output-email = p0105-usrid_long.
        endif.
      ENDPROVIDE.
      append wa_output to it_output.
      clear: wa_output.
    *END-OF-SELECTION.
    END-OF-SELECTION.
    describe table it_output lines gd_lines.
    if gd_lines gt 0.
      perform build_fieldcatalog.
      perform build_layout.
      perform display_alv_report.
    else.
      message i003(zp) with 'No records found'.
    endif.
    *&      Form  PROGRESS_INDICATOR
    *       Displays progress indicator on SAP screen
    form progress_indicator using p_text.
      call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
    *         PERCENTAGE = 0
               text       = p_text.
    endform.                    " PROGRESS_INDICATOR
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
      fieldcatalog-fieldname   = 'PERNR'.
      fieldcatalog-seltext_m   = 'Personnel No.'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
    *  fieldcatalog-emphasize   = 'X'.
    *  fieldcatalog-key         = 'X'.
    *  fieldcatalog-do_sum      = 'X'.
    *  fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'ANREDTXT'.
      fieldcatalog-seltext_m   = 'Title'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'FNAME'.
      fieldcatalog-seltext_m   = 'First Name'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'LNAME'.
      fieldcatalog-seltext_m   = 'Last Name'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'ORGTX'.
      fieldcatalog-seltext_m   = 'Department'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'FTE'.
      fieldcatalog-seltext_m   = 'FTE'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PARKING'.
      fieldcatalog-seltext_m   = 'Parking/Metrocard'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PAYSLIP'.
      fieldcatalog-seltext_m   = 'Payslip Add.'.
      fieldcatalog-col_pos     = 7.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'TELNO'.
      fieldcatalog-seltext_m   = 'Telephone'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EMAIL'.
      fieldcatalog-seltext_m   = 'E-mail'.
      fieldcatalog-col_pos     = 9.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'POSTCODE'.
      fieldcatalog-seltext_m   = 'Post code'.
      fieldcatalog-col_pos     = 10.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
      gd_layout-zebra             = 'X'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
                i_save                  = 'X'
           tables
                t_outtab                = it_output
           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_REPORT

  • How do you set the duration for multiple stills in iMovie 2013?

    How do you set the duration for multiple stills in iMovie 2013?
    Before upgrading to the latest version of iMovie last month, I was able to set the duation of all of the stills included in an iMovie project at one time by clicking the apply to all still box in the adjustment pop up. That option is no longer apparent. If it is available I cannot find it, and I have tried several different ways to accomplish it. I have tried the iMovie help section and can find nothing to help.
    Apple, do I really have to adjust close to 500 pictures to a 5 second duration individually???
    REALLY??!!

    ...why wouldnt people want that level of accuracy when animating, especially when working to music at a specific duration?
    Because often people are animating to words or beats in the music.  Music is rarely performed with a computer-precise beat and tempo.  Musicians aren't robots: they swing the beat sometimes.  They use rubato.  They change tempo.  They change time signatures.  As a result, you have to FIND those words and beats.  It's not a situation where you can say, "There!  I've found the duration of one beat!  Now it's easy to find the rest of them!" 
    If you try it, you will be very disappointed.
    Try finding the precise end of a piece of music that fades or ends on a big chord with a ring-out.  You'll see that it's trial-and-error: what's the point where it becomes inaudible?  It depends on how high your speakers are turned up.  You might have them way up, you set an end point for the layer, and then you do a RAM Preview at a more reasonable volume.  You might say, "Hey!  The music ends before the layer ends!"...  but you KNOW you set the layer's out point when the audio file goes silent.
    AE has layer markers that can be used on an audio layer to mark beats, words, etc. They come in very handy.
    I guess it comes down to this: because AE can do so much different stuff, there are very few automated procedures.  Oh, Adobe tries with effects that convert audio levels to keyframes, but they're not 100% reliable... especially on something like a capella choral works.  For true accuracy, you need  find the timings yourself. 
    If you want something simpler, try a different application. But be prepared for lower level of accuracy.

  • Variant for multiple reports

    Hi Experts,
    Does anyone know if it's possible to create variants that serve for multiple reports?  If so, how?
    I have 10 very similar reports which use the same selection screen defined in an include for all of them.
    Regards,
    Simon

    Hi,
    It is not possible to create variant for multiple reports as it is said as
    you must create a separate variant for each report and then save it with the report where the values will be used.
    refer this line in the link
    http://web.mit.edu/SAPR3/docs/webdocs/reports/rpRFvariant.html

  • Multiple Reports using Application Engine

    Hi ,
    Can we generate multiple reports using App Engine..?
    if yes, how do we do tht..?
    cheers,
    Karthik
    oops...im sorry..i mean reports..dont know i typed questions...corrected the question now...
    Edited by: karthik tulasi on May 15, 2009 1:48 PM

    karthik tulasi wrote:
    Hi ,
    Can we generate multiple questions using App Engine..?
    if yes, how do we do tht..?
    cheers,
    KarthikWhat is "questions" ?
    Nicolas.

  • Set storage quota on multiple mailboxes using PowerShell?

    I need to set storage quota limits on multiple mailboxes using PowerShell. I understand I can create a .csv file with aliases and pipe that into a cmdlet, eg.,
    Import-CSV "C:\temp\alias.csv" | % {Set-Mailbox -identity $_.alias -IssueWarningQuota 900mb -ProhibitSendQuota 950mb -ProhibitSendReceiveQuota 1gb -UseDatabaseQuotaDefaults $false
    Is there any other way of doing this with a much more robust script?
    Any help would be much appreciated.

A: Set storage quota on multiple mailboxes using PowerShell?

Hi,
Is there any special attribute for these multiple mailboxes? such as they are from a specific OU or a distribution group etc.
If there is, we can direct use the filter to pick out these mailboxes instead of create .csv file for them. The following example can set storage quota for mailboxes in a distrobution group Group1:
Get-DistributionGroupMember -Identity Group1 | ForEach{ Set-Mailbox -identity $_.Name -IssueWarningQuota 900mb -ProhibitSendQuota 950mb -ProhibitSendReceiveQuota 1gb -UseDatabaseQuotaDefaults $false}
The following example is used to set storage quota for mailboxes from Exchange Department:
Get-Recipient | Where-Object {$_.Department -eq 'Exchange'} | ForEach{ Set-Mailbox -identity $_.Name -IssueWarningQuota 900mb -ProhibitSendQuota 950mb -ProhibitSendReceiveQuota 1gb -UseDatabaseQuotaDefaults $false}
Regards,
Winnie Liang
TechNet Community Support

Hi,
Is there any special attribute for these multiple mailboxes? such as they are from a specific OU or a distribution group etc.
If there is, we can direct use the filter to pick out these mailboxes instead of create .csv file for them. The following example can set storage quota for mailboxes in a distrobution group Group1:
Get-DistributionGroupMember -Identity Group1 | ForEach{ Set-Mailbox -identity $_.Name -IssueWarningQuota 900mb -ProhibitSendQuota 950mb -ProhibitSendReceiveQuota 1gb -UseDatabaseQuotaDefaults $false}
The following example is used to set storage quota for mailboxes from Exchange Department:
Get-Recipient | Where-Object {$_.Department -eq 'Exchange'} | ForEach{ Set-Mailbox -identity $_.Name -IssueWarningQuota 900mb -ProhibitSendQuota 950mb -ProhibitSendReceiveQuota 1gb -UseDatabaseQuotaDefaults $false}
Regards,
Winnie Liang
TechNet Community Support

  • Payment advice for multiple vendor using tcode F110

    Hi all
    I am facing problem while printing payment advice program for Multiple vendors using transaction F110. If I passed single or multiple vendor , I am getting only single vendor payment advice details ( if I passed more than one vendor also) .I  need solution for multiple vendors .
    Tcode : F110
    Program : RFFOD__U .
    How to print multiple vendor for payment advice details.
    pls provide the solution for this..
    waiting for Reply.

    I have used different program RFFOD__S. It was working fine.

  • How to create field catalog using field-symbols in normal alv report?

    hi all,
    how to create field catalog using field-symbols in normal alv report? i.e, using function modules...reuse_alv_list_display/grid_display?
    regards,
    jack

    HI
    LIKE THIS
    TYPE-POOLS : slis.
    DATA : t_fieldcat TYPE slis_t_fieldcat_alv,
           st_fieldcat TYPE slis_fieldcat_alv.
    st_fieldcat-fieldname     = 'STATUS'.
      st_fieldcat-seltext_l     = 'STATUS INDICATOR'.
      st_fieldcat-outputlen     = 17.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBELN'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Sales Document No.'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUDAT'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Date'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBTYP'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Type'.
      st_fieldcat-outputlen     = 4.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUART'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Category'.
      st_fieldcat-outputlen     = 1.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUGRU'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Reason'.
      st_fieldcat-outputlen     = 3.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'NETWR'.
      st_fieldcat-do_sum        = 'X'.
      st_fieldcat-seltext_l     = 'Net Amount'.
      st_fieldcat-outputlen     = 15.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'WAERK'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Unit'.
      st_fieldcat-outputlen     = 5.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
    *sortinfo
      st_sort-fieldname = 'AUART'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBTYP'.
      st_sort-up        = 'X'.
      st_sort-subtot    = ' '.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'WAERK'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBELN'.
      st_sort-up        = ' '.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type     = 0
       IMPORTING
         et_events       = it_eventcat
       EXCEPTIONS
         list_type_wrong = 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.
      IF grid = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
         I_INTERFACE_CHECK                 = ' '
         I_BYPASSING_BUFFER                = ' '
         I_BUFFER_ACTIVE                   = ' '
          i_callback_program                = g_program
          I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
         I_CALLBACK_USER_COMMAND           = ' '
          I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
         I_CALLBACK_HTML_END_OF_LIST       = ' '
         I_STRUCTURE_NAME                  =
         I_BACKGROUND_ID                   = ' '
         I_GRID_TITLE                      =
         I_GRID_SETTINGS                   =
         IS_LAYOUT                         =
           it_fieldcat                       = t_fieldcat
         IT_EXCLUDING                      =
         IT_SPECIAL_GROUPS                 =
          it_sort                           = t_sort
         IT_FILTER                         =
         IS_SEL_HIDE                       =
         I_DEFAULT                         = 'X'
         I_SAVE                            = ' '
         IS_VARIANT                        =
         IT_EVENTS                         =
         IT_EVENT_EXIT                     =
         IS_PRINT                          =
         IS_REPREP_ID                      =
         I_SCREEN_START_COLUMN             = 0
         I_SCREEN_START_LINE               = 0
         I_SCREEN_END_COLUMN               = 0
         I_SCREEN_END_LINE                 = 0
         I_HTML_HEIGHT_TOP                 = 0
         I_HTML_HEIGHT_END                 = 0
         IT_ALV_GRAPHICS                   =
         IT_HYPERLINK                      =
         IT_ADD_FIELDCAT                   =
         IT_EXCEPT_QINFO                   =
         IR_SALV_FULLSCREEN_ADAPTER        =
       IMPORTING
         E_EXIT_CAUSED_BY_CALLER           =
         ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = it_final
          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.
    REWARD IF USEFULL

  • HOW TO ASSIGN F4_VALUE_HELP FOR A REPORT OUTPUT FIELD???

    Hi Gurus,
      Can you please help me out in assigning F4_VALUE_HELP for a report output field where it is taking value as the input parameter....... If possible please help me out with some sample code ....
    Regards,
    Santosh
    Intelligroup

    I don't think that you are get the F4 functionality by pressing F4, but maybe if you use a hotspot you could achieve it.  Check this sample.  When you click on a company code in the list, it fires the F4 help defined by the program. 
    report zrich_0001 .
    tables: t001.
    data: begin of it001 occurs 0,
          bukrs type t001-bukrs,
          butxt type t001-butxt,
          ort01 type t001-ort01,
          land1 type t001-land1,
          end of it001.
    start-of-selection.
      select bukrs butxt ort01 land1 into table it001 from t001.
      loop at it001.
        format hotspot on.
        write:/ it001-bukrs.
        hide it001-bukrs.
        format hotspot off.
        write: it001-butxt.
      endloop.
    at line-selection.
      call function 'F4IF_INT_TABLE_VALUE_REQUEST'
           exporting
                retfield    = 'BUKRS'
                dynprofield = 'BUKRS'
                dynpprog    = sy-cprog
                dynpnr      = sy-dynnr
                value_org   = 'S'
           tables
                value_tab   = it001.
    Regards,
    Rich Heilman

  • Using field symbols in OOPs programming...have ur points.

    Hi all,
    I want to use field symbols in OOPS programming like this...
    But the system is giving me dump....help me.
    START-OF-SELECTION.
    CREATE OBJECT OBJ.
    FIELD-SYMBOLS : <AB> TYPE ANY.
    ASSIGN OBJ TO <AB>.
    CALL METHOD <AB>->add
      EXPORTING
        a      = 4
        b      = 6
      changing
        c      = Z
    WRITE : / Z.

    check the code below
    TYPES: BEGIN OF t_struct,
             col1 TYPE i,
             col2 TYPE i,
           END OF t_struct.
    DATA: dref1 TYPE REF TO data,
          dref2 TYPE REF TO data.
    FIELD-SYMBOLS: <fs1> TYPE t_struct,
                   <fs2> TYPE i.
    CREATE DATA dref1 TYPE t_struct.
    ASSIGN dref1->* TO <fs1>.
    <fs1>-col1 = 1.
    <fs1>-col2 = 2.
    dref2 = dref1.
    ASSIGN dref2->* TO <fs2> CASTING.
    WRITE / <fs2>.
    GET REFERENCE OF <fs1>-col2 INTO dref2.
    ASSIGN dref2->* TO <fs2>.
    WRITE / <fs2>.
    reward points if helpful.........

  • Maybe you are looking for

    • Flex 4: How 2 Set Application Height/Width with Script?

      I am new to Flex 4 and going through the 3 to 4 migration pain. I need to set the size of my application programmatically. In Flex 3, I did it this way: mx.core.Application.application.width  = theWidth; (equivalent for height). I can not figure out

    • Configuration of AS2 sender channel

      Dear experts, I am getting lot of views like to read document /details/blogs ,though i could see few. I am not getting answers to doubts i am having.I am trying to configure sender channel. Scenario is : Partner sending a sale order file and i am goi

    • Apple Mail app crashing when deleting emails - just started

      I opened up mail a bit ago to sort through my usual clutter of new emails.  As I hit delete - Mail crashed, throwing up the typical report box where I can enter what I was doing when the application quit.  I just hit the "delete" button....  Ugh. So

    • Cannot print wirelessly to HP Officejet 4500

      I have an HP Officejet 4500 wireless printer that I have never suceeded in getting to print wirelessly. It will connect to my wireless network fine, but when I install the device driver and go through the configuration steps on my computer it always

    • Wrong settlement rule in production order

      Hi All, I have a material which is assigned with strategy 70 through MRP group. In the same MRP group, production order type "XXXX" is specified for planned order conversion. And this MRP group with strategy 70 & production order type "XXXX"  is assi