Classical report layout

i have only 3 fields in out put to display when i use the sy-uline it is drawing up to 142 screen lenght but i need only up to some 70 of sy-uline what i need to do, sample code will be  usefull.

hi Rocky ...
do this way ..
uline(70).
or
write : /0 sy-uline(70).

Similar Messages

  • To Freeze a field in Classical Report layout

    Is there a way by which i can Freeze a field on the output list of a classical report layout, so that when i scroll towards right that field would not be moved.

    hi
    good
    go through the  following links
    http://www.r3.duke.edu/stepbystep/AdvReporting/AdvReporting.pdf
    this will give you the brief idea about the freezing of the columns.
    thanks
    mrutyun

  • Classic Report with a two-line row, the second one as a drop down?

    Hi,
    Using APEX 4.0 is it possible to make a classic report layout that has row items sorted in 2 rows? The first row for each SQL record set row looks like the classic report 'normal' row, while the second one contains just one single column value. This second row is supposed to be hidden and should be displayable by clicking a small '+' sign at the beginning of the row.
    I remember having seen this done, but I simply seem not to be able to formulate my query correctly to let Google display me the expected result. Although I am not sure if was APEX+jQuery or ExtJs. I hope though it is not ExtJS, since I do not plan to use that one.
    Thank you in advance.
    Tamas

    Is this for Verizon landline internet? If so, you should ask your question in the Verizon Residential forums. http://forums.verizon.com

  • LAYOUT option in classical report

    HI all,
    Is it possible to provide SORT options, LAYOUT options (CHANGE layout, SAVE layout) in classical report as similar to those options in ALV? If so, how to display those icons at the top of the report as similar to ALV?
    Regards,
    Shanthi

    Hi Shanthi
    It can be done but will take more time.
    For example.
    just check this.
    data: tcode(10) type c.
    START-OF-SELECTION.
    FORMAT COLOR COL_HEADING.
    ULINE.
    WRITE:/ '***********************The following are the transaction'.
    WRITE:'codes in BPS ************************'.
    FORMAT COLOR COL_HEADING OFF.
    ULINE.
    SKIP .
    FORMAT COLOR COL_HEADING.
    ULINE.
    WRITE:/ 'Please select the report/program by double clicking on the'.
    WRITE:'line'.
    ULINE.
    FORMAT COLOR COL_HEADING OFF.
    SKIP.
    FORMAT COLOR COL_POSITIVE.
    ULINE.
    tcode = 'ZCUS1'.
    WRITE:/ '1.Version Utility program - ZCUS1 .', 75 tcode.
    HIDE tcode.
    ULINE.

  • Moderate layout in classical report.

    Hello,
    I have a classical report.
    The coloums in this report i want to change in rows and the rows in this report i want to change in coloumns.
    Means i want to moderate vertical part in horizontal and vice-versa.
    if you have any suggestion regarding this plz help me.
    It very urgent.
    Thanks & Regards,
    Ajay.

    Hi Shanthi
    It can be done but will take more time.
    For example.
    just check this.
    data: tcode(10) type c.
    START-OF-SELECTION.
    FORMAT COLOR COL_HEADING.
    ULINE.
    WRITE:/ '***********************The following are the transaction'.
    WRITE:'codes in BPS ************************'.
    FORMAT COLOR COL_HEADING OFF.
    ULINE.
    SKIP .
    FORMAT COLOR COL_HEADING.
    ULINE.
    WRITE:/ 'Please select the report/program by double clicking on the'.
    WRITE:'line'.
    ULINE.
    FORMAT COLOR COL_HEADING OFF.
    SKIP.
    FORMAT COLOR COL_POSITIVE.
    ULINE.
    tcode = 'ZCUS1'.
    WRITE:/ '1.Version Utility program - ZCUS1 .', 75 tcode.
    HIDE tcode.
    ULINE.

  • Classical Report on clicking button on ALV Report

    I have a requirement where I have to display a classical report based on the user-click on a "custom button" on my ALV. I am unable to display the classical report. Please help with code example..

    Hi,
    See the example.Change the code according to your requirement.
    *& Report  ZDEMO_ALVGRID                                               *
    *& Example of a simple ALV Grid Report                                 *
    *& The basic requirement for this demo is to display a number of       *
    *& fields from the EKKO table.                                         *
    REPORT  zdemo_alvgrid                 .
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *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.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform build_events.
    perform build_print_params.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      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   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      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-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    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
                i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_special_groups       = gd_tabgroup
                it_events               = gt_events
                is_print                = gd_prntparams
                i_save                  = 'X'
               is_variant              = z_template
           tables
                t_outtab                = it_ekko
           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
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into table it_ekko.
    endform.                    " DATA_RETRIEVAL
    Form  TOP-OF-PAGE                                                 *
    ALV Report Header                                                 *
    Form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
          wa_header type slis_listheader,
          t_line like wa_header-info,
          ld_lines type i,
          ld_linesc(10) type c.
    Title
      wa_header-typ  = 'H'.
      wa_header-info = 'EKKO Table Report'.
      append wa_header to t_header.
      clear wa_header.
    Date
      wa_header-typ  = 'S'.
      wa_header-key = 'Date: '.
      CONCATENATE  sy-datum+6(2) '.'
                   sy-datum+4(2) '.'
                   sy-datum(4) INTO wa_header-info.   "todays date
      append wa_header to t_header.
      clear: wa_header.
    Total No. of Records Selected
      describe table it_ekko lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'Total No. of Records Selected: ' ld_linesc
                        into t_line separated by space.
      wa_header-typ  = 'A'.
      wa_header-info = t_line.
      append wa_header to t_header.
      clear: wa_header, t_line.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
               i_logo             = 'Z_LOGO'.
    endform.
          FORM USER_COMMAND                                          *
          --> R_UCOMM                                                *
          --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
      Check field clicked on within ALVgrid report
        IF rs_selfield-fieldname = 'EBELN'.
        Read data table, using index of row user clicked on
          READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
          SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
        Sxecute transaction ME23N, and skip initial data entry screen
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDCASE.
    ENDFORM.
    *&      Form  BUILD_EVENTS
          Build events table
    form build_events.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
           exporting
                i_list_type = 0
           importing
                et_events   = gt_events[].
      read table gt_events with key name =  slis_ev_end_of_page
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_PAGE' to ls_event-form.
        append ls_event to gt_events.
      endif.
        read table gt_events with key name =  slis_ev_end_of_list
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_LIST' to ls_event-form.
        append ls_event to gt_events.
      endif.
    endform.                    " BUILD_EVENTS
    *&      Form  BUILD_PRINT_PARAMS
          Setup print parameters
    form build_print_params.
      gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer
      gd_prntparams-no_coverpage = 'X'.
    endform.                    " BUILD_PRINT_PARAMS
    *&      Form  END_OF_PAGE
    form END_OF_PAGE.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    *&      Form  END_OF_LIST
    form END_OF_LIST.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    Pls. reward if useful...

  • Attribute "Report Layout" is missing in the "Print Attributes" tab for IR

    Hallo,
    The attribute “Report Layout” is missing in the “Print Attributes” tab for an interactive report?
    How to alter the report layout (xsl-fo) of an interactive report?
    Has someone any idea where to configure this?
    Btw, for the "classic" SQL Report the XSL-FO "Report Layout" can be cahnged in "Print Attributes" and this works fine for me. But I want to change the xsl-fo for the interactive report.
    "If you do not select a report layout, a default XSL-FO layout is used. The default XSL-FO layout is always used for rendering Interactive Report regions. ... Unlike classic reports, the Interactive Report Print Attributes can only utilize the default XSL-FO layout and is initiated from the Report Attributes, Download section rather than directly from this screen. Once configured, these attributes only apply only to the current region and cannot be used outside the context of the region."
    http://apex.oracle.com/i/doc/bldapp_rpt_print.htm
    How can the "default XSL-FO layout" be changed?
    Changing is necessary because the Apache FOP 1.0 reports the following error (for the transmitted default XSL-FO):
    "fo:simple-page-master", "fo:region-body" must be declared before "fo:region-before"
    http://www.w3.org/TR/xsl/#fo_region-before
    The default report layout is not saved in:
    select * from APEX_040000.WWV_FLOW_REPORT_LAYOUTS
    Thx, Willi

    I've found two workaround for getting Apache FOP 1.0 to work with Oracle Apex 4.0 for PDF printing of interactive reports:
    1, Use an application process to set your custom layout for interactive reports:
    [ ] grant all on APEX_040000.WWV_RENDER_REPORT3 to {YOUR_SCHEMA_NAME};
    [ ] Create an Application Process e.g. "Custom Report Layout" with constraint for request 'PDF' and Process Text:
    declare
    v_xsl varchar2(32767);
    begin
    v_xsl := '<?xml version = ''1.0'' encoding = ''utf-8''?>
    <xsl:stylesheet version="2.0"
      <fo:region-body region-name="region-body" margin-top="54.0pt" margin-bottom="54.0pt"/>
      <fo:region-before region-name="region-header" extent="54.0pt"/>
    </xsl:stylesheet>';
    APEX_040000.WWV_RENDER_REPORT3.g_prn_template := v_xsl;
    end;2, If you have some knowlege in Java change the sequnce of the the nodes in the apex_fop.jsp (or servlet), ie. changing the xsl before you use it for transformation.
    The code depends on the solution you are using to parse the xsl string.
    Hope this may help someone,
    Willi

  • How to print watermark in classical reports?

    How to display the watermark in classical reports?

    hi
    go to se78 graphics -> enter
    BMAP(BITMAP IMAGES)
    Name MYBMP
    select radio button
    color ->import
    filename: c:\pictures\123.bmp.
    name : mybmp
    description : BMP ->continur ->save.(activate it)
    now go to se71->choose the prog -> layout ->right click ->create graphics.
    utilities -> printing test -> output device -> LP01.
    Hope this helps
    if it helped, you can acknowledge the same by rewarding
    regards
    dinesh

  • How to convert Classical Report into PDF format..........

    Hi Experts,
    I have written a classical report with write statements and when i am downloading in excel the format is mismatching and now i want to convert into PDF format.
    How to convert into PDF format from Classical report ?
    Yusuf

    Hi yusuf,
    please find the below report,,
    please make two include programs before executing it,
    there codes are pasted below,
    INCLUDE zimpr_data_declaration.
    INCLUDE zimpr_performs_wrap.
    REPORT  zimpr_word_wrap NO STANDARD PAGE HEADING LINE-SIZE 115..
                INCLUDE for DATA DECLARATION                               *
    INCLUDE zimpr_data_declaration.
                INCLUDE for all performs.                                  *
    INCLUDE zimpr_performs_wrap.
    TOP-OF-PAGE--
    TOP-OF-PAGE.
      PERFORM f_top_page.                     "TOP OF THE REPORT PAGE,I.E. HEADER.
    START-OF-SELECTION.
      SET PF-STATUS 'SEL_SCREEN'.             "PF-STATUS OF THE SELECTION SCREEN.
      PERFORM f_data_retrieval.               "PERFORM FOR ALL SELECT STATEMENTS.
      PERFORM f_report_display.               "REPORT DISPLAY,WRITE STATEMENTS.
    --Define the actions to be performed for pf-status-----
    AT USER-COMMAND.
      wf_ok_code = sy-ucomm.
      wf_save_ok = wf_ok_code.
      CLEAR wf_ok_code.
      CASE wf_save_ok.
        WHEN 'PDF'.          "WHEN PDF ICON IS CLICKED,REPORT WILL CONVERT INTO PDF.
          loc_repid  = sy-repid.   "PROGRAM NAME
    --THIS FM SETS  THE PARAMETERS FOR LAYOUT OF PDF OUTPUT--
          CALL FUNCTION 'GET_PRINT_PARAMETERS'
            EXPORTING
              layout                 = loc_paart             "LANDSCAPE LAYOUT
              line_size              = loc_linsz                  "CHARACTER WIDTH OF REPORT
              no_dialog              = 'X'
              user                   = sy-uname              "USERNAME
            IMPORTING
              out_parameters         = loc_print_parms        "OUTPUT PARAMETERS WILL BE COLLECTED HERE.
              valid                  = loc_valid
            EXCEPTIONS
              archive_info_not_found = 1
              invalid_print_params   = 2
              invalid_archive_params = 3
              OTHERS                 = 4.
    --FOR GENERATING THE SPOOL NUMBER--
          NEW-PAGE PRINT ON NO DIALOG PARAMETERS loc_print_parms.                        " This allocates the spool no
          "to the screen without the dialog screen.
          PERFORM f_top_page.
          PERFORM f_report_display.
          NEW-PAGE PRINT OFF.                                                      "This marks the end of the screen for which the spool no was generated.
          wf_id = sy-spono.                                                      " This assign the spool no of the screen to the variable.
    --PERFORM FOR GETTING THE PDF OUTPUT--
          PERFORM f_pdf_display.
    --PERFORM FOR DOWLOADING FILE TO A LOCAL DISK--
          PERFORM f_download_local.
        WHEN 'BACK'.
          LEAVE PROGRAM.
      ENDCASE.
    include data declaration----
    *&  Include           ZIMPR_DATA_DECLARATION
    TYPE-POOLS : shlp.
    DATA : wf_ordert TYPE aufk-auart.                      "ORDER TYPE
    DATA : wf_order TYPE aufk-aufnr.                       "ORDER NUMBER
    DATA : wf_bdate TYPE afko-gstrp.                       "BASIC START DATE
    DATA : wf_status(4) TYPE c ."rihea-i_astatin.                 "STATUS
    DATA : wf_objnr TYPE jest-objnr VALUE 'OR%'.           "Object number
    DATA : wf_aufnr TYPE aufk-aufnr.
    DATA : wf_name TYPE thead-tdname.                      "NAME TO PASS IN FM READ_TEXT
    DATA : wf_date1(12) TYPE c.                            "DATE
    DATA : wf_i1(3) TYPE n,wc_i1(3) TYPE n VALUE '1'.      "COUNTERS FOR REPORT DISPLAY
    DATA : wf_i2(3) TYPE n,wc_i2(3) TYPE n VALUE '1'.
    DATA : wf_kopf TYPE tdid VALUE 'KOPF',wf_aufk TYPE tdobject VALUE 'AUFK'.
    DATA : wf_save_ok TYPE sy-ucomm ,wf_ok_code TYPE sy-ucomm.
    DATA: wf_id TYPE tsp01-rqident ,                         " For storing Spool request number
          wf_bytes TYPE i .                                  " For storing the bytes of data to be converted to PDF.
    DATA : wf_langu(2) TYPE c VALUE 'EN'.
    DATA: wf_pripar TYPE pri_params,                         " Structure for Passing Print Parameters
          wf_rcpar TYPE arc_params.                          " ImageLink structure
    DATA : wf_statu TYPE dfies-fieldname VALUE 'STATUS',
           wf_field TYPE help_info-dynprofld VALUE 'S_STATUS'.
    &--SELECTION SCREEN--
    SELECTION-SCREEN BEGIN OF BLOCK b_1 WITH FRAME TITLE text-000.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS:  s_ordert FOR wf_ordert .                  "ORDER TYPE
    SELECT-OPTIONS:  s_order FOR wf_order OBLIGATORY.          "ORDER NUMBER
    SELECT-OPTIONS:  s_bdate FOR wf_bdate.                      "BASIC START DATE
    SELECT-OPTIONS:  s_status FOR wf_status matchcode object zei_sys .  "SYSTEM STATUS
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN END OF BLOCK b_1.
    *--INTERNAL TABLES--
    TYPES : BEGIN OF ty_aufk,
          aufnr TYPE aufk-aufnr,              "OREDR NUMBER
          auart TYPE aufk-auart,              "ORDER TYPE
          objnr TYPE aufk-objnr,              "OBJECT NUMBER
          ktext type aufk-ktext,              "SHORT TEXT
          gstrp TYPE afko-gstrp,              "BASIC START DATE
          END OF ty_aufk.
    TYPES : BEGIN OF ty_tj02t,
          objnr TYPE aufk-objnr,              "OBJECT NUMBER
          txt04 TYPE tj02t-txt04,             "STATUS
          istat TYPE tj02t-istat,             "Object status
          spras TYPE tj02t-spras,             "LANGUAGE KEY
          END OF ty_tj02t.
    TYPES : BEGIN OF ty_temp,
          objnr TYPE aufk-objnr,
          status(300) TYPE c,
           END OF ty_temp.
    TYPES : BEGIN OF ty_wrap,
           line(54) TYPE c,                     "LONG TEXT
           END OF ty_wrap.
    TYPES : BEGIN OF ty_wrap2,
           line(25) TYPE c,                     "STATUS
           END OF ty_wrap2.
    TYPES : BEGIN OF ty_f4,
            txt04 TYPE tj02t-txt04,
            txt30 TYPE tj02t-txt30,
            END OF ty_f4.
    types :  begin of ty_sta,
            istat type tj02t-istat,
            objnr type jest-objnr,
            end of ty_sta.
    data : int_sta type table of ty_sta with header line.
    DATA : int_f4 TYPE TABLE OF ty_f4 WITH HEADER LINE.
    DATA: int_pdf TYPE TABLE OF tline WITH HEADER LINE.            "TABLE FOR PDF CONVERSION
    DATA: int_wrap TYPE TABLE OF ty_wrap WITH HEADER LINE.         "TABLE FOR LONGTEXT
    DATA: int_wrap2 TYPE TABLE OF ty_wrap2 WITH HEADER LINE.       "TABLE FOR STATUS
    DATA: int_temp TYPE TABLE OF ty_temp WITH HEADER LINE.         "Table for concatenation of system status.
    DATA: int_aufk TYPE TABLE OF ty_aufk WITH HEADER LINE.
    DATA: int_tj02t TYPE TABLE OF ty_tj02t WITH HEADER LINE.
    DATA: int_tline TYPE STANDARD TABLE OF tline WITH HEADER LINE. "TABLE FOR READ_TEXT.
    DATA : int_fld TYPE TABLE OF dfies ,wa_fld LIKE LINE OF int_fld.                     " Field Type for FM for F4 help
    DATA :int_return   TYPE TABLE OF ddshretval WITH HEADER LINE .
    DATA:
      loc_print_parms LIKE pri_params,          "PRINT PARAMETERS
      loc_valid(1)      TYPE c,
      loc_file type SDOK_CHTRD,
      loc_bytecount     TYPE i,                 "NUMBER OF BYTES TRANSFERRED
      loc_length        TYPE i,                 "LINE-LENGTH
      loc_rqident       LIKE tsp01-rqident,     "SPOOL NUMBER
      loc_rq2name(12)   TYPE c.
    DATA: loc_filename LIKE rlgrap-filename.     "FILENAME
    DATA:loc_repid LIKE sy-repid,                    " Report to execute
         loc_linsz LIKE sy-linsz VALUE 115,          " Line size
         loc_paart LIKE sy-paart VALUE 'X_65_132'.   " Paper Format
    Include           ZIMPR_PERFORMS_WRAP----
    *&  Include           ZIMPR_PERFORMS_WRAP
    *&      Form  f_top_page
         top-of the page
    -->  p1        text
    <--  p2        text
    FORM f_top_page .
    *--HEADER--
      FORMAT COLOR 1 .
      WRITE : text-010.
      FORMAT COLOR 1 OFF.
      WRITE : / text-011,sy-datum NO-GAP.
      WRITE : / text-012,sy-uzeit NO-GAP,90 text-013,101 sy-uname.
      ULINE .
      FORMAT COLOR 1 INTENSIFIED OFF .
      WRITE : 1 sy-vline,                "HEADINGS
      2 text-014 NO-GAP,
      7 sy-vline,
      8 text-015 NO-GAP,
      20 sy-vline,
      21 text-016 NO-GAP,
      76 sy-vline,
      77 text-017 NO-GAP,
      88 sy-vline,
       89 text-018  NO-GAP,
      115 sy-vline.
      WRITE : /1 sy-vline,
        2 text-019 NO-GAP,7 sy-vline,
        20 sy-vline,76 sy-vline,77 text-020 NO-GAP,88 sy-vline,115 sy-vline.
      ULINE.
      FORMAT COLOR 1 OFF.
    ENDFORM.                    " f_top_page
    *&      Form  f_data_retrieval
         select statements
    -->  p1        text
    <--  p2        text
    FORM f_data_retrieval .
    SELECTING ORDER TYPE,ORDER NO.,OBJECT NO. AND BASIC START DATE
      SELECT  p~aufnr
               p~auart
               p~objnr
               p~ktext
               r~gstrp
               FROM  ( aufk AS p INNER JOIN afko AS r ON raufnr = paufnr )
               INTO TABLE int_aufk
               WHERE p~aufnr IN s_order AND
                     p~auart IN s_ordert AND
                     r~gstrp IN  s_bdate AND
                     p~objnr LIKE wf_objnr.
      IF sy-subrc <> 0.
        MESSAGE s101(zipm).                "no values found for selection criteria.
        STOP.
      ENDIF.
      SORT int_aufk BY aufnr.
      DELETE ADJACENT DUPLICATES FROM int_aufk.
      SELECT q~istat
           p~objnr
           FROM ( jest AS p INNER JOIN tj02t AS q ON pstat = qistat )
           INTO TABLE int_sta
           FOR ALL ENTRIES IN int_aufk
           WHERE p~objnr = int_aufk-objnr
                 AND q~txt04 IN s_status and
                 q~spras = wf_langu and
                 p~inact = ''.
      IF sy-subrc <> 0.
        MESSAGE s101(zipm).                "no values found for selection criteria.
        STOP.
      ENDIF.
      SORT int_sta BY objnr.
      DELETE ADJACENT DUPLICATES FROM int_sta.
    *--SELECTING OBJECT NO.,STATUS AND LANGUAGE--
      IF int_sta[] IS NOT INITIAL.
        SELECT p~objnr
               q~txt04
               q~istat
               q~spras
               FROM ( jest AS p INNER JOIN tj02t AS q ON pstat = qistat )
               INTO TABLE int_tj02t
               FOR ALL ENTRIES IN int_sta
               WHERE p~inact = '' AND
                     p~objnr = int_sta-objnr AND
                     q~spras = wf_langu AND
                    q~txt04 IN s_status AND
                     p~objnr LIKE wf_objnr.
        IF sy-subrc <> 0.
          MESSAGE s101(zipm).               "no values found for selection criteria.
          STOP.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f_data_retrieval
    *&      Form  f_report_display
          report display
    -->  p1        text
    <--  p2        text
    FORM f_report_display .
      LOOP AT int_tj02t.              "concatenating the status into a internal table
        AT NEW objnr.
          CLEAR int_temp-status.
        ENDAT.
        CONCATENATE int_temp-status int_tj02t-txt04 INTO int_temp-status SEPARATED BY space.
        AT END OF objnr.
          int_temp-objnr = int_tj02t-objnr.       "key field.
          APPEND int_temp.
          CLEAR int_temp.
        ENDAT.
        CLEAR int_tj02t.
      ENDLOOP.
      LOOP AT int_aufk.
        CONCATENATE sy-mandt int_aufk-aufnr INTO wf_name .    "concatenating client number and order number
    *--THIS FM CAPTURES THE LONG TEXT AND STORES IT IN INTERNAL TABLE--
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
            id                      = wf_kopf         "TEXT ID
            language                = sy-langu       "LANGUAGE
            name                    = wf_name        "TEXT NAME
            object                  = wf_aufk         "TEXT OBJECT
          TABLES
            lines                   = int_tline      "LINES OF LONG TEXT.
          EXCEPTIONS
            id                      = 1
            language                = 2
            name                    = 3
            not_found               = 4
            object                  = 5
            reference_check         = 6
            wrong_access_to_archive = 7
            OTHERS                  = 8.
        IF sy-subrc <> 0.
          int_tline-tdline = int_aufk-ktext.
          APPEND int_tline.
          CLEAR :int_tline.
        ENDIF.
        LOOP AT int_tline.
    *--THIS FM WRAPS THE LONG TEXT INTO 54 CHARACTERS EACH--
          CALL FUNCTION 'RKD_WORD_WRAP'
            EXPORTING
              textline            = int_tline-tdline          "LONG TEXT LINE
              outputlen           = 54                        "OUTPUT LENGTH
            TABLES
              out_lines           = int_wrap                  "INTERNAL TABLE
            EXCEPTIONS
              outputlen_too_large = 1
              OTHERS              = 2.
          IF sy-subrc <> 0.
            CLEAR :int_tline.
          ENDIF.
        ENDLOOP.
    *-- THIS FM WRAPS THE STATUS INTO 25 CHARACTERS EACH--
        READ TABLE int_temp WITH KEY objnr = int_aufk-objnr.
        CALL FUNCTION 'RKD_WORD_WRAP'
          EXPORTING
            textline            = int_temp-status
            outputlen           = 25
          TABLES
            out_lines           = int_wrap2
          EXCEPTIONS
            outputlen_too_large = 1
            OTHERS              = 2.
        IF sy-subrc <> 0.
         CONTINUE.
        ENDIF.
        IF NOT int_wrap2[] IS INITIAL.
          ULINE AT (115).
        ENDIF.
        DESCRIBE TABLE int_wrap LINES wf_i2.         "COUNTING THE NO. OF LINES FOR TABLE INT_WRAP
        DESCRIBE TABLE int_wrap2 LINES wf_i1.        "COUNTING THE NO. OF LINES FOR TABLE INT_WRAP2
        WHILE ( wc_i1 LE wf_i1 OR wc_i2 LE wf_i2 ).
          IF ( wc_i2 LE wf_i2 ).
            READ TABLE int_wrap INDEX wc_i2 .        "READING THE INTERNAL TABLE INT_WRAP WITH INDEX
            wc_i2 = wc_i2 + 1.
          ENDIF.
          IF ( wc_i1 LE wf_i1 ).
            READ TABLE int_wrap2 INDEX wc_i1 .       "READING THE INTERNAL TABLE INT_WRAP2 WITH INDEX
            wc_i1 = wc_i1 + 1.
          ENDIF.
    *--THIS FM CONVERTS THE DATE FROM SYSTEM FORMAT TO OUTPUT FORMAT--
          CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
            EXPORTING
              input  = int_aufk-gstrp
            IMPORTING
              output = wf_date1.
          IF NOT int_wrap2[] IS INITIAL .
    *--REPORT DISPLAY--
            WRITE : /1 sy-vline, 2 int_aufk-auart COLOR = 4 INTENSIFIED OFF NO-GAP ,
                    7 sy-vline ,8 int_aufk-aufnr COLOR = 4 INTENSIFIED OFF NO-GAP,
                    20 sy-vline,21 int_wrap-line,
                    76 sy-vline ,77  wf_date1 ,
                    88 sy-vline ,89 int_wrap2-line,
                    115 sy-vline.
    *--CLEARING THE VARIABLES--
            wf_date1 = ''.
            CLEAR: int_aufk,int_temp,int_wrap2-line,int_wrap-line.
          ENDIF.
        ENDWHILE.
        wc_i1 = 1.
        wc_i2 = 1.
        CLEAR :int_wrap,int_wrap2.
        REFRESH : int_wrap,int_wrap2,int_tline.
      ENDLOOP.
      ULINE AT (115).
    ENDFORM.                    " f_report_display
    *&      Form  F_PDF_DISPLAY
         pdf conversion
    -->  p1        text
    <--  p2        text
    FORM f_pdf_display .
    *--THIS FM CONVERTS THE SPOOL REQUEST INTO PDF REPORT--
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
        EXPORTING
          src_spoolid              = wf_id                 "SPOOL NUMBER
          no_dialog                = space
          pdf_destination          = 'X'
        IMPORTING
          pdf_bytecount            = loc_bytecount        "NUMBER OF BYTES TRANSFERRED
        TABLES
          pdf                      = int_pdf                                  "TABLE FOR PDF REPORT
        EXCEPTIONS
          err_no_abap_spooljob     = 1
          err_no_spooljob          = 2
          err_no_permission        = 3
          err_conv_not_possible    = 4
          err_bad_destdevice       = 5
          user_cancelled           = 6
          err_spoolerror           = 7
          err_temseerror           = 8
          err_btcjob_open_failed   = 9
          err_btcjob_submit_failed = 10
          err_btcjob_close_failed  = 11
          OTHERS                   = 12.
    ENDFORM.                    " F_PDF_DISPLAY
    *&      Form  f_download_local
         download to local system
    -->  p1        text
    <--  p2        text
    FORM f_download_local .
    ---------------------THIS FM DOWNLOADS THE PDF REPORT INTO LOCAL MACHINE
    data  loc_ret TYPE iwerrormsg.
      CALL FUNCTION 'IW_C_GET_SAPWORKDIR'
       IMPORTING
         SAPWORKDIR       = loc_file
        ERROR_MSG        =  loc_ret
      loc_filename = loc_file.
      if loc_ret is initial.
      concatenate loc_filename '\work order header long text_  ' sy-timlo '.pdf' into loc_filename.
      endif.
      CALL FUNCTION 'DOWNLOAD'
        EXPORTING
          bin_filesize = loc_bytecount      "NO. OF BYTES
          filename     = loc_filename       "DEFAULT FILE NAME
          filetype     = 'BIN'
        IMPORTING
          act_filename = loc_filename
        TABLES
          data_tab     = int_pdf.
    ENDFORM.                    " f_download_local
    if you have any doubts,,
    please revert
    Regards,
    Talwinder

  • Group above and left classic reports

    how can i group above and left in an existing classic reports? is there any document around here please share it to me.

    >
    Please update your forum profile with a real handle instead of "user13653962".
    how can i group above and left in an existing classic reports? What does "group above and left" mean? A demonstration layout on apex.oracle.com or here (using tags<tt>\...\</tt> tags to preserve formatting) would be helpful.
    The options for break formatting on classic reports are:
    <li>The basic built-in control break features.
    <li>Simple DIY break layout on any number of columns using analytics in the source query: +{message:id=10679160}+
    <li>Complex report layout with multi-level headings using analytics in the source query and a custom named column report template with conditional row templates: +{message:id=9816577}+
    When you have a problem you'll get a faster, more effective response by including as much relevant information as possible upfront. This should include:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    <li>Theme
    <li>Template(s)
    <li>Region/item type(s) (making particular distinction as to whether a "report" is a standard report, an interactive report, or in fact an "updateable report" (i.e. a tabular form)
    With APEX we're also fortunate to have a great resource in apex.oracle.com where we can reproduce and share problems. Reproducing things there is the best way to troubleshoot most issues, especially those relating to layout and visual formatting. If you expect a detailed answer then it's appropriate for you to take on a significant part of the effort by getting as far as possible with an example of the problem on apex.oracle.com before asking for assistance with specific issues, which we can then see at first hand.

  • Single row report layout

    All,
    I am trying to create a horizontal layout report like this here => http://apex.oracle.com/pls/otn/f?p=11933:108:12215694848998::NO:RP::
    but i cant see the report template indicated in this sample, where are these custom report templates i can only see wizard or no template not even the sendings for the before/after row attributes,
    i did try no template and put the < style >....< / div > < / style > but what about the row settings?
    any help please?
    thanks.

    Hello,
    You can use the Detailed View of the Interactive Report. Review the Sample Database Application. or, e.g: http://famproperties.com/apex/f?p=DUBAI:RESIDENTIAL_SALE:0
    Or, if you insist on using Classic report,then you need to create a new custom REPORT template, with the option of:
    > Named Column (row template)
    Then you can read the help on the template page for more info ...
    Best Regards,
    Fateh

  • POP LOV in classic Report not in a interactive Report

    My oracle version Oracle Express Aplication 11g
    Dear Forum
    We need a CLASSIC report where i can define what information my report will show.
    For example:
    My Report contain
    ID NAME DATE
    In Drag and Drop layout I create two data pickers cause I need to choose information between Date_picker_1 and Datepicker_2. both of them correspond to DATE
    In my region source in classic report I write something like this:
    Select id, name where DATE between :Date_picker_1 and :Datepicker_2 then Ichoose the months but nothing happen.
    I know that in the report interactive you can do that, but my boss doesnt' like interactive report (I dont know why) so my problem is in the Classic report.
    Danny Lima
    Ecuador
    PD: I'm not speak english very well

    >
    Please update your forum profile with a real handle instead of "897381".
    Also the subject of this thread&mdash;POP LOV in classic Report not in a interactive Report&mdash;doesn't appear to be relevant the question asked. There's no mention of a Pop-up LOV here?
    My oracle version Oracle Express Aplication 11gAlways state full version numbers, and include
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    as well.
    We need a CLASSIC report where i can define what information my report will show.
    For example:
    My Report contain
    ID NAME DATE
    In Drag and Drop layout I create two data pickers cause I need to choose information between Date_picker_1 and Datepicker_2. both of them correspond to DATE
    In my region source in classic report I write something like this:
    Select id, name where DATE between :Date_picker_1 and :Datepicker_2then Ichoose the months but nothing happen.Always post code wrapped in <tt>\...\</tt> tags. And always post the actual code or a realistic reduced test case: that query is not valid SQL.
    I know that in the report interactive you can do that, but my boss doesnt' like interactive report (I dont know why) so my problem is in the Classic report.Nothing to do with the report type. It's because all APEX items are actually VARCHAR2s. For proper comparison semantics with NUMBERs or DATEs in SQL explicit conversion is required:
    select id, name
    from foo
    where bar between to_date(:date_picker_1, 'DD/MM/YYYY') and to_date(:date_picker_1, 'DD/MM/YYYY')Where 'DD/MM/YYYY' is the format mask used in the datepicker items.

  • Creating classic reports

    Hi,
    I found that when creating classic report through the create application wizard (add new report page and choose report type as classic), the report is slightly different from the ones created through the normal create page wizard.
    The difference is report created with the creating application wizard contain filters (which searches and highlight all columns containing the keywords), a select list which allows user to select how many rows should be displayed and pagination.
    But once you create the application and wanted to add a new report, it doesn't seem to have the above functions.
    I was just wondering if it is possible to create a report page with all these functionalities through a normal report wizard? or is it something that we have to do manually once the application is created?
    Any help would be appreciated.
    Thanks,
    Candy

    Candy,
    While creating the report, all you have to do is enable report search. After entering sql query, next screen is Report Attribute. Select "Yes" in Enable Search and you can see the rows selector and search text box before your report region. Also if you want to add similar functionality to an existing report , all you have to do is add a static select list with values like 10,20,50,100.. and edit the report attribute-->Layout and Pagination-->Number of Rows (Item) --> enter the above select list name. .
    If you want to include the search functionality , you can create a text box and modify report query something like
    instr(upper(report_column),upper(nvl(:Page_item,report_column))) > 0
    The best way to approach this is to create a dummy page and Add a report region with simple query and enable the report search and see the items and report attributes generated by wizard. If you closely look at them you can add similar functionality to any existing report without any issue.
    Hope these helps. Thanks.
    Regards,
    Manish

  • Classical report into ALV

    Hi guys I have created the following small classical report, can you please help me how can I change this report of mine into ALV format.
    Thanks,
    Rajeev

    Hi,
    This is ur code which u want.
    TYPE-POOLS SLIS.
    Data: begin of it_mara occurs 0,
    matnr like mara-matnr,
    mtart like mara-matkl ,
    end of it_mara.
    Data: begin of it_marc occurs 0,
    matnr like marc-matnr,
    mmsta like marc-mmsta,
    werks like marc-werks,
    end of it_marc.
    select matnr matkl into table it_mara
    from mara
    where matkl eq '001'.
    loop at it_mara.
    select werks mmsta into table it_marc
    from marc
    where matnr eq it_mara-matnr.
    clear it_mara.
    endloop.
    DATA:  LAYOUT TYPE SLIS_LAYOUT_ALV,
    FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV.
    LAYOUT-ZEBRA = 'X'.
    LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
       I_PROGRAM_NAME               = SY-REPID
       I_INTERNAL_TABNAME           = 'IT_MARC'
      I_STRUCTURE_NAME             =
      I_CLIENT_NEVER_DISPLAY       = 'X'
       I_INCLNAME                   = SY-REPID
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
      CHANGING
        CT_FIELDCAT                  = FLDCAT1
    EXCEPTIONS
       INCONSISTENT_INTERFACE       = 1
       PROGRAM_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.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = ' '
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               =
       IS_LAYOUT                      = LAYOUT
       IT_FIELDCAT                    = FLDCAT1
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
       I_SAVE                         = 'A'
      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
      IR_SALV_LIST_ADAPTER           =
      IT_EXCEPT_QINFO                =
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      TABLES
        T_OUTTAB                       = IT_MARC
    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 points,if it is helpful.
    Thank you,
    chandu

  • Is ALV possible for this report layout?

    Hi,
    I'd like to know if I can create this layout in ALV (layout as seen below):
    ......................|..........Column Header1............|.......Column Header2..........|  ...
    ......................|.Col Header3..|..Col Header4.....|..Col Header5.|.Col Header6.| ...
    Row header1...|.....data..........|......data............|.......data........|......data.......| ...
    Row header2...|.....data..........|......data............|.......data........|......data.......| ...
    Row header3...|.....data..........|......data............|.......data........|......data.......| ...
    If this is possible, can you give me an idea how can this be done?
    Thank you so much for taking time to read my post.
    Best regards,
    Jen
    Message was edited by:
            Jen Abap

    i will suggest you to go for classical report because it will be more easier ... but in alv list display you can achieve this kind of thing... just check this prog whether it suits you or not....
    type-pools : slis.
    tables : mara,marc,mard,makt.
    data : begin of imara occurs 0,
           matnr like mara-matnr,
           mtart like mara-mtart,
           end of imara.
    data : begin of imarc occurs 0,
           matnr like mara-matnr,
           werks like marc-werks,
           end of imarc.
    data : begin of imard occurs 0,
            matnr like mara-matnr,
            lgort like mard-lgort,
           end of imard.
    data : begin of imakt occurs 0,
           matnr like mara-matnr,
           maktx like makt-maktx,
           end of imakt.
    data : begin of itab  occurs 0,
           rowheading(16),
           matnr like mara-matnr,
           mtart like mara-mtart,
           werks like marc-werks,
           lgort like mard-lgort,
           maktx like makt-maktx,
           end of itab.
    data : ifieldcat type slis_t_fieldcat_alv,
           wfieldcat type slis_fieldcat_alv,
           ilayout type slis_layout_alv,
           IEVENT    TYPE SLIS_T_EVENT,
           WEVENT    TYPE SLIS_ALV_EVENT.
    data : tabix(3).
    select-options : s_matnr for mara-matnr obligatory.
    start-of-selection.
    perform get_data.
    perform build_finaltab.
    perform build_fieldcat.
    perform build_layout.
    perform build_eventtab.
    perform displaydata.
    *&      Form  get_data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_data .
    select matnr mtart into table imara from mara where matnr in s_matnr.
    if not imara[] is initial.
    select matnr werks from marc into table imarc for all entries in imara
                                       where matnr = imara-matnr.
    select matnr lgort from mard into table imard for all entries in imara
                                       where matnr = imara-matnr.
    select matnr maktx from makt into table imakt for all entries in imara
                                       where matnr = imara-matnr.
    endif.
    ENDFORM.                    " get_data
    *&      Form  build_finaltab
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_finaltab .
    loop at imara.
    tabix = sy-tabix.
    move-corresponding imara to itab.
    read table imarc with key matnr = imara-matnr.
    itab-werks = imarc-werks.
    read table imard with key matnr = imara-matnr.
    itab-lgort = imard-lgort.
    read table imakt with key matnr = imara-matnr.
    itab-maktx = imakt-maktx.
    concatenate 'Row no' tabix into itab-rowheading separated by space.
    append itab.
    endloop.
    ENDFORM.                    " build_finaltab
    *&      Form  build_fieldcat
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcat .
    wfieldcat-fieldname = 'ROWHEADING'.
    wfieldcat-col_pos = 1.
    wfieldcat-outputlen = 15.
    wfieldcat-seltext_l = ''.
    append wfieldcat to ifieldcat.
    clear wfieldcat.
    wfieldcat-fieldname = 'MATNR'.
    wfieldcat-col_pos = 2.
    wfieldcat-outputlen = 18.
    wfieldcat-seltext_l = 'Material no'.
    append wfieldcat to ifieldcat.
    clear wfieldcat.
    wfieldcat-fieldname = 'MTART'.
    wfieldcat-col_pos = 3.
    wfieldcat-outputlen = 10.
    wfieldcat-seltext_l = 'Mat gr'.
    append wfieldcat to ifieldcat.
    clear wfieldcat.
    wfieldcat-fieldname = 'WERKS'.
    wfieldcat-col_pos = 4.
    wfieldcat-outputlen = 10.
    wfieldcat-seltext_l = 'Plant'.
    append wfieldcat to ifieldcat.
    clear wfieldcat.
    wfieldcat-fieldname = 'LGORT'.
    wfieldcat-col_pos = 5.
    wfieldcat-outputlen = 10.
    wfieldcat-seltext_l = 'Stor loc'.
    append wfieldcat to ifieldcat.
    clear wfieldcat.
    wfieldcat-fieldname = 'MAKTX'.
    wfieldcat-col_pos = 6.
    wfieldcat-outputlen = 30.
    wfieldcat-seltext_l = 'Material desc'.
    append wfieldcat to ifieldcat.
    clear wfieldcat.
    ENDFORM.                    " build_fieldcat
    *&      Form  build_layout
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_layout .
    ilayout-no_colhead = 'X'.
    ENDFORM.                    " build_layout
    *&      Form  build_eventtab
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_eventtab .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = IEVENT
    *   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.
      READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC = 0.
        WEVENT-FORM = 'TOPOFPAGE'.
        MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " build_eventtab
    *&      Form  displaydata
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM displaydata .
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    *   I_INTERFACE_CHECK              = ' '
    *   I_BYPASSING_BUFFER             =
    *   I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = sy-repid
    *   I_CALLBACK_PF_STATUS_SET       = ' '
    *   I_CALLBACK_USER_COMMAND        = ' '
    *   I_STRUCTURE_NAME               =
       IS_LAYOUT                      = ilayout
       IT_FIELDCAT                    = ifieldcat
    *   IT_EXCLUDING                   =
    *   IT_SPECIAL_GROUPS              =
    *   IT_SORT                        =
    *   IT_FILTER                      =
    *   IS_SEL_HIDE                    =
    *   I_DEFAULT                      = 'X'
    *   I_SAVE                         = ' '
    *   IS_VARIANT                     =
       IT_EVENTS                      = ievent
    *   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
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER        =
    *   ES_EXIT_CAUSED_BY_USER         =
      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.
    ENDFORM.                    " displaydata
    form topofpage.
    write : / sy-uline.
    write : /17 sy-vline,28 'Contents from MARA',47 sy-vline,
             50 'plant & strg loc',69 sy-vline, 78 'Matrl desc'.
    write : / sy-uline.
    write : /17 sy-vline,22 'Material no',36 sy-vline, 39 'Mat gr',47 sy-vline, 48 'Plant',58 sy-vline,
            60 'strg loc',69 sy-vline.
    endform.
    this is a test prog just change as per your requirement.
    regards
    shiba dutta

Maybe you are looking for