Adding Field in output of T-Code  FBL1n and FBL5n.

Hi all,
can someone please tell me how to add field FDGRV(Planning group) in the output of TCODES "FBL1n and FBL5n".
I have already added this field in the standard selection screen and its getting fetched by table LFB1.
please suggest which field catalog to be populated and which internal table,so that i get the required output.
Thanks in advance.
Regards
Anurag

Dear Kiran,
Thanks for your reply. I tried adding the field from SPRO  FI - AR n AP - Customer Accounts - Line items - Display line items - Define additional fields for item display
but it didn't worked out its gving an message that "TABLE KNB1 is not allowed"....
Kindly suggest some other solution.
Regards
Anurag Joshi

Similar Messages

  • Dynamic Selection for FBL1N and FBL5N reports

    Dear all,
    is it possible to show more fields in Dynamic Selection for FBL1N and FBL5N reports?
    Thanks in advance
    Alberto

    Dear Alberto,
    Please refer to the SAP note 310886. In the note you should be able
    to see how to add fields in to the dynamic selection , and the fields,
    which are available for this.
    I hope this can help You.
    Mauri

  • Fbl1n and fbl5n display at time line item wise name for vendor and customer

    Hi
    Could you tell me how can I include Customer or Vendor names for each line items in transaction FBL5N and FBL1N, please? Customer Accounts are displayed well, but in several cases we also need the name of the certain Customer or Vendor account names. This would be important for consolidation of customer accounts of the same customers.
    It is possible to include in these reports the u201EName1u201D, but they are empty in all cases. Could you tell me how it is possible to correct this problem, please?
    ysr

    hi YSR,
    See if you want to have the Vendor/ Customer name or number to be displayed when you execute it. I mean on the Vendor/Customer Line Item Display.
    THEN follow the below steps........
    After executing the FBL1N or FBL5N Click CTRL+F8 or Change Layout.  From the Pop screen select the Vendor from the Right side of the screen and then drag to the Left side of the screen, then click on Copy as.
    Then Save the Layout or CTRL F12, save the layout with the new name that you want.
    When you want this Layout as the default each and every time then u have to do 1 more step....
    After executing the same layout go the
    MENU> Settings>Layout-->Administration...
    there you select the layout that u have created and then set that layout as the Default settings Check mark on DS.
    So that each and every time when u execute it the same layout will be displayed with the fields that u have selected....
    Hope this will solve ur issue......
    Kumar........

  • Fbl1n and fbl5n line item wise display the cutomer and vendor name

    Hi,
    My user is asking report for fbl5n and fbl1n line itemwise dispaly vendor and customer.See the report for one time vendor and customer name displaythe line item wise display in FBL!N/FBL5N. but not the display the regular vendors/customer.So one time table name BSEC
    Please advise
    Regards.
    Edited by: yps y on Nov 13, 2008 1:26 PM

    Hi,
    line item reports FBL1N/FBL5N are reading the line items (wow, what a big surpise ) and displaying information on line item level.
    As the vendor/customer name is NOT stored in the line items, you cannot display this in the lines (along with other item level information., like amount, posting key, doc.type, etc.). You may find a field called "Name 1) in the field catalog when configuring the ALV layout but this is empty for normal customers/vendors. It is only filled in for one time (Cpd) customers - the reason is as explained above: for these special accounts, the name IS stored on line item level (it varies from item to item),, that's why it can be read and displayed in the items.
    Now how about normal customers/vendors?
    You have to activate Business Transaction Event 1650 and implement a simple code so that depending on the account type (D = customer, K = vendor), you get the business partners name from table KNA1 / LFA1 and put it into field Name1.
    Hope that helps, points welcome
    Csaba

  • Add field 'ebeln' in selection-screen of FBL1N transaction

    Hi Experts,
    Is there a way to display the field 'ebeln' in transaction FBL1N for certain document types and company code only..?
    I have already tried this steps below..But the problem is, this changes below is applicable to all document types.
    1. Trans. SE36, indicate logical database KDF. <- Logical database for FBL1N transaction
    2. Details > Selection views
    3. Update the standard SAP view
    4. Select table BSIK
    5. Include field ebeln.
    Regards,
    Ekitzv

    Dear,
    Please kindly note that field BSEG-EBELN is not possible for being shown
    with a value in FBL1N (and FBL5N).
    Since Release 3.0, several purchase orders can be offset in one invoice.
    As a result, different purchasing document numbers (BSEG-EBELN) can be
    contained in the different G/L account line items..
    As a result, it is no longer possible to enter a unique purchasing
    document number in the customer/vendor line item.Field BSEG-EBELN is not
    filled in the vendor line item and therefore cannot be displayed in the
    line item display for customers/vendors.
    You could reference note 152335 to find a more detailed explanation and
    possible solution of the issue.
    It is only possible to view the purchase order number(EBELN) in FBL3N.
    As a workaround, you may branch from vendor line item display to
    'Document overview' and you will see the PO number for the respective
    accounting document in other G/L account line items.
    What You are doing is to insert the field EBELN into the Dynamic selection of the FBL1N but this does not mean to have it available into the FBL1N layout.
    I hope the System behaviour is clerer.
    Mauri

  • Error message in WebGUI after adding fields with EEWB - Class doesn't exist

    Hello!
    After adding fields to the component BT111H_OPPT within EEWB and BSP_WD_CMPWB I recieved an error message while trying to open an Opportunity in the WebGUI, stating:
    Cannot display view MainWindow
    An exception has occured
    Exception Class CX_SY_DYN_ILLEGAL_CLASS - Method call of IF_BSP_WD_DYN_RT_REP_SUPPORT~GET_URL_PARAMETERS failed; the class ZL_BT111H_O_BSPWDCOMPONEN_IMPL does not exist
    Method: CL_BSP_WD_COMPONENT_FACTORY=>GET_REPOSITORY_XML
    Source text Row:25
    An exception occured during the activation of target view CUBTOpptOverview.MainWindow for the navigation
    An exception has occured
    Exceptions Class CX_BSP_WD_RUNTIME_ERROR - View CUBTOpptOverview.MainWindow could not be bound
    Method: CL_BSP_WD_VIEW_CONTROLLER=>BIND_VIEW
    Source text Row:162
    Has any one an idea, if this could be a bug or what went wrong? I am especially irritated, that it seems, that class was not created. After all I never changed any tables or anything in the background manually. I just used the standard tool EEWB, nothing else.
    Many thanks for any kind of help!
    By the way, I tried to go back all the steps I took previously to, kind of "un-do" my error, but I was not able to delete all created extensions, due to a another error - but that's a different story, or isn't it?
    Cheers,
    Marek

    Hello Experts,
    I know my question was a tricky one and no-one was able to help me from this forum. That's why I would like to share with you the solution I just recieved from SAP:
    Although all classes that were created whilst extending the component BT111H_OPPT were deleted, there still existed a seperate extension definition in ViewCluster BSPWDVC_CMP_EXT still persisted.
    I wasn't aware of the fact, that I had to delete that too.
    Note: in order to delete ViewCluster, use tx SM34
    The problem ist now solved!
    Cheers!
    Marek

  • FBL1N FBL3N FBL5N questions

    Hello all,
    I want to extract data from SAP to perform reconciliation and prepare a report in other tool. (extract data and import in other database etc..) The report is very basic but I still have a hard time to test the integrity of the data that I have to extract. I want data as follow;
    1 Financial general ledger data
    2 Customer detail data both open and close
    3 Vendor detail data both open and close
    As far as I use internet search engine and ask my friend, the table that I have to look up are following;
    - for general ledger transactions, query data from table BSAS and BSIS
    - for vendor transactions, query data from table BSAK and BSIK
    - for customer transactions, query data from BSAD and BSID
    Next, I use SE11 to check column name and use SE38 to export data from SAP.
    The question is,
    1) are there any table I missing? I want my general ledger data for a specific month have a summarize value equal to the trial balance of that month. (t-code: S_ALR_87012277)
    2) How do I know that some data I exported are already void or cancel?
    3) In my understanding, total amount of FBL1N and FBL5N should equal to the account payable and account receivable in trial balance. Do I understand correctly?
    Any suggestions also welcome.
    Thanks
    Smith

    Thank you for your reply, SDNFICO
    SDNFICO wrote:
    > HI,
    >
    > 1) are there any table I missing? I want my general ledger data for a specific month have a summarize value equal to the trial balance of that month. (t-code: S_ALR_87012277)
    > These tables are all the basic tables for getting the various line item details.
    Does those table cover only line item detail or cover the header table as well, please?
    >
    SDNFICO wrote:
    >
    > 2) How do I know that some data I exported are already void or cancel?
    > You can use the Reversal Document field in these tables. However if a document is reversed, then the total of the original and reversed document should be zero.
    So, if I summarize total amount of customer detail transaction data during post_date between 1Aug2010 to 31Aug2010 should equal to the movment of account receivable (AR) during Auguest 2010? are there anything I should aware off please?

  • T code  fbl3n  , adding output field is  with hold tax code.

    hai experts ,
    tcode is fbl3n.
    adding new field is  with hold tax code in output fields..
    inpu field is  gl account number and  company code  and psting date.
    but in report bsis table data is come,  but this not properly  assiging to output display structure.
    but i find out some badis like   1.  FI_ITEMS_MENUE01
                                                   2. FI_ITEMS_MENUE02
                                                    3. FI_ITEMS_CH_DATA
                                                   4. BADI_LAYER
    but these badis not working properly.
    but i   develop some implimentation enhancement frame work ,  but inthis point  , cursor  will comes to  enhancement  block but not move step by step code..
    please solve.
    thanks in advance.

    Hi,
    To add new fields in the out put for the transaction FBL3N Use BTE.
    Read the documentation first..
    Go to Tcode FIBF =>Environment=>Info system(P/S)=>F8=>Select the event 00001650=>Click on documentation
    1. Extend the structure RFPOSX and RFPOS with a new append structure.
    2. Run the RFPOSXEXTEND report.
    3. Create BTE 1650 (Business Transaction Event). For this purpose, copy the sample function module SAMPLE_INTERFACE_00001650 into the customer namespace.
    4. Activate the module in transaction FIBF. Go to 'Settings -> Products -> ... of a customer' and create a product. You can choose the name of the product and the description. Set the 'Active' indicator and save.
    5. Go to 'Settings -> P/S Modules -> ... of a customer' and include an entry for event 00001650 with your new product and function module. Save the entry.
    Regards
    DKS

  • Adding a new field (KTEXT) in output of T-Code KOK5.

    Hi,
    kindly help me, I have to add a new field KTEXT in the output of T-Code KOK5 it is standard report.

    Which version do you have? I have KTEXT by default, it's part of the COAS view and it can be selected in the standard ALV Grid ouput. Check your variant, it should be there.
    Peter

  • ADDING A DATE FIELD IN THE OUTPUT SCREEN OF Tcode FBL1N

    Hi guys..I want to add a From-->To 'DATE' field in the output screen of Tcode 'FBL1N' in the line items header part....Please tell me how to do this..??

    Hi,
    Unfortunately you can't add these fileds using with Settings>Layouts>Current header rows, you can only add the field Open items as on date.
    Rgds
    Murali. N

  • Adding fields 2 standard payment list program  (RFZALI20)  in F110 t-code

    hi frnds,
    it is a standard progrm using the logical database pfy. to retrive data.
    i have to add 5 more fileds  along with footer approved by and page break(shown below) to the output list.
    please help me with ur inputs.
    Header Data:
    *Note:
    Keep the header data same as standard payment list.
    Summary Data:
    *Note:
    Following fields are only those needs to be added in customized program. For the rest, please refer to the standard program  
    ·     Vendor Chinese Name
    ·     Check/TT No.
    ·     PO No.
    ·     Purchasing Group
    ·     Reference
    ·     Due Date
    Footer Data:
    *Note:
    The Footer Data need to be display at the bottom of each page:
    ·     Review By
    ·     Prepared By:
    Breaking:
    ·     Page break when information overflow
    ZH Name     C     20     As standard     As standard     ADRC- NAME1NAME2     Display vendor Chinese name:Select NAME1NAME2 from ADRCWHERE ADRC-ADDRNUMBER=REGUH- ADRNRAND ADRC-NATION = ‘C’If no data can be retrieved, leave the field as blank.Wrap if the name exceed the limit. Insert the field under Vendor English Name in payment list.Refer to the attached for layout, Highlighted is place should be inserted to : 
    Check/TT No.     C     8     As standard     As standard     PAYR-CHECT     Display Check/TT number of this payment documentSelect CHECT from PAYRWhere PAYR-LAUFD = REGUH-LAUFDAnd PAYR-LAUFI= REGUH-LAUFIAnd PAYR-VBLNR= REGUH-VBLNR which is displayed in current payment listInsert the field in header line 1 of layout pop-up.
    PO No.     C     10     As standard     As standard     BSEG-EBELN     Display the PO number of invoice documentSelect EBELN from BSEG Where BSEG-BELNR=REGUP-BELNRBSEG-GJAHR=REGUP-GJAHRAnd BSEG-BUZEI= REGUP-BUZEIInsert the field in position line 1 of layout pop-up. 
    Purchasing Group     C     4     As standard     As standard     EKKO-EKGRP     Display purchasing group in order to identify the buyer in charge of related POSelect EKKO-EKGRP from EKKO where EKKO-EBELN =BSEG-EBELN  Where BSEG-BELNR=REGUP-BELNRBSEG-GJAHR=REGUP-GJAHR  And BSEG-BUZEI= REGUP-BUZEIInsert the field in position line 1 of layout pop-up.
    Reference     C     10     As standard     As standard     BKPF-XBLNR     Display physical invoice number of each invoice document in SAPSelect XBLNR from BKPF Where BKPF-BELNR=REGUP-BELNRBKPF-GJAHR=REGUP-GJAHRInsert the field in position line 1 of layout pop-up.
    Due Date     C     10     As standard     As standard     Calculated     Display due date for the invoice document.Refer to the calculated logic of the field RFPOSXEXT-FAEDT in program SAPLKKBL (T-Code:FBL1N)Insert the field in position line 1 of layout pop-up.

    Hi Sridhar,
    Please can you help me. I got the same problem to add the fields to the Payment run Program (RFZALI20). Can You please suggest me how can i solve this problem. I need to add LIFNR, XBLNR & EBELN fields from REGUP table.
    Can you please help me ASAP.
    Thanks & Regards
    Rajendra
    Message was edited by:
            Rajendra Prasad

  • Add new field in output of FBL1N

    Hi Experts,
    How can I and new field in output of FBL!N.
    Can you show me the steps.
    Pooja

    Hi Expert,
    Thanks, I have corrected u201CNameu201D mistake in structure. Now RFPOSXEXTEND is run successfully.
    Still not getting field which is added in structure.
    Below describing what I have done.
    Create copy of SAMPLE_INTERFACE_00001650 to Z_FI_INTERFACE_00001650.
    Register product from Settings->products->..of a customer
    Product : ZFI
    Text : BTE Products for FI Exit
    Activation Checked.
    Register Event from Settings->p/s module->..of acustomer
         Event : 00001650
         Product : ZFI
         Function Module :  Z_FI_INTERFACE_00001650
    (Function is created in new function group Z_FUN_GRP.)
    Add new Structure ZMyStruct(KUNNR,NAMEJ,LIFNR,NAMEK) in RFPOS.
    Add new Structure ZMyStruct1(KUNNR,NAMEJ,LIFNR,NAMEK) in RFPOSX.
    Below Mentioned Code is written in Z_FI_INTERFACE_00001650
    FUNCTION Z_FI_INTERFACE_00001650.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_POSTAB) LIKE  RFPOS STRUCTURE  RFPOS
    *"  EXPORTING
    *"     VALUE(E_POSTAB) LIKE  RFPOS STRUCTURE  RFPOS
    Initialize Output by using the following line -
    E_POSTAB = I_POSTAB.
    TABLES : bseg, kna1, lfa1.
    IF sy-tcode = 'FBL1N'.
      CLEAR : bseg.
      SELECT SINGLE *
        FROM bseg
        WHERE bukrs = i_postab-bukrs
        AND belnr = i_postab-belnr
        AND gjahr = i_postab-gjahr
        AND koart = 'K'.
      IF sy-subrc EQ 0.
        e_postab-lifnr = bseg-lifnr.
        CLEAR: lfa1.
        SELECT SINGLE *
          FROM lfa1
          WHERE lifnr = bseg-lifnr.
        IF sy-subrc EQ 0.
          e_postab-namek = lfa1-name1.
        ENDIF.
      ENDIF.
      CLEAR : bseg.
      SELECT SINGLE *
        FROM bseg
        WHERE bukrs = i_postab-bukrs
        AND belnr = i_postab-belnr
        AND gjahr = i_postab-gjahr
        AND koart = 'D'.
      IF sy-subrc EQ 0.
        e_postab-kunnr = bseg-kunnr.
        CLEAR: kna1.
        SELECT SINGLE *
          FROM kna1
          WHERE kunnr = bseg-kunnr.
        IF sy-subrc EQ 0.
          e_postab-namej = kna1-name1.
        ENDIF.
      ENDIF.
    ENDIF.
    ENDFUNCTION.
    Saved and Activated.
    Start report RFPOSXEXTEND. And run it successfully.
    Still not getting fields in report FBL1N which I have added in RFPOS and RFPOSX.
    Thanks and regards,
    Pooja

  • Adding Field to the output of the Report

    Hello experts
    I have a program like following, I would like to add a field (Customer purchase order from order header)vbkd-bstkd to the output, I tried to add some code(check the highlightened portion) but it doesnt work(no values) can anyone help in correcting the code so that i can execute directly,
    Iam not full time ABAPer so could you please highlight the code you corrected(added),
    Thanks
    SP
    Global structure of list
    TYPE-POOLS: slis.
    TABLES: likp,
            lips,
            vbfa,
            kssk,
            klah,
            ausp,
            cabn,
            vbak,
            mara,
            vbrk,
            ser01,
            vbpa,
            vbrp,
            nast,
            zseri,
            ltap,
            pa0001,
            kna1,
            objk,
            viqmel,
            viqmma.
    TYPES:  BEGIN OF i_delivery,
                 vbeln LIKE likp-vbeln,
                 posnr  LIKE lips-posnr,
                 kunnr LIKE likp-kunnr,
                 kunag LIKE likp-kunag,
                 vkorg  LIKE vbak-vkorg,
                 matnr  LIKE lips-matnr,
                 lfart  LIKE likp-lfart,
                 arktx  LIKE vbap-arktx,
                 vgbel  LIKE lips-vgbel,
                 vgpos  LIKE lips-vgpos,
                 pstyv   LIKE lips-pstyv,
                 wadat TYPE likp-wadat_ist,
                 lfdat TYPE likp-lfdat,
                 prodh TYPE lips-prodh,
                 lfimg TYPE lips-lfimg,
                 vkbur TYPE lips-vkbur,
                 werks TYPE lips-werks,
                 vkgrp TYPE lips-vkgrp,
                 mvgr1 TYPE lips-mvgr1,
                 sernr LIKE equi-sernr,
                 sernp LIKE equi-sernr,
                 equnr LIKE equi-equnr,
                 kttxt LIKE qpct-kurztext,
                 fkimg LIKE vbrp-fkimg,
                 bstnk  LIKE vbak-bstnk,
                 vbelv  LIKE lips-vgbel,
                 posnv  LIKE lips-posnv,
                 uecha  LIKE lips-uecha,
                 ernam  LIKE vbak-ernam,
                 erdat LIKE vbak-erdat,
                 serail LIKE lips-serail,
                 anzsn LIKE lips-anzsn,
                 auart LIKE vbak-auart ,
                 netwr LIKE vbap-netwr,
                 fstno LIKE vbpa-pernr,
                 fstnm LIKE pa0001-ename,
                 ename LIKE pa0001-ename,
                 qname LIKE ltap-qname,
                 name1 LIKE kna1-name1,
                 name3 LIKE kna1-name2,
                 pernr LIKE vbpa-pernr,
                 aufnr LIKE viqmel-aufnr,
                 qmnum LIKE viqmel-qmnum,
                 mngrp LIKE viqmma-mngrp,
                 qmcod LIKE viqmel-qmcod,
                 qmcol LIKE viqmma-mncod,
                 cotxt(20),
                 invvalue LIKE vbrp-netwr,
                 posnn LIKE vbfa-posnn,
                 bstkd LIKE vbkd-bstkd,
             END OF i_delivery.
    Global structure of list
    */ Selection and Input Parameters
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-003.
    SELECT-OPTIONS: s_vkorg FOR likp-vkorg NO INTERVALS.
    SELECT-OPTIONS: s_vbeln  FOR likp-vbeln,
                    s_lfart  FOR likp-lfart,
                    s_kunnr  FOR likp-kunnr,
                    s_erdat  FOR likp-erdat,
                    s_wadat  FOR likp-wadat_ist,
                    s_werks  FOR lips-werks,
                    s_matnr  FOR lips-matnr,
                    s_prodh  FOR lips-prodh,
                    s_qmnum FOR viqmel-qmnum.
    SELECTION-SCREEN END OF BLOCK block2.
    SELECTION-SCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE text-002.
    SELECT-OPTIONS:  s_vbelv FOR vbak-vbeln,
                     s_auart FOR vbak-auart.
    SELECTION-SCREEN END OF BLOCK block4.
    PARAMETERS: p_vari LIKE disvariant-variant.
    RANGES: r_vbeln FOR likp-vbeln.
    DATA:   gt_fieldcat TYPE slis_t_fieldcat_alv.
    DATA:   gt_outtab TYPE i_delivery OCCURS 0 WITH HEADER LINE,
            rt_outtab1 TYPE i_delivery OCCURS 0 WITH HEADER LINE,
            i_nast TYPE nast OCCURS 0 WITH HEADER LINE,
            gt_list_top_of_page TYPE slis_t_listheader,
            gt_events   TYPE slis_t_event,
            gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    DATA:   g_repid LIKE sy-repid,
             g_count LIKE sy-tabix.
    DATA: BEGIN OF i_serial OCCURS 0,
            obknr TYPE ser01-obknr,
            lief_nr TYPE ser01-lief_nr,
            posnr TYPE ser01-posnr,
            anzsn TYPE ser01-anzsn,
          END OF i_serial.
    DATA: BEGIN OF i_object_numbers OCCURS 0,
            obknr TYPE objk-obknr,
            obzae TYPE objk-obzae,
            sernr TYPE objk-sernr,
            equnr TYPE objk-equnr,
            matnr TYPE objk-matnr,
            taser TYPE objk-taser,
          END OF i_object_numbers.
    DATA:   g_save(1) TYPE c,
           g_default(1) TYPE c,
            g_exit(1) TYPE c,
            gx_variant LIKE disvariant,
            g_variant LIKE disvariant.
    DATA:  g_mnkat LIKE viqmma-mnkat,
           g_mngrp LIKE viqmma-mngrp,
           g_atinn LIKE ausp-atinn.
    DATA: gt_vbkd TYPE TABLE OF vbkd WITH HEADER LINE.
    Initialization fieldcatalog
    INITIALIZATION.
      g_repid = sy-repid.
      PERFORM fieldcat_init USING gt_fieldcat[].
      MOVE: 'I' TO  s_vkorg-sign,
            'EQ' TO  s_vkorg-option,
            '5090' TO s_vkorg-low.
      APPEND  s_vkorg.
      MOVE: 'I' TO  s_lfart-sign,
           'EQ' TO s_lfart-option,
           'LF' TO s_lfart-low.
      APPEND  s_lfart.
      g_save = 'A'.
      PERFORM variant_init.
    Get default variant
      gx_variant = g_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                i_save     = g_save
           CHANGING
                cs_variant = gx_variant
           EXCEPTIONS
                not_found  = 2.
      IF sy-subrc = 0.
        p_vari = gx_variant-variant.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM f4_for_variant.
    AT SELECTION-SCREEN.
      PERFORM pai_of_selection_screen.
    Start of Selection
    START-OF-SELECTION.
      PERFORM e03_eventtab_build USING gt_events[].
      PERFORM select_data TABLES gt_outtab.
    Display list
    END-OF-SELECTION.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_background_id         = 'ALV_BACKGROUND'
                i_callback_user_command = 'USER_COMMAND'
                is_variant              = g_variant
                i_save                  = g_save
                i_callback_program      = g_repid
                it_fieldcat             = gt_fieldcat[]
           TABLES
                t_outtab                = gt_outtab.
       Forms
    Initialization fieldcatalog
    FORM fieldcat_init
          USING rt_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      DATA: pos TYPE i VALUE 1.
      CLEAR ls_fieldcat.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'VBELN'.
      ls_fieldcat-seltext_s     = 'Delivery'.
      ls_fieldcat-seltext_m     = 'Delivery'.
      ls_fieldcat-key           = 'X'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'BSTKD'.
      ls_fieldcat-seltext_s     = 'PO Number'.
      ls_fieldcat-seltext_m     = 'PO Number'.
      ls_fieldcat-key           = 'X'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'POSNR'.
      ls_fieldcat-key           = 'X'.
      ls_fieldcat-seltext_s     = 'Item'.
      ls_fieldcat-seltext_m     = 'Item'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'LFART'.
      ls_fieldcat-seltext_s     = 'Del Type'.
      ls_fieldcat-seltext_m     = 'Delivery Type'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'VGBEL'.
      ls_fieldcat-seltext_s     = 'Source Doc'.
      ls_fieldcat-seltext_m     = 'Source Doc'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'AUART'.
      ls_fieldcat-seltext_s     = 'Type'.
      ls_fieldcat-seltext_m     = 'Type'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'KUNNR'.
      ls_fieldcat-seltext_s     = 'Customer'.
      ls_fieldcat-seltext_m     = 'Customer'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'NAME1'.
      ls_fieldcat-seltext_s     = 'Name'.
      ls_fieldcat-seltext_m     = 'Name1'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'WERKS'.
      ls_fieldcat-seltext_s     = 'Plant'.
      ls_fieldcat-seltext_m     = 'Plant'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'MATNR'.
      ls_fieldcat-seltext_s     = 'Material'.
      ls_fieldcat-seltext_m     = 'Material'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'MVGR1'.
      ls_fieldcat-seltext_s     = 'Speciality'.
      ls_fieldcat-seltext_m     = 'Speciality'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'PRODH'.
      ls_fieldcat-seltext_s     = 'Hierarchy'.
      ls_fieldcat-seltext_m     = 'Prod Hierarchy'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'ARKTX'.
      ls_fieldcat-seltext_s     = 'Description'.
      ls_fieldcat-seltext_m     = 'Description'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'ERNAM'.
      ls_fieldcat-seltext_s     = 'Created By'.
      ls_fieldcat-seltext_m     = 'Created By'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'ERDAT'.
      ls_fieldcat-seltext_s     = 'Created On'.
      ls_fieldcat-seltext_m     = 'Created On'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'WADAT_IST'.
      ls_fieldcat-seltext_s     = 'GoodsMvt.Date'.
      ls_fieldcat-seltext_m     = 'Goods Mvt Date'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'SERNR'.
      ls_fieldcat-seltext_s     = 'Serial Shipped'.
      ls_fieldcat-seltext_m     = 'Serial Shipped'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'SERNP'.
      ls_fieldcat-seltext_s     = 'Old Serial'.
      ls_fieldcat-seltext_m     = 'Old Serial'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'VBELV'.
      ls_fieldcat-seltext_s     = 'Invoice'.
      ls_fieldcat-seltext_m     = 'Invoice'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'INVVALUE'.
      ls_fieldcat-seltext_s     = 'Invoice Amt'.
      ls_fieldcat-seltext_m     = 'Invoice Value'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'QMNUM'.
      ls_fieldcat-seltext_s     = 'Notification'.
      ls_fieldcat-seltext_m     = 'Notification'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'QMCOD'.
      ls_fieldcat-seltext_s     = 'Rep LevKST'.
      ls_fieldcat-seltext_m     = 'Repair Level KST'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'COTXT'.
      ls_fieldcat-seltext_s     = 'CdTXT KST'.
      ls_fieldcat-seltext_m     = 'Repair Level Text KST'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'QMCOL'.
      ls_fieldcat-seltext_s     = 'Rep LevKSE'.
      ls_fieldcat-seltext_m     = 'Repair Level KSE'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'KTTXT'.
      ls_fieldcat-seltext_s     = 'CdTXT KSE'.
      ls_fieldcat-seltext_m     = 'Repair Level Text KSE'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
    ENDFORM.   "fieldcat_init
    Data selection
    FORM select_data TABLES rt_outtab LIKE gt_outtab[].
      CLEAR: r_vbeln[].
    Read all Invoices for the Selection
      SELECT DISTINCT h~vbeln  h~kunnr h~kunag
                     d~posnr  d~matnr d~anzsn
                     d~serail d~vgbel d~vgpos
                     d~posnv  d~lfimg d~arktx
                     d~uecha  h~lfart h~erdat
                     h~ernam  h~lfdat d~prodh
                     h~vkorg  d~vkbur d~vkgrp
                     d~mvgr1  h~wadat_ist d~pstyv
                     d~werks
             INTO (rt_outtab-vbeln, rt_outtab-kunnr,
                    rt_outtab-kunag, rt_outtab-posnr,
                    rt_outtab-matnr, rt_outtab-anzsn,
                    rt_outtab-serail, rt_outtab-vgbel,
                    rt_outtab-vgpos,  rt_outtab-posnv,
                    rt_outtab-lfimg,  rt_outtab-arktx,
                    rt_outtab-uecha, rt_outtab-lfart,
                    rt_outtab-erdat, rt_outtab-ernam,
                    rt_outtab-lfdat, rt_outtab-prodh,
                    rt_outtab-vkorg, rt_outtab-vkbur,
                    rt_outtab-vkgrp, rt_outtab-mvgr1,
                    rt_outtab-wadat, rt_outtab-pstyv,
                    rt_outtab-werks)
            FROM likp AS h INNER JOIN lips AS d
                     ON h~vbeln = d~vbeln
                    WHERE h~vbeln IN s_vbeln
                    AND  h~vkorg IN s_vkorg
                    AND  h~lfart IN s_lfart
                     AND  h~kunnr IN s_kunnr
                     AND  h~wadat IN s_wadat
                     AND  d~matnr IN s_matnr
                     AND  d~werks IN s_werks
                     AND  d~prodh IN s_prodh
                     AND  d~vgbel IN s_vbelv
                     AND  d~matnr LIKE 'S%'.
        SELECT SINGLE * FROM vbak WHERE vbeln = rt_outtab-vgbel.
        IF: sy-subrc EQ 0.
          MOVE vbak-vbeln TO rt_outtab-vgbel.
          MOVE vbak-auart TO rt_outtab-auart.
        ENDIF.
        SELECT SINGLE * FROM mara WHERE matnr = rt_outtab-matnr
                                    AND  mtart EQ 'FERT'.
        CHECK sy-subrc EQ 0.
        IF NOT rt_outtab-posnv IS INITIAL.
          rt_outtab-vgpos = rt_outtab-posnv.
        ENDIF.
        CLEAR: vbfa.
        SELECT SINGLE vbeln posnn rfwrt INTO
        (rt_outtab-vbelv,  rt_outtab-posnn, rt_outtab-netwr)
        FROM vbfa  WHERE vbelv EQ rt_outtab-vbeln
                                  AND   posnv EQ rt_outtab-posnr
                                  AND   vbtyp_n EQ 'M'.
        CLEAR : rt_outtab-invvalue.
        SELECT SINGLE * FROM vbrp WHERE vbeln = rt_outtab-vbelv
          AND posnr = rt_outtab-posnn.
        rt_outtab-fkimg = vbrp-fkimg.
        IF rt_outtab-fkimg NE 0.
          rt_outtab-invvalue = rt_outtab-netwr / rt_outtab-fkimg.
        ENDIF.
        APPEND rt_outtab.
        IF NOT  r_vbeln-low IS INITIAL.
          IF r_vbeln-low GT rt_outtab-vbeln.
            r_vbeln-low =  rt_outtab-vbeln.
          ENDIF.
          IF r_vbeln-high LT rt_outtab-vbeln.
            r_vbeln-high =  rt_outtab-vbeln.
          ENDIF.
        ELSE.
          r_vbeln-low  =  rt_outtab-vbeln.
          r_vbeln-high =  rt_outtab-vbeln.
        ENDIF.
        CLEAR: rt_outtab.
      ENDSELECT.
    IF NOT rt_outtab[] IS INITIAL.
       SELECT vbeln posnr bstkd INTO CORRESPONDING FIELDS OF TABLE gt_vbkd
       FROM vbkd
         FOR ALL ENTRIES IN rt_outtab
         WHERE vbeln = rt_outtab-vgbel
         AND posnr = rt_outtab-vgpos.
       IF NOT gt_vbkd[] IS INITIAL.
         SORT gt_vbkd BY vbeln posnr.
         LOOP AT rt_outtab.
           READ TABLE gt_vbkd WITH KEY vbeln = rt_outtab-vgbel
           posnr = rt_outtab-vgpos
           BINARY SEARCH.
           IF sy-subrc = 0.
             rt_outtab-bstkd = gt_vbkd-bstkd.
             MODIFY rt_outtab.
           ENDIF.
         ENDLOOP.
       ENDIF.
    ENDIF.
    *select bstkd INTO CORRESPONDING FIELDS OF TABLE gt_vbkd
       from vbkd   where vbeln = gt_outtab-vbeln
                  and posnr = '000000'.
                 rt_outtab-bstkd = vbkd-bstkd .
       <i><b> select single bstkd into gt_vbkd
        from vbkd  where vbeln = rt_outtab-vbeln
                   and posnr = '000000'.
                   rt_outtab-bstkd = gt_vbkd-bstkd.
                  APPEND rt_outtab .</b></i>
      IF NOT r_vbeln IS INITIAL.
        MOVE: 'I' TO  r_vbeln-sign,
               'BT' TO  r_vbeln-option.
        APPEND r_vbeln.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE i_serial
                                  FROM   ser01 WHERE lief_nr IN r_vbeln.
      ENDIF.
      SORT i_serial.
      IF NOT i_serial[] IS INITIAL.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE i_object_numbers
                                   FROM   objk
                                   FOR ALL ENTRIES IN i_serial
                                   WHERE obknr EQ i_serial-obknr
                                   AND  taser EQ 'SER01'.
      ENDIF.
      SORT i_object_numbers BY  obknr obzae.
      LOOP AT rt_outtab.
        CLEAR: rt_outtab-name1, rt_outtab-sernr, rt_outtab-lfimg,
         rt_outtab-sernp, rt_outtab-kttxt.
    Read the Sold To Name
        SELECT SINGLE name1 INTO rt_outtab-name1
                          FROM kna1 WHERE kunnr EQ rt_outtab-kunnr.
    Read Ship-to Customer
        CLEAR: objk.
        IF NOT rt_outtab-serail IS INITIAL.
          READ TABLE i_serial WITH KEY lief_nr = rt_outtab-vbeln
                                        posnr = rt_outtab-posnr.
          IF sy-subrc EQ 0.
            DO i_serial-anzsn TIMES.
              CLEAR: rt_outtab-sernr, rt_outtab-sernp.
              READ TABLE i_object_numbers  WITH KEY obknr = i_serial-obknr
                                                    matnr = rt_outtab-matnr
                                                BINARY SEARCH.
              IF sy-subrc EQ 0.
                rt_outtab-sernr = i_object_numbers-sernr.
                DELETE i_object_numbers INDEX sy-tabix.
                MOVE '1'   TO rt_outtab-lfimg.
                CLEAR: rt_outtab-aufnr, rt_outtab-qmnum,
                         rt_outtab-equnr, rt_outtab-qmcod, g_mngrp, g_mnkat.
                SELECT SINGLE aufnr qmnum equnr qmcod qmgrp qmkat
                                     INTO (rt_outtab-aufnr, rt_outtab-qmnum,
                        rt_outtab-equnr, rt_outtab-qmcod, g_mngrp, g_mnkat)
                                 FROM viqmel  WHERE matnr = rt_outtab-matnr
                                        AND serialnr = rt_outtab-sernr
                                        AND qmart  EQ 'S4'
                                        AND qmnum IN s_qmnum.
                CLEAR: rt_outtab-cotxt.
                SELECT SINGLE kurztext INTO rt_outtab-cotxt
                                      FROM qpct WHERE katalogart EQ g_mnkat
                                         AND codegruppe EQ  g_mngrp
                                         AND code EQ rt_outtab-qmcod
                                         AND sprache EQ sy-langu.
    Read Serial Number from Name Plate Data.
                CLEAR: klah, kssk, ausp, cabn, g_atinn.
                SELECT SINGLE atinn INTO (g_atinn) FROM cabn
                                    WHERE atnam = 'SBANK_SERIAL_NUMBER'.
                SELECT SINGLE  atwrt
                      INTO  (rt_outtab-sernp)
                      FROM  ( klah AS a INNER JOIN kssk AS k
                               ON aclint = kclint )
                          JOIN ausp AS p
                                ON kobjek = pobjek
                                AND p~atinn = g_atinn
                                AND pklart = aklart
                      WHERE a~klart = '002'
                       AND  a~class = 'KSE_SN_ENDOSCOPES'
                        AND  k~objek = rt_outtab-equnr.
    *KSE Repair level (activity code text from KSE-SM07 code group)
                CLEAR: rt_outtab-qmcol, g_mngrp, g_mnkat.
                CLEAR: rt_outtab-qmcol.
                CLEAR:   g_mnkat, g_mngrp.
                SELECT SINGLE mnkat mngrp mncod INTO
                                    (g_mnkat, g_mngrp, rt_outtab-qmcol)
                              FROM viqmma WHERE qmnum = rt_outtab-qmnum
                                    AND  mngrp EQ 'KSE-SM07'
                                    AND kzloesch EQ space.
                CLEAR: rt_outtab-kttxt.
                SELECT SINGLE kurztext INTO rt_outtab-kttxt
                             FROM qpct WHERE katalogart EQ g_mnkat
                                    AND codegruppe EQ  g_mngrp
                                    AND code EQ rt_outtab-qmcol
                                    AND sprache EQ sy-langu.
                rt_outtab1 = rt_outtab.
                APPEND rt_outtab1.
              ENDIF.
            ENDDO.
          ENDIF.
        ENDIF.
      ENDLOOP.
      CLEAR: rt_outtab[].
      rt_outtab[] = rt_outtab1[].
      SORT rt_outtab BY vbeln posnr.
    ENDFORM.
          FORM get_repname                                              *
    -->  P_VBELN                                                       *
    -->  P_POSNR                                                       *
    -->  P_PERNR                                                       *
    -->  P_ENAME                                                       *
    FORM get_repname USING  p_vbeln
                              p_posnr
                     CHANGING  p_pernr
                              p_ename. "
      DATA: i_vbpa LIKE vbpa OCCURS 0 WITH HEADER LINE.
      CLEAR: i_vbpa[].
      CALL FUNCTION 'Z_DETERMINE_ACTIVE_SALES_REP'
           EXPORTING
                g_salesdocument = p_vbeln
                g_sales_item    = p_posnr
           TABLES
                st_vbpa         = i_vbpa.
      READ TABLE i_vbpa INDEX 1.
      IF sy-subrc = 0.
        p_pernr = i_vbpa-pernr.
        SELECT SINGLE ename INTO p_ename
          FROM pa0001
         WHERE pernr = i_vbpa-pernr.
      ENDIF.
    ENDFORM.                    " get_repname
          FORM E03_EVENTTAB_BUILD                                       *
    -->  E03_LT_EVENTS                                                 *
    FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type = 0
           IMPORTING
                et_events   = e03_lt_events.
      READ TABLE e03_lt_events WITH KEY name =  slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO e03_lt_events.
      ENDIF.
    ENDFORM.
          FORM TOP_OF_PAGE                                              *
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = gt_list_top_of_page.
    ENDFORM.
    *&      Form  USER_COMMAND
    FORM user_command  USING r_ucomm LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          PERFORM display_delivery USING r_ucomm
                                        rs_selfield.
      ENDCASE.
    ENDFORM.
    *&      Form  display_delivery
    FORM display_delivery
    USING r_ucomm LIKE sy-ucomm
                                 rs_selfield TYPE slis_selfield.
      CASE rs_selfield-sel_tab_field.
        WHEN '1-VBELN'.
          SET PARAMETER ID 'VL' FIELD rs_selfield-value.
          CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
        WHEN '1-VBELV'.
          SET PARAMETER ID 'VF' FIELD rs_selfield-value.
          CALL TRANSACTION 'VF03N' AND SKIP FIRST SCREEN.
      ENDCASE.
    ENDFORM.
    *&      Form  VARIANT_INIT
          text
    -->  p1        text
    <--  p2        text
    FORM variant_init.
      CLEAR g_variant.
      g_variant-report = g_repid.
    ENDFORM.                               " VARIANT_INIT
    *&      Form  F4_FOR_VARIANT
          text
    -->  p1        text
    <--  p2        text
    FORM f4_for_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant          = g_variant
                i_save              = g_save
              it_default_fieldcat =
           IMPORTING
                e_exit              = g_exit
                es_variant          = gx_variant
           EXCEPTIONS
                not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF g_exit = space.
          p_vari = gx_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.
    *&      Form  PAI_OF_SELECTION_SCREEN
          text
    FORM pai_of_selection_screen.
      IF NOT p_vari IS INITIAL.
        MOVE g_variant TO gx_variant.
        MOVE p_vari TO gx_variant-variant.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
             EXPORTING
                  i_save     = g_save
             CHANGING
                  cs_variant = gx_variant.
        g_variant = gx_variant.
      ELSE.
        PERFORM variant_init.
      ENDIF.
    ENDFORM.

    naren this is the program
    Global structure of list
    TYPE-POOLS: slis.
    TABLES: likp,
            lips,
            vbfa,
            kssk,
            klah,
            ausp,
            cabn,
            vbak,
            mara,
            vbrk,
            ser01,
            vbpa,
            vbrp,
            nast,
            zseri,
            ltap,
            pa0001,
            kna1,
            objk,
            viqmel,
            viqmma.
    TYPES:  BEGIN OF i_delivery,
                 vbeln LIKE likp-vbeln,
                 posnr  LIKE lips-posnr,
                 kunnr LIKE likp-kunnr,
                 kunag LIKE likp-kunag,
                 vkorg  LIKE vbak-vkorg,
                 matnr  LIKE lips-matnr,
                 lfart  LIKE likp-lfart,
                 arktx  LIKE vbap-arktx,
                 vgbel  LIKE lips-vgbel,
                 vgpos  LIKE lips-vgpos,
                 pstyv   LIKE lips-pstyv,
                 wadat TYPE likp-wadat_ist,
                 lfdat TYPE likp-lfdat,
                 prodh TYPE lips-prodh,
                 lfimg TYPE lips-lfimg,
                 vkbur TYPE lips-vkbur,
                 werks TYPE lips-werks,
                 vkgrp TYPE lips-vkgrp,
                 mvgr1 TYPE lips-mvgr1,
                 sernr LIKE equi-sernr,
                 sernp LIKE equi-sernr,
                 equnr LIKE equi-equnr,
                 kttxt LIKE qpct-kurztext,
                 fkimg LIKE vbrp-fkimg,
                 bstnk  LIKE vbak-bstnk,
                 vbelv  LIKE lips-vgbel,
                 posnv  LIKE lips-posnv,
                 uecha  LIKE lips-uecha,
                 ernam  LIKE vbak-ernam,
                 erdat LIKE vbak-erdat,
                 serail LIKE lips-serail,
                 anzsn LIKE lips-anzsn,
                 auart LIKE vbak-auart ,
                 netwr LIKE vbap-netwr,
                 fstno LIKE vbpa-pernr,
                 fstnm LIKE pa0001-ename,
                 ename LIKE pa0001-ename,
                 qname LIKE ltap-qname,
                 name1 LIKE kna1-name1,
                 name3 LIKE kna1-name2,
                 pernr LIKE vbpa-pernr,
                 aufnr LIKE viqmel-aufnr,
                 qmnum LIKE viqmel-qmnum,
                 mngrp LIKE viqmma-mngrp,
                 qmcod LIKE viqmel-qmcod,
                 qmcol LIKE viqmma-mncod,
                 cotxt(20),
                 invvalue LIKE vbrp-netwr,
                 posnn LIKE vbfa-posnn,
                 bstkd LIKE vbkd-bstkd,
             END OF i_delivery.
    Global structure of list
    */ Selection and Input Parameters
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-003.
    SELECT-OPTIONS: s_vkorg FOR likp-vkorg NO INTERVALS.
    SELECT-OPTIONS: s_vbeln  FOR likp-vbeln,
                    s_lfart  FOR likp-lfart,
                    s_kunnr  FOR likp-kunnr,
                    s_erdat  FOR likp-erdat,
                    s_wadat  FOR likp-wadat_ist,
                    s_werks  FOR lips-werks,
                    s_matnr  FOR lips-matnr,
                    s_prodh  FOR lips-prodh,
                    s_qmnum FOR viqmel-qmnum.
    SELECTION-SCREEN END OF BLOCK block2.
    SELECTION-SCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE text-002.
    SELECT-OPTIONS:  s_vbelv FOR vbak-vbeln,
                     s_auart FOR vbak-auart.
    SELECTION-SCREEN END OF BLOCK block4.
    PARAMETERS: p_vari LIKE disvariant-variant.
    RANGES: r_vbeln FOR likp-vbeln.
    DATA:   gt_fieldcat TYPE slis_t_fieldcat_alv.
    DATA:   gt_outtab TYPE i_delivery OCCURS 0 WITH HEADER LINE,
            rt_outtab1 TYPE i_delivery OCCURS 0 WITH HEADER LINE,
            i_nast TYPE nast OCCURS 0 WITH HEADER LINE,
            gt_list_top_of_page TYPE slis_t_listheader,
            gt_events   TYPE slis_t_event,
            gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    DATA:   g_repid LIKE sy-repid,
             g_count LIKE sy-tabix.
    DATA: BEGIN OF i_serial OCCURS 0,
            obknr TYPE ser01-obknr,
            lief_nr TYPE ser01-lief_nr,
            posnr TYPE ser01-posnr,
            anzsn TYPE ser01-anzsn,
          END OF i_serial.
    DATA: BEGIN OF i_object_numbers OCCURS 0,
            obknr TYPE objk-obknr,
            obzae TYPE objk-obzae,
            sernr TYPE objk-sernr,
            equnr TYPE objk-equnr,
            matnr TYPE objk-matnr,
            taser TYPE objk-taser,
          END OF i_object_numbers.
    DATA:   g_save(1) TYPE c,
           g_default(1) TYPE c,
            g_exit(1) TYPE c,
            gx_variant LIKE disvariant,
            g_variant LIKE disvariant.
    DATA:  g_mnkat LIKE viqmma-mnkat,
           g_mngrp LIKE viqmma-mngrp,
           g_atinn LIKE ausp-atinn.
    DATA: gt_vbkd TYPE TABLE OF vbkd WITH HEADER LINE.
    Initialization fieldcatalog
    INITIALIZATION.
      g_repid = sy-repid.
      PERFORM fieldcat_init USING gt_fieldcat[].
      MOVE: 'I' TO  s_vkorg-sign,
            'EQ' TO  s_vkorg-option,
            '5090' TO s_vkorg-low.
      APPEND  s_vkorg.
      MOVE: 'I' TO  s_lfart-sign,
           'EQ' TO s_lfart-option,
           'LF' TO s_lfart-low.
      APPEND  s_lfart.
      g_save = 'A'.
      PERFORM variant_init.
    Get default variant
      gx_variant = g_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                i_save     = g_save
           CHANGING
                cs_variant = gx_variant
           EXCEPTIONS
                not_found  = 2.
      IF sy-subrc = 0.
        p_vari = gx_variant-variant.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM f4_for_variant.
    AT SELECTION-SCREEN.
      PERFORM pai_of_selection_screen.
    Start of Selection
    START-OF-SELECTION.
      PERFORM e03_eventtab_build USING gt_events[].
      PERFORM select_data TABLES gt_outtab.
    Display list
    END-OF-SELECTION.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_background_id         = 'ALV_BACKGROUND'
                i_callback_user_command = 'USER_COMMAND'
                is_variant              = g_variant
                i_save                  = g_save
                i_callback_program      = g_repid
                it_fieldcat             = gt_fieldcat[]
           TABLES
                t_outtab                = gt_outtab.
       Forms
    Initialization fieldcatalog
    FORM fieldcat_init
          USING rt_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      DATA: pos TYPE i VALUE 1.
      CLEAR ls_fieldcat.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'VBELN'.
      ls_fieldcat-seltext_s     = 'Delivery'.
      ls_fieldcat-seltext_m     = 'Delivery'.
      ls_fieldcat-key           = 'X'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'BSTKD'.
      ls_fieldcat-seltext_s     = 'PO Number'.
      ls_fieldcat-seltext_m     = 'PO Number'.
      ls_fieldcat-key           = 'X'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'POSNR'.
      ls_fieldcat-key           = 'X'.
      ls_fieldcat-seltext_s     = 'Item'.
      ls_fieldcat-seltext_m     = 'Item'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'LFART'.
      ls_fieldcat-seltext_s     = 'Del Type'.
      ls_fieldcat-seltext_m     = 'Delivery Type'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'VGBEL'.
      ls_fieldcat-seltext_s     = 'Source Doc'.
      ls_fieldcat-seltext_m     = 'Source Doc'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'AUART'.
      ls_fieldcat-seltext_s     = 'Type'.
      ls_fieldcat-seltext_m     = 'Type'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'KUNNR'.
      ls_fieldcat-seltext_s     = 'Customer'.
      ls_fieldcat-seltext_m     = 'Customer'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'NAME1'.
      ls_fieldcat-seltext_s     = 'Name'.
      ls_fieldcat-seltext_m     = 'Name1'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'WERKS'.
      ls_fieldcat-seltext_s     = 'Plant'.
      ls_fieldcat-seltext_m     = 'Plant'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'MATNR'.
      ls_fieldcat-seltext_s     = 'Material'.
      ls_fieldcat-seltext_m     = 'Material'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'MVGR1'.
      ls_fieldcat-seltext_s     = 'Speciality'.
      ls_fieldcat-seltext_m     = 'Speciality'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'PRODH'.
      ls_fieldcat-seltext_s     = 'Hierarchy'.
      ls_fieldcat-seltext_m     = 'Prod Hierarchy'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'ARKTX'.
      ls_fieldcat-seltext_s     = 'Description'.
      ls_fieldcat-seltext_m     = 'Description'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'ERNAM'.
      ls_fieldcat-seltext_s     = 'Created By'.
      ls_fieldcat-seltext_m     = 'Created By'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'ERDAT'.
      ls_fieldcat-seltext_s     = 'Created On'.
      ls_fieldcat-seltext_m     = 'Created On'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'WADAT_IST'.
      ls_fieldcat-seltext_s     = 'GoodsMvt.Date'.
      ls_fieldcat-seltext_m     = 'Goods Mvt Date'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'SERNR'.
      ls_fieldcat-seltext_s     = 'Serial Shipped'.
      ls_fieldcat-seltext_m     = 'Serial Shipped'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'SERNP'.
      ls_fieldcat-seltext_s     = 'Old Serial'.
      ls_fieldcat-seltext_m     = 'Old Serial'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'VBELV'.
      ls_fieldcat-seltext_s     = 'Invoice'.
      ls_fieldcat-seltext_m     = 'Invoice'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'INVVALUE'.
      ls_fieldcat-seltext_s     = 'Invoice Amt'.
      ls_fieldcat-seltext_m     = 'Invoice Value'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'QMNUM'.
      ls_fieldcat-seltext_s     = 'Notification'.
      ls_fieldcat-seltext_m     = 'Notification'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'QMCOD'.
      ls_fieldcat-seltext_s     = 'Rep LevKST'.
      ls_fieldcat-seltext_m     = 'Repair Level KST'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'COTXT'.
      ls_fieldcat-seltext_s     = 'CdTXT KST'.
      ls_fieldcat-seltext_m     = 'Repair Level Text KST'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'QMCOL'.
      ls_fieldcat-seltext_s     = 'Rep LevKSE'.
      ls_fieldcat-seltext_m     = 'Repair Level KSE'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
      pos = pos + 1.
      ls_fieldcat-col_pos       =  pos.
      ls_fieldcat-fieldname     = 'KTTXT'.
      ls_fieldcat-seltext_s     = 'CdTXT KSE'.
      ls_fieldcat-seltext_m     = 'Repair Level Text KSE'.
      APPEND ls_fieldcat TO rt_fieldcat.
      CLEAR ls_fieldcat.
    ENDFORM.   "fieldcat_init
    Data selection
    FORM select_data TABLES rt_outtab LIKE gt_outtab[].
      CLEAR: r_vbeln[].
    Read all Invoices for the Selection
      SELECT DISTINCT h~vbeln  h~kunnr h~kunag
                     d~posnr  d~matnr d~anzsn
                     d~serail d~vgbel d~vgpos
                     d~posnv  d~lfimg d~arktx
                     d~uecha  h~lfart h~erdat
                     h~ernam  h~lfdat d~prodh
                     h~vkorg  d~vkbur d~vkgrp
                     d~mvgr1  h~wadat_ist d~pstyv
                     d~werks
             INTO (rt_outtab-vbeln, rt_outtab-kunnr,
                    rt_outtab-kunag, rt_outtab-posnr,
                    rt_outtab-matnr, rt_outtab-anzsn,
                    rt_outtab-serail, rt_outtab-vgbel,
                    rt_outtab-vgpos,  rt_outtab-posnv,
                    rt_outtab-lfimg,  rt_outtab-arktx,
                    rt_outtab-uecha, rt_outtab-lfart,
                    rt_outtab-erdat, rt_outtab-ernam,
                    rt_outtab-lfdat, rt_outtab-prodh,
                    rt_outtab-vkorg, rt_outtab-vkbur,
                    rt_outtab-vkgrp, rt_outtab-mvgr1,
                    rt_outtab-wadat, rt_outtab-pstyv,
                    rt_outtab-werks)
            FROM likp AS h INNER JOIN lips AS d
                     ON h~vbeln = d~vbeln
                    WHERE h~vbeln IN s_vbeln
                    AND  h~vkorg IN s_vkorg
                    AND  h~lfart IN s_lfart
                     AND  h~kunnr IN s_kunnr
                     AND  h~wadat IN s_wadat
                     AND  d~matnr IN s_matnr
                     AND  d~werks IN s_werks
                     AND  d~prodh IN s_prodh
                     AND  d~vgbel IN s_vbelv
                     AND  d~matnr LIKE 'S%'.
        SELECT SINGLE * FROM vbak WHERE vbeln = rt_outtab-vgbel.
        IF: sy-subrc EQ 0.
          MOVE vbak-vbeln TO rt_outtab-vgbel.
          MOVE vbak-auart TO rt_outtab-auart.
        ENDIF.
        SELECT SINGLE * FROM mara WHERE matnr = rt_outtab-matnr
                                    AND  mtart EQ 'FERT'.
        CHECK sy-subrc EQ 0.
        IF NOT rt_outtab-posnv IS INITIAL.
          rt_outtab-vgpos = rt_outtab-posnv.
        ENDIF.
        CLEAR: vbfa.
        SELECT SINGLE vbeln posnn rfwrt INTO
        (rt_outtab-vbelv,  rt_outtab-posnn, rt_outtab-netwr)
        FROM vbfa  WHERE vbelv EQ rt_outtab-vbeln
                                  AND   posnv EQ rt_outtab-posnr
                                  AND   vbtyp_n EQ 'M'.
        CLEAR : rt_outtab-invvalue.
        SELECT SINGLE * FROM vbrp WHERE vbeln = rt_outtab-vbelv
          AND posnr = rt_outtab-posnn.
        rt_outtab-fkimg = vbrp-fkimg.
        IF rt_outtab-fkimg NE 0.
          rt_outtab-invvalue = rt_outtab-netwr / rt_outtab-fkimg.
        ENDIF.
        APPEND rt_outtab.
        IF NOT  r_vbeln-low IS INITIAL.
          IF r_vbeln-low GT rt_outtab-vbeln.
            r_vbeln-low =  rt_outtab-vbeln.
          ENDIF.
          IF r_vbeln-high LT rt_outtab-vbeln.
            r_vbeln-high =  rt_outtab-vbeln.
          ENDIF.
        ELSE.
          r_vbeln-low  =  rt_outtab-vbeln.
          r_vbeln-high =  rt_outtab-vbeln.
        ENDIF.
        CLEAR: rt_outtab.
      ENDSELECT.
    IF NOT rt_outtab[] IS INITIAL.
       SELECT vbeln posnr bstkd INTO CORRESPONDING FIELDS OF TABLE gt_vbkd
       FROM vbkd
         FOR ALL ENTRIES IN rt_outtab
         WHERE vbeln = rt_outtab-vgbel
         AND posnr = rt_outtab-vgpos.
       IF NOT gt_vbkd[] IS INITIAL.
         SORT gt_vbkd BY vbeln posnr.
         LOOP AT rt_outtab.
           READ TABLE gt_vbkd WITH KEY vbeln = rt_outtab-vgbel
           posnr = rt_outtab-vgpos
           BINARY SEARCH.
           IF sy-subrc = 0.
             rt_outtab-bstkd = gt_vbkd-bstkd.
             MODIFY rt_outtab.
           ENDIF.
         ENDLOOP.
       ENDIF.
    ENDIF.
    *select bstkd INTO CORRESPONDING FIELDS OF TABLE gt_vbkd
       from vbkd   where vbeln = gt_outtab-vbeln
                  and posnr = '000000'.
                 rt_outtab-bstkd = vbkd-bstkd .
      SELECT single bstkd INTO CORRESPONDING FIELDS OF gt_vbkd
      FROM vbkd WHERE vbeln = gt_vbkd-vbeln
      AND posnr = '000000'.
      rt_outtab-bstkd = gt_vbkd-bstkd.
      APPEND rt_outtab.
      IF NOT r_vbeln IS INITIAL.
        MOVE: 'I' TO  r_vbeln-sign,
               'BT' TO  r_vbeln-option.
        APPEND r_vbeln.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE i_serial
                                  FROM   ser01 WHERE lief_nr IN r_vbeln.
      ENDIF.
      SORT i_serial.
      IF NOT i_serial[] IS INITIAL.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE i_object_numbers
                                   FROM   objk
                                   FOR ALL ENTRIES IN i_serial
                                   WHERE obknr EQ i_serial-obknr
                                   AND  taser EQ 'SER01'.
      ENDIF.
      SORT i_object_numbers BY  obknr obzae.
      LOOP AT rt_outtab.
        CLEAR: rt_outtab-name1, rt_outtab-sernr, rt_outtab-lfimg,
         rt_outtab-sernp, rt_outtab-kttxt.
    Read the Sold To Name
        SELECT SINGLE name1 INTO rt_outtab-name1
                          FROM kna1 WHERE kunnr EQ rt_outtab-kunnr.
    Read Ship-to Customer
        CLEAR: objk.
        IF NOT rt_outtab-serail IS INITIAL.
          READ TABLE i_serial WITH KEY lief_nr = rt_outtab-vbeln
                                        posnr = rt_outtab-posnr.
          IF sy-subrc EQ 0.
            DO i_serial-anzsn TIMES.
              CLEAR: rt_outtab-sernr, rt_outtab-sernp.
              READ TABLE i_object_numbers  WITH KEY obknr = i_serial-obknr
                                                    matnr = rt_outtab-matnr
                                                BINARY SEARCH.
              IF sy-subrc EQ 0.
                rt_outtab-sernr = i_object_numbers-sernr.
                DELETE i_object_numbers INDEX sy-tabix.
                MOVE '1'   TO rt_outtab-lfimg.
                CLEAR: rt_outtab-aufnr, rt_outtab-qmnum,
                         rt_outtab-equnr, rt_outtab-qmcod, g_mngrp, g_mnkat.
                SELECT SINGLE aufnr qmnum equnr qmcod qmgrp qmkat
                                     INTO (rt_outtab-aufnr, rt_outtab-qmnum,
                        rt_outtab-equnr, rt_outtab-qmcod, g_mngrp, g_mnkat)
                                 FROM viqmel  WHERE matnr = rt_outtab-matnr
                                        AND serialnr = rt_outtab-sernr
                                        AND qmart  EQ 'S4'
                                        AND qmnum IN s_qmnum.
                CLEAR: rt_outtab-cotxt.
                SELECT SINGLE kurztext INTO rt_outtab-cotxt
                                      FROM qpct WHERE katalogart EQ g_mnkat
                                         AND codegruppe EQ  g_mngrp
                                         AND code EQ rt_outtab-qmcod
                                         AND sprache EQ sy-langu.
    Read Serial Number from Name Plate Data.
                CLEAR: klah, kssk, ausp, cabn, g_atinn.
                SELECT SINGLE atinn INTO (g_atinn) FROM cabn
                                    WHERE atnam = 'SBANK_SERIAL_NUMBER'.
                SELECT SINGLE  atwrt
                      INTO  (rt_outtab-sernp)
                      FROM  ( klah AS a INNER JOIN kssk AS k
                               ON aclint = kclint )
                          JOIN ausp AS p
                                ON kobjek = pobjek
                                AND p~atinn = g_atinn
                                AND pklart = aklart
                      WHERE a~klart = '002'
                       AND  a~class = 'KSE_SN_ENDOSCOPES'
                        AND  k~objek = rt_outtab-equnr.
    *KSE Repair level (activity code text from KSE-SM07 code group)
                CLEAR: rt_outtab-qmcol, g_mngrp, g_mnkat.
                CLEAR: rt_outtab-qmcol.
                CLEAR:   g_mnkat, g_mngrp.
                SELECT SINGLE mnkat mngrp mncod INTO
                                    (g_mnkat, g_mngrp, rt_outtab-qmcol)
                              FROM viqmma WHERE qmnum = rt_outtab-qmnum
                                    AND  mngrp EQ 'KSE-SM07'
                                    AND kzloesch EQ space.
                CLEAR: rt_outtab-kttxt.
                SELECT SINGLE kurztext INTO rt_outtab-kttxt
                             FROM qpct WHERE katalogart EQ g_mnkat
                                    AND codegruppe EQ  g_mngrp
                                    AND code EQ rt_outtab-qmcol
                                    AND sprache EQ sy-langu.
                rt_outtab1 = rt_outtab.
                APPEND rt_outtab1.
              ENDIF.
            ENDDO.
          ENDIF.
        ENDIF.
      ENDLOOP.
      CLEAR: rt_outtab[].
      rt_outtab[] = rt_outtab1[].
      SORT rt_outtab BY vbeln posnr.
    ENDFORM.
          FORM get_repname                                              *
    -->  P_VBELN                                                       *
    -->  P_POSNR                                                       *
    -->  P_PERNR                                                       *
    -->  P_ENAME                                                       *
    FORM get_repname USING  p_vbeln
                              p_posnr
                     CHANGING  p_pernr
                              p_ename. "
      DATA: i_vbpa LIKE vbpa OCCURS 0 WITH HEADER LINE.
      CLEAR: i_vbpa[].
      CALL FUNCTION 'Z_DETERMINE_ACTIVE_SALES_REP'
           EXPORTING
                g_salesdocument = p_vbeln
                g_sales_item    = p_posnr
           TABLES
                st_vbpa         = i_vbpa.
      READ TABLE i_vbpa INDEX 1.
      IF sy-subrc = 0.
        p_pernr = i_vbpa-pernr.
        SELECT SINGLE ename INTO p_ename
          FROM pa0001
         WHERE pernr = i_vbpa-pernr.
      ENDIF.
    ENDFORM.                    " get_repname
          FORM E03_EVENTTAB_BUILD                                       *
    -->  E03_LT_EVENTS                                                 *
    FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type = 0
           IMPORTING
                et_events   = e03_lt_events.
      READ TABLE e03_lt_events WITH KEY name =  slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO e03_lt_events.
      ENDIF.
    ENDFORM.
          FORM TOP_OF_PAGE                                              *
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = gt_list_top_of_page.
    ENDFORM.
    *&      Form  USER_COMMAND
    FORM user_command  USING r_ucomm LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          PERFORM display_delivery USING r_ucomm
                                        rs_selfield.
      ENDCASE.
    ENDFORM.
    *&      Form  display_delivery
    FORM display_delivery
    USING r_ucomm LIKE sy-ucomm
                                 rs_selfield TYPE slis_selfield.
      CASE rs_selfield-sel_tab_field.
        WHEN '1-VBELN'.
          SET PARAMETER ID 'VL' FIELD rs_selfield-value.
          CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
        WHEN '1-VBELV'.
          SET PARAMETER ID 'VF' FIELD rs_selfield-value.
          CALL TRANSACTION 'VF03N' AND SKIP FIRST SCREEN.
      ENDCASE.
    ENDFORM.
    *&      Form  VARIANT_INIT
          text
    -->  p1        text
    <--  p2        text
    FORM variant_init.
      CLEAR g_variant.
      g_variant-report = g_repid.
    ENDFORM.                               " VARIANT_INIT
    *&      Form  F4_FOR_VARIANT
          text
    -->  p1        text
    <--  p2        text
    FORM f4_for_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant          = g_variant
                i_save              = g_save
              it_default_fieldcat =
           IMPORTING
                e_exit              = g_exit
                es_variant          = gx_variant
           EXCEPTIONS
                not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF g_exit = space.
          p_vari = gx_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.
    *&      Form  PAI_OF_SELECTION_SCREEN
          text
    FORM pai_of_selection_screen.
      IF NOT p_vari IS INITIAL.
        MOVE g_variant TO gx_variant.
        MOVE p_vari TO gx_variant-variant.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
             EXPORTING
                  i_save     = g_save
             CHANGING
                  cs_variant = gx_variant.
        g_variant = gx_variant.
      ELSE.
        PERFORM variant_init.
      ENDIF.
    ENDFORM.

  • Newly added field not getting displayed in ALV output

    Hi All,
       I'm adding one more field/column to be displayed in an old existing program that uses REUSE_ALV_FIELDCATALOG_MERGE to generate the ALV fieldcat.
    DATA: BEGIN OF it_salary OCCURS 0,
            pernr LIKE pa0000-pernr,
            ename LIKE pa0001-ename,
            rtext like lv_rtext, -
    added field
            waers LIKE pa0008-waers
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name         = driver
          i_internal_tabname     = 'IT_SALARY'
          i_client_never_display = 'X'
          i_inclname             = driver
        CHANGING
          ct_fieldcat            = lv_fieldcat[]
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program      = driver
          it_fieldcat             = lv_fieldcat[]
          i_default               = 'X'
          i_save                  = 'A'
          is_variant              = lv_tmplt
          is_layout               = lv_ls_layout
         i_callback_user_command = 'USER_COMMAND'
        TABLES
          t_outtab                = it_salary
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
    The newly added field is not getting populated in the lv_fieldcat table. Tried running programs BALVBUFDEL,
    BCALV_BUFFER_DEL_SHARED then logging off and logging in but of no help.
    Please provide suggestion for this issue.
    Regards,
    Sridevi S

    Hi,
    Fieldcat is buffered - so use
    I_BYPASSING_BUFFER = 'X'
    Since a while CL_GUI_ALV_GRID is available which does NOT need any fieldcat (is determined internally using RTTI). It is worth playing around whith this class if you have some time. This class is recommended for ALV Output by SAP (but no edit is possible - was never supported officially).
    A simple use would be:
    data: gt_output type standard table of (adjust!).
    *simple ALV output
    data go_alv type ref to cl_salv_table.
    data go_functions type ref to cl_salv_functions_list.
    data go_columns type ref to cl_salv_columns_table.
    data go_column type ref to cl_salv_column_table.
    *Exceprion handlig
    data: go_exception  type ref to cx_root,
          gv_errortext   type string.
    ** fill table gt_output ...
    ** ALV output
    if not gt_output is initial.
        try.
            call method cl_salv_table=>factory
              importing
                r_salv_table = go_alv
              changing
                t_table      = gt_output.
          catch cx_salv_msg into go_exception.
            gv_errortext = go_exception->get_text( ).
            message gv_errortext type 'A'.
        endtry.
    * enable all standard ALV functions
        go_functions =  go_alv->get_functions( ).
        go_functions->set_all( ).
    * hide MANDT
        go_columns = go_alv->get_columns( ).
        go_column ?=  go_columns->get_column( columnname = 'MANDT' ).
        go_column->set_technical( ).
        go_alv->display( ).
    Kind regards,
    Holger

  • Adding fields in EDI output of Invoice List

    Hi!
    I am trying to find out what is a process of adding fields in EDI output of Invoice List...
    I mean that I need to add some extra fields to Invoice lists.
    The information I have is: name of Form, print program and output type.
    I guess I need to modify printing program, is it a correct way to go?
    Hope to avoid modifying of print form...
    Will reward,
    Mindaugas.

    I did not work on invoice list EDI,but i have done invoice.
    First you need to look at segment,if you want to add new fileds in output,then you need to create segment at WE31 Transaction.
    now create idoc type based on invoice idoc type ( WE30) here you need to use ur segment.
    Idoc has function module
    outbound - FM will start IDOC_OUTBOUND_inv*
    Inbound  - FM will Start IDOC_INBOUND_INV*
    in the FM,you will have user exit ,populate ur fields in user exit.
    Configuration :
    1 create or maintain logical system - SALE
    2. Create RFC Destination - Sm59
    3. Create port - WE21 - ( EDI - Port is FILE)
    6.Maintain partner profile - WE20 ( Give all required details like message type,idoc type)
    IDOC Status - WE02 or WE05
    Status Record - WE47
    Change pointer - BD52
    Message type : WE81
    Assign message type to idoc WE82
    finally when you create invoice list and output type medium is 6 then output will go to other system as text file.
    Note : Please maintain message control in Partner profile.

