Itab declaration

Hi,
Iam trying to declare two strucures into one itab like this.
data: begin of t_qmel occurs 0.
<b>     include structure qmel.
        include structure qmih.</b>
data:   fegrp like qmfe-fegrp,
        fecod like qmfe-fecod,
data: end of t_qmel.
Since common fields(MANDT & QMNUM) are existing in QMIH it is throwing the error.How can i avoid that? I dont want to declare field by field using QMIH.
cheers
kaki

*& Report  YCHATEST                                                    *
REPORT  YCHATEST                                .
TYPES: BEGIN OF rec1,
         f1(1) TYPE C,
         f2    TYPE I,
       END OF rec1.
TYPES: BEGIN OF rec2.
         INCLUDE TYPE rec1 AS g RENAMING WITH SUFFIX _g.
         INCLUDE TYPE rec1 AS h RENAMING WITH SUFFIX _h.
TYPES: END OF rec2.
DATA: str TYPE rec2.
The structure str consists of four components str-f1_g, str-f2_g, str-f1_h and str-f2_h. Using the group component str-g you can address the first two components; you can then address the latter two using str-h These substructures are of the type rec1.

Similar Messages

  • Need ITAB declaration for type defined structure.

    Hi All,
              I have defined my ITAB as below
    TYPES: begin of ZRMCP1.
             INCLUDE TYPE RMCP1.
    TYPES: end of ZRMCP1.
    data:it_rmcp1 type table of ZRMCP1.
    data:wa_rmcp1 like line of it_rmcp1.
    When I am checking in Debugging my IT_RMCP1 is showing only first 7 fields.
    Tell me how to declare my ITAB for getting all the fileds.
    Thanks,
    Shiva.

    Old or new debugger?
    I just checked it, using your data declaration in the new debugger, and all columns are there. You do have to use the scroll bar at the bottom of the table control, or the 'arrow' icons |<, <, > and >| at the top of the table control.
    In the classic (old) debugger (if internal table has at least ONE entry), you can use the icons at top of the screen |<, <, > and >|, or use function code CTRLSHIFTF5 / F6 F7 or F8 to move back and forth.
    Edited by: Micky Oestreich on Jun 4, 2009 5:27 PM

  • Itab declaration include structure error

    hi ,
    types : begin of it_address_info_type,
           include structure zadrc,
    end of it_address_info_type.
    here zadrc is a structure.
    why its giving error.
    shall i need to change this structure to table?
    if yes how i will do that?

    Hi ,
    Please make it as,
    types : begin of type.
    include type zadrc.
    types : end of type. 
    or
    TYPES: iref TYPE REF TO ZADRC.
    or
    TYPES: iref type table of mara.
    or
    TYPES: iref type standard table of mara.
    Else.
    data : begin of it_address_info_type.
    include structure zadrc.
    data : end of it_address_info_type.
    If you use types it is used to create user defined data type.
    But you are refrerring a data object as zadrc. Thats why it shows error.
    Regards,
    Sankar.
    Edited by: sankar on Mar 23, 2008 8:31 AM

  • Problem in uploading text file to itab

    Hi experts,
    I declared a itab with two fields which refers a a dB table fields.Then i created a excel file: In the firest column i placed entry for the first field
    and in the second column  i placed entry for the second field.Both fields i have taken from thatDB table.Then i saved that excel file as type text-tab delimited.Then i called GUI_UPLOAD.
    So when exicute my pgm i see the contents in the itab as follows:
    Field1          field2
    kv_sub_area0    004#descvription by ravikumar.
    But i should get like this:
    Field1            field2
    kv_sub_area0004   descvription by ravikumar.
    Why # is coming and it is taking some characters from field1 to filed2.
    I am using version 4.7 Actually field1 is of length 30 as per DB table.
    If i reduce the length in the itab declaration then it is giving corect..
    can any body tellme why this problem occurs?
    Regards

    in GUI_UPLOAD
    mention as
    FILE_TYPE = 'ASC'.
    HAS_FIELD_SEPERATOR = 'X'.
    if you provide the above both, i believe your problem will be solved.
    that '#' special symbol is for horizantal tab.
    regards
    srikanth
    Message was edited by: Srikanth Kidambi

  • Getting error when creating internal table

    hi i m creating internal table giving erro like 'VBELN' must be flat structure.
    DATA: BEGIN OF INT_VBAK,
            VBELN  LIKE VBELN-VBAK,
            AUDAT  LIKE AUDAT-VBAK,
            KWMENGE LIKE KWMENGE-VBAP,
            ARKTX LIKE ARKTX-VBAP,
            WERKS LIKE WERKS-VBAP,
            LFIMG LIKE LFIMG-VBAP.
          END OF INT_VBAK.
    thanks .

    Hii Laxman..
    DATA: BEGIN OF INT_VBAK,
    VBELN LIKE VBELN-VBAK,
    AUDAT LIKE AUDAT-VBAK,
    KWMENGE LIKE KWMENGE-VBAP,
    ARKTX LIKE ARKTX-VBAP,
    WERKS LIKE WERKS-VBAP,
    LFIMG LIKE LFIMG-VBAP.
    END OF INT_VBAK.
    This is Not itab declaration.. it will only Create a work area.
    So Declare like this
    DATA: BEGIN OF INT_VBAK <b>occurs 100,</b>
    VBELN LIKE VBELN-VBAK,
    AUDAT LIKE AUDAT-VBAK,
    KWMENGE LIKE KWMENGE-VBAP,
    ARKTX LIKE ARKTX-VBAP,
    WERKS LIKE WERKS-VBAP,
    LFIMG LIKE LFIMG-VBAP.
    END OF INT_VBAK.
    or
    DATA: BEGIN OF ST_VBAK ,
    VBELN LIKE VBELN-VBAK,
    AUDAT LIKE AUDAT-VBAK,
    KWMENGE LIKE KWMENGE-VBAP,
    ARKTX LIKE ARKTX-VBAP,
    WERKS LIKE WERKS-VBAP,
    LFIMG LIKE LFIMG-VBAP.
    END OF ST_VBAK.
    DATA : INT_VBAK LIKE TABLE OF ST_VBAK.
    Then it works.
    <b>Reward if Helpful</b>

  • How to add a column in alv grid report to show the serial no.

    i need to add column to show the row no. of the report say as :
    1
    2
    3
    this has to be the first column
    how to maintain a variable for this and how to use it??
    please help

    one simple way is in your final itab declare a slno type i field
    data : begin of itab occurs 0,
    slno type i,
    <other fields>
    end of itab.
    after filling the data in itab.
    loop at itab.
    itab-slno = sy-tabix.
    modify itab.
    endloop.
    in fieldcatalog also you have to define that slno field as the first column.
    but it will change its order if you are sorting the output or filtering the output.
    regards
    shiba dutta

  • Subtotal in alv

    hi experts,
                   i want to display subtotal in the alv output using control break statement, without using alv functionality and layout.
    my code is given below, how can i add subtotal field and display them in alv ,
    *& Report  Y_VARUNSHARMA
    REPORT  Y_VARUNSHARMA.
    TABLES: VBAK.
    TYPE-POOLS: SLIS.
    TYPES: BEGIN OF T_ITAB,
           VBELN LIKE VBAK-VBELN,
           ERDAT LIKE VBAK-ERDAT,
           ERNAM LIKE VBAK-ERNAM,
           ANGDT LIKE VBAK-ANGDT,
           BNDDT LIKE VBAK-BNDDT,
           AUART LIKE VBAK-AUART,
           POSNR LIKE VBAP-POSNR,
           MATNR LIKE VBAP-MATNR,
           CHARG LIKE VBAP-CHARG,
           MAKTX LIKE MAKT-MAKTX,
           NETPR LIKE VBAP-NETPR,
           VGBEL LIKE VBAK-VGBEL,
           MEINS LIKE VBAP-MEINS,
           SMENG LIKE VBAP-SMENG,
            END OF T_ITAB.
    DATA: G_REPID LIKE SY-REPID.
    DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA: I_ITAB TYPE T_ITAB OCCURS 0,
          WA_ITAB TYPE T_ITAB.
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER,
          WA_LISTHEADER TYPE SLIS_LISTHEADER.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: DOCNO FOR VBAK-VBELN.
    PARAMETER DOCTYPE LIKE VBAK-AUART.
    SELECT-OPTIONS: DATE FOR SY-DATUM.
    SELECTION-SCREEN SKIP 2.
    PARAMETER P_CHECK AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK B1.
    INITIALIZATION.
    G_REPID = SY-REPID.
    PERFORM BUILD_CATALOGE.
    PERFORM LIST_HEADER.
    PERFORM SET_LAYOUT.
    AT SELECTION-SCREEN.
    IF DOCNO-LOW = '' .
    MESSAGE E000(ZVARUN) .
    elseif DOCNO-HIGH = '' .
    MESSAGE E001(ZVARUN) .
    ENDIF.
    START-OF-SELECTION.
    PERFORM GET_DATA.
    *PERFORM DISPLAY.
    END-OF-SELECTION.
    IF P_CHECK = 'X'.
    PERFORM DOWNLOAD_EXCEL.
    ELSE.
    PERFORM DISPLAY.
    ENDIF.
    FORM DOWNLOAD_EXCEL.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                    =
        FILENAME                        = 'C:\FILE.XLS'
      FILETYPE                        = 'XLS'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
    IMPORTING
      FILELENGTH                      =
      TABLES
        DATA_TAB                        = I_ITAB
      FIELDNAMES                      =
    EXCEPTIONS
      FILE_WRITE_ERROR                = 1
      NO_BATCH                        = 2
      GUI_REFUSE_FILETRANSFER         = 3
      INVALID_TYPE                    = 4
      NO_AUTHORITY                    = 5
      UNKNOWN_ERROR                   = 6
      HEADER_NOT_ALLOWED              = 7
      SEPARATOR_NOT_ALLOWED           = 8
      FILESIZE_NOT_ALLOWED            = 9
      HEADER_TOO_LONG                 = 10
      DP_ERROR_CREATE                 = 11
      DP_ERROR_SEND                   = 12
      DP_ERROR_WRITE                  = 13
      UNKNOWN_DP_ERROR                = 14
      ACCESS_DENIED                   = 15
      DP_OUT_OF_MEMORY                = 16
      DISK_FULL                       = 17
      DP_TIMEOUT                      = 18
      FILE_NOT_FOUND                  = 19
      DATAPROVIDER_EXCEPTION          = 20
      CONTROL_FLUSH_ERROR             = 21
      OTHERS                          = 22
    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.
    FORM BUILD_CATALOGE.
    WA_FIELDCAT-FIELDNAME = 'VBELN'.
    WA_FIELDCAT-SELTEXT_M = 'SALES DOC'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'ERDAT'.
    WA_FIELDCAT-SELTEXT_M = 'DATE'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'ERNAM'.
    WA_FIELDCAT-SELTEXT_M = 'NAME'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'ANGDT'.
    WA_FIELDCAT-SELTEXT_M = 'VALID FR'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'BNDDT'.
    WA_FIELDCAT-SELTEXT_M = 'VALID TO'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'AUART'.
    WA_FIELDCAT-SELTEXT_M = 'DOC TYPE'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'POSNR'.
    WA_FIELDCAT-SELTEXT_M = 'DOC ITEM'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'CHARG'.
    WA_FIELDCAT-SELTEXT_M = 'BATCH NO'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'MAKTX'.
    WA_FIELDCAT-SELTEXT_M = 'MATERIAL DESC'.
    WA_FIELDCAT-EDIT = 'X'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'NETPR'.
    WA_FIELDCAT-SELTEXT_M = 'UNIT PRICE'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'VGBEL'.
    WA_FIELDCAT-SELTEXT_M = 'RFR DOC NO'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'MEINS'.
    WA_FIELDCAT-SELTEXT_M = 'UNIT'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-FIELDNAME = 'SMENG'.
    WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
    *WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO I_FIELDCAT.
    CLEAR WA_FIELDCAT.
    ENDFORM.
    FORM LIST_HEADER.
    WA_LISTHEADER-TYP = 'H'.
    WA_LISTHEADER-INFO = 'RJT COMPUSOLUTIONS'.
    APPEND WA_LISTHEADER TO I_LISTHEADER.
    CLEAR WA_LISTHEADER.
    ENDFORM.
    FORM SET_LAYOUT.
    WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    ENDFORM.
    FORM DISPLAY.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = G_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
       I_CALLBACK_USER_COMMAND           = '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                         = WA_LAYOUT
       IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_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                          = I_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.
    FORM TOP_OF_PAGE.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = I_LISTHEADER
       I_LOGO                   = 'RJT'
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    ENDFORM.
    FORM GET_DATA.
    SELECT AVBELN AERDAT AERNAM AANGDT ABNDDT AAUART AVGBEL BPOSNR BMATNR BCHARG BMEINS BSMENG BNETPR CMAKTX  INTO CORRESPONDING FIELDS OF TABLE I_ITAB FROM  ( ( VBAK AS A INNER JOIN VBAP AS B
    ON AVBELN = BVBELN ) INNER JOIN MAKT AS C  ON BMATNR = CMATNR )  WHERE AVBELN IN DOCNO AND AAUART = DOCTYPE .
    ENDFORM.
    FORM USER_COMMAND USING L_UCOMM LIKE SY-UCOMM L_SELFIELD TYPE SLIS_SELFIELD.
    CASE L_UCOMM.
    WHEN '&IC1'.
    IF L_SELFIELD-FIELDNAME  = 'VBELN'.
    CALL TRANSACTION 'VA02'.
    ELSEIF
    L_SELFIELD-FIELDNAME = 'MATNR'.
    CALL TRANSACTION 'MM02'.
    ENDIF.
    ENDCASE.
    ENDFORM.

    if u dont want std alv functionality,u have to explicitly sum it and insert it to ur itab.
    for dat u have to change ur itab declaration like dis..
    assuming u want to display the subtotals of NETPR based on vbeln...
    TYPES: BEGIN OF T_ITAB,
    VBELN LIKE VBAK-VBELN,
    NETPR LIKE VBAP-NETPR,
    ERDAT LIKE VBAK-ERDAT,
    ERNAM LIKE VBAK-ERNAM,
    ANGDT LIKE VBAK-ANGDT,
    BNDDT LIKE VBAK-BNDDT,
    AUART LIKE VBAK-AUART,
    POSNR LIKE VBAP-POSNR,
    MATNR LIKE VBAP-MATNR,
    CHARG LIKE VBAP-CHARG,
    MAKTX LIKE MAKT-MAKTX,
    VGBEL LIKE VBAK-VGBEL,
    MEINS LIKE VBAP-MEINS,
    SMENG LIKE VBAP-SMENG,
    END OF T_ITAB.
    den in form get_data.
    aftr select statement. itab2 is the final table
    sort itab by vbeln.
    loop at it itab into wa.
    move wa TO wa1.
    v_netpr = v_netpr +  wa-netpr.
    append wa1 to itab2.
    at end of vbeln.
      clear wa1.
      wa1-netpr = v_netpr.
      append wa1 to itab2.
    endat.
    endloop.

  • Reading fixed length flatfile & splitting it into header and lineitem data

    Hi Friends,
    I am reading a fixed length flat file from application server into an Internal table.
    But problem is, data in flat file is in the below format with fixed start and end positions.
    1 - 78 -  control header
    1 - 581 - Invoice header data
    1 - 411 - Invoice Line item data
    1 - 45 -   trailer record
    There will be one control header and one trailer record per file and number of invoice headers and its line items can vary.
    There is unique identifiers to identify as below.
    Control header - starts with 'CHR'
    Invoice Header starts with - '000'
    Invoice Lineitem stats with - '001'
    trailer record - starts with 'TRL'
    So its like
    CHR.......control  data..(79)000.....header data...(660)001....lineitem1...(1481)001...lineitem2....multiples of 411 and 581 and ends with... TRL...trailer record..
    (position)
    I am first reading the data set and store in internal table with a field of 255char.
    by looping on above ITAB i have to split it into Header records and line item records.
    Did anyone face this kind of scenario before. If yes appreciate if you can throw some ideas on logic to split this data.
    Any help in splitting up the data is highly appreciated.
    Regards,
    Simha
    ITAB declaration
    DATA: BEGIN OF ITAB OCCURS 0,
                   FIELD(255),
               END OF ITAB,
                lt_header type table of ZTHDR,
                lt_lineitem type table of ZTLINITM.

    Hi,
    i am sending sample code which resembles your requiremeant.
    data: BEGIN OF it_input OCCURS 0, "used for store all the data in one line.
          line type string ,
          END OF it_input,
          it_header type TABLE OF string WITH HEADER LINE,"use to store all header with corresponding items
          it_item   type TABLE OF string WITH HEADER LINE.."used to store all item data
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                      = 'd:\test.txt'
      FILETYPE                      = 'ASC'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      tables
        data_tab                      = it_input
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT  it_input.
       write : it_input-line.
    ENDLOOP.
    before doing the below steps just takethe controle record and trail record cutt of from the table input based up on the length
      split it_input-line AT '000' INTO TABLE it_header IN CHARACTER MODE.
      LOOP AT  it_header.
        split it_header AT '0001' INTO TABLE it_item IN CHARACTER MODE.
        write :/ it_header.
      ENDLOOP.
    after this you need to cut the records in tocorresponding  fields in to respective tables by putting loop on item and header table as i decleared above.
    i think this may solve your problem you need to keep some minnor effort.
    Regaurds,
    Sree..

  • Budget Report to show the fixed and variable split for Materials

    Hello Gurus,
    Could you tell me if there is a budget standards report that will show the fixed and variable split for Materials? Example: Labor, Equip., QC and Overheads? 
    I need it for the correctly rolled-up 'final material number' step.  The report that does this now (without fixed and var split) is the Indented BOM Comparison (sret - cost mgmt-product costing - cost mgmt-customized reports - cost estimate comparison - costed multilevel compare rpt - Indented BOM Comparison).
    Thanks,
    Jefferson

    one simple way is in your final itab declare a slno type i field
    data : begin of itab occurs 0,
    slno type i,
    <other fields>
    end of itab.
    after filling the data in itab.
    loop at itab.
    itab-slno = sy-tabix.
    modify itab.
    endloop.
    in fieldcatalog also you have to define that slno field as the first column.
    but it will change its order if you are sorting the output or filtering the output.
    regards
    shiba dutta

  • Transforming XML  into Internal Table

    Hi guys, I have tried a simple nested code but i fail to write in the Name, Phone and Email portion ... I manage to get to the header level... Can any one gimme some pointers?
    PS: I have read to those threads posted here already before I got this far
    <b><u>MAIN CODE</u></b>
    REPORT  ZTESTJASON11.
    TYPES: BEGIN OF T_HEADER,
            NAME(140),
            PHONE(23),
            EMAIL(100),
           END OF T_HEADER,
           D_HEADER TYPE T_HEADER OCCURS 0.
    TYPES: BEGIN OF T_ITEM,
            HEADER TYPE D_HEADER,
           END OF T_ITEM,
           D_ITEM TYPE T_ITEM OCCURS 0.
    TYPES: BEGIN OF T_LIST,
            ITEM TYPE D_ITEM,
           END OF T_LIST,
           D_LIST TYPE T_LIST OCCURS 0.
    TYPES: BEGIN OF TYPE_DATA,
            LIST TYPE D_LIST,
           END OF TYPE_DATA.
    DATA: RESPONSE TYPE TABLE OF TYPE_DATA.
    DATA: XMLOUT TYPE STRING.
    DATA: ITAB LIKE SOLI OCCURS 0 WITH HEADER LINE.
    DATA: HEADER_WA    TYPE T_HEADER,
          HEADER_LN    TYPE D_HEADER,
          ITEM_WA      TYPE T_ITEM,
          ITEM_LN      TYPE D_ITEM,
          LIST_WA      TYPE T_LIST,
          LIST_LN      TYPE D_LIST.
    MOVE:   'JIM BEAN' TO HEADER_WA-NAME,
            '+6512345678' TO HEADER_WA-PHONE,
            '[email protected]' TO HEADER_WA-EMAIL.
    APPEND HEADER_WA TO HEADER_LN.
    ITEM_WA-HEADER = HEADER_LN.
    APPEND ITEM_WA TO ITEM_LN.
    LIST_WA-ITEM = ITEM_LN.
    APPEND LIST_WA TO LIST_LN.
    myXML-LIST = LIST_LN.
    PERFORM UPLOAD_XML.
    FORM UPLOAD_XML .
    REFRESH ITAB.
    clear RESPONSE.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = 'C:test11.XML'
    filetype = 'BIN'
    TABLES
    data_tab = ITAB.
    LOOP AT ITAB.
      CONCATENATE XMLOUT ITAB-LINE INTO XMLOUT.
    ENDLOOP.
    CALL TRANSFORMATION ('ZTEST11X2A')
    SOURCE XML XMLOUT
    RESULT RESPONSE = RESPONSE.
    BREAK-POINT.
    ENDFORM.
    <b><u>XML CODE (test11.xml)</u></b>
    <?xml version="1.0" encoding="iso-8859-1"?>
    <myXML>
      <LIST>
        <ITEM>
          <HEADER>
            <NAME>JIM BEAN</NAME>
            <PHONE>+6512345678</PHONE>
            <EMAIL>[email protected]</EMAIL>
          </HEADER>
        </ITEM>
      </LIST>
    </myXML>           
    <b><u>XSLT CODE (ZTEST11X2A)</u></b>
    <xsl:transform version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:sap="http://www.sap.com/abapxml"
    >
    <xsl:template match="/">
    <asx:abap xmlns:asx="http://www.sap.com/abapxml">
    <asx:values>
        <RESPONSE>
          <myXML>
           <LIST>
           <ITEM>
            <xsl:for-each select="ITEM">
                <I>
                    <HEADER>
                        <NAME> <xsl:value-of select="NAME"/> </NAME>
                        <PHONE> <xsl:value-of select="PHONE"/> </PHONE>
                        <EMAIL> <xsl:value-of select="EMAIL"/> </EMAIL>
                    </HEADER>
                </I>
             </xsl:for-each>
             </ITEM>
            </LIST>
            </myXML>
        </RESPONSE>
    </asx:values>
    </asx:abap>
    </xsl:template>
    </xsl:transform>

    Thanks a million in advance Raja, thanks for ur help, realli appreaciate it! ")
    Here it is...
    <u><b>MAIN CODE (itab declaration)</b></u>
    REPORT  ZTESTJASON11.
    TYPES: BEGIN OF T_HEADER,
            NAME(140),
            PHONE(23),
            EMAIL(100),
           END OF T_HEADER,
           D_HEADER TYPE T_HEADER OCCURS 0.
    TYPES: BEGIN OF T_ITEM,
            HEADER TYPE D_HEADER,
           END OF T_ITEM,
           D_ITEM TYPE T_ITEM OCCURS 0.
    TYPES: BEGIN OF T_LIST,
            ITEM TYPE D_ITEM,
           END OF T_LIST,
           D_LIST TYPE T_LIST OCCURS 0.
    TYPES: BEGIN OF TYPE_DATA,
            LIST TYPE D_LIST,
           END OF TYPE_DATA.
    DATA: RESPONSE TYPE TABLE OF TYPE_DATA.
    DATA: XMLOUT TYPE STRING.
    DATA: ITAB LIKE SOLI OCCURS 0 WITH HEADER LINE.
    DATA: HEADER_WA    TYPE T_HEADER,
          HEADER_LN    TYPE D_HEADER,
          ITEM_WA      TYPE T_ITEM,
          ITEM_LN      TYPE D_ITEM,
          LIST_WA      TYPE T_LIST,
          LIST_LN      TYPE D_LIST.
    MOVE:   'JIM BEAN' TO HEADER_WA-NAME,
            '+6512345678' TO HEADER_WA-PHONE,
            '[email protected]' TO HEADER_WA-EMAIL.
    APPEND HEADER_WA TO HEADER_LN.
    ITEM_WA-HEADER = HEADER_LN.
    APPEND ITEM_WA TO ITEM_LN.
    LIST_WA-ITEM = ITEM_LN.
    APPEND LIST_WA TO LIST_LN.
    myXML-LIST = LIST_LN.
    PERFORM UPLOAD_XML.
    FORM UPLOAD_XML .
    REFRESH ITAB.
    clear RESPONSE.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = 'C:test11.XML'
    filetype = 'BIN'
    TABLES
    data_tab = ITAB.
    LOOP AT ITAB.
      CONCATENATE XMLOUT ITAB-LINE INTO XMLOUT.
    ENDLOOP.
    CALL TRANSFORMATION ('ZTEST11X2A')
    SOURCE XML XMLOUT
    RESULT RESPONSE = RESPONSE.
    BREAK-POINT.
    ENDFORM.
    <u><b>XML CODE (test11.xml)</b></u>
    <?xml version="1.0" encoding="iso-8859-1"?>
    <myXML>
      <LIST>
        <ITEM>
          <HEADER>
            <NAME>JIM BEAN</NAME>
            <PHONE>+6512345678</PHONE>
            <EMAIL>[email protected]</EMAIL>
          </HEADER>
        </ITEM>
      </LIST>
    </myXML>          
    <u><b>XSLT CODE (ZTEST11X2A)</b></u>
    <xsl:transform version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:sap="http://www.sap.com/abapxml"
    >
    <xsl:template match="/">
    <asx:abap xmlns:asx="http://www.sap.com/abapxml">
    <asx:values>
          <RESPONSE>
          <myXML>
           <LIST>
            <ITEM>
            <xsl:for-each select="ITEM">
                <dataset1>
                        <HEADER>
                        <xsl:for-each select="HEADER">
                        <dataset2>
                                <NAME>
                                    <xsl:value-of select="NAME"/>
                                </NAME>
                                <PHONE>
                                    <xsl:value-of select="PHONE"/>
                                </PHONE>
                                <EMAIL>
                                    <xsl:value-of select="EMAIL"/>
                                </EMAIL>
                       </dataset2>
                       </xsl:for-each>
                       </HEADER>
                </dataset1>
             </xsl:for-each>
            </ITEM>
            </LIST>
            </myXML>
            </RESPONSE>
    </asx:values>
    </asx:abap>
    </xsl:template>
    </xsl:transform>

  • How to convert date without using conversion exit?

    hi!! Guys,
         please can anybody help me how to compare date which is not in actual format
    i.e. (when comparing  BKPF-budat with TCURR-gdatu in where condition of a Select query its giving syntax error  "when you use the addition 'fOR ALL ENTRIES IN itab' the fields gdatu and it_bkpf-budat" must have the same type and the same length. its very urgent...
    thanks in advance.
    akanksha.

    try like this.
    data : year(4),
             mon(2),
    day(2).
    in itab declare field cbudat(8) type c.
    loop at itab.
    year = itab-budat(4).
    mon = itab-budat+4(2).
    day = itab-budat+6(2).
    concatenate year mon day into itab-cbudat.
    modify itab.
    endloop.
    now use select for all entries and check gdatu = itab-cbudat.
    regards
    shiba dutta

  • ALV Row should apper in BOLD when order type is "ZSTP1" in the cloumn

    Hi ,
    CAn you please provide the solution ,
    I am using ALV  GRID function module.
    When perticluar value like order type is 'ZSTP1', I need to bold that row (all the values in that row should be bold).
    Thanks ,
    veerendra.

    Hi veerendara,
    1. BOLD is not possible.
    2. However, We can CHANGE THE COLORS,
       based upon the condition.
    3. Not only the full row color,
      we can also manipulate the color in each cell.
    4.
    IMPORTANT THINGS
    a. Extra field in internal table
    clr TYPE slis_t_specialcol_alv,
    (this field will contain the colour codes)
    b. assign fieldname to alv layout
    alvly-coltab_fieldname = 'CLR'
    c. work area for colour
    DATA : clrwa TYPE slis_specialcol_alv.
    d. Populating the color
    Once again
    Loop at ITAB.
    *********logic
    if itab-field < 0 "---negative
    clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
    clrwa-color-col = 6. <------- COLOUR 0-9
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    endif.
    ENDLOOP.
    5. just copy paste in new program
    6.
    REPORT abc .
    NECESSARY / MUST
    TYPE-POOLS : slis.
    DATA : alvfc TYPE slis_t_fieldcat_alv.
    DATA : alvly TYPE slis_layout_alv.
    ITAB DECLARATION
    DATA : prg TYPE sy-repid.
    DATA : BEGIN OF itab OCCURS 0.
    INCLUDE STRUCTURE t001.
    DATA : clname(3) TYPE c,
    clr TYPE slis_t_specialcol_alv,
    END OF itab.
    DATA : clrwa TYPE slis_specialcol_alv.
    PARAMETERS : a TYPE c.
    DATA : flname TYPE slis_fieldname.
    SELECT
    START-OF-SELECTION.
    SELECT * FROM t001
    INTO CORRESPONDING FIELDS OF TABLE itab..
    LOOP AT itab..
    IF SY-TABIX <= 5.
    itab-clname = 'C50'.
    ELSE.
    itab-clname = 'C30'.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    LOOP AT ITAB.
    check itab-bukrs = '1000'
    clrwa-fieldname = 'BUTXT'.
    clrwa-color-col = 6.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    clrwa-fieldname = 'LAND1'.
    clrwa-color-col = 4.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    ENDLOOP.
    prg = sy-repid.
    flname = 'CLNAME'.
    alvly-info_fieldname = 'CLNAME'.
    alvly-coltab_fieldname = 'CLR'.
    LOOP AT ITAB.
    if sy-tabix = 3.
    clrwa-fieldname = 'BUTXT'.
    clrwa-color-col = 6.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    clrwa-fieldname = 'LAND1'.
    clrwa-color-col = 1.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    endif.
    ENDLOOP
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = prg
    i_internal_tabname = 'ITAB'
    i_inclname = prg
    CHANGING
    ct_fieldcat = alvfc
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    minimum
    *CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    it_fieldcat = alvfc
    TABLES
    t_outtab = itab
    EXCEPTIONS
    program_error = 1
    OTHERS = 2
    extra
    sy-uname = 'XYZAB'.
    prg = sy-repid.
    Excluding
    DATA : excl TYPE slis_t_extab.
    DATA : exclwa TYPE slis_extab.
    exclwa = '&OUP'.
    APPEND exclwa TO excl.
    exclwa = '&ODN'.
    APPEND exclwa TO excl.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    it_fieldcat = alvfc
    i_callback_program = sy-repid
    is_layout = alvly
    i_callback_user_command = 'ITAB_USER_COMMAND'
    it_excluding =
    excl
    i_save = 'A'
    TABLES
    t_outtab = itab
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    *& Form itab_user_command
    text
    -->WHATCOMM text
    -->WHATROW text
    FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
    slis_selfield.
    BREAK-POINT.
    ENDFORM. "itab_user_command
    regards,
    amit m.

  • Colour display in ALV

    Guys,
    I want to display the colour in the ALV output for some records.
    please help.
    reg,
    vijay

    Hi vijay,
    1. Not only the full row color,
      we can also manipulate the color in each cell.
    2.
    IMPORTANT THINGS
    a. Extra field in internal table
    clr TYPE slis_t_specialcol_alv,
    (this field will contain the colour codes)
    b. assign fieldname to alv layout
    alvly-coltab_fieldname = 'CLR'
    c. work area for colour
    DATA : clrwa TYPE slis_specialcol_alv.
    d. Populating the color
    Once again
    Loop at ITAB.
    *********logic
    if itab-field < 0 "---negative
    clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
    clrwa-color-col = 6. <------- COLOUR 0-9
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    endif.
    ENDLOOP.
    5. just copy paste in new program
    6.
    REPORT abc .
    NECESSARY / MUST
    TYPE-POOLS : slis.
    DATA : alvfc TYPE slis_t_fieldcat_alv.
    DATA : alvly TYPE slis_layout_alv.
    ITAB DECLARATION
    DATA : prg TYPE sy-repid.
    DATA : BEGIN OF itab OCCURS 0.
    INCLUDE STRUCTURE t001.
    DATA : clname(3) TYPE c,
    clr TYPE slis_t_specialcol_alv,
    END OF itab.
    DATA : clrwa TYPE slis_specialcol_alv.
    PARAMETERS : a TYPE c.
    DATA : flname TYPE slis_fieldname.
    SELECT
    START-OF-SELECTION.
    SELECT * FROM t001
    INTO CORRESPONDING FIELDS OF TABLE itab..
    LOOP AT itab..
    IF SY-TABIX <= 5.
    itab-clname = 'C50'.
    ELSE.
    itab-clname = 'C30'.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    LOOP AT ITAB.
    check itab-bukrs = '1000'
    clrwa-fieldname = 'BUTXT'.
    clrwa-color-col = 6.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    clrwa-fieldname = 'LAND1'.
    clrwa-color-col = 4.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    ENDLOOP.
    prg = sy-repid.
    flname = 'CLNAME'.
    alvly-info_fieldname = 'CLNAME'.
    alvly-coltab_fieldname = 'CLR'.
    LOOP AT ITAB.
    if sy-tabix = 3.
    clrwa-fieldname = 'BUTXT'.
    clrwa-color-col = 6.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    clrwa-fieldname = 'LAND1'.
    clrwa-color-col = 1.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    endif.
    ENDLOOP
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = prg
    i_internal_tabname = 'ITAB'
    i_inclname = prg
    CHANGING
    ct_fieldcat = alvfc
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    minimum
    *CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    it_fieldcat = alvfc
    TABLES
    t_outtab = itab
    EXCEPTIONS
    program_error = 1
    OTHERS = 2
    extra
    sy-uname = 'XYZAB'.
    prg = sy-repid.
    Excluding
    DATA : excl TYPE slis_t_extab.
    DATA : exclwa TYPE slis_extab.
    exclwa = '&OUP'.
    APPEND exclwa TO excl.
    exclwa = '&ODN'.
    APPEND exclwa TO excl.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    it_fieldcat = alvfc
    i_callback_program = sy-repid
    is_layout = alvly
    i_callback_user_command = 'ITAB_USER_COMMAND'
    it_excluding =
    excl
    i_save = 'A'
    TABLES
    t_outtab = itab
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    *& Form itab_user_command
    text
    -->WHATCOMM text
    -->WHATROW text
    FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
    slis_selfield.
    BREAK-POINT.
    ENDFORM. "itab_user_command
    regards,
    amit m.

  • Drop down in REUSE_ALV_GRID_DISPLAY

    Hi,
    I am using REUSE_ALV_GRID_DISPLAY function module,
    I am facing a problem with drop down list used for the fields that are displayed in ALV.
    To get the search help or drop down for the field I am using the below code in field catalogue.
      wa_p_i_fieldcat_alv-fieldname = 'VBTYP'.
      wa_p_i_fieldcat_alv-ddictxt = 'M'.
      wa_p_i_fieldcat_alv-seltext_m = 'VBTYP' .
      wa_p_i_fieldcat_alv-seltext_l = wa_p_i_fieldcat_alv-seltext_s  =  wa_p_i_fieldcat_alv-seltext_m.
      wa_p_i_fieldcat_alv-reptext_ddic = wa_p_i_fieldcat_alv-seltext_s.
      wa_p_i_fieldcat_alv-ddic_outputlen = 1 .
      wa_p_i_fieldcat_alv-col_pos    = 4.
      wa_p_i_fieldcat_alv-edit = 'X'.
    wa_p_i_fieldcat_alv-ref_fieldname  = 'VBTYP' .
      wa_p_i_fieldcat_alv-ref_tabname = 'ZVBOOKING'.
      APPEND wa_p_i_fieldcat_alv TO p_i_fieldcat_alv.
    But for the field VBTYP the values are maintained in domain level  value range.
    So when I enter any value in the field 'VBTYP' and save the value, and try to deleted that value, FM is poping me an error message 'Enter an valid value', which should not happen, since its not a mandatory field in ZVBOOKING table.
    Please any one guide me how to over come it.
    Correct answer, points will be rewarded.
    Regards,
    Nithya

    check this sample program this will help you
    *& Report  Z_PRA_16                                                     *
    *&                classical & alv with  header line                                                     *
    REPORT  z_pra_16   NO STANDARD PAGE HEADING
          LINE-COUNT 20 " no of records in a single page
          LINE-SIZE 100."no of colons in a page.
    DECLARING STRUCTURE.
    TYPES:
          BEGIN OF type_wa,
            carrid LIKE sflight-carrid,
            connid LIKE sflight-connid,
            fldate LIKE sflight-fldate,
            price LIKE sflight-price,
            currancy LIKE sflight-currency,
            seatsmax LIKE sflight-seatsmax,
            seatsocc LIKE sflight-seatsocc,
            carrname LIKE scarr-carrname,
          END OF type_wa.
    FOR TYPE DECLARING INTERNAL TABLE
    DATA :
            wa TYPE type_wa,
            itab TYPE STANDARD TABLE OF type_wa.
    *For selection option
    DATA:    pp TYPE sflight-carrid,
              pp1 TYPE sflight-connid,
              pp2 TYPE sflight-price.
    DECLARING SELECTION BLOCK.
    SELECTION-SCREEN BEGIN OF BLOCK pra WITH FRAME TITLE text-001.
    Declaring selection options IN SELECTION.
    SELECT-OPTIONS :
                    s_carrid FOR pp,                    " declaring variables from table pp.
                    s_connid FOR pp1,                   " declaring variables from table pp1.
                    s_fldate FOR sy-datum,              " declaring variables from table .
                    s_price FOR pp2.                    " declaring variables from table pp2.
    SELECTION-SCREEN END OF BLOCK pra.
    PARAMETERS:
                alv   TYPE c RADIOBUTTON GROUP g1,        " option for selecting ALV REPORT
                class TYPE c RADIOBUTTON GROUP g1.        " option for selecting CLASSICL REPORT
    **FOR CARRID MESSAGE GIVING CONDITION FOR A FIELD
    AT SELECTION-SCREEN ON s_carrid.
      SELECT SINGLE
              carrid INTO s_carrid
      FROM sflight
      WHERE carrid IN s_carrid.
      IF sy-subrc <> 0 .
        MESSAGE i000(zp).                        " message for information
        MESSAGE w000(zp).                        " message for warringing
      ENDIF.
    for connid MESSAGE
    AT SELECTION-SCREEN ON s_connid.
      SELECT SINGLE
              carrid INTO s_connid
      FROM sflight
      WHERE connid IN s_connid.
      IF sy-subrc <> 0 .
        MESSAGE i001(zp).
        MESSAGE w001(zp).
      ENDIF.
    FOR DATE MESSAGE
    AT SELECTION-SCREEN ON s_fldate.
      SELECT SINGLE
              carrid INTO s_fldate
      FROM sflight
      WHERE fldate IN s_fldate.
      IF sy-subrc <> 0 .
        MESSAGE i002(zp).
        MESSAGE w002(zp).
      ENDIF.
    START-OF-SELECTION.
      IF class = 'X'.                          " FOR CLASSICAL REPORT OPTION.
        PERFORM kumar.                        " SUBROUTINE for select statement fetching data.
    Getting output.
        LOOP AT itab INTO wa.
          WRITE: /
                      wa-carrid,
                      10 wa-carrname,
                      30 wa-connid,
                      40 wa-fldate,
                      55 wa-price LEFT-JUSTIFIED,
                      70 wa-currancy,
                      75 wa-seatsmax,
                      90 wa-seatsocc.
        ENDLOOP.
        FORMAT COLOR OFF.  "SCREEN COLOR
        CLEAR itab.
      ENDIF.
    TOP-OF-PAGE. "
      FORMAT COLOR 1.
      WRITE: / 'Page ', syst-pagno,'REPORT NAME', sy-repid,'Date / time',
                syst-datum, syst-uzeit.
      SKIP.
      WRITE: /
                   text-010,                        " FOR CARRID
                 15 text-008,                       " FOR CARRNAME
                 30 text-002,                        "CONNID
                 40 text-003,                       "FLDATE
                 55 text-004,                         "PRICE
                 70 text-005,                       "CURRENCY
                 80 text-006,                       "SEATSMAX
                 90 text-007.                       "SEATSCONN
      FORMAT COLOR OFF.
      ULINE.
    FOR ALV OPTION
    START-OF-SELECTION.
      IF alv = 'X'.                       "FOR ALV REPORT OPTION.
        TYPE-POOLS: slis.                  " declaring slis.
    DATA:
          gt_fieldcat      TYPE slis_t_fieldcat_alv.
                                          " declaring  field catalog with internal table
        PERFORM kumar.                  "for select statement fetching data
        PERFORM praveen.                " subroutine
    DATA :     prahead TYPE slis_t_listheader,
                              " DECLARING INTERNAL TABLE FOR HEADER FROM SLIS
               praevent TYPE slis_t_event.
                               " DECLARING INTERNAL TABLE FOR EVENT FROM SLIS
    CONSTANTS: praconst(30) TYPE c VALUE 'TOP_OF_PAGE'.
        PERFORM pra. "  DECLARING SUBROUTIN FOR HEADER
    *CALLING FUNCTIONAL MODULE
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
           i_callback_program                = sy-repid       " FOR PROGRAM NAME
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_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                       =  gt_fieldcat   "FOR FIELD CATAGORI
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
       it_events                         = praevent         " FOR 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
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = itab       " declaring slfight,scarr in 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.
      ENDIF.
    *&      Form  praveen
          text
    -->  p1        text
    <--  p2        text
    FORM praveen .                             " subroutine
      DATA: pra TYPE slis_fieldcat_alv.         " declaring structure from slis table.
      CLEAR pra.                                " cleaing structure
      pra-fieldname   =   'CARRID'.                " declaring field name for carrid
      pra-tabname     =   'ITAB'.
      pra-seltext_m   =   'CARRID'.                " declaring field heading
      APPEND pra TO gt_fieldcat.
      CLEAR pra.
      pra-fieldname   =   'CONNID'.
      pra-tabname     =   'ITAB'.
      pra-seltext_m   =   'CONNID'.
      APPEND pra TO gt_fieldcat.
      CLEAR pra.
      pra-fieldname   = 'FLDATE'.
      pra-tabname     = 'ITAB'.
      pra-seltext_m   = 'FLDATE'.
      APPEND pra TO gt_fieldcat.
      CLEAR pra.
      pra-fieldname   = 'PRICE'.
      pra-tabname     = 'ITAB'.
      pra-seltext_m   = 'PRICE'.
      APPEND pra TO gt_fieldcat.
      CLEAR pra.
      pra-fieldname   = 'CURRANCY'.
      pra-tabname     = 'ITAB'.
      pra-seltext_m   = 'CURRENCY'.
      APPEND pra TO gt_fieldcat.
    ENDFORM.                    " praveen
    *&      Form  kumar
          text
    -->  p1        text
    <--  p2        text
    FOR FETCHING DATA TO RE-USE.'SUBROUTINE'
    FORM kumar .
      SELECT
                         a~carrid
                         a~connid
                         a~fldate
                         a~price
                         a~currency
                         a~seatsmax
                         a~seatsocc
                         b~carrname
                              INTO TABLE itab
                              FROM
                                  sflight AS a
                              INNER JOIN
                                  scarr AS b
                               ON
                                  acarrid = bcarrid
                      WHERE
                             a~fldate IN s_fldate
                      AND
                             a~carrid IN s_carrid
                      AND
                             a~price IN s_price.
      FORMAT COLOR 5. "adding color
    ENDFORM.                    " kumar
    *&      Form  pra
          text
    -->  p1        text
    <--  p2        text
    FOR HEADER
    FORM pra .
      DATA : praeventstr TYPE slis_alv_event,         "DECLARING EVENT STRCTURE
             praheadstr TYPE slis_listheader.         " DECLARING HEADER STRUCRTUE
      praheadstr-typ = 'H'(009).                           " TYP ='H' THIS IS FOR HEADING SAP-DEFAULT
      praheadstr-info = text-025.                     " INFORMATATION
      APPEND praheadstr TO prahead.                   " STRUCTUCTURE TO INTERNAL TABLE
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'           " CALLING EVENTS
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = praevent            " DECLARING EVENTS
       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.
      " EVENTS TO STRUCTURE
      READ TABLE praevent WITH KEY
                              name = slis_ev_top_of_page
                              INTO praeventstr.
      MOVE praconst TO praeventstr-form. " MOVING CONSTRANT TO STRYCTUE
      APPEND praeventstr TO praevent.    " STRUCTURE TO EVENTS
    ENDFORM.                    " pra
    *CALLING FUNCTIONAL MODUL FOR HEADER
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = prahead.
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE

  • ALV rows coloring based on condition

    Hai ,
    I want Color the rows in the list based on some condition ..
    Hope to get the helpful suggestion s on this asap
    regards,

    Hi shishupalreddy,
    1. Not only the full row color,
      we can also manipulate the color in each cell,
      based upon conditions.
    2.
    IMPORTANT THINGS
    a. Extra field in internal table
    clr TYPE slis_t_specialcol_alv,
    (this field will contain the colour codes)
    b. assign fieldname to alv layout
    alvly-coltab_fieldname = 'CLR'
    c. work area for colour
    DATA : clrwa TYPE slis_specialcol_alv.
    d. Populating the color
    Once again
    Loop at ITAB.
    *********logic
    if itab-field < 0 "---negative
    clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
    clrwa-color-col = 6. <------- COLOUR 0-9
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    endif.
    ENDLOOP.
    5. just copy paste in new program
    6.
    REPORT abc .
    NECESSARY / MUST
    TYPE-POOLS : slis.
    DATA : alvfc TYPE slis_t_fieldcat_alv.
    DATA : alvly TYPE slis_layout_alv.
    ITAB DECLARATION
    DATA : prg TYPE sy-repid.
    DATA : BEGIN OF itab OCCURS 0.
    INCLUDE STRUCTURE t001.
    DATA : clname(3) TYPE c,
    clr TYPE slis_t_specialcol_alv,
    END OF itab.
    DATA : clrwa TYPE slis_specialcol_alv.
    PARAMETERS : a TYPE c.
    DATA : flname TYPE slis_fieldname.
    SELECT
    START-OF-SELECTION.
    SELECT * FROM t001
    INTO CORRESPONDING FIELDS OF TABLE itab..
    LOOP AT itab..
    IF SY-TABIX <= 5.
    itab-clname = 'C50'.
    ELSE.
    itab-clname = 'C30'.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    LOOP AT ITAB.
    check itab-bukrs = '1000'
    clrwa-fieldname = 'BUTXT'.
    clrwa-color-col = 6.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    clrwa-fieldname = 'LAND1'.
    clrwa-color-col = 4.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    ENDLOOP.
    prg = sy-repid.
    flname = 'CLNAME'.
    alvly-info_fieldname = 'CLNAME'.
    alvly-coltab_fieldname = 'CLR'.
    LOOP AT ITAB.
    if sy-tabix = 3.
    clrwa-fieldname = 'BUTXT'.
    clrwa-color-col = 6.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    clrwa-fieldname = 'LAND1'.
    clrwa-color-col = 1.
    APPEND clrwa TO itab-clr.
    MODIFY ITAB.
    endif.
    ENDLOOP
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = prg
    i_internal_tabname = 'ITAB'
    i_inclname = prg
    CHANGING
    ct_fieldcat = alvfc
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    minimum
    *CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    it_fieldcat = alvfc
    TABLES
    t_outtab = itab
    EXCEPTIONS
    program_error = 1
    OTHERS = 2
    extra
    sy-uname = 'XYZAB'.
    prg = sy-repid.
    Excluding
    DATA : excl TYPE slis_t_extab.
    DATA : exclwa TYPE slis_extab.
    exclwa = '&OUP'.
    APPEND exclwa TO excl.
    exclwa = '&ODN'.
    APPEND exclwa TO excl.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    it_fieldcat = alvfc
    i_callback_program = sy-repid
    is_layout = alvly
    i_callback_user_command = 'ITAB_USER_COMMAND'
    it_excluding =
    excl
    i_save = 'A'
    TABLES
    t_outtab = itab
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    *& Form itab_user_command
    text
    -->WHATCOMM text
    -->WHATROW text
    FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
    slis_selfield.
    BREAK-POINT.
    ENDFORM. "itab_user_command
    regards,
    amit m.

Maybe you are looking for

  • I cannot see all mobile phone numbers in Messages after upgrade to iOS 6

    I have two mobile number entries for most of my contacts, for example: +853 1234 5678 0060 853 1234 5678 The first entry is for dialing the mobile number when I am overseas, and need to use the international prefix "+". I also use this for sending SM

  • HT1414 my ipod touch wont do  anything u can trun it off,

    my ipodtouch just stays lite up with apple showing, i tried to do factory restore because i purched it from craig list now it wont do anything?

  • Uncaught exception video/3gpp

    Hi, I have a BB Curve 8520 and i have been happily using it for the last 2 years. however i could never overcome with Whats App installation problem. Everytime i download WHATS APP my phone playing play music/videos!!!! i have to uninstall it to get

  • Instant Portal import to Portal Environment

    Hi I have created a Instant Portal to handle the training content navigation functionality which was shown to the client for review. This Instant Portal was created in my environment which also hosts the Portal which I am developing. I have tried to

  • Help with BD79 - IDOC conversion rules

    Hi, I'm looking for a "How to" guide to help me with this transaction. I need to do a very simple rule for segment E1MTXHM, in ABAP it can be done like this: IF EMTXHM-TDID = 'IVER'.   E1MTXHM-TDSRPAS = 'Z' ELSE. * Source field ENDIF. But I expect th