Maybe you are looking for

  • Help! Senior citizen needs help in closing out a program?

    I am woefully ignorant about some things on my computer.  Trying to look at photos from a disc.  Ran it through virus program and it is clean.   Clicked on first photo which opened yesterday..but today it is not opening.  All I am seeing is that litt

  • Mail says ... What do I do?

    Today when I turned on my iMac G5 mail said Mail can not update your mailboxes because your home directry is full. You must free up space in your home folder before using Mail. Delete unneeded documents or move documents to another volume. Then it on

  • I must be going nuts...adding 2nd optical drive

    Hey folks, wondering if you can help me out: mdd g4 1.25 - superdrive working fine...want to add another into 2nd bay. followed instructions in manual, but I wanted to add the 2nd drive to the ata-66 bus. The problem is that I can't see where the ata

  • 64-bit driver fails to attach in Sol-9

    Hi, I have a driver which I can compile, install and use succesfully on sparc (Enterprise 450) in Sol 7 and 8 in both 32 and 64-bit kernels (it also runs in 2.6 and in i386 2.6, 7 and 8 32-bit modes but never mind). Sol-9 32-bit is also OK but with 6

  • 802.11N USB Adapters compatible with Leopard?

    I'm upgrading the home network, to N and I'm trying to find some N-USB adapters for my Duo iMac that only has G at the moment. Thanks for the help.