KNVV - KDGRP Is Missing

This field is missing from my customer master sales area screen. Can anyone tell me how to activate this? Thanks.

Go to OBD2, select the Account Group and execute.  There again double click on "Sales" tab.  You can now see the field "Customer Group" which would be selected for Hidden.  Change it to Req.Entry and save.
Now try to create a customer master with that Account Group.
thanks
G. Lakshmipathi

Similar Messages

  • How to add  customer group(KNVV-KDGRP)in the  standard report?

    Dear  All,
    My customer requirment is that  Customer group (KNVV-KDGRP)wise  should be run  in  FBL5N report AND   Customer group should be shown in  FBL3N report.
    how to add  customer group in the  standard report?
    thanking you,
    regards,
    Rupang shah

    Hi,
    This is what I did for FBL5N with a developer because additional fields configuration does include certain tables.
    BTE1650  available for FBL5N and add a new field into one of those tables as an append structure and then use a BTE to populate the field for FBL5N.
    Hope that this helps
    Kind regards

  • Improve performance on this Select (KNA1, KNB1, KNVV)

    Hello guys,
    I have a select as follows:
    SELECT KNA1~KUNNR
               KNA1~KTOKD
               KNA1~LAND1
               KNA1~NAME1
               KNA1~ORT01
               KNA1~PSTLZ
               KNA1~REGIO
               KNA1~STRAS
               KNVV~KDGRP
               KNB1~BUKRS
        INTO CORRESPONDING FIELDS OF TABLE itab
        FROM KNA1 AS KNA1
         LEFT OUTER JOIN KNB1 AS KNB1
           ON KNA1MANDT = KNB1MANDT AND
              KNA1KUNNR = KNB1KUNNR
         JOIN KNVV AS KNVV
           ON KNA1MANDT = KNVVMANDT AND
              KNA1KUNNR = KNVVKUNNR
        WHERE KNA1~KUNNR IN S_KUNNR
          AND KNA1~KTOKD IN S_KTOKD
          AND KNA1~LOEVM  = P_DELETE
          AND KNVV~VKORG  = P_VKORG
          AND KNVV~VTWEG  = P_VTWEG
          AND KNVV~SPART  = P_SPART.
    both ranges s_kunnr k_ktokd are mandatory on selection screen.
    any thoughts how to improve this??

    our basis team worked on this to enchance by adding indexes, but in vain
    Hi Dee,
        Indexes are not as straightforward as they seem. The typical approach is to use all the key fields in the table. But what if the user of the program does not fill in all the fields on the parameters/selection screen? In those cases, the select will not key off of those table fields, and consequently the full-key-field index will probably not help too much. You have to tune your index to how the program is usually run.... Ask if you can get index-creation authority.. and try differerent ones using ST05 as the measurement tool.
    edit: to echo what Rob Burbank said: ST05 will show you if the index is being used. Very handy.
       Also, dynamic selects may help as well. See: [Dynamic Select Statement.]
       If all else fails, try the RFC method... [https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/abap/performance%20tuning%20using%20rfc.pdf]
    I hope that this helps,
    God Bless,
    Dan Perecky
    Edited by: Daniel Perecky on May 27, 2009 12:07 AM

  • F4 help for Elementary Search Help in collective Search help

    Hi Gurus,
    I have created an elementary search help 'ZXXX' with fields Partner , KDGRP and KTEXT .For this searh help,  I have created a  database view for the selection method with tables BUT000 , KNVV and T151.Finally, added this elemenatry search help'ZXXX' to collective searh help BUPA.
    When I press f4 on BP , I could very well see the newly created seach help 'ZXXX' in transaction BP.However, the F4 on field KDGRP is missing. I thought the SAP internally determines F4 for  KDGRP based on the check table T151 in domain KDGRP but it is not happening. I did try to infulence the values in shlp-interface and shlp-fielddescr using search help exit but it does not work.
    Could you help me how do I acheive the F4 help on field KDGRP which is used in an elementary search help and further more in collective search help BUPA on transaction BP.
    <REMOVED BY MODERATOR - REQUEST OR OFFER POINTS ARE FORBIDDEN>
    cheers,
    Amber
    Edited by: Alvaro Tejada Galindo on Jan 4, 2010 3:29 PM

    Hi
    There might be some reasons for not getting the F4 value. One reason could be the complete AUTHORISATION for shopadmin given to the user.
    Please check the SHOPADMIN authorisations of the user.
    Hope this will be helpful
    Regards

  • Issue for retrive data form ITAB in SAP R/3

    Case:HOW CAN WE FETCH DATA FROM TRANSPARENT TABLE
    scenario:calculating net price for material on sales order
    (on the basis of material number,sales organization,distribution channel,division,sale to partY ,sales office)
    For this 5 prices are calculated :
    a)zmrp
    b)zlbj
    c)zmlb
    d)zdij
    e)mwst
    A bapi is developed through which all these data are fetched using joins on transparent and pooled tables.
    Bapi is properly working in Sap Environment.But when fetching data from non sap environment(.NET) only pooled tables are returning data.
    Transparent tables are returning blank data.
    And also if in query of transprent table if  in " where Clause " all parameters are hard codded then transparent table also return data in non sap envirnment.
    for eg...
    instead of writing ---
    select data from tranparent table where matnr= (matnr variable made in bapi entered by user) and vkorg=(sales org  variable made in bapi) ....same with all conditions
    if we write(returing data)----
    select data from tranparent table where matnr='5476665987' and vkorg='1400' ....same with all conditions
    BAPI Code is given below:
                                                                                    FUNCTION ZBAPI_BAR3.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(MATNR) TYPE  ZBAPI_IMPORT2-MATNR
    *"     VALUE(VKORG) TYPE  ZBAPI_IMPORT2-VKORG
    *"     VALUE(VTWEG) TYPE  ZBAPI_IMPORT2-VTWEG
    *"     VALUE(KUNNR) TYPE  ZBAPI_IMPORT2-KUNNR
    *"     VALUE(SPART) TYPE  ZBAPI_IMPORT2-SPART
    *"     VALUE(AUART) TYPE  ZBAPI_IMPORT2-AUART
    *"     VALUE(VKBUR) TYPE  ZBAPI_IMPORT2-VKBUR
    *"  EXPORTING
    *"     VALUE(RETURN) TYPE  BAPIRETURN
    *"  TABLES
    *"      ITAB STRUCTURE  ZBAPI_TABLE3
      DATA: LAND1  LIKE KNA1-LAND1  ,
            REGIO  LIKE KNA1-REGIO  ,
            WERKS  LIKE VBAP-WERKS  ,
           KNUMH  LIKE A004-KNUMH  ,
                   KNUMH LIKE ZBAPI_TABLE3-Knumh  ,
            KBETR   LIKE  COND_KONW-Kbetr ,
           LIKE ZBAPI_TABLE3-KBETR  ,
          KNUMH1(10) TYPE C ,
                KNUMH2(10) TYPE C ,
                KNUMH3(6) TYPE C ,
         KNUMH2 LIKE ZBAPI_TABLE3-KNUMH  ,
         KNUMH3 LIKE ZBAPI_TABLE3-KNUMH  ,
         KNUMV LIKE  ZBAPI_TABLE3-KNUMV  ,
            KDGRP  LIKE KNVV-KDGRP  ,
            TAXKD  LIKE KNVI-TAXKD  ,
            TAXM1  LIKE MLAN-TAXM1  ,
            ADRNR  LIKE TVBUR-ADRNR ,
            REGION LIKE ADRC-REGION ,
            DATE  TYPE A503-DATAB .
      SELECT SINGLE KDGRP FROM KNVV INTO KDGRP WHERE KUNNR  = KUNNR AND VKORG = VKORG AND VTWEG = VTWEG AND SPART = SPART   .
      SELECT SINGLE LAND1 REGIO  FROM KNA1 INTO (LAND1,REGIO)  WHERE KUNNR  = KUNNR .
      SELECT SINGLE WERKS FROM VBAP INNER JOIN VBAK ON VBAPVBELN = VBAKVBELN  INTO WERKS  WHERE AUART = AUART  .
      SELECT SINGLE TAXKD FROM KNVI INTO TAXKD WHERE KUNNR = KUNNR AND ALAND = LAND1 AND TATYP = 'MWST' .
      SELECT SINGLE TAXM1 FROM MLAN INTO TAXM1 WHERE MATNR = MATNR AND ALAND = LAND1  .
      SELECT SINGLE ADRNR FROM TVBUR INTO ADRNR WHERE VKBUR = VKBUR  .
      SELECT SINGLE REGION FROM ADRC INTO REGION WHERE ADDRNUMBER = ADRNR   .
      DATE = SY-DATUM .
      SELECT SINGLE KNUMH FROM A931 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'ZMRP' AND VKORG = VKORG AND VTWEG = VTWEG AND WERKS = '1410' AND KUNNR = KUNNR AND MATNR = MATNR AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE  .
    SELECT SINGLE KNUMH FROM A931 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'ZMRP' AND VKORG = '1400' AND VTWEG = '10' AND WERKS = '1410' AND KUNNR = '0000100163' AND MATNR = 'A10AN027PNSL' AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE  .
      SELECT SINGLE zkarigar FROM zkari INTO KNUMH1 WHERE erdat = '20070410' .
    SELECT SINGLE KNUMH FROM A004 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'ZMRP' AND VKORG = VKORG AND VTWEG = VTWEG AND MATNR = MATNR  AND DATAB LE DATE AND DATBI GE DATE  .
    *'0000280050'
    CLEAR KNUMH .
    CLEAR KBETR .
    SELECT SINGLE KNUMH FROM A503 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'MWST' AND ALAND = LAND1 AND WKREG = REGION AND REGIO = REGIO
    AND TAXK1 = TAXKD  AND TAXM1 = TAXM1 AND KFRST = SPACE  AND DATAB LE DATE AND DATBI GE DATE and knumh = '0000279708'.
    concatenate '0000' KNUMH into knumh1 .
    **KNUMH1 = KNUMH .
    **select single kbetr from konp into kbetr where knumh = knumh1 .
    **knumh3 = knumh1+4(6) .
    ***itab-kbetr = kbetr .
    **concatenate '0000' knumh3 into knumh2 .
    **write:/ knumh2 .
    ITAB-KNUMH1 =  KNUMH2 .
    ITAB-KNUMH1 = KNUMH1 .
      APPEND ITAB .
    *loop at itab .
    *write:/ itab-knumh1 .
    *endloop .
    CLEAR KNUMH .
    CLEAR KBETR .
      SELECT SINGLE KNUMH FROM A940 INTO KNUMH WHERE KAPPL = 'V' AND KSCHL = 'ZDIJ' AND VKORG = VKORG AND VTWEG = VTWEG AND KDGRP = KDGRP AND MATNR = MATNR AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE .
      SELECT SINGLE KNUMH FROM A931 INTO KNUMH WHERE KAPPL = 'V' AND KSCHL = 'ZDIJ' AND VKORG = VKORG AND VTWEG = VTWEG AND WERKS = WERKS AND KUNNR = KUNNR AND MATNR = MATNR AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE  .
    ITAB-KNUMH =  KNUMH.
    APPEND ITAB .
    CLEAR KNUMH .
    CLEAR KBETR .
    ITAB-KNUMH =  KNUMH .
    APPEND ITAB .
    COMMIT WORK AND WAIT.
    ENDFUNCTION.
    Thanks & Regrds
    Amrish

    I believe you posted in the wrong forum.
    This forum is dedicated to development and deployment of .Net applications that connect and interact with BusinessObjects Enterprise, BusinessObjects Edge, or Crystal Reports Server. This includes the development of applications using the BusinessObjects Enterprise, Report Application Server, Report Engine, and Web Services SDKs.
    Ludek

  • Problem :ALV:Deletion Flags not showing in output

    hi all !
    I have a alv program which displays customer data.there are three deletion flags columns in the output.
    First deletion flag will be: KNA1-LOEVM
    Second deletion flag will be: KNB1-LOEVM
    Third deletion flag will be: KNVV-LOEVM
    earlier all three were showing.but now no one is showing.i'm pasting my code here if any expert can have a look and find out the BUG.
    CODE STARTS----
    report zqsdcap_cust.
    INCLUDE DECLARATIONS
    include:
      ziabapcapph_macros.                   "Holcim Useful Macros
    TABLE DECLARATIONS
    tables:
      tvko,                                "Org. Unit: Sales Organizations
      t001,                                "Company codes
      kna1,                                "Customer Master
      knvv,                                "Customer master sales
      knvi,                                "Customer tax classificat'n
      knb1,                                "Customer master company code
         <<CR003-DEVK949538 start ins
      adr6.                                "SMTP numbers
         <<CR003-DEVK949538 end ins
    TYPE DECLARATIONS
    type-pools:
      slis.
    STRUCTURE DECLARATIONS
    Define structure for keep data in ALV list
    data: begin of gs_output_list,
            vkorg   like  knvv-vkorg,                "Sales organization
            ktokd   like  kna1-ktokd,                "Customer A/C grp
            kunnr   like  kna1-kunnr,                "Customer number
            vtweg   like  knvv-vtweg,                "Distribution channel
            name1   like  kna1-name1,                           "Name1
            name3   like  kna1-name3,                           "Name3
            name4   like  kna1-name4,                           "Name4
            stras   like  kna1-stras,                "Street
            cityc   like  kna1-cityc,                "City
            bezei1  like  t005h-bezei,               "Sales office
            land1   like  kna1-land1,                "Country
            regio   like  kna1-regio,                "Region
            bezei2  like  t005u-bezei,               "Region decription
            kdgrp   like  knvv-kdgrp,                "Customer group
            ktext   like  t151t-ktext,               "Cust grp name
            bzirk   like  knvv-bzirk,                "Sales district
            bztxt   like  t171t-bztxt,               "Description
            zterm   like  knvv-zterm,                "Payment term
            lzone   like  kna1-lzone,                "Transport zone
            vtext   like  tzont-vtext,               "Description
            erdat   like  kna1-erdat,                "Creation date
          end of gs_output_list.
    Internal table for customer tax data
    data: begin of gs_output_tax,
            vkorg  like  knvv-vkorg,                 "Sales organization
            kunnr  like  kna1-kunnr,                 "Customer number
            vtweg  like  knvv-vtweg,                 "Distribution channel
            name1  like  kna1-name1,                            "Name1
            name3  like  kna1-name3,                            "Name3
            name4  like  kna1-name4,                            "Name4
            ort01  like  kna1-ort01,                 "City
            stcd1  like  kna1-stcd1,                 "STD code
            spart  like  knvv-spart,                 "Division
            taxkd  like  knvi-taxkd,                 "Tax classific'n
            tatyp  like  knvi-tatyp,                 "Tax category
            vtext  like  tskdt-vtext,                "Tax description
          end of gs_output_tax.
    Internal table for HVL customer master
    data: begin of gs_output_hvl,
            kunnr  like  kna1-kunnr,                 "Customer number
            stceg  like  kna1-stceg,                 "VAT registration no
            telfx  like  kna1-telfx,                 "Fax number
            telf1  like  kna1-telf1,                 "First telephone number
            stras  like  kna1-stras,                 "House number and stret
            ort02  like  kna1-ort02,                 "District
            cityc  like  kna1-cityc,                 "City code
            bezei  like  t005h-bezei,                "City description
            regio  like  kna1-regio,                 "Region
            ort01  like  kna1-ort01,                 "City
            name2  like  kna1-name2,                            "Name2
            name1  like  kna1-name1,                            "Name1
            bzirk  like  knvv-bzirk,                 "Sales district
            spart  like  knvv-spart,                 "Division
            vtweg  like  knvv-vtweg,                 "Distribution channel
            vkorg  like  knvv-vkorg,                 "Sales organization
          end of gs_output_hvl.
    Internal table for customer database CRM
    data: begin of gs_output_crm,
            vkorg      like  knvv-vkorg,             "Sales organization
            vtweg      like  knvv-vtweg,             "Distribution channel
            bzirk      like  knvv-bzirk,             "Sales district
            kunnr      like  kna1-kunnr,             "Customer number
            name1      like  kna1-name1,                        "Name1
            name2      like  kna1-name2,                        "Name2
            stras      like  kna1-stras,             "House number street
            ort01      like  kna1-ort01,             "City
            ort02      like  kna1-ort02,             "District
            pstlz      like  kna1-pstlz,             "Postal code
            cityc      like  kna1-cityc,             "City code
            telf1      like  kna1-telf1,             "First telephone number
            telfx      like  kna1-telfx,             "Fax number
            vkbur      like  knvv-vkbur,             "Sales office
            regio      like  kna1-regio,             "Region
            vkgrp      like  knvv-vkgrp,             "Sales group
            kdgrp      like  knvv-kdgrp,             "Customer group
            kvgr3      like  knvv-kvgr3,             "Customer group 3
            altkn      like  knb1-altkn,             "Previous record number
            erdat      like  knvv-erdat,             "Creation date
            found_dat  like  zcrm_bp_ext-found_dat,  "Found date
          <<CR000-DEVK943142 start del
          versg      like  knvv-versg,             "Customer statistic grp
          bukrs      like  knb1-bukrs,             "Company code
          <<CR000-DEVK943142 end del
          end of gs_output_crm.
    Internal table for customer information
    data: begin of gs_output_info,
            kunnr           like  kna1-kunnr,        "Customer number
            vkorg           like  knvv-vkorg,        "Sales organization
            vtweg           like  knvv-vtweg,        "Distribution channel
            stcd2           like  kna1-stcd2,        "Tax code
            name1           like  kna1-name1,        "Name1
            name2           like  kna1-name2,        "Name2
          <<CR002-DEVK944835 start ins
            name3           like  kna1-name3,        "Name3
          <<CR002-DEVK944835 end ins
            stras           like  kna1-stras,        "House number street
            ort01           like  kna1-ort01,        "City
            ort02           like  kna1-ort02,        "District
            pstlz           like  kna1-pstlz,        "Postal code
            regio           like  kna1-regio,        "Region
            land1           like  kna1-land1,        "Country code
            cityc           like  kna1-cityc,        "City code
            telf1           like  kna1-telf1,        "First telephone number
            telfx           like  kna1-telfx,        "Fax number
          <<CR001-DEVK944239 start ins
            bzirk           like  knvv-bzirk,        "Sales District
            vkbur           like  knvv-vkbur,        "Sales Office
            kdgrp           like  knvv-kdgrp,        "Customer group
          <<CR001-DEVK944239 end ins
            vkgrp           like  knvv-vkgrp,        "Sales group
            kvgr3           like  knvv-kvgr3,        "Customer group 3
            versg           like  knvv-versg,        "Customer stat grp
            kdkg2           like  kna1-kdkg2,        "Customer condition gp2
            kdkg1           like  kna1-kdkg1,        "Customer condition gp1
          <<CR001-DEVK944239 start del
          kdgrp           like  knvv-kdgrp,        "Customer group
          <<CR001-DEVK944239 end del
            altkn           like  knb1-altkn,        "Previous record#
            erdat           like  knvv-erdat,        "Creation date
            note_text(200)  type  c,                 "<<CR003-DEVK949538 ins
            smtp_addr       like  adr6-smtp_addr,    "<<CR003-DEVK949538 ins
            loevm1          like  kna1-loevm,        "Deletion flag all
            loevm2          like  knb1-loevm,        "Deletion flag Cd
            loevm3          like  knvv-loevm,        "Deletion flag sal
          end of gs_output_info.
    ALV Grid Declaration
    data:
      gs_fieldcat             type  slis_fieldcat_alv,
      gs_layout               type  slis_layout_alv,
      gs_event                type  slis_t_event,
      gs_variant              like  disvariant,
      gs_sort_info            type  slis_sortinfo_alv,
      gs_exit_caused_by_user  type  slis_exit_by_user,
      gs_tabname              type  slis_tabname,
      gs_header               type  slis_entry.
    INTERNAL TABLE DECLARATIONS
    Define internal table for keep data in ALV list
    data:
      gt_output_list       like  table of gs_output_list,
      gt_output_tax        like  table of gs_output_tax,
      gt_output_hvl        like  table of gs_output_hvl,
      gt_output_crm        like  table of gs_output_crm,
      gt_output_info       like  table of gs_output_info,
    <<CR003-DEVK949538 start ins
      gv_text              like  tline occurs 0 with header line,
    <<CR003-DEVK949538 start ins
    ALV Grid Declaration
      gt_fieldcat           type  slis_t_fieldcat_alv,
      gt_list_top_of_page   type  slis_t_listheader,
      gt_list_top_of_page2  type  slis_t_listheader,
      gt_sort_info          type  slis_t_sortinfo_alv.
    VARIABLE DECLARATIONS
    data:
    ALV Grid Declaration
      gv_save,
      gv_exit_caused_by_caller,
      gv_repid         type  sy-repid,
      gv_user_command  type  slis_formname value 'USER_COMMAND',
      gv_top_of_page   type  slis_formname value 'TOP_OF_PAGE',
      gv_top_of_list   type  slis_formname value 'TOP_OF_LIST',
      gv_end_of_list   type  slis_formname value 'END_OF_LIST',
      lv_store         like  thead-tdname,           "<<CR003-DEVK949538 ins
      lv_id            like  thead-tdid,             "<<CR003-DEVK949538 ins
      lv_lines         type  i.                      "<<CR003-DEVK949538 ins
    SELECTION SCREEN DECLARATIONS
    Define selection-screen of query
    selection-screen: begin of block blk with frame title text-001.
    select-options:   s_vkorg  for   knvv-vkorg           "Sales org
                                     obligatory
                                     memory id vko,
                      s_bzirk  for   knvv-bzirk,          "Sales district
                      s_vtweg  for   knvv-vtweg,          "Dist channel
                      s_spart  for   knvv-spart           "Division
                                     default 'CM',
                      s_taxkd  for   knvi-taxkd,          "Tax classific'n
                      s_kunnr  for   kna1-kunnr,          "Customer number
                      s_regio  for   kna1-regio,          "Region
                      s_kdgrp  for   knvv-kdgrp,          "Customer group
                      s_vkgrp  for   knvv-vkgrp,          "Sales group
                      s_vkbur  for   knvv-vkbur,          "Sales office
                      s_lzone  for   kna1-lzone,          "Zone
                      s_erdat  for   kna1-erdat,          "Creation date
                      s_zuawa  for   knb1-zuawa,          "Key for sorting
                      s_ktokd  for   kna1-ktokd,          "Customer A/C grp
                      s_altkn  for   knb1-altkn,          "Previous rec no
                      s_bukrs  for   knb1-bukrs           "Company code
                                     obligatory
                                     memory id buk,
                     s_loevm1 for   kna1-loevm,          "Deletion flag all
                     s_loevm2 for   knb1-loevm,          "Deletion flag Cd
                     s_loevm3 for   knvv-loevm.          "Deletion flag sal
    selection-screen: end of block blk.
    selection-screen: begin of block b2 with frame title text-002.
    parameters:       pr_cust1  radiobutton group a1
                                default 'X'
                                user-command bkg,
                      pr_cust2  radiobutton group a1,
                      pr_cust3  radiobutton group a1,
                      pr_cust4  radiobutton group a1,
                      pr_cust5  radiobutton group a1.
    selection-screen: end of block b2.
    AT SELECTION-SCREEN ON S_VKORG
    at selection-screen on s_vkorg.
      select  vkorg
        into  tvko-vkorg
        from  tvko
       where  vkorg in s_vkorg.
      authorization check for sales org.
        authority-check object 'V_VBRK_VKO'
                            id 'VKORG' field tvko-vkorg
                            id 'ACTVT' field '03'.
        check sy-subrc ne 0.
        message e002(zgen) with 'No authorization for sales org.'
                                 tvko-vkorg.
      endselect.
    AT SELECTION-SCREEN ON S_BUKRS
    at selection-screen on s_bukrs.
      if pr_cust4 eq 'X' or
         pr_cust5 eq 'X'.
        select  bukrs
          into  t001-bukrs
          from  t001
         where  bukrs in s_bukrs.
        authorization check for plant and company code
          authority-check object 'A_S_WERK'
                              id 'BUKRS' field t001-bukrs
                              id 'WERKS' dummy.
          check sy-subrc ne 0.
          message e002(zgen) with 'No authorization for this company code.'
                                   t001-bukrs.
        endselect.
      endif.
    AT SELECTION-SCREEN OUTPUT
    at selection-screen output.
      loop at screen .
        if pr_cust1 eq 'X'.
          if screen-name = 'S_VTWEG-LOW'   or
             screen-name = 'S_VTWEG-HIGH'  or
             screen-name = 'S_SPART-LOW'   or
             screen-name = 'S_SPART-HIGH'  or
             screen-name = 'S_TAXKD-LOW'   or
             screen-name = 'S_TAXKD-HIGH'  or
             screen-name = 'S_BUKRS-LOW'   or
             screen-name = 'S_BUKRS-HIGH'  or
             screen-name = 'S_ERDAT-LOW'   or
             screen-name = 'S_ERDAT-HIGH'  or
             screen-name = 'S_ALTKN-LOW'   or
             screen-name = 'S_ALTKN-HIGH'  or
             screen-name = 'S_VKBUR-LOW'   or
             screen-name = 'S_VKBUR-HIGH'  or
             screen-name = 'S_LOEVM1-LOW'  or
             screen-name = 'S_LOEVM1-HIGH' or
             screen-name = 'S_LOEVM2-LOW'  or
             screen-name = 'S_LOEVM2-HIGH' or
             screen-name = 'S_LOEVM3-LOW'  or
             screen-name = 'S_LOEVM3-HIGH'.
            screen-input = 0.
          endif.
        elseif pr_cust2 eq 'X'.
          if screen-name = 'S_BZIRK-LOW'    or
             screen-name = 'S_BZIRK-HIGH'   or
             screen-name = 'S_KDGRP-LOW'    or
             screen-name = 'S_KDGRP-HIGH'   or
             screen-name = 'S_LZONE-LOW'    or
             screen-name = 'S_LZONE-HIGH'   or
             screen-name = 'S_KTOKD-LOW'    or
             screen-name = 'S_KTOKD-HIGH'   or
             screen-name = 'S_ERDAT-LOW'    or
             screen-name = 'S_ERDAT-HIGH'   or
             screen-name = 'S_KTOKD-LOW'    or
             screen-name = 'S_KTOKD-HIGH'   or
             screen-name = 'S_ALTKN-LOW'    or
             screen-name = 'S_ALTKN-HIGH'   or
             screen-name = 'S_VKBUR-LOW'    or
             screen-name = 'S_VKBUR-HIGH'   or
             screen-name = 'S_LOEVM1-LOW'   or
             screen-name = 'S_LOEVM1-HIGH'  or
             screen-name = 'S_LOEVM2-LOW'   or
             screen-name = 'S_LOEVM2-HIGH'  or
             screen-name = 'S_LOEVM3-LOW'   or
             screen-name = 'S_LOEVM3-HIGH'  or
             screen-name = 'S_BUKRS-LOW'    or
             screen-name = 'S_BUKRS-HIGH'   or
             screen-name = 'S_VKGRP-LOW'    or
             screen-name = 'S_VKGRP-HIGH'.
            screen-input = 0.
          endif.
        elseif pr_cust3 eq 'X'.
          if screen-name = 'S_BZIRK-LOW'   or
             screen-name = 'S_BZIRK-HIGH'  or
             screen-name = 'S_KDGRP-LOW'   or
             screen-name = 'S_KDGRP-HIGH'  or
             screen-name = 'S_LZONE-LOW'   or
             screen-name = 'S_LZONE-HIGH'  or
             screen-name = 'S_ERDAT-LOW'   or
             screen-name = 'S_ERDAT-HIGH'  or
             screen-name = 'S_KTOKD-LOW'   or
             screen-name = 'S_KTOKD-HIGH'  or
             screen-name = 'S_SPART-LOW'   or
             screen-name = 'S_SPART-HIGH'  or
             screen-name = 'S_TAXKD-LOW'   or
             screen-name = 'S_TAXKD-HIGH'  or
             screen-name = 'S_REGIO-LOW'   or
             screen-name = 'S_REGIO-HIGH'  or
             screen-name = 'S_ALTKN-LOW'   or
             screen-name = 'S_ALTKN-HIGH'  or
             screen-name = 'S_VKBUR-LOW'   or
             screen-name = 'S_VKBUR-HIGH'  or
             screen-name = 'S_LOEVM1-LOW'  or
             screen-name = 'S_LOEVM1-HIGH' or
             screen-name = 'S_LOEVM2-LOW'  or
             screen-name = 'S_LOEVM2-HIGH' or
             screen-name = 'S_LOEVM3-LOW'  or
             screen-name = 'S_LOEVM3-HIGH' or
             screen-name = 'S_BUKRS-LOW'   or
             screen-name = 'S_BUKRS-HIGH'  or
             screen-name = 'S_VKGRP-LOW'   or
             screen-name = 'S_VKGRP-HIGH'  or
             screen-name = 'S_VTWEG-LOW'   or
             screen-name = 'S_VTWEG-HIGH'.
            screen-input = 0.
          endif.
        elseif pr_cust4 eq 'X'.
          if screen-name = 'S_LZONE-LOW'  or
             screen-name = 'S_LZONE-HIGH' or
             screen-name = 'S_TAXKD-LOW'  or
             screen-name = 'S_TAXKD-HIGH' or
             screen-name = 'S_REGIO-LOW'  or
             screen-name = 'S_REGIO-HIGH' or
             screen-name = 'S_ZUAWA-LOW'  or
             screen-name = 'S_ZUAWA-HIGH'.
            screen-input = 0.
          endif.
        else.
          if screen-name = 'S_LZONE-LOW'   or
             screen-name = 'S_LZONE-HIGH'  or
             screen-name = 'S_TAXKD-LOW'   or
             screen-name = 'S_TAXKD-HIGH'.
            screen-input = 0.
          endif.
        endif.
        modify screen.
      endloop.
    INITIALIZATION
    initialization.
      perform deactivate_program using sy-cprog.
    START OF SELECTION
    start-of-selection.
    Customized function to get data from database table
      perform get_data.
    <<CR003-DEVK949538 start ins
      perform get_internal_note_text tables gt_output_info.
    <<CR003-DEVK949538 end ins
    Create sort of ALV list
      perform build_sort.
    Send data to ALV list to display
      if pr_cust1 eq 'X'.
        gs_tabname = text-003.
        gs_header  = text-004.
        perform write_alv_report tables gt_output_list
                                        gt_sort_info.
      elseif pr_cust2 eq 'X'.
        gs_tabname = text-005.
        gs_header  = text-006.
        perform write_alv_report tables gt_output_tax
                                        gt_sort_info.
      elseif pr_cust3 eq 'X'.
        gs_tabname = text-007.
        gs_header  = text-008.
        perform write_alv_report tables gt_output_hvl
                                        gt_sort_info.
      elseif pr_cust4 eq 'X'.
        gs_tabname = text-009.
        gs_header  = text-010.
        perform write_alv_report tables gt_output_crm
                                        gt_sort_info.
      else.
        gs_tabname = text-011.
        gs_header  = text-012.
        perform write_alv_report tables gt_output_info
                                        gt_sort_info .
      endif.
    FORM EVENTTAB_FIELD
    Fill Event tab, for ALV Grid Display
    form eventtab_field using gs_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   = gs_events.
      read table gs_events with key name = slis_ev_top_of_page
                               into ls_event.
      if sy-subrc = 0.
        move gv_top_of_page to ls_event-form.
        append ls_event     to gs_events.
      endif.
    endform.                    " eventtab_field
    FORM TOP_OF_PAGE
    Write at Top of Page of ALV grid
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = gt_list_top_of_page.
    endform.                    "top_of_page
    FORM COMMENT_BUILD
    Write header of ALV grid
    form comment_build using lt_top_of_page type slis_t_listheader
                             gs_header.
      data:
        lv_tdate(10),
        lv_fdate(10),
        ls_line   type  slis_listheader.
      clear: ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = gs_header.
      append ls_line to lt_top_of_page.
    endform.                    "comment_build
    FORM INIT_FIELDCAT
    Fill Field Catalog for ALV Grid
    form init_fieldcat using gs_tabname.
      refresh: gt_fieldcat.
    use this function to get the all fields in the structure.
      call function 'REUSE_ALV_FIELDCATALOG_MERGE'
           exporting
                i_program_name     = gv_repid
                i_internal_tabname = gs_tabname
                i_inclname         = gv_repid
           changing
                ct_fieldcat        = gt_fieldcat.
      if sy-subrc eq 0.
      clear mark for key field to set color of key column
        gs_fieldcat-key = ''.
        modify gt_fieldcat from gs_fieldcat transporting key
                          where fieldname ne space.
        read table gt_fieldcat with key fieldname = 'FOUND_DAT'
                                   into gs_fieldcat.
        gs_fieldcat-seltext_l = text-013.
        modify gt_fieldcat from gs_fieldcat
                   transporting seltext_l
                          where fieldname = 'FOUND_DAT'.
      <<CR003-DEVK949538 start ins
        read table gt_fieldcat with key fieldname = 'NOTE_TEXT'
                                   into gs_fieldcat.
        gs_fieldcat-seltext_l = text-014.
        modify gt_fieldcat from gs_fieldcat
                   transporting seltext_l
                          where fieldname = 'NOTE_TEXT'.
      <<CR003-DEVK949538 start ins
      endif.
    endform.                    "init_fieldcat
    FORM INIT_LAYOUT
    Layout initial
    form init_layout using gs_layout type slis_layout_alv.
      gs_layout-info_fieldname    = 'LINECOLOR'.
      gs_layout-colwidth_optimize = 'X'.
      gs_layout-zebra             = 'X'.
    endform.                    " init_layout
    FORM WRITE_ALV_REPORT
    form write_alv_report tables gt_output
                                 gt_sort_info.
    ALV Grid display
      clear: gv_repid,
             gv_save.
      gv_repid          = sy-repid.
      gs_variant-report = gv_repid.
      gv_save           = 'A'.
    Build fieldcatalog
      perform init_fieldcat using gs_tabname.
    Build list events
      perform eventtab_field using gs_event.
    Show in ALV Grid form
      perform init_layout using gs_layout.
    Build comments
      perform comment_build using gt_list_top_of_page[]
                                  gs_header.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_buffer_active         = ' '
                i_callback_program      = gv_repid
                is_layout               = gs_layout
                i_save                  = gv_save
                is_variant              = gs_variant
                it_events               = gs_event[]
                it_sort                 = gt_sort_info[]
                it_fieldcat             = gt_fieldcat[]
           importing
                e_exit_caused_by_caller = gv_exit_caused_by_caller
                es_exit_caused_by_user  = gs_exit_caused_by_user
           tables
                t_outtab                = gt_output
           exceptions
                program_error           = 1
                others                  = 2.
    endform.                    "write_alv_report
    FORM GET_DATA
    form get_data.
    Get customer list
      if pr_cust1 eq 'X'.
        select  knvv~vkorg
                kna1~ktokd
                kna1~kunnr
                knvv~vtweg
                kna1~name1
                kna1~name3
                kna1~name4
                kna1~stras
                kna1~cityc
                kna1~regio
                kna1~land1
                knvv~kdgrp
                knvv~bzirk
                knvv~zterm
                kna1~lzone
                kna1~erdat
          from  kna1 join  knvv
            on  kna1kunnr = knvvkunnr
          into  corresponding fields of table gt_output_list
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~bzirk in s_bzirk
           and  kna1~regio in s_regio
           and  knvv~kdgrp in s_kdgrp
           and  kna1~lzone in s_lzone
           and  kna1~erdat in s_erdat
           and  kna1~ktokd in s_ktokd.
        loop at gt_output_list into gs_output_list.
        Get City decsription
          perform get_city_description using gs_output_list-cityc
                                    changing gs_output_list-bezei1.
        Get Region description
          select single  bezei
                   from  t005u
                   into  gs_output_list-bezei2
                  where  bland = gs_output_list-regio
                    and  land1 = gs_output_list-land1"<<CR000-DEVK942345 ins
                    and  spras = sy-langu.
        Get customer group description
          select single  ktext
                   from  t151t
                   into  gs_output_list-ktext
                  where  kdgrp = gs_output_list-kdgrp
                    and  spras = sy-langu.
        Get sales district description
          select single  bztxt
                   from  t171t
                   into  gs_output_list-bztxt
                  where  bzirk = gs_output_list-bzirk
                    and  spras = sy-langu.
        Get zone decription
          select single  vtext
                   from  tzont
                   into  gs_output_list-vtext
                  where  zone1 = gs_output_list-lzone
                    and  spras = sy-langu.
          modify gt_output_list from gs_output_list index sy-tabix
                                             transporting bezei1
                                                          bezei2
                                                          ktext
                                                          bztxt
                                                          vtext.
          clear gs_output_list.
        endloop.
    Get customer tax data
      elseif pr_cust2 eq 'X'.
        select  kna1~kunnr
                kna1~name1
                kna1~name3
                kna1~name4
                kna1~ort01
                kna1~stcd1
                knvv~vkorg
                knvv~spart
                knvv~vtweg
                knvi~taxkd
                knvi~tatyp
          from  kna1 join  knvv
            on  kna1kunnr = knvvkunnr
                join  knvi
            on  kna1kunnr = knvikunnr
          into  corresponding fields of table gt_output_tax
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~vtweg in s_vtweg
           and  knvv~spart in s_spart
           and  kna1~regio in s_regio
           and  knvi~taxkd in s_taxkd.
      Get customer tax description
        loop at gt_output_tax into gs_output_tax.
          select single  vtext
                   from  tskdt
                   into  gs_output_tax-vtext
                  where  tatyp = gs_output_tax-tatyp
                    and  taxkd = gs_output_tax-taxkd
                    and  spras = sy-langu.
          if sy-subrc eq 0.
            modify gt_output_tax from gs_output_tax index sy-tabix
                                             transporting vtext.
            clear gs_output_tax.
          endif.
        endloop.
    Get customer HVL data
      elseif pr_cust3 eq 'X'.
        select  kna1~kunnr
                kna1~stceg
                kna1~telfx
                kna1~telf1
                kna1~stras
                kna1~ort02
                kna1~cityc
                kna1~regio
                kna1~ort01
                kna1~name2
                kna1~name1
                knvv~bzirk
                knvv~spart
                knvv~vtweg
                knvv~vkorg
          from  kna1 join  knvv
            on  kna1kunnr = knvvkunnr
          into  corresponding fields of table gt_output_hvl
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg.
        loop at gt_output_hvl into gs_output_hvl.
        Get city description.
          perform get_city_description using gs_output_hvl-cityc
                                    changing gs_output_hvl-bezei.
          if sy-subrc eq 0.
            modify gt_output_hvl from gs_output_hvl index sy-tabix
                                             transporting bezei.
            clear gs_output_hvl.
          endif.
        endloop.
    Get cust CRM data
      elseif pr_cust4 eq 'X'.
        select  kna1~kunnr
              knvv~versg                           "<<CR000-DEVK943142 del
                knvv~vkorg
                knvv~vtweg
                knvv~bzirk
                knvv~vkgrp
                knvv~kdgrp
                knvv~vkbur
                kna1~name1
                kna1~name2
                kna1~ort01
                kna1~pstlz
                kna1~regio
                kna1~stras
                kna1~telf1
                kna1~telfx
                kna1~ort02
                kna1~cityc
                knvv~kvgr3
                knb1~altkn
              knb1~bukrs                           "<<CR000-DEVK943142 del
                knvv~erdat
                zcrm_bp_ext~found_dat
          from  kna1 join knvv
            on  kna1kunnr = knvvkunnr
          join  knb1
            on  knvvkunnr = knb1kunnr
          join  zcrm_bp_ext
            on  knb1kunnr = zcrm_bp_extkunnr
          into  corresponding fields of table gt_output_crm
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~vtweg in s_vtweg
           and  knvv~spart in s_spart
           and  knvv~bzirk in s_bzirk
           and  knvv~kdgrp in s_kdgrp
           and  knvv~vkgrp in s_vkgrp
           and  knvv~vkbur in s_vkbur
           and  knvv~erdat in s_erdat
           and  kna1~ktokd in s_ktokd
           and  kna1~loevm in s_loevm1
           and  knb1~loevm in s_loevm2
           and  knvv~loevm in s_loevm3
           and  knb1~bukrs in s_bukrs
           and  knb1~altkn in s_altkn.
      else.
      Get customer information
       <<CR001-DEVK944342 start del
       select  kna1~kunnr
               knvv~vkorg
               knvv~vtweg
               kna1~stcd2
               kna1~name1
               kna1~name2
               kna1~ort01
               kna1~land1
               kna1~pstlz
               kna1~regio
               kna1~stras
               kna1~telf1
               kna1~telfx
               knvv~bzirk                          "<<CR001-DEVK944239 ins
               knvv~vkbur                          "<<CR001-DEVK944239 ins
               kna1~ort02
               kna1~cityc
               knvv~vkgrp
               knvv~kvgr3
               knvv~versg
               kna1~kdkg2
               kna1~kdkg1
               knvv~kdgrp
               knb1~altkn
               knvv~erdat
               kna1~loevm
               knb1~loevm
               knvv~loevm
       <<CR001-DEVK944342 end del
      <<CR001-DEVK944342 start ins
        select  kna1~kunnr
                knvv~vkorg
                knvv~vtweg
                kna1~stcd2
                kna1~name1
                kna1~name2
                kna1~name3                           "<<CR002-DEVK944835 ins
                kna1~stras
                kna1~ort01
                kna1~ort02
                kna1~pstlz
                kna1~regio
                kna1~land1
                kna1~cityc
                kna1~telf1
                kna1~telfx
                knvv~bzirk
                knvv~vkbur
                knvv~kdgrp
                knvv~vkgrp
                knvv~kvgr3
                knvv~versg
                kna1~kdkg2
                kna1~kdkg1
                knb1~altkn
                knvv~erdat
                kna1~loevm
                knb1~loevm
                knvv~loevm
      <<CR001-DEVK944342 end ins
          from  kna1 join knvv
            on  kna1kunnr = knvvkunnr
                join knb1
            on  kna1kunnr = knb1kunnr
        <<CR001-DEVK944252 start del
        into  corresponding fields of table gt_output_info
        <<CR001-DEVK944252 end del
        <<CR003-DEVK949538 start del
          into  table gt_output_info                "<<CR001-DEVK944342 ins
        <<CR003-DEVK949538 end del
        <<CR003-DEVK949538 start ins
          into  corresponding fields of table gt_output_info
        <<CR003-DEVK949538 end ins
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~vtweg in s_vtweg
           and  knvv~spart in s_spart
           and  knvv~bzirk in s_bzirk
           and  knvv~kdgrp in s_kdgrp
           and  knvv~vkgrp in s_vkgrp
           and  knvv~vkbur in s_vkbur
           and  knvv~erdat in s_erdat
           and  kna1~ktokd in s_ktokd
           and  kna1~regio in s_regio
         <<CR001-DEVK944252 start del
         and  kna1~loevm in s_loevm1
         and  knb1~loevm in s_loevm2
         and  knvv~loevm in s_loevm3
         <<CR001-DEVK944252 end del
         <<CR001-DEVK944252 start ins
           and ( kna1~loevm in s_loevm1
            or   knb1~loevm in s_loevm2
            or   knvv~loevm in s_loevm3 )
         <<CR001-DEVK944252 end ins
           and  knb1~zuawa in s_zuawa
           and  knb1~bukrs in s_bukrs
           and  knb1~altkn in s_altkn.
         <<CR003-DEVK949538 start ins
           loop at gt_output_info into gs_output_info.
          select single  adrnr
                   into  kna1-adrnr
                   from  kna1
                  where  kunnr = gs_output_info-kunnr.
          check sy-subrc eq 0.
          select single  smtp_addr
                   into  adr6-smtp_addr
                   from  adr6
                  where  addrnumber = kna1-adrnr.
          check sy-subrc eq 0.
          gs_output_info-smtp_addr = adr6-smtp_addr.
          modify gt_output_info from gs_output_info.
        endloop.
         <<CR003-DEVK949538 end ins
      endif.
    <<CR003-DEVK949538 start ins
      loop at gt_output_info into gs_output_info.
        lv_store = gs_output_info-loevm1.
      endloop.
    <<CR003-DEVK949538 end ins
    endform.
    FORM BUILD_SORT
    form build_sort.
      if pr_cust1 eq 'X' or
         pr_cust2 eq 'X'.
        clear gs_sort_info.
        gs_sort_info-fieldname = 'VKORG'.
        gs_sort_info-spos      = 1.
        gs_sort_info-up        = 'X'.
        append gs_sort_info to gt_sort_info.
      endif.
      clear gs_sort_info.
      gs_sort_info-fieldname = 'KUNNR'.
      gs_sor

    hi shivaji!
    thx for the reply.
    can u chk whether there is any problem with the queries or not.
    regards
    sachin

  • I need a code for VENDOR AGEING REPORT

    plz help me i am in urgent need of source code of
    VENDOR AGEING REPORT.
    if any body help me regarding this above report i will be
    great ful to him/her.
    bcoz deadline is today.
    i  need ur urgent help, i treid very much but i failed,
    so hope help from anybody there.

    REPORT  zvender_os NO STANDARD PAGE  HEADING
                                  LINE-SIZE 132
                                  LINE-COUNT 65.
    Tables
    TABLES: bsik,          "open items (A/C: Secondary Index for Customers)
            lfa1,          "customer master
            lfb1,
            rf140,        "temp stru (Work Fields for Corrence(SAPF140*))
            bsak,          "cleared items (A/c Secnd Index for Cust(Clrms))
            skat.
    constants and variables
    TYPE-POOLS: slis.
    DATA: fieldcat             TYPE slis_t_fieldcat_alv,
          fieldcat1             TYPE slis_t_fieldcat_alv,
          fieldcat_ln          TYPE slis_fieldcat_alv,
          layout_in            TYPE slis_layout_alv,
          layout_in1           TYPE slis_layout_alv,
          sortcat              TYPE slis_t_sortinfo_alv,
          sortcat1              TYPE slis_t_sortinfo_alv,
          sortcat_ln           LIKE LINE OF sortcat,
          eventcat1             TYPE slis_t_event,
          eventcat             TYPE slis_t_event,
          eventcat_ln          LIKE LINE OF eventcat,
          col_pos              TYPE i.
    DATA:  targ_month(2)         TYPE n,                        "0001
           targ_year(4)          TYPE n,                        "0001
           targ_mth_abs          TYPE p,                        "0001
           doc_month(2)          TYPE n,                        "0001
           doc_year(4)           TYPE n,                        "0001
           doc_mth_abs           TYPE p,                        "0001
           mth_result            TYPE p,                        "0001
           doc_days              TYPE p,
           targ_days             TYPE p,
           addl_days             TYPE p,
           ext_days              TYPE p,
           v_days(3)             TYPE c,
           v_kkber               LIKE knkk-kkber.
    DATA:
          BEGIN OF inrec OCCURS 1000,                           "0001
            lifnr    LIKE bsik-lifnr,
            belnr    LIKE bsik-belnr,
            gjahr    LIKE bsik-gjahr,
            bldat    LIKE bsik-bldat,
            xblnr    LIKE bsik-xblnr,
            blart    LIKE bsik-blart,
            sgtxt    LIKE bsik-sgtxt,
            shkzg    LIKE bsik-shkzg,
            dmbtr    LIKE bsik-dmbtr,
            zfbdt    LIKE bsik-zfbdt,
            zbd1t    LIKE bsik-zbd1t,
            zbd2t    LIKE bsik-zbd2t,
            zbd3t    LIKE bsik-zbd3t,
            zuonr    LIKE bsik-zuonr,
          END OF inrec.
    DATA:
          BEGIN OF inrect OCCURS 1000,                          "0001
            lifnr    LIKE bsik-lifnr,
            belnr    LIKE bsik-belnr,
            gjahr    LIKE bsik-gjahr,
            bldat    LIKE bsik-bldat,
            xblnr    LIKE bsik-xblnr,
            blart    LIKE bsik-blart,
            sgtxt    LIKE bsik-sgtxt,
            shkzg    LIKE bsik-shkzg,
            dmbtr    LIKE bsik-dmbtr,
            zfbdt    LIKE bsik-zfbdt,
            zbd1t    LIKE bsik-zbd1t,
            zbd2t    LIKE bsik-zbd2t,
            zbd3t    LIKE bsik-zbd3t,
            zuonr    LIKE bsik-zuonr,
          END OF inrect,
          BEGIN OF t_item OCCURS 1000,                          " 0001
            lifnr LIKE bsik-lifnr,
            belnr LIKE bsik-belnr,
            gjahr LIKE bsik-gjahr,
            bldat LIKE bsik-bldat,
            xblnr LIKE bsik-xblnr,
            blart LIKE bsik-blart,
            sgtxt LIKE bsik-sgtxt,
            zfbdt LIKE bsik-zfbdt,
            dmbtr LIKE bsik-dmbtr,
            days(3)  TYPE c,
            zuonr    LIKE bsik-zuonr,
          END OF t_item,
          t_line LIKE t_item OCCURS 1000 WITH HEADER LINE,      " 0001
          BEGIN OF itab OCCURS 1000,
            lifnr    LIKE lfa1-lifnr,
            total    LIKE bsik-dmbtr,
            zfuture  LIKE bsik-dmbtr,
            zcurrent LIKE bsik-dmbtr,
            crbal   LIKE bsik-dmbtr,
            30days   LIKE bsik-dmbtr,
            60days   LIKE bsik-dmbtr,
            90days   LIKE bsik-dmbtr,
            99days   LIKE bsik-dmbtr,
            120days  LIKE bsik-dmbtr,
            180days  LIKE bsik-dmbtr,
            365days  LIKE bsik-dmbtr,
            bzirk    LIKE knvv-bzirk,
            vkbur    LIKE knvv-vkbur,
            vwerk    LIKE knvv-vwerk,
            vkgrp    LIKE knvv-vkgrp,
            klimk    LIKE knkk-klimk,
            cashd    LIKE knkk-cashd,
            grupp    LIKE knkk-grupp,
            erdat    LIKE lfa1-erdat,
            name1    LIKE lfa1-name1,
            name2    LIKE lfa1-name2,
            stras    LIKE lfa1-stras,
            ort01    LIKE lfa1-ort01,
            telf1    LIKE lfa1-telf1,
            psort(10),
            sperr    LIKE lfa1-sperr,
            totsal   LIKE bsik-dmbtr,
            txt50    LIKE skat-txt50,
            gsber    LIKE bsik-gsber,
          END OF itab.
    DATA: sel_tab     TYPE TABLE OF rsparams WITH HEADER LINE,
          p_debit(1) TYPE c,
          p_credit(1) TYPE c.
    DATA: t_variant LIKE disvariant OCCURS 0 WITH HEADER LINE.
    parameters and select-options
    SELECTION-SCREEN BEGIN OF BLOCK blck0 WITH FRAME TITLE text-002.
    PARAMETERS: stida LIKE sy-datum DEFAULT sy-datum OBLIGATORY,
                p_bukrs LIKE t001-bukrs DEFAULT 'PIIL' MEMORY ID buk
    OBLIGATORY.
              P_BUKRS LIKE T001-BUKRS DEFAULT 'CC01' OBLIGATORY.  "0003
    SELECT-OPTIONS: s_lifnr   FOR bsik-lifnr ,
                   s_vkbur FOR knvv-vkbur,
                   s_vkgrp FOR knvv-vkgrp,
                   s_bzirk FOR knvv-bzirk,
                   s_konda FOR knvv-konda,
                   s_kdgrp FOR knvv-kdgrp NO-DISPLAY ,
                   s_kvgr2 FOR knvv-kvgr2 NO-DISPLAY ,
                   s_kkber FOR knkk-kkber NO-DISPLAY ,
                   s_grupp FOR knkk-grupp NO-DISPLAY ,
                   s_ctlpc FOR knkk-ctlpc,
                    s_akont FOR lfb1-akont,
                    s_gsber FOR bsik-gsber.
    PARAMETERS: p_future AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck0.
    SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-002.
    PARAMETERS: p_abs RADIOBUTTON GROUP zrad,
                p_due RADIOBUTTON GROUP zrad DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck1.
    *SELECTION-SCREEN BEGIN OF BLOCK blck2 WITH FRAME TITLE text-003.
    *PARAMETERS: c_run RADIOBUTTON GROUP zrac DEFAULT 'X',
               c_blk RADIOBUTTON GROUP zrac,
               c_all RADIOBUTTON GROUP zrac.
    *SELECTION-SCREEN END OF BLOCK blck2.
    *SELECTION-SCREEN BEGIN OF BLOCK blck3 WITH FRAME TITLE text-004.
    *PARAMETERS: p_debit AS CHECKBOX DEFAULT 'X' ,
               p_credit AS CHECKBOX DEFAULT 'X' NO-DISPLAY,
    *selection-screen end of block blck3.
    start-of-selection.
    START-OF-SELECTION.
    PERFORM BUILD_EVENTCAT.
      p_debit = 'X'.
      p_credit = 'X'.
      PERFORM get_customer_invoices.
    filter records based on selection criteria
      PERFORM filter_records.
    END-OF-SELECTION.
      PERFORM add_sort_field.
      PERFORM modify_field.
      PERFORM write_report.
    *&      Form  FILTER_RECORDS
          To collect all the required data from DB and store them in
          internal table.
    -->  p1        text
    <--  p2        text
    FORM filter_records.
    delete records based on selection criteria
      LOOP AT itab.
       SELECT vkbur vkgrp vwerk erdat konda kdgrp bzirk kvgr2
         INTO (itab-vkbur, itab-vkgrp, itab-vwerk, knvv-erdat,
               knvv-konda, knvv-kdgrp,itab-bzirk,knvv-kvgr2)
         FROM knvv WHERE lifnr =  itab-lifnr
                   ORDER BY erdat DESCENDING.
    AKS :- Not Required for PI
         CASE itab-vkbur.
           WHEN 'SA1'.
             itab-vkbur = 'SF25'.
           WHEN 'QLD1'.
             itab-vkbur = 'SF23'.
           WHEN 'WA1'.
             itab-vkbur = 'SF26'.
         ENDCASE.
    AKS.
         EXIT.
       ENDSELECT.
       IF itab-vkbur IN s_vkbur AND
          itab-vkgrp IN s_vkgrp AND
          knvv-konda IN s_konda AND
          knvv-kdgrp IN s_kdgrp AND
          itab-bzirk IN s_bzirk AND
          knvv-kvgr2 IN s_kvgr2.
       ELSE.
         DELETE itab.
         CONTINUE.
       ENDIF.
       SELECT SINGLE klimk grupp cashd
         INTO (itab-klimk, itab-grupp, itab-cashd)
         FROM knkk WHERE lifnr =  itab-lifnr
                   AND   kkber IN s_kkber
                   AND   ctlpc IN s_ctlpc
                   AND   grupp IN s_grupp.
       IF SY-SUBRC NE 0.
         DELETE ITAB.
         CONTINUE.
       ENDIF.
        SELECT SINGLE skat~txt50
             INTO (itab-txt50)
             FROM lfb1 INNER JOIN skat
             ON lfb1akont EQ skatsaknr
             WHERE lfb1~lifnr =  itab-lifnr
                       AND   lfb1~akont IN s_akont
                       AND   skat~spras EQ 'EN'.
        IF sy-subrc NE 0.
          DELETE itab.
          CONTINUE.
        ENDIF.
        SELECT SINGLE name1 name2 telf1 erdat stras ort01 sperr
             INTO (itab-name1, itab-name2, itab-telf1,
                     itab-erdat, itab-stras, itab-ort01, itab-sperr )
               FROM lfa1
               WHERE lifnr =  itab-lifnr
        IF sy-subrc NE 0 .
          DELETE itab.
          CONTINUE.
        ENDIF.
    AKS For Filteration of Customer base on Block Area.
       IF c_all NE 'X'.
         IF c_run EQ 'X' AND itab-sperr EQ 'X'.
           DELETE itab.
           CONTINUE.
         ELSE.
           IF c_blk EQ 'X' AND itab-sperr NE 'X'.
             DELETE itab.
             CONTINUE.
           ENDIF.
         ENDIF.
       ENDIF.
        MODIFY itab.
      ENDLOOP.
    ENDFORM.                               " FILTER_RECORDS
    *&      Form  GET_CUSTOMER_INVOICES
          text
    -->  p1        text
    <--  p2        text
    FORM get_customer_invoices.
      DATA:ztotcre  LIKE bsik-dmbtr.
      DATA:ztotsal  LIKE bsik-dmbtr.
      DATA: fsdate LIKE sy-datum.
      DATA: l_perio(4) TYPE c.
      MOVE stida             TO rf140-stida.
      MOVE rf140-stida+4(2)  TO targ_month.
      MOVE rf140-stida+0(4)  TO targ_year.
      MOVE rf140-stida+6(2)  TO targ_days.
      targ_mth_abs           =  ( targ_year * 12 ) + targ_month.
      CALL FUNCTION 'ZGET_PERIOD_FROM_DATE'
        EXPORTING
          i_date  = stida
        IMPORTING
          e_perio = l_perio.
      CONCATENATE l_perio '0401' INTO fsdate.
    select open items.
      IF p_due EQ 'X'.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt        " 0001
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsik INTO TABLE inrect
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
          AND   umskz NE 'T'
          AND   umskz NE 'F'
          AND   umskz NE 'R'
          AND   umskz NE 'P'
          AND   umskz NE 'J'
          AND umskz NE 'L'.
    LOOP AT INREC.
       IF INREC-SHKZG = 'H'.
         INREC-DMBTR  = INREC-DMBTR * -1.
       ENDIF.
       MOVE-CORRESPONDING INREC TO T_ITEM.                     " 0001
       PERFORM COLLECT_INVOICE USING   INREC-lifnr    INREC-DMBTR
                                       INREC-ZFBDT    INREC-ZBD1T
                                       INREC-ZBD2T    INREC-ZBD3T.
       APPEND T_ITEM.
       CLEAR T_ITEM.
    ENDLOOP.
        LOOP AT inrect.
          inrec-lifnr = inrect-lifnr.
          inrec-belnr    = inrect-belnr.
          inrec-gjahr    = inrect-gjahr.
          inrec-bldat    = inrect-bldat.
          inrec-xblnr    = inrect-xblnr.
          inrec-blart    = inrect-blart.
          inrec-sgtxt    = inrect-sgtxt.
          inrec-shkzg    = inrect-shkzg.
          inrec-dmbtr    = inrect-dmbtr.
          CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
            EXPORTING
              date      = inrect-zfbdt
              days      = inrect-zbd1t
              months    = 00
              signum    = '+'
              years     = 00
            IMPORTING
              calc_date = inrec-zfbdt.
          inrec-zbd1t    = inrect-zbd1t.
          inrec-zbd2t    = inrect-zbd2t.
          inrec-zbd3t    = inrect-zbd3t.
          inrec-zuonr    = inrect-zuonr.
          APPEND inrec.
          CLEAR inrec.
        ENDLOOP.
      ELSE.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt        " 0001
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsik INTO TABLE inrec
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
          AND   umskz NE 'T'
          AND   umskz NE 'F'
          AND   umskz NE 'R'
          AND   umskz NE 'P'
          AND   umskz NE 'J'
          AND umskz NE 'L'.
      ENDIF.
      SORT inrec BY lifnr shkzg zfbdt .
      LOOP AT inrec.
        AT NEW lifnr.
    For Customers Credit Balance Transaction to be display in Report
    End of Credit Balance
          ztotcre = 0.
          ztotsal = 0.
        ENDAT.
        IF inrec-shkzg = 'H'.
          inrec-dmbtr = inrec-dmbtr * -1.
          ztotcre = ztotcre + inrec-dmbtr.
        ELSE.
          IF inrec-blart = 'RV'.
            IF inrec-bldat GE fsdate.
              ztotsal = ztotsal + inrec-dmbtr.
            ENDIF.
          ENDIF.
          ztotcre = ztotcre +  inrec-dmbtr.
       endif.
          IF p_debit EQ 'X'.
            IF ztotcre > 0.
              MOVE-CORRESPONDING inrec TO t_item.               " 0001
              PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                          inrec-zfbdt    inrec-zbd1t
                                          inrec-zbd2t    inrec-zbd3t
                                          ztotsal.
              APPEND t_item.
              CLEAR t_item.
              ztotcre = 0.
              ztotsal = 0.
            ENDIF.
          ENDIF.
        ENDIF.
        IF p_credit EQ 'X'.
         AT END OF lifnr.
          IF ztotcre < 0.
            MOVE-CORRESPONDING inrec TO t_item.                 " 0001
            PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                        inrec-zfbdt       inrec-zbd1t
                                        inrec-zbd2t    inrec-zbd3t
                                        ztotsal.
            APPEND t_item.
            CLEAR t_item.
            ztotcre = 0.
            ztotsal = 0.
           APPEND t_item.
           CLEAR t_item.
          ENDIF.
         ENDAT.
        ENDIF.
      ENDLOOP.
    select cleared items
      IF p_due EQ 'X'.
        REFRESH inrect.  CLEAR inrect.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsak INTO TABLE inrect
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   augdt >  stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
        REFRESH inrec.  CLEAR inrec.
        LOOP AT inrect.
          inrec-lifnr = inrect-lifnr.
          inrec-belnr    = inrect-belnr.
          inrec-gjahr    = inrect-gjahr.
          inrec-bldat    = inrect-bldat.
          inrec-xblnr    = inrect-xblnr.
          inrec-blart    = inrect-blart.
          inrec-sgtxt    = inrect-sgtxt.
          inrec-shkzg    = inrect-shkzg.
          inrec-dmbtr    = inrect-dmbtr.
          CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
            EXPORTING
              date      = inrect-zfbdt
              days      = inrect-zbd1t
              months    = 00
              signum    = '+'
              years     = 00
            IMPORTING
              calc_date = inrec-zfbdt.
          inrec-zbd1t    = inrect-zbd1t.
          inrec-zbd2t    = inrect-zbd2t.
          inrec-zbd3t    = inrect-zbd3t.
          inrec-zuonr    = inrect-zuonr.
          APPEND inrec.
          CLEAR inrec.
        ENDLOOP.
      ELSE.
        REFRESH inrec.  CLEAR inrec.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsak INTO TABLE inrec
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   augdt >  stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
      ENDIF.
      SORT inrec BY lifnr shkzg zfbdt .
      LOOP AT inrec.
        AT NEW lifnr.
          ztotcre = 0.
          ztotsal = 0.
        ENDAT.
        IF inrec-shkzg = 'H'.
          inrec-dmbtr = inrec-dmbtr * -1.
          ztotcre = ztotcre + inrec-dmbtr.
        ELSE.
          IF inrec-blart = 'RV'.
            IF inrec-bldat GE fsdate.
              ztotsal = ztotsal + inrec-dmbtr.
            ENDIF.
          ENDIF.
          ztotcre = ztotcre +  inrec-dmbtr.
      endif.
          IF p_debit EQ 'X'.
            IF ztotcre > 0.
              MOVE-CORRESPONDING inrec TO t_item.               " 0001
              PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                          inrec-zfbdt    inrec-zbd1t
                                          inrec-zbd2t    inrec-zbd3t
                                          ztotsal.
              APPEND t_item.
              CLEAR t_item.
              ztotcre = 0.
              ztotsal = 0.
            ENDIF.
          ENDIF.
        ENDIF.
        IF p_credit EQ 'X'.
         AT END OF lifnr.
          IF ztotcre < 0.
            MOVE-CORRESPONDING inrec TO t_item.                 " 0001
            PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                        inrec-zfbdt    inrec-zbd1t
                                        inrec-zbd2t    inrec-zbd3t
                                        ztotsal.
            APPEND t_item.
            CLEAR t_item.
            ztotcre = 0.
            ztotsal = 0.
           APPEND t_item.
           CLEAR t_item.
          ENDIF.
         ENDAT.                                                " 0001
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " GET_CUSTOMER_INVOICES
    *&      Form  COLLECT_INVOICE
          text
         -->P_bsik_lifnr  text
         -->P_bsik_DMBTR  text
         -->P_bsik_ZFBDT  text
         -->P_bsik_ZFBDT1  text
         -->P_bsik_ZFBDT2  text
         -->P_bsik_ZFBDT3  text
    FORM collect_invoice USING    pp_lifnr
                                  pp_dmbtr
                                  pp_zfbdt
                                  pp_zbd1t
                                  pp_zbd2t
                                  pp_zbd3t
                                  pp_ztotsal.
      doc_month            =  pp_zfbdt+4(2).
      doc_year             =  pp_zfbdt+0(4).
      doc_mth_abs          =  ( doc_year * 12 ) + doc_month.
      mth_result           =  ( targ_mth_abs    - doc_mth_abs ).
    logic given by Mr. Ashok Singhvi
      doc_days             =  pp_zfbdt+6(2).
      addl_days            =  ( doc_days  -  targ_days ).
      IF addl_days <= 0.
        ADD 1 TO mth_result.
      ENDIF.
      IF NOT pp_zbd3t IS INITIAL.
        MOVE pp_zbd3t TO ext_days.
      ELSEIF NOT pp_zbd2t IS INITIAL.
        MOVE pp_zbd2t TO ext_days.
      ELSEIF NOT pp_zbd1t IS INITIAL.
        MOVE pp_zbd1t TO ext_days.
      ELSE.
        CLEAR ext_days.
      ENDIF.
    CHECK with Andrew whether this is working or not
    if extended payment terms exist, subtract no of mths from mth_result
    IF NOT ext_days IS INITIAL.
       CASE ext_days.
         WHEN 30.
           SUBTRACT 1 FROM mth_result.
         WHEN 60.
           SUBTRACT 2 FROM mth_result.
         WHEN 90.
           SUBTRACT 3 FROM mth_result.
         WHEN 120.
           SUBTRACT 4 FROM mth_result.
       ENDCASE.
    ENDIF.
    change to key date
      IF pp_dmbtr > 0.
        IF p_future = 'X'.                                      " 0001
          IF mth_result      <= 0.
            itab-zcurrent    =  pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days        = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days        = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ELSE.
          IF mth_result      < 0.
            itab-zfuture     =  pp_dmbtr.
            t_item-days       = 'FUT'.
          ELSEIF mth_result  = 0.
            itab-zcurrent = pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days       = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days       = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ENDIF.                                                  " 0001
        itab-crbal         = 0.
        itab-total         = pp_dmbtr.
      ELSE.
        IF p_future = 'X'.                                      " 0001
          IF mth_result      <= 0.
            itab-zcurrent    =  pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days        = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days        = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ELSE.
          IF mth_result      < 0.
            itab-zfuture     =  pp_dmbtr.
            t_item-days       = 'FUT'.
          ELSEIF mth_result  = 0.
            itab-zcurrent = pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days       = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days       = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ENDIF.                                                  " 0001
        itab-total         = pp_dmbtr.
        itab-crbal         = 0.
      ENDIF.
      itab-lifnr         = pp_lifnr.
      itab-totsal        = pp_ztotsal.
      COLLECT itab.
      CLEAR itab.
    ENDFORM.                    " COLLECT_INVOICE
    *&      Form  ADD_SORT_FIELD
          text
    -->  p1        text
    <--  p2        text
    FORM add_sort_field.
      DATA: l_amount(9)  TYPE n.
      IF p_future = 'X'.
        LOOP AT itab.
          l_amount = 999999999.
          IF     itab-365days > 0.
            l_amount = l_amount - itab-365days.
            CONCATENATE 'A' l_amount INTO itab-psort.
          ELSEIF     itab-180days > 0.
            l_amount = l_amount - itab-180days.
            CONCATENATE 'B' l_amount INTO itab-psort.
          ELSEIF     itab-120days > 0.
            l_amount = l_amount - itab-120days.
            CONCATENATE 'C' l_amount INTO itab-psort.
          ELSEIF     itab-99days > 0.
            l_amount = l_amount - itab-99days.
            CONCATENATE 'D' l_amount INTO itab-psort.
          ELSEIF itab-90days > 0.
            l_amount = l_amount - itab-90days.
            CONCATENATE 'E' l_amount INTO itab-psort.
          ELSEIF itab-60days > 0.
            l_amount = l_amount - itab-60days.
            CONCATENATE 'F' l_amount INTO itab-psort.
          ELSEIF itab-30days > 0.
            l_amount = l_amount - itab-30days.
            CONCATENATE 'G' l_amount INTO itab-psort.
          ELSEIF itab-zcurrent > 0.
            l_amount = l_amount - itab-zcurrent.
            CONCATENATE 'H' l_amount INTO itab-psort.
        ELSEif itab-zfuture > 0.
          L_AMOUNT = L_AMOUNT - ITAB-zfuture.
          CONCATENATE 'F' L_AMOUNT INTO ITAB-PSORT.
          ELSE.
            l_amount = ABS( itab-total ).
            CONCATENATE 'I' l_amount INTO itab-psort.
          ENDIF.
          MODIFY itab.
        ENDLOOP.
      ELSE.
        LOOP AT itab.
          l_amount = 999999999.
          IF     itab-365days > 0.
            l_amount = l_amount - itab-365days.
            CONCATENATE 'A' l_amount INTO itab-psort.
          ELSEIF     itab-180days > 0.
            l_amount = l_amount - itab-180days.
            CONCATENATE 'B' l_amount INTO itab-psort.
          ELSEIF     itab-120days > 0.
            l_amount = l_amount - itab-120days.
            CONCATENATE 'C' l_amount INTO itab-psort.
          ELSEIF     itab-99days > 0.
            l_amount = l_amount - itab-99days.
            CONCATENATE 'D' l_amount INTO itab-psort.
          ELSEIF itab-90days > 0.
            l_amount = l_amount - itab-90days.
            CONCATENATE 'E' l_amount INTO itab-psort.
          ELSEIF itab-60days > 0.
            l_amount = l_amount - itab-60days.
            CONCATENATE 'F' l_amount INTO itab-psort.
          ELSEIF itab-30days > 0.
            l_amount = l_amount - itab-30days.
            CONCATENATE 'G' l_amount INTO itab-psort.
          ELSEIF itab-zcurrent > 0.
            l_amount = l_amount - itab-zcurrent.
            CONCATENATE 'H' l_amount INTO itab-psort.
          ELSEIF itab-zfuture > 0.
            l_amount = l_amount - itab-zfuture.
            CONCATENATE 'I' l_amount INTO itab-psort.
          ELSE.
            l_amount = ABS( itab-total ).
            CONCATENATE 'J' l_amount INTO itab-psort.
          ENDIF.
          MODIFY itab.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " ADD_SORT_FIELD
    *&      Form  WRITE_REPORT
          text
    -->  p1        text
    <--  p2        text
    FORM write_report.
      PERFORM build_fieldcat.
      PERFORM build_sortcat.
      PERFORM build_eventcat.
      PERFORM build_layout.
      PERFORM start_list_viewer.
    ENDFORM.                    " WRITE_REPORT
    *&      Form  BUILD_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcat.
    lifnr
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-ref_tabname        = 'lfa1'.
      fieldcat_ln-fieldname          = 'LIFNR'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      APPEND fieldcat_ln TO fieldcat.
    Name1
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-ref_tabname        = 'lfa1'.
      fieldcat_ln-fieldname          = 'NAME1'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-seltext_l          = 'Name'.
      APPEND fieldcat_ln TO fieldcat.
    City Details
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-ref_tabname        = 'lfa1'.
      fieldcat_ln-fieldname          = 'ORT01'.
      fieldcat_ln-seltext_l          = 'City'.
      fieldcat_ln-col_pos            = col_pos.
      APPEND fieldcat_ln TO fieldcat.
    Credit Limit
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNKK'.
    fieldcat_ln-fieldname          = 'KLIMK'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    APPEND fieldcat_ln TO fieldcat.
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
    fieldcat_ln-fieldname          = 'CRBAL'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-do_sum             = 'X'.
    fieldcat_ln-seltext_l          = 'Cr. Bal.'.
    fieldcat_ln-seltext_m          = 'Cr. Bal.'.
    fieldcat_ln-seltext_s          = 'Cr. Bal.'.
    APPEND fieldcat_ln TO fieldcat.
    Total Amount
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-fieldname          = 'TOTAL'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-seltext_l          = 'Out.St.Amt.'.
      fieldcat_ln-seltext_m          = 'Out.St.Amt.'.
      fieldcat_ln-seltext_s          = 'Out.St.Amt.'.
      fieldcat_ln-ref_tabname        = 'zbsik'.
      fieldcat_ln-ref_fieldname      = 'ZDMBTR'.
      APPEND fieldcat_ln TO fieldcat.
      IF p_future NE 'X'.
    Future
        ADD 1 TO col_pos.
        CLEAR fieldcat_ln.
       fieldcat_ln-ref_tabname        = 'bsik'.
       fieldcat_ln-ref_fieldname      = 'DMBTR'.
        fieldcat_ln-fieldname          = 'ZFUTURE'.
        fieldcat_ln-col_pos            = col_pos.
        fieldcat_ln-do_sum             = 'X'.
        fieldcat_ln-hotspot            = 'X'.
        fieldcat_ln-emphasize = 'C41'.
        fieldcat_ln-seltext_l          = 'Future Due'.
        fieldcat_ln-seltext_m          = 'Future Due'.
        fieldcat_ln-seltext_s          = 'Future Due'.
        APPEND fieldcat_ln TO fieldcat.
      ENDIF.
    Current
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = 'ZCURRENT'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = 'Normal Due'.
      fieldcat_ln-seltext_m          = 'Normal Due'.
      fieldcat_ln-seltext_s          = 'Normal Due'.
      APPEND fieldcat_ln TO fieldcat.
    30 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '30DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '0-30 Days'.
      fieldcat_ln-seltext_m          = '0-30 Days'.
      fieldcat_ln-seltext_s          = '0-30 Days'.
      APPEND fieldcat_ln TO fieldcat.
    60 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '60DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '31-60 Days'.
      fieldcat_ln-seltext_m          = '31-60 Days'.
      fieldcat_ln-seltext_s          = '31-60 Days'.
      APPEND fieldcat_ln TO fieldcat.
    90 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '90DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '61-90 Days'.
      fieldcat_ln-seltext_m          = '61-90 Days'.
      fieldcat_ln-seltext_s          = '61-90 Days'.
      APPEND fieldcat_ln TO fieldcat.
    99 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '99DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '91-120 Days'.
      fieldcat_ln-seltext_m          = '91-120 Days'.
      fieldcat_ln-seltext_s          = '91-120 Days'.
      APPEND fieldcat_ln TO fieldcat.
    *120Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '120DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '121-180 Days'.
      fieldcat_ln-seltext_m          = '121-180 Days'.
      fieldcat_ln-seltext_s          = '121-180 Days'.
      APPEND fieldcat_ln TO fieldcat.
    *180 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '180DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '181-365 Days'.
      fieldcat_ln-seltext_m          = '181-365 Days'.
      fieldcat_ln-seltext_s          = '181-365 Days'.
      APPEND fieldcat_ln TO fieldcat.
    *365 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '365DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '>365 Days'.
      fieldcat_ln-seltext_m          = '>365 Days'.
      fieldcat_ln-seltext_s          = '>365 Days'.
      APPEND fieldcat_ln TO fieldcat.
    Last Payment Date
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNKK'.
    fieldcat_ln-fieldname          = 'CASHD'.
    fieldcat_ln-col_pos            = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Street Name
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'lfa1'.
    FIELDCAT_LN-FIELDNAME          = 'STRAS'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Telephone
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'lfa1'.
    FIELDCAT_LN-FIELDNAME          = 'TELF1'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Credit Group
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'KNKK'.
    FIELDCAT_LN-FIELDNAME          = 'GRUPP'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    *Sales District
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNVV'.
    fieldcat_ln-fieldname          = 'BZIRK'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-seltext_l          = 'S_Distt'.
    fieldcat_ln-seltext_m          = 'S_Distt'.
    fieldcat_ln-seltext_s          = 'S_Distt'.
    APPEND fieldcat_ln TO fieldcat.
    Sales Office
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNVV'.
    fieldcat_ln-fieldname          = 'VKBUR'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-seltext_l          = 'S_Off'.
    fieldcat_ln-seltext_m          = 'S_Off'.
    fieldcat_ln-seltext_s          = 'S_Off'.
    APPEND fieldcat_ln TO fieldcat.
    Cust Creat Date
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'lfa1'.
    FIELDCAT_LN-FIELDNAME          = 'ERDAT'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.

  • Vendor aging report ,customer aging report

    hi to all
    can u pls what is vendor aging report . what is the purpose of it . can u pls some theoritical description
    i will definitely reward points pls its urgent  pls tell if there r any standard reports exists for theese . pls give some custom reports on theese  with coding.
      and for customer aging also
    pls.................

    Hi,
    Check the Vendor against report code:
    REPORT zvender_os NO STANDARD PAGE HEADING
    LINE-SIZE 132
    LINE-COUNT 65.
    Tables
    TABLES: bsik, "open items (A/C: Secondary Index for Customers)
    lfa1, "customer master
    lfb1,
    rf140, "temp stru (Work Fields for Corrence(SAPF140*))
    bsak, "cleared items (A/c Secnd Index for Cust(Clrms))
    skat.
    constants and variables
    TYPE-POOLS: slis.
    DATA: fieldcat TYPE slis_t_fieldcat_alv,
    fieldcat1 TYPE slis_t_fieldcat_alv,
    fieldcat_ln TYPE slis_fieldcat_alv,
    layout_in TYPE slis_layout_alv,
    layout_in1 TYPE slis_layout_alv,
    sortcat TYPE slis_t_sortinfo_alv,
    sortcat1 TYPE slis_t_sortinfo_alv,
    sortcat_ln LIKE LINE OF sortcat,
    eventcat1 TYPE slis_t_event,
    eventcat TYPE slis_t_event,
    eventcat_ln LIKE LINE OF eventcat,
    col_pos TYPE i.
    DATA: targ_month(2) TYPE n, "0001
    targ_year(4) TYPE n, "0001
    targ_mth_abs TYPE p, "0001
    doc_month(2) TYPE n, "0001
    doc_year(4) TYPE n, "0001
    doc_mth_abs TYPE p, "0001
    mth_result TYPE p, "0001
    doc_days TYPE p,
    targ_days TYPE p,
    addl_days TYPE p,
    ext_days TYPE p,
    v_days(3) TYPE c,
    v_kkber LIKE knkk-kkber.
    DATA:
    BEGIN OF inrec OCCURS 1000, "0001
    lifnr LIKE bsik-lifnr,
    belnr LIKE bsik-belnr,
    gjahr LIKE bsik-gjahr,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    blart LIKE bsik-blart,
    sgtxt LIKE bsik-sgtxt,
    shkzg LIKE bsik-shkzg,
    dmbtr LIKE bsik-dmbtr,
    zfbdt LIKE bsik-zfbdt,
    zbd1t LIKE bsik-zbd1t,
    zbd2t LIKE bsik-zbd2t,
    zbd3t LIKE bsik-zbd3t,
    zuonr LIKE bsik-zuonr,
    END OF inrec.
    DATA:
    BEGIN OF inrect OCCURS 1000, "0001
    lifnr LIKE bsik-lifnr,
    belnr LIKE bsik-belnr,
    gjahr LIKE bsik-gjahr,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    blart LIKE bsik-blart,
    sgtxt LIKE bsik-sgtxt,
    shkzg LIKE bsik-shkzg,
    dmbtr LIKE bsik-dmbtr,
    zfbdt LIKE bsik-zfbdt,
    zbd1t LIKE bsik-zbd1t,
    zbd2t LIKE bsik-zbd2t,
    zbd3t LIKE bsik-zbd3t,
    zuonr LIKE bsik-zuonr,
    END OF inrect,
    BEGIN OF t_item OCCURS 1000, " 0001
    lifnr LIKE bsik-lifnr,
    belnr LIKE bsik-belnr,
    gjahr LIKE bsik-gjahr,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    blart LIKE bsik-blart,
    sgtxt LIKE bsik-sgtxt,
    zfbdt LIKE bsik-zfbdt,
    dmbtr LIKE bsik-dmbtr,
    days(3) TYPE c,
    zuonr LIKE bsik-zuonr,
    END OF t_item,
    t_line LIKE t_item OCCURS 1000 WITH HEADER LINE, " 0001
    BEGIN OF itab OCCURS 1000,
    lifnr LIKE lfa1-lifnr,
    total LIKE bsik-dmbtr,
    zfuture LIKE bsik-dmbtr,
    zcurrent LIKE bsik-dmbtr,
    crbal LIKE bsik-dmbtr,
    30days LIKE bsik-dmbtr,
    60days LIKE bsik-dmbtr,
    90days LIKE bsik-dmbtr,
    99days LIKE bsik-dmbtr,
    120days LIKE bsik-dmbtr,
    180days LIKE bsik-dmbtr,
    365days LIKE bsik-dmbtr,
    bzirk LIKE knvv-bzirk,
    vkbur LIKE knvv-vkbur,
    vwerk LIKE knvv-vwerk,
    vkgrp LIKE knvv-vkgrp,
    klimk LIKE knkk-klimk,
    cashd LIKE knkk-cashd,
    grupp LIKE knkk-grupp,
    erdat LIKE lfa1-erdat,
    name1 LIKE lfa1-name1,
    name2 LIKE lfa1-name2,
    stras LIKE lfa1-stras,
    ort01 LIKE lfa1-ort01,
    telf1 LIKE lfa1-telf1,
    psort(10),
    sperr LIKE lfa1-sperr,
    totsal LIKE bsik-dmbtr,
    txt50 LIKE skat-txt50,
    gsber LIKE bsik-gsber,
    END OF itab.
    DATA: sel_tab TYPE TABLE OF rsparams WITH HEADER LINE,
    p_debit(1) TYPE c,
    p_credit(1) TYPE c.
    DATA: t_variant LIKE disvariant OCCURS 0 WITH HEADER LINE.
    parameters and select-options
    SELECTION-SCREEN BEGIN OF BLOCK blck0 WITH FRAME TITLE text-002.
    PARAMETERS: stida LIKE sy-datum DEFAULT sy-datum OBLIGATORY,
    p_bukrs LIKE t001-bukrs DEFAULT 'PIIL' MEMORY ID buk
    OBLIGATORY.
    P_BUKRS LIKE T001-BUKRS DEFAULT 'CC01' OBLIGATORY. "0003
    SELECT-OPTIONS: s_lifnr FOR bsik-lifnr ,
    s_vkbur FOR knvv-vkbur,
    s_vkgrp FOR knvv-vkgrp,
    s_bzirk FOR knvv-bzirk,
    s_konda FOR knvv-konda,
    s_kdgrp FOR knvv-kdgrp NO-DISPLAY ,
    s_kvgr2 FOR knvv-kvgr2 NO-DISPLAY ,
    s_kkber FOR knkk-kkber NO-DISPLAY ,
    s_grupp FOR knkk-grupp NO-DISPLAY ,
    s_ctlpc FOR knkk-ctlpc,
    s_akont FOR lfb1-akont,
    s_gsber FOR bsik-gsber.
    PARAMETERS: p_future AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck0.
    SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-002.
    PARAMETERS: p_abs RADIOBUTTON GROUP zrad,
    p_due RADIOBUTTON GROUP zrad DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck1.
    *SELECTION-SCREEN BEGIN OF BLOCK blck2 WITH FRAME TITLE text-003.
    *PARAMETERS: c_run RADIOBUTTON GROUP zrac DEFAULT 'X',
    c_blk RADIOBUTTON GROUP zrac,
    c_all RADIOBUTTON GROUP zrac.
    *SELECTION-SCREEN END OF BLOCK blck2.
    *SELECTION-SCREEN BEGIN OF BLOCK blck3 WITH FRAME TITLE text-004.
    *PARAMETERS: p_debit AS CHECKBOX DEFAULT 'X' ,
    p_credit AS CHECKBOX DEFAULT 'X' NO-DISPLAY,
    *selection-screen end of block blck3.
    start-of-selection.
    START-OF-SELECTION.
    PERFORM BUILD_EVENTCAT.
    p_debit = 'X'.
    p_credit = 'X'.
    PERFORM get_customer_invoices.
    filter records based on selection criteria
    PERFORM filter_records.
    END-OF-SELECTION.
    PERFORM add_sort_field.
    PERFORM modify_field.
    PERFORM write_report.
    *& Form FILTER_RECORDS
    To collect all the required data from DB and store them in
    internal table.
    --> p1 text
    <-- p2 text
    FORM filter_records.
    delete records based on selection criteria
    LOOP AT itab.
    SELECT vkbur vkgrp vwerk erdat konda kdgrp bzirk kvgr2
    INTO (itab-vkbur, itab-vkgrp, itab-vwerk, knvv-erdat,
    knvv-konda, knvv-kdgrp,itab-bzirk,knvv-kvgr2)
    FROM knvv WHERE lifnr = itab-lifnr
    ORDER BY erdat DESCENDING.
    AKS :- Not Required for PI
    CASE itab-vkbur.
    WHEN 'SA1'.
    itab-vkbur = 'SF25'.
    WHEN 'QLD1'.
    itab-vkbur = 'SF23'.
    WHEN 'WA1'.
    itab-vkbur = 'SF26'.
    ENDCASE.
    AKS.
    EXIT.
    ENDSELECT.
    IF itab-vkbur IN s_vkbur AND
    itab-vkgrp IN s_vkgrp AND
    knvv-konda IN s_konda AND
    knvv-kdgrp IN s_kdgrp AND
    itab-bzirk IN s_bzirk AND
    knvv-kvgr2 IN s_kvgr2.
    ELSE.
    DELETE itab.
    CONTINUE.
    ENDIF.
    SELECT SINGLE klimk grupp cashd
    INTO (itab-klimk, itab-grupp, itab-cashd)
    FROM knkk WHERE lifnr = itab-lifnr
    AND kkber IN s_kkber
    AND ctlpc IN s_ctlpc
    AND grupp IN s_grupp.
    IF SY-SUBRC NE 0.
    DELETE ITAB.
    CONTINUE.
    ENDIF.
    SELECT SINGLE skat~txt50
    INTO (itab-txt50)
    FROM lfb1 INNER JOIN skat
    ON lfb1akont EQ skatsaknr
    WHERE lfb1~lifnr = itab-lifnr
    AND lfb1~akont IN s_akont
    AND skat~spras EQ 'EN'.
    IF sy-subrc NE 0.
    DELETE itab.
    CONTINUE.
    ENDIF.
    SELECT SINGLE name1 name2 telf1 erdat stras ort01 sperr
    INTO (itab-name1, itab-name2, itab-telf1,
    itab-erdat, itab-stras, itab-ort01, itab-sperr )
    FROM lfa1
    WHERE lifnr = itab-lifnr
    IF sy-subrc NE 0 .
    DELETE itab.
    CONTINUE.
    ENDIF.
    AKS For Filteration of Customer base on Block Area.
    IF c_all NE 'X'.
    IF c_run EQ 'X' AND itab-sperr EQ 'X'.
    DELETE itab.
    CONTINUE.
    ELSE.
    IF c_blk EQ 'X' AND itab-sperr NE 'X'.
    DELETE itab.
    CONTINUE.
    ENDIF.
    ENDIF.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    ENDFORM. " FILTER_RECORDS
    *& Form GET_CUSTOMER_INVOICES
    text
    --> p1 text
    <-- p2 text
    FORM get_customer_invoices.
    DATA:ztotcre LIKE bsik-dmbtr.
    DATA:ztotsal LIKE bsik-dmbtr.
    DATA: fsdate LIKE sy-datum.
    DATA: l_perio(4) TYPE c.
    MOVE stida TO rf140-stida.
    MOVE rf140-stida+4(2) TO targ_month.
    MOVE rf140-stida+0(4) TO targ_year.
    MOVE rf140-stida+6(2) TO targ_days.
    targ_mth_abs = ( targ_year * 12 ) + targ_month.
    CALL FUNCTION 'ZGET_PERIOD_FROM_DATE'
    EXPORTING
    i_date = stida
    IMPORTING
    e_perio = l_perio.
    CONCATENATE l_perio '0401' INTO fsdate.
    select open items.
    IF p_due EQ 'X'.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt " 0001
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsik INTO TABLE inrect
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    AND umskz NE 'T'
    AND umskz NE 'F'
    AND umskz NE 'R'
    AND umskz NE 'P'
    AND umskz NE 'J'
    AND umskz NE 'L'.
    LOOP AT INREC.
    IF INREC-SHKZG = 'H'.
    INREC-DMBTR = INREC-DMBTR * -1.
    ENDIF.
    MOVE-CORRESPONDING INREC TO T_ITEM. " 0001
    PERFORM COLLECT_INVOICE USING INREC-lifnr INREC-DMBTR
    INREC-ZFBDT INREC-ZBD1T
    INREC-ZBD2T INREC-ZBD3T.
    APPEND T_ITEM.
    CLEAR T_ITEM.
    ENDLOOP.
    LOOP AT inrect.
    inrec-lifnr = inrect-lifnr.
    inrec-belnr = inrect-belnr.
    inrec-gjahr = inrect-gjahr.
    inrec-bldat = inrect-bldat.
    inrec-xblnr = inrect-xblnr.
    inrec-blart = inrect-blart.
    inrec-sgtxt = inrect-sgtxt.
    inrec-shkzg = inrect-shkzg.
    inrec-dmbtr = inrect-dmbtr.
    CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
    EXPORTING
    date = inrect-zfbdt
    days = inrect-zbd1t
    months = 00
    signum = '+'
    years = 00
    IMPORTING
    calc_date = inrec-zfbdt.
    inrec-zbd1t = inrect-zbd1t.
    inrec-zbd2t = inrect-zbd2t.
    inrec-zbd3t = inrect-zbd3t.
    inrec-zuonr = inrect-zuonr.
    APPEND inrec.
    CLEAR inrec.
    ENDLOOP.
    ELSE.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt " 0001
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsik INTO TABLE inrec
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    AND umskz NE 'T'
    AND umskz NE 'F'
    AND umskz NE 'R'
    AND umskz NE 'P'
    AND umskz NE 'J'
    AND umskz NE 'L'.
    ENDIF.
    SORT inrec BY lifnr shkzg zfbdt .
    LOOP AT inrec.
    AT NEW lifnr.
    For Customers Credit Balance Transaction to be display in Report
    End of Credit Balance
    ztotcre = 0.
    ztotsal = 0.
    ENDAT.
    IF inrec-shkzg = 'H'.
    inrec-dmbtr = inrec-dmbtr * -1.
    ztotcre = ztotcre + inrec-dmbtr.
    ELSE.
    IF inrec-blart = 'RV'.
    IF inrec-bldat GE fsdate.
    ztotsal = ztotsal + inrec-dmbtr.
    ENDIF.
    ENDIF.
    ztotcre = ztotcre + inrec-dmbtr.
    endif.
    IF p_debit EQ 'X'.
    IF ztotcre > 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    ENDIF.
    ENDIF.
    ENDIF.
    IF p_credit EQ 'X'.
    AT END OF lifnr.
    IF ztotcre < 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    APPEND t_item.
    CLEAR t_item.
    ENDIF.
    ENDAT.
    ENDIF.
    ENDLOOP.
    select cleared items
    IF p_due EQ 'X'.
    REFRESH inrect. CLEAR inrect.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsak INTO TABLE inrect
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND augdt > stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    REFRESH inrec. CLEAR inrec.
    LOOP AT inrect.
    inrec-lifnr = inrect-lifnr.
    inrec-belnr = inrect-belnr.
    inrec-gjahr = inrect-gjahr.
    inrec-bldat = inrect-bldat.
    inrec-xblnr = inrect-xblnr.
    inrec-blart = inrect-blart.
    inrec-sgtxt = inrect-sgtxt.
    inrec-shkzg = inrect-shkzg.
    inrec-dmbtr = inrect-dmbtr.
    CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
    EXPORTING
    date = inrect-zfbdt
    days = inrect-zbd1t
    months = 00
    signum = '+'
    years = 00
    IMPORTING
    calc_date = inrec-zfbdt.
    inrec-zbd1t = inrect-zbd1t.
    inrec-zbd2t = inrect-zbd2t.
    inrec-zbd3t = inrect-zbd3t.
    inrec-zuonr = inrect-zuonr.
    APPEND inrec.
    CLEAR inrec.
    ENDLOOP.
    ELSE.
    REFRESH inrec. CLEAR inrec.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsak INTO TABLE inrec
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND augdt > stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    ENDIF.
    SORT inrec BY lifnr shkzg zfbdt .
    LOOP AT inrec.
    AT NEW lifnr.
    ztotcre = 0.
    ztotsal = 0.
    ENDAT.
    IF inrec-shkzg = 'H'.
    inrec-dmbtr = inrec-dmbtr * -1.
    ztotcre = ztotcre + inrec-dmbtr.
    ELSE.
    IF inrec-blart = 'RV'.
    IF inrec-bldat GE fsdate.
    ztotsal = ztotsal + inrec-dmbtr.
    ENDIF.
    ENDIF.
    ztotcre = ztotcre + inrec-dmbtr.
    endif.
    IF p_debit EQ 'X'.
    IF ztotcre > 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    ENDIF.
    ENDIF.
    ENDIF.
    IF p_credit EQ 'X'.
    AT END OF lifnr.
    IF ztotcre < 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    APPEND t_item.
    CLEAR t_item.
    ENDIF.
    ENDAT. " 0001
    ENDIF.
    ENDLOOP.
    ENDFORM. " GET_CUSTOMER_INVOICES
    *& Form COLLECT_INVOICE
    text
    -->P_bsik_lifnr text
    -->P_bsik_DMBTR text
    -->P_bsik_ZFBDT text
    -->P_bsik_ZFBDT1 text
    -->P_bsik_ZFBDT2 text
    -->P_bsik_ZFBDT3 text
    FORM collect_invoice USING pp_lifnr
    pp_dmbtr
    pp_zfbdt
    pp_zbd1t
    pp_zbd2t
    pp_zbd3t
    pp_ztotsal.
    doc_month = pp_zfbdt+4(2).
    doc_year = pp_zfbdt+0(4).
    doc_mth_abs = ( doc_year * 12 ) + doc_month.
    mth_result = ( targ_mth_abs - doc_mth_abs ).
    logic given by Mr. Ashok Singhvi
    doc_days = pp_zfbdt+6(2).
    addl_days = ( doc_days - targ_days ).
    IF addl_days <= 0.
    ADD 1 TO mth_result.
    ENDIF.
    IF NOT pp_zbd3t IS INITIAL.
    MOVE pp_zbd3t TO ext_days.
    ELSEIF NOT pp_zbd2t IS INITIAL.
    MOVE pp_zbd2t TO ext_days.
    ELSEIF NOT pp_zbd1t IS INITIAL.
    MOVE pp_zbd1t TO ext_days.
    ELSE.
    CLEAR ext_days.
    ENDIF.
    CHECK with Andrew whether this is working or not
    if extended payment terms exist, subtract no of mths from mth_result
    IF NOT ext_days IS INITIAL.
    CASE ext_days.
    WHEN 30.
    SUBTRACT 1 FROM mth_result.
    WHEN 60.
    SUBTRACT 2 FROM mth_result.
    WHEN 90.
    SUBTRACT 3 FROM mth_result.
    WHEN 120.
    SUBTRACT 4 FROM mth_result.
    ENDCASE.
    ENDIF.
    change to key date
    IF pp_dmbtr > 0.
    IF p_future = 'X'. " 0001
    IF mth_result <= 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ELSE.
    IF mth_result < 0.
    itab-zfuture = pp_dmbtr.
    t_item-days = 'FUT'.
    ELSEIF mth_result = 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ENDIF. " 0001
    itab-crbal = 0.
    itab-total = pp_dmbtr.
    ELSE.
    IF p_future = 'X'. " 0001
    IF mth_result <= 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ELSE.
    IF mth_result < 0.
    itab-zfuture = pp_dmbtr.
    t_item-days = 'FUT'.
    ELSEIF mth_result = 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ENDIF. " 0001
    itab-total = pp_dmbtr.
    itab-crbal = 0.
    ENDIF.
    itab-lifnr = pp_lifnr.
    itab-totsal = pp_ztotsal.
    COLLECT itab.
    CLEAR itab.
    ENDFORM. " COLLECT_INVOICE
    *& Form ADD_SORT_FIELD
    text
    --> p1 text
    <-- p2 text
    FORM add_sort_field.
    DATA: l_amount(9) TYPE n.
    IF p_future = 'X'.
    LOOP AT itab.
    l_amount = 999999999.
    IF itab-365days > 0.
    l_amount = l_amount - itab-365days.
    CONCATENATE 'A' l_amount INTO itab-psort.
    ELSEIF itab-180days > 0.
    l_amount = l_amount - itab-180days.
    CONCATENATE 'B' l_amount INTO itab-psort.
    ELSEIF itab-120days > 0.
    l_amount = l_amount - itab-120days.
    CONCATENATE 'C' l_amount INTO itab-psort.
    ELSEIF itab-99days > 0.
    l_amount = l_amount - itab-99days.
    CONCATENATE 'D' l_amount INTO itab-psort.
    ELSEIF itab-90days > 0.
    l_amount = l_amount - itab-90days.
    CONCATENATE 'E' l_amount INTO itab-psort.
    ELSEIF itab-60days > 0.
    l_amount = l_amount - itab-60days.
    CONCATENATE 'F' l_amount INTO itab-psort.
    ELSEIF itab-30days > 0.
    l_amount = l_amount - itab-30days.
    CONCATENATE 'G' l_amount INTO itab-psort.
    ELSEIF itab-zcurrent > 0.
    l_amount = l_amount - itab-zcurrent.
    CONCATENATE 'H' l_amount INTO itab-psort.
    ELSEif itab-zfuture > 0.
    L_AMOUNT = L_AMOUNT - ITAB-zfuture.
    CONCATENATE 'F' L_AMOUNT INTO ITAB-PSORT.
    ELSE.
    l_amount = ABS( itab-total ).
    CONCATENATE 'I' l_amount INTO itab-psort.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    ELSE.
    LOOP AT itab.
    l_amount = 999999999.
    IF itab-365days > 0.
    l_amount = l_amount - itab-365days.
    CONCATENATE 'A' l_amount INTO itab-psort.
    ELSEIF itab-180days > 0.
    l_amount = l_amount - itab-180days.
    CONCATENATE 'B' l_amount INTO itab-psort.
    ELSEIF itab-120days > 0.
    l_amount = l_amount - itab-120days.
    CONCATENATE 'C' l_amount INTO itab-psort.
    ELSEIF itab-99days > 0.
    l_amount = l_amount - itab-99days.
    CONCATENATE 'D' l_amount INTO itab-psort.
    ELSEIF itab-90days > 0.
    l_amount = l_amount - itab-90days.
    CONCATENATE 'E' l_amount INTO itab-psort.
    ELSEIF itab-60days > 0.
    l_amount = l_amount - itab-60days.
    CONCATENATE 'F' l_amount INTO itab-psort.
    ELSEIF itab-30days > 0.
    l_amount = l_amount - itab-30days.
    CONCATENATE 'G' l_amount INTO itab-psort.
    ELSEIF itab-zcurrent > 0.
    l_amount = l_amount - itab-zcurrent.
    CONCATENATE 'H' l_amount INTO itab-psort.
    ELSEIF itab-zfuture > 0.
    l_amount = l_amount - itab-zfuture.
    CONCATENATE 'I' l_amount INTO itab-psort.
    ELSE.
    l_amount = ABS( itab-total ).
    CONCATENATE 'J' l_amount INTO itab-psort.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    ENDIF.
    ENDFORM. " ADD_SORT_FIELD
    *& Form WRITE_REPORT
    text
    --> p1 text
    <-- p2 text
    FORM write_report.
    PERFORM build_fieldcat.
    PERFORM build_sortcat.
    PERFORM build_eventcat.
    PERFORM build_layout.
    PERFORM start_list_viewer.
    ENDFORM. " WRITE_REPORT
    *& Form BUILD_FIELDCAT
    text
    --> p1 text
    <-- p2 text
    FORM build_fieldcat.
    lifnr
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'lfa1'.
    fieldcat_ln-fieldname = 'LIFNR'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    APPEND fieldcat_ln TO fieldcat.
    Name1
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'lfa1'.
    fieldcat_ln-fieldname = 'NAME1'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-seltext_l = 'Name'.
    APPEND fieldcat_ln TO fieldcat.
    City Details
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'lfa1'.
    fieldcat_ln-fieldname = 'ORT01'.
    fieldcat_ln-seltext_l = 'City'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Credit Limit
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNKK'.
    fieldcat_ln-fieldname = 'KLIMK'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    APPEND fieldcat_ln TO fieldcat.
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'CRBAL'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-seltext_l = 'Cr. Bal.'.
    fieldcat_ln-seltext_m = 'Cr. Bal.'.
    fieldcat_ln-seltext_s = 'Cr. Bal.'.
    APPEND fieldcat_ln TO fieldcat.
    Total Amount
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'TOTAL'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-seltext_l = 'Out.St.Amt.'.
    fieldcat_ln-seltext_m = 'Out.St.Amt.'.
    fieldcat_ln-seltext_s = 'Out.St.Amt.'.
    fieldcat_ln-ref_tabname = 'zbsik'.
    fieldcat_ln-ref_fieldname = 'ZDMBTR'.
    APPEND fieldcat_ln TO fieldcat.
    IF p_future NE 'X'.
    Future
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'ZFUTURE'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = 'Future Due'.
    fieldcat_ln-seltext_m = 'Future Due'.
    fieldcat_ln-seltext_s = 'Future Due'.
    APPEND fieldcat_ln TO fieldcat.
    ENDIF.
    Current
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'ZCURRENT'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = 'Normal Due'.
    fieldcat_ln-seltext_m = 'Normal Due'.
    fieldcat_ln-seltext_s = 'Normal Due'.
    APPEND fieldcat_ln TO fieldcat.
    30 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '30DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '0-30 Days'.
    fieldcat_ln-seltext_m = '0-30 Days'.
    fieldcat_ln-seltext_s = '0-30 Days'.
    APPEND fieldcat_ln TO fieldcat.
    60 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '60DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '31-60 Days'.
    fieldcat_ln-seltext_m = '31-60 Days'.
    fieldcat_ln-seltext_s = '31-60 Days'.
    APPEND fieldcat_ln TO fieldcat.
    90 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '90DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '61-90 Days'.
    fieldcat_ln-seltext_m = '61-90 Days'.
    fieldcat_ln-seltext_s = '61-90 Days'.
    APPEND fieldcat_ln TO fieldcat.
    99 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '99DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '91-120 Days'.
    fieldcat_ln-seltext_m = '91-120 Days'.
    fieldcat_ln-seltext_s = '91-120 Days'.
    APPEND fieldcat_ln TO fieldcat.
    *120Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '120DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '121-180 Days'.
    fieldcat_ln-seltext_m = '121-180 Days'.
    fieldcat_ln-seltext_s = '121-180 Days'.
    APPEND fieldcat_ln TO fieldcat.
    *180 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '180DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '181-365 Days'.
    fieldcat_ln-seltext_m = '181-365 Days'.
    fieldcat_ln-seltext_s = '181-365 Days'.
    APPEND fieldcat_ln TO fieldcat.
    *365 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '365DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '>365 Days'.
    fieldcat_ln-seltext_m = '>365 Days'.
    fieldcat_ln-seltext_s = '>365 Days'.
    APPEND fieldcat_ln TO fieldcat.
    Last Payment Date
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNKK'.
    fieldcat_ln-fieldname = 'CASHD'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Street Name
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'lfa1'.
    FIELDCAT_LN-FIELDNAME = 'STRAS'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Telephone
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'lfa1'.
    FIELDCAT_LN-FIELDNAME = 'TELF1'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Credit Group
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'KNKK'.
    FIELDCAT_LN-FIELDNAME = 'GRUPP'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    *Sales District
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'BZIRK'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-seltext_l = 'S_Distt'.
    fieldcat_ln-seltext_m = 'S_Distt'.
    fieldcat_ln-seltext_s = 'S_Distt'.
    APPEND fieldcat_ln TO fieldcat.
    Sales Office
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'VKBUR'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-seltext_l = 'S_Off'.
    fieldcat_ln-seltext_m = 'S_Off'.
    fieldcat_ln-seltext_s = 'S_Off'.
    APPEND fieldcat_ln TO fieldcat.
    Cust Creat Date
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'lfa1'.
    FIELDCAT_LN-FIELDNAME = 'ERDAT'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Del Plant
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'VWERK'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Sales Group
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'VKGRP'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Sort Criteria
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'lifnr'.
    fieldcat_ln-fieldname = 'PSORT'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-seltext_l = 'Sort Field'.
    fieldcat_ln-seltext_m = 'Sort Field'.
    fieldcat_ln-seltext_s = 'Sort Field'.
    APPEND fieldcat_ln TO fieldcat.
    Sales of Customer
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'TOTSAL'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = 'Total Sales'.
    fieldcat_ln-seltext_m = 'Total Sales'.
    fieldcat_ln-seltext_s = 'Total Sales'.
    APPEND fieldcat_ln TO fieldcat.
    ENDFORM. " BUILD_FIELDCAT
    *& Form BUILD_SORTCAT
    text
    --> p1 text
    <-- p2 text
    FORM build_sortcat.
    SORTCAT_LN-SPOS = '1'.
    sortcat_ln-spos = '2'. " 0001
    sortcat_ln-fieldname = 'PSORT'.
    sortcat_ln-up = 'X'. " 0001
    sortcat_ln-subtot = 'X'.
    APPEND sortcat_ln TO sortcat.
    CLEAR sortcat_ln.
    SORTCAT_LN-SPOS = '2'.
    SORTCAT_LN-FIELDNAME = 'lifnr'.
    sortcat_ln-spos = '1'. " 0001
    sortcat_ln-fieldname = 'NAME1'. " 0001
    sortcat_ln-up = 'X'.
    APPEND sortcat_ln TO sortcat.
    ENDFORM. " BUILD_SORTCAT
    *& Form BUILD_EVENTCAT
    text
    --> p1 text
    <-- p2 text
    FORM build_eventcat.
    eventcat_ln-name = 'TOP_OF_PAGE'.
    eventcat_ln-form = 'PAGE_HEADER'.
    APPEND eventcat_ln TO eventcat.
    ENDFORM. " BUILD_EVENTCAT
    *& Form BUILD_LAYOUT
    text
    --> p1 text
    <-- p2 text
    FORM build_layout.
    layout_in-colwidth_optimize = 'X'.
    layout_in-no_hotspot = 'X'.
    layout_in-zebra = 'X'.
    layout_in-get_selinfos = 'X'.
    ENDFORM. " BUILD_LAYOUT
    *& Form START_LIST_VIEWER
    text
    --> p1 text
    <-- p2 text
    FORM start_list_viewer.
    DATA: pgm LIKE sy-repid.
    pgm = sy-repid.
    if t_variant[] is initial.
    t_variant-report = pgm.
    t_variant-variant = '/ATB'.
    t_variant-TEXT = '/ATB'.
    t_variant-DEPENDVARS = 'S'.
    append t_variant.
    clear t_variant.
    endif.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    i_callback_program = pgm
    i_callback_user_command = 'USER_COMMAND'
    it_fieldcat = fieldcat
    it_sort = sortcat
    is_layout = layout_in
    i_save = 'A'
    IS_VARIANT = t_variant
    it_events = eventcat
    TABLES
    t_outtab = itab
    EXCEPTIONS
    OTHERS = 2.
    ENDFORM. " START_LIST_VIEWER
    FORM user_command USING ucomm LIKE sy-ucomm
    selfield TYPE slis_selfield.
    DATA l_lifnr(10) TYPE n.
    READ TABLE itab INDEX selfield-tabindex.
    CHECK sy-subrc = 0.
    CASE ucomm.
    WHEN '&IC1'.
    CASE selfield-sel_tab_field.
    WHEN 'ITAB-LIFNR'.
    SET PARAMETER ID 'LIF' FIELD itab-lifnr.
    SET PARAMETER ID 'BUK' FIELD p_bukrs.
    IF itab-lifnr CO '0123456789 '.
    l_lifnr = itab-lifnr.
    itab-lifnr = l_lifnr.
    ENDIF.
    SELECT SINGLE kkber INTO knkk-kkber
    FROM knkk WHERE lifnr = itab-lifnr.
    IF sy-subrc EQ 0.
    v_kkber = knkk-kkber.
    ELSE.
    CLEAR v_kkber.
    ENDIF.
    REFRESH sel_tab[].
    MOVE: 'lifnr' TO sel_tab-selname,
    'P' TO sel_tab-kind, " PARAMETER
    itab-lifnr TO sel_tab-low.
    APPEND sel_tab.
    CLEAR sel_tab.
    MOVE: 'KKBER' TO sel_tab-selname,
    'P' TO sel_tab-kind, " PARAMETER
    v_kkber TO sel_tab-low.
    APPEND sel_tab.
    CLEAR sel_tab.
    SUBMIT rfdkli41
    USING SELECTION-SET 'VAR1'
    WITH SELECTION-TABLE sel_tab
    AND RETURN.
    CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
    WHEN 'ITAB-ZCURRENT'. " 0001
    v_days = 'CUR'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-ZFUTURE'.
    v_days = 'FUT'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-30DAYS'.
    v_days = '30D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-60DAYS'.
    v_days = '60D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-90DAYS'.
    v_days = '90D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-99DAYS'.
    v_days = '99D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-120DAYS'.
    v_days = '120D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-180DAYS'.
    v_days = '180D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-365DAYS'.
    v_days = '365D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-TOTAL'.
    v_days = ' '.
    PERFORM display_line_item_level. " 0001
    ENDCASE.
    ENDCASE.
    ENDFORM. "USER_COMMAND
    PAGE_HEADER
    FORM page_header.
    WRITE:/115 'Time:', sy-timlo.
    WRITE: /115 'Date:', sy-datum.
    WRITE: /52 'Customer Outstanding Agewise ', "0002
    115 'Page:', sy-pagno.
    SKIP.
    IF p_abs EQ 'X'.
    WRITE: /52 'Vendor Outstanding Agewise (Absolute Aging)',
    115 'Page:', sy-pagno.
    ELSE.
    WRITE: /52 'Vendor Outstanding Agewise (Due Date Aging)',
    115 'Page:', sy-pagno.
    ENDIF.
    SKIP.
    ULINE /(132).
    WRITE: /02 'Open Items as of:', stida.
    IF NOT s_vkgrp[] IS INITIAL.
    IF s_vkgrp-high IS INITIAL.
    WRITE: 52 'Sales Group :',s_vkgrp-low.
    ELSE.
    WRITE: 52 'Sales Group :',s_vkgrp-low,'to',s_vkgrp-high.
    ENDIF.
    ELSE.
    WRITE: 52 'Sales Group : All'.
    ENDIF.
    IF NOT s_grupp[] IS INITIAL.
    IF s_grupp-high IS INITIAL.
    WRITE: 107 'Credit group :',s_grupp-low.
    ELSE.
    WRITE: 107 'Credit group :',s_grupp-low,' to',s_grupp-high.
    ENDIF.
    ELSE.
    WRITE: 107 'Credit Group : All'.
    ENDIF.
    WRITE: /02 'Comapany Code :', p_bukrs.
    IF NOT s_konda[] IS INITIAL.
    IF s_konda-high IS INITIAL.
    WRITE: 52 'Price group :',s_konda-low.
    ELSE.
    WRITE: 52 'Price group :',s_konda-low,' to',s_konda-high.
    ENDIF.
    ELSE.
    WRITE: 52 'Price Group : All'.
    ENDIF.
    IF NOT s_ctlpc[] IS INITIAL.
    IF s_ctlpc-high IS INITIAL.
    WRITE: 107 'Risk category:',s_ctlpc-low.
    ELSE.
    WRITE: 107 'Risk category:',s_ctlpc-low,' to',s_ctlpc-high.
    ENDIF.
    ELSE.
    WRITE: 107 'Risk category: All'.
    ENDIF.
    IF NOT s_vkbur[] IS INITIAL.
    IF s_vkbur-high IS INITIAL.
    WRITE:/02 'Sales Office :',s_vkbur-low.
    ELSE.
    WRITE:/02 'Sales Office :',s_vkbur-low,' to',s_vkbur-high.
    ENDIF.
    ELSE.
    WRITE:/02 'Sales Office : All'.
    ENDIF.
    IF NOT s_kdgrp[] IS INITIAL.
    IF s_kdgrp-high IS INITIAL.
    WRITE: 52 'Customer group :',s_kdgrp-low.
    ELSE.
    WRITE: 52 'Customer group :',s_kdgrp-low,' to',s_kdgrp-high.
    ENDIF.
    ELSE.
    WRITE: 52 'Customer group : All'.
    ENDIF.
    IF NOT s_ktokd[] IS INITIAL.
    IF s_ktokd-high IS INITIAL.
    WRITE: 107 'Account Group:',s_ktokd-low.
    ELSE.
    WRITE: 107 'Account Group:',s_ktokd-low,' to',s_ktokd-high.
    ENDIF.
    ELSE.
    WRITE: 107 'Account Group: All'.
    ENDIF.
    IF NOT s_lifnr[] IS INITIAL.
    IF s_lifnr-high IS INITIAL.
    WRITE: /02 'Vendor No :',s_lifnr-low.
    ELSE.
    WRITE: /02 'Vendor No :',s_lifnr-low,' to',s_lifnr-high.
    ENDIF.
    ELSE.
    WRITE: /02 'Vendor No : All'.
    ENDIF.
    IF NOT s_kkber[] IS INITIAL.
    IF s_kkber-high IS INITIAL.
    WRITE: 52 'Credit Control Area:',s_kkber-low.
    ELSE.
    WRITE: 52 'Credit Control Area:',s_kkber-low,' to',s_kkber-high.

  • How to get the data in one internal table? with 3 different tables..

    Hi,
      i need to get the all the ff data to put in an internal table. I'm using these data to my ALV. Thanks
       vkorg TYPE a005-vkorg,
       vtweg TYPE a005-vtweg,
       kschl TYPE a005-kschl,
       kondm TYPE mvke-kondm,
       matnr TYPE a005-matnr,
       kdgrp TYPE knvv-kdgrp,
       konda TYPE knvv-konda,
       kunnr TYPE a005-kunnr,
       datab TYPE a005-datab,

    hi,
    try this
    *& Report  ZPROGRAM
    REPORT  ZPROGRAM.
    table declaration.
    tables : zemployee, zdepartment,zproject.
    *type-pools declaration
    type-pools : slis , icon.
    type specification
    types : begin of ty_emp,
            empid type zempid,
            empname type zempname,
            empaddress type zempaddress,
            city type zcity,
            ponumber type zponumber,
            detid type zdeptid,
            end of ty_emp.
    types : begin of ty_dept,
            detid type zdeptid,
            deptname type zdeptname,
            designation type zdesignation,
            projectid type zprojectid,
            end of ty_dept.
    types : begin of ty_project,
            projectid type zprojectid,
            technology type ztechnology,
            clientname type zclientname,
            end of ty_project.
    types : begin of ty_final,
            empid type zempid,
            empname type zempname,
            empaddress type zempaddress,
            city type zcity,
            ponumber type zponumber,
            detid type zdeptid,
            deptname type zdeptname,
            designation type zdesignation,
            projectid type zprojectid,
            technology type ztechnology,
            clientname type zclientname,
           average type p decimals 2,
            end of ty_final.
    table type specification.
    types : tt_emp type standard table of ty_emp,
            tt_dept type standard table of ty_dept,
            tt_project type standard table of ty_project,
            tt_final type standard table of ty_final.
    work area creation.
    data : wa_emp type ty_emp,
           wa_dept type ty_dept,
           wa_project type ty_project,
           wa_final type ty_final.
    internal table declaration
    data : itab_emp type tt_emp,
            itab_dept type tt_dept,
            itab_project type tt_project,
            itab_final type tt_final.
    layout declaration
      data : gd_layout type slis_layout_alv.
    assigning current program name.
      data : gd_repid like sy-repid.
             gd_repid = sy-repid.
    fieldcatalog declaration.
      data : d_fieldcat type slis_t_fieldcat_alv,
             d_fieldcat_wa type slis_fieldcat_alv.
    header declaration.
      data : t_header type slis_t_listheader,
             wa_header type slis_listheader,
             linecount(10) type c,
             line(10) type c.
    selection-screen.
    selection-screen : begin of block blk1 with frame title text-001.
    select-options : s_empid for zemployee-empid.
    parameters : p_dname like zdepartment-deptname.
    parameters : p_proid like zproject-projectid.
    selection-screen : begin of line.
    parameters : p_rad1 radiobutton group r1.
    selection-screen comment 3(10) text-002.
    parameters : p_rad2 radiobutton group r1.
    selection-screen comment 16(10) text-003.
    selection-screen : end of line.
    parameters : chk1 as checkbox.
    selection-screen : end of block blk1.
    end of selection screen.
    start of selection.
    select empid empname empaddress city ponumber detid from zemployee into corresponding fields of table itab_emp where empid in s_empid.
    if not itab_emp is initial.
    select detid deptname designation projectid from zdepartment into corresponding fields of table itab_dept for all entries in itab_emp where detid = itab_emp-detid .
    if not itab_dept is initial.
    select projectid technology clientname from zproject into corresponding fields of table itab_project for all entries in itab_dept where projectid = itab_dept-projectid.
    endif.
    endif.
    *end of selection.
    populating data into itab_final from itab_emp.
    loop at itab_emp into wa_emp.
    wa_final-empid = wa_emp-empid.
    wa_final-empname = wa_emp-empname.
    wa_final-empaddress = wa_emp-empaddress.
    wa_final-ponumber = wa_emp-ponumber.
    wa_final-city = wa_emp-city.
    wa_final-detid = wa_emp-detid.
    append wa_final to itab_final.
    clear wa_final.
    endloop.
    *populating data into itab_final from itab_dept and itab_project
    loop at itab_final into wa_final.
    read table itab_dept into wa_dept with key detid = wa_final-detid.
    if sy-subrc = 0.
    wa_final-deptname = wa_dept-deptname.
    wa_final-designation = wa_dept-designation.
    wa_final-projectid = wa_dept-projectid.
    modify itab_final from wa_final transporting deptname designation projectid .
    endif.
    read table itab_project into wa_project with key projectid = wa_final-projectid.
    if sy-subrc = 0.
    wa_final-technology = wa_project-technology.
    wa_final-clientname = wa_project-clientname.
    modify itab_final from wa_final transporting technology clientname.
    endif.
    endloop.
    if p_rad1 = 'X' or chk1 = 'X'.
    d_fieldcat_wa-fieldname = 'EMPID'.
    d_fieldcat_wa-seltext_l = 'Employee Id'.
    d_fieldcat_wa-emphasize = 'X'.
    d_fieldcat_wa-col_pos = 1.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'EMPNAME'.
    d_fieldcat_wa-seltext_l = 'Employee Name'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 2.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'EMPADDRESS'.
    d_fieldcat_wa-seltext_l = 'Employee Address'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 3.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'CITY'.
    d_fieldcat_wa-seltext_l = 'City'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 4.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'PONUMBER'.
    d_fieldcat_wa-seltext_l = 'Postal Number'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 5.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'DETID'.
    d_fieldcat_wa-seltext_l = 'Department Id'.
    d_fieldcat_wa-emphasize = 'X'.
    d_fieldcat_wa-col_pos = 6.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'DEPTNAME'.
    d_fieldcat_wa-seltext_l = 'Department Name'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 7.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'DESIGNATION'.
    d_fieldcat_wa-seltext_l = 'Designation'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 8.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'PROJECTID'.
    d_fieldcat_wa-seltext_l = 'Project Id'.
    d_fieldcat_wa-emphasize = 'X'.
    d_fieldcat_wa-col_pos = 9.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'TECHNOLOGY'.
    d_fieldcat_wa-seltext_l = 'technology'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 10.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'CLIENTNAME'.
    d_fieldcat_wa-seltext_l = 'Client Name'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 11.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    endif.
    if p_rad2 = 'X' or chk1 = 'X'.
    refresh itab_emp.
    d_fieldcat_wa-fieldname = 'DETID'.
    d_fieldcat_wa-seltext_l = 'Department Id'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 6.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'DEPTNAME'.
    d_fieldcat_wa-seltext_l = 'Department Name'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 7.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'DESIGNATION'.
    d_fieldcat_wa-seltext_l = 'Designation'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 8.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'PROJECTID'.
    d_fieldcat_wa-seltext_l = 'Project Id'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 9.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'TECHNOLOGY'.
    d_fieldcat_wa-seltext_l = 'technology'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 10.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    d_fieldcat_wa-fieldname = 'CLIENTNAME'.
    d_fieldcat_wa-seltext_l = 'Client Name'.
    d_fieldcat_wa-emphasize = 'C710'.
    d_fieldcat_wa-col_pos = 11.
    append d_fieldcat_wa to d_fieldcat.
    clear d_fieldcat_wa.
    endif.
    Grid display function module
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
       I_INTERFACE_CHECK                 = ' '
       I_BYPASSING_BUFFER                = ' '
       I_BUFFER_ACTIVE                   = ' '
        I_CALLBACK_PROGRAM                = gd_repid
        I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
       I_CALLBACK_USER_COMMAND           = ' '
        I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE '
       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = ' '
        I_GRID_TITLE                      = 'EMPLOYEE DETAILS'
       I_GRID_SETTINGS                   =
        IS_LAYOUT                         = gd_layout
        IT_FIELDCAT                       = d_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                          = itab_final
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    set pf_status for creating client specified icons.
    form set_pf_status using rt_extab type slis_t_extab.
    set pf-status 'NEWSTATUS'.
    endform.
    populating data into header using top_of_page
    form top_of_page.
    wa_header-typ = 'H'.
    wa_header-info = 'ALV REPORT'.
    append wa_header to t_header.
    clear wa_header.
    wa_header-typ = 'S'.
    wa_header-key = 'Date :'.
    Concatenate sy-datum+6(2) '.'
                 sy-datum+4(2) '.'
                 sy-datum(4) into wa_header-info.
      append wa_header to t_header.
      clear wa_header.
      wa_header-typ = 'S'.
    wa_header-key = 'Time :'.
    Concatenate sy-Uzeit(2) '.'
                 sy-datum+2(2) '.'
                 sy-datum+4(2) into wa_header-info.
      append wa_header to t_header.
      clear wa_header.
      describe table itab_final lines line.
      wa_header-typ = 'A'.
      linecount = line.
      Concatenate 'Total number of records :' linecount into wa_header-info separated by space.
      append wa_header to t_header.
      clear wa_header.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = t_header
         I_LOGO                   = 'VMCADMIN'
        I_END_OF_LIST_GRID       =
        I_ALV_FORM               =
      endform.
    *designing layout.
      form gd_layout.
      gd_layout-zebra = 'X'.
      gd_layout-edit = 'X'.
      gd_layout-no_hotspot = ''.
      gd_layout-no_colhead = ''.
      gd_layout-colwidth_optimize = 'X'.
      endform.
    Reward with points if helpful.

  • How to display the data monthwise in the following report

    see the following report. i will give u the code
    if we go to fd10n then we see the monthwise debit,credit and the outstanding amount . i want to display the data monthwise in my report. means if i select the first month then it will dislpay only month of april debit, credit, and the outstanding amount.
    if anyone know the answer then please help me.
    Thanks.
    Dinesh
    *& Report  ZCUSTOMER_GROUP
    REPORT  ZCUSTOMER_GROUP NO STANDARD PAGE HEADING.
    TABLES: KNA1,KNVV,KNB1,T151T,T685T,KNVI,TSKDT,BSID,T001,KNC1,KNC3.
    TYPE-POOLS: SLIS.
    TYPES: BEGIN OF IT_FINAL,
                BZIRK LIKE KNVV-BZIRK,
                VKBUR LIKE KNVV-VKBUR,
                KDGRP LIKE KNVV-KDGRP,
                KUNNR LIKE KNVV-KUNNR,
                VKORG LIKE KNVV-VKORG,
                VTWEG LIKE KNVV-VTWEG,
                SPART LIKE KNVV-SPART,
                KTGRD LIKE KNVV-KTGRD,
                NAME1 LIKE KNA1-NAME1,
                ORT01 LIKE KNA1-ORT01,
                STCEG LIKE KNA1-STCEG,
                REGIO LIKE KNA1-REGIO,
                STRAS LIKE KNA1-STRAS,
                TELF1 LIKE KNA1-TELF1,
                WERKS LIKE KNA1-WERKS,
                SPRAS TYPE SPRAS,
                GFORM LIKE KNA1-GFORM,
                LAND1 LIKE KNA1-LAND1,
                ALTKN LIKE KNB1-ALTKN,
                AKONT LIKE KNB1-AKONT,
                VZSKZ TYPE KNB1-VZSKZ,
               VTEXT LIKE T685T-VTEXT,
                KTEXT LIKE T151T-KTEXT,
                TATYP TYPE KNVI-TATYP,
                TAXKD TYPE KNVI-TAXKD,
              taxkd type tskdt-taxkd,
              tatyp type tskdt-tatyp,
               VTEXT TYPE TSKDT-VTEXT,
               UMSKZ LIKE BSID-UMSKZ,
               DMBTR TYPE BSID-DMBTR,
              coll LIKE bsid-dmbtr,
              coll1 LIKE bsid-dmbtr,
              coll2 LIKE bsid-dmbtr,
              coll3 LIKE bsid-dmbtr,
              advance LIKE bsid-dmbtr,
              deposit LIKE bsid-dmbtr,
              amount type bsid-dmbtr,
              shkzg type bsid-shkzg,
              blart type bsid-blart,
               BUDAT TYPE BSID-BUDAT,
               BLDAT TYPE BSID-BLDAT,
              GJAHR LIKE BSID-GJAHR,
              outstand LIKE bsid-dmbtr,
              debit like bsid-dmbtr,
               UM01S LIKE KNC1-UM01S,
               UM02S LIKE KNC1-UM02S,
               UM03S LIKE KNC1-UM03S,
               UM04S LIKE KNC1-UM04S,
               UM05S LIKE KNC1-UM05S,
               UM06S LIKE KNC1-UM06S,
               UM07S LIKE KNC1-UM07S,
               UM08S LIKE KNC1-UM08S,
               UM09S LIKE KNC1-UM09S,
               UM10S LIKE KNC1-UM10S,
               UM11S LIKE KNC1-UM11S,
               UM12S LIKE KNC1-UM12S,
               UM13S LIKE KNC1-UM13S,
               UM14S LIKE KNC1-UM14S,
               UM15S LIKE KNC1-UM15S,
               UM16S LIKE KNC1-UM16S,
              DEBIT LIKE KNC1-UM01S,
               GJAHR LIKE KNC1-GJAHR,
                DEBIT TYPE STRING,
               UM01H LIKE KNC1-UM01H,
               UM02H LIKE KNC1-UM02H,
               UM03H LIKE KNC1-UM03H,
               UM04H LIKE KNC1-UM04H,
               UM05H LIKE KNC1-UM05H,
               UM06H LIKE KNC1-UM06H,
               UM07H LIKE KNC1-UM07H,
               UM08H LIKE KNC1-UM08H,
               UM09H LIKE KNC1-UM09H,
               UM10H LIKE KNC1-UM10H,
               UM11H LIKE KNC1-UM11H,
               UM12H LIKE KNC1-UM12H,
               UM13H LIKE KNC1-UM13H,
               UM14H LIKE KNC1-UM14H,
               UM15H LIKE KNC1-UM15H,
               UM16H LIKE KNC1-UM16H,
               CREDIT TYPE STRING,
               UMSAV LIKE KNC1-UMSAV,
             GJAHR LIKE KNC1-GJAHR,
               SHBKZ LIKE KNC3-SHBKZ,
               SALDV LIKE KNC3-SALDV,
               SOLLL LIKE KNC3-SOLLL,
               HABNL LIKE KNC3-HABNL,
               DOWN TYPE STRING,
               DEPOSIT TYPE STRING,
               COLL TYPE STRING,
       END OF IT_FINAL.
    TYPES : BEGIN OF IT_KNVV ,
                BZIRK LIKE KNVV-BZIRK,
                VKBUR LIKE KNVV-VKBUR,
                KDGRP LIKE KNVV-KDGRP,
                KUNNR LIKE KNVV-KUNNR,
                VKORG LIKE KNVV-VKORG,
                VTWEG LIKE KNVV-VTWEG,
                SPART LIKE KNVV-SPART,
                KTGRD LIKE KNVV-KTGRD,
    END OF IT_KNVV.
    TYPES: BEGIN OF IT_KNA1 ,
                NAME1 LIKE KNA1-NAME1,
                ORT01 LIKE KNA1-ORT01,
                STCEG LIKE KNA1-STCEG,
                REGIO LIKE KNA1-REGIO,
                STRAS LIKE KNA1-STRAS,
                TELF1 LIKE KNA1-TELF1,
                WERKS LIKE KNA1-WERKS,
                KUNNR LIKE KNA1-KUNNR,
                GFORM LIKE KNA1-GFORM,
                SPRAS TYPE SPRAS,
                LAND1 LIKE KNA1-LAND1,
    END OF IT_KNA1.
    TYPES: BEGIN OF IT_KNB1 ,
            ALTKN LIKE KNB1-ALTKN,
            AKONT LIKE KNB1-AKONT,
            VZSKZ TYPE KNB1-VZSKZ,
            KUNNR LIKE KNB1-KUNNR,
    END OF IT_KNB1.
    TYPES: BEGIN OF IT_T151T ,
           KTEXT LIKE T151T-KTEXT,
           KDGRP LIKE T151T-KDGRP,
           SPRAS TYPE SPRAS,
      END OF IT_T151T.
    DATA: BEGIN OF IT_T685T OCCURS 0,
          VTEXT LIKE T685T-VTEXT,
          spras type spras,
    END OF IT_T685T.
    TYPES: BEGIN OF IT_KNVI ,
          TAXKD TYPE KNVI-TAXKD,
          TATYP TYPE KNVI-TATYP,
          KUNNR TYPE KNVI-KUNNR,
    END OF IT_KNVI.
    TYPES: BEGIN OF IT_TSKDT ,
          TAXKD TYPE TSKDT-TAXKD,
         TATYP TYPE tskdt-TATYP,
          VTEXT TYPE TSKDT-TATYP,
          SPRAS TYPE SPRAS,
    END OF IT_TSKDT.
    TYPES: BEGIN OF IT_BSID ,
          UMSKZ TYPE BSID-UMSKZ,
          DMBTR TYPE BSID-DMBTR,
          COLL LIKE BSID-DMBTR,
          COLL1 LIKE BSID-DMBTR,
          COLL2 LIKE BSID-DMBTR,
          COLL3 LIKE BSID-DMBTR,
          ADVANCE LIKE BSID-DMBTR,
          DEPOSIT LIKE BSID-DMBTR,
           SHKZG TYPE BSID-SHKZG,
           KUNNR TYPE BSID-KUNNR,
           BUDAT TYPE BSID-BUDAT,
           BLART TYPE BSID-BLART,
           OUTSTAND LIKE BSID-DMBTR,
           GJAHR LIKE BSID-GJAHR,
       END OF IT_BSID.
    TYPES : BEGIN OF IT_KNC1,
               UM01S LIKE KNC1-UM01S,
               UM02S LIKE KNC1-UM02S,
               UM03S LIKE KNC1-UM03S,
               UM04S LIKE KNC1-UM04S,
               UM05S LIKE KNC1-UM05S,
               UM06S LIKE KNC1-UM06S,
               UM07S LIKE KNC1-UM07S,
               UM08S LIKE KNC1-UM08S,
               UM09S LIKE KNC1-UM09S,
               UM10S LIKE KNC1-UM10S,
               UM11S LIKE KNC1-UM11S,
               UM12S LIKE KNC1-UM12S,
               UM13S LIKE KNC1-UM13S,
               UM14S LIKE KNC1-UM14S,
               UM15S LIKE KNC1-UM15S,
               UM16S LIKE KNC1-UM16S,
              DEBIT LIKE KNC1-UM01S,
                DEBIT TYPE STRING,
               UM01H LIKE KNC1-UM01H,
               UM02H LIKE KNC1-UM02H,
               UM03H LIKE KNC1-UM03H,
               UM04H LIKE KNC1-UM04H,
               UM05H LIKE KNC1-UM05H,
               UM06H LIKE KNC1-UM06H,
               UM07H LIKE KNC1-UM07H,
               UM08H LIKE KNC1-UM08H,
               UM09H LIKE KNC1-UM09H,
               UM10H LIKE KNC1-UM10H,
               UM11H LIKE KNC1-UM11H,
               UM12H LIKE KNC1-UM12H,
               UM13H LIKE KNC1-UM13H,
               UM14H LIKE KNC1-UM14H,
               UM15H LIKE KNC1-UM15H,
               UM16H LIKE KNC1-UM16H,
               CREDIT TYPE STRING,
            UMSAV LIKE KNC1-UMSAV,
            KUNNR LIKE KNC1-KUNNR,
            GJAHR LIKE KNC1-GJAHR,
    END OF IT_KNC1.
    TYPES : BEGIN OF IT_KNC3,
            SHBKZ LIKE KNC3-SHBKZ,
            SALDV LIKE KNC3-SALDV,
            SOLLL LIKE KNC3-SOLLL,
            HABNL LIKE KNC3-HABNL,
            KUNNR LIKE KNC3-KUNNR,
            GJAHR LIKE KNC3-GJAHR,
            DOWN TYPE STRING,
            DEPOSIT TYPE STRING,
    END OF IT_KNC3.
    *INTERNAL TABLE DECLARATION
    DATA: I_FINAL TYPE STANDARD TABLE OF IT_FINAL,
          I_KNVV  TYPE STANDARD TABLE OF IT_KNVV,
          I_KNA1  TYPE STANDARD TABLE OF IT_KNA1,
          I_KNB1  TYPE STANDARD TABLE OF IT_KNB1,
          I_T151T  TYPE STANDARD TABLE OF IT_T151T,
          I_KNVI  TYPE STANDARD TABLE OF IT_KNVI,
          I_TSKDT  TYPE STANDARD TABLE OF IT_TSKDT,
          I_BSID  TYPE STANDARD TABLE OF IT_BSID,
          I_KNC1  TYPE STANDARD TABLE OF IT_KNC1,
          I_KNC3  TYPE STANDARD TABLE OF IT_KNC3.
    *DECLARATION FOR THE WORK AREA
    DATA: WA_FINAL TYPE IT_FINAL,
           WA_KNVV TYPE IT_KNVV,
           WA_KNA1 TYPE IT_KNA1,
           WA_KNB1 TYPE IT_KNB1,
           WA_T151T TYPE IT_T151T,
           WA_KNVI TYPE IT_KNVI,
           WA_TSKDT TYPE IT_TSKDT,
           WA_BSID TYPE IT_BSID,
           WA_KNC1 TYPE IT_KNC1,
           WA_KNC3 TYPE IT_KNC3.
    DECLARATION FOR THE FIELD CATALOG.
    DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          WA_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA  GD_REPID LIKE SY-REPID.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    BREAK-POINT.
    SELECT-OPTIONS: CUST_GRP FOR KNVV-KDGRP.
    SELECT-OPTIONS: SALES_OF FOR KNVV-VKBUR.
    SELECT-OPTIONS: REGION FOR KNA1-REGIO.
    SELECT-OPTIONS: DATE FOR BSID-BLDAT.
    SELECT-OPTIONS: YEAR FOR KNC1-GJAHR.
    SELECT-OPTIONS: CUST_NO FOR KNVV-KUNNR.
    SELECTION-SCREEN :END OF BLOCK B1.
    * DECLARATION FOR THE SUBROUTIN FOR BASIC LIST.
    PERFORM data_retrival.
    PERFORM F_GET_I_KNVV_DATA.
    PERFORM F_GET_I_KNA1_DATA.
    PERFORM F_GET_I_KNB1_DATA.
    PERFORM F_GET_I_T151T_DATA.
    *PERFORM F_GET_IT_T685T_DATA.
    PERFORM F_GET_I_KNVI_DATA.
    PERFORM F_GET_I_TSKDT_DATA.
    PERFORM F_GET_I_BSID_DATA.
    PERFORM F_GET_I_KNC1_DATA.
    PERFORM F_GET_I_KNC3_DATA.
    PERFORM F_GET_I_FINAL_DATA.
      PERFORM DATA_BUILD.
      PERFORM DATA_CALL.
    FORM F_GET_I_KNVV_DATA.
    SELECT BZIRK KDGRP KTGRD KUNNR SPART VKBUR VKORG VTWEG
    FROM KNVV
    INTO CORRESPONDING FIELDS OF TABLE I_KNVV
    WHERE KDGRP IN CUST_GRP AND VKBUR IN SALES_OF AND KUNNR IN CUST_NO.
    ENDFORM.
    FORM F_GET_I_KNA1_DATA.
    SELECT KUNNR NAME1 ORT01 REGIO STCEG STRAS TELF1 WERKS  GFORM SPRAS LAND1
    FROM KNA1
    INTO CORRESPONDING FIELDS OF TABLE I_KNA1 FOR ALL ENTRIES IN I_KNVV
      WHERE KUNNR = I_KNVV-KUNNR AND  REGIO IN REGION AND LAND1 = 'IN' .
    ENDFORM.
    FORM F_GET_I_KNB1_DATA.
    SELECT ALTKN AKONT VZSKZ KUNNR
    FROM KNB1
    INTO CORRESPONDING FIELDS OF TABLE I_KNB1 FOR ALL ENTRIES IN I_KNVV
    WHERE KUNNR = I_KNVV-KUNNR.
      ENDFORM.
    FORM F_GET_I_T151T_DATA.
    SELECT KTEXT KDGRP SPRAS
    FROM T151T
    INTO CORRESPONDING FIELDS OF TABLE I_T151T FOR ALL ENTRIES IN I_KNVV
    WHERE KDGRP = I_KNVV-KDGRP AND SPRAS = 'E' .
    ENDFORM.
    *FORM F_GET_IT_T685T_DATA.
    *select vtext spras
    *from t685t
    *into CORRESPONDING FIELDS OF TABLE it_t685t for all entries in it_kna1
    where spras = it_kna1-spras and spras = 'E'.
    *endform.
    FORM F_GET_I_KNVI_DATA.
    SELECT TAXKD TATYP KUNNR
    FROM KNVI
    INTO CORRESPONDING FIELDS OF TABLE I_KNVI FOR ALL ENTRIES IN I_KNVV
    WHERE KUNNR = I_KNVV-KUNNR
    AND TAXKD = '8' OR TAXKD = '3' OR TAXKD = '0'
    AND TATYP = 'Z1AU' OR TATYP = 'ZCST'.
    *and ( taxkd = '8' or taxkd = '0' or taxkd = '3')
    and ( tatyp = 'Z1AU' OR TATYP = 'ZCST' ).
    ENDFORM.
    FORM F_GET_I_TSKDT_DATA.
    SELECT VTEXT TAXKD SPRAS FROM
    TSKDT
    INTO CORRESPONDING FIELDS OF TABLE I_TSKDT FOR ALL ENTRIES IN I_KNVI
    WHERE TAXKD = I_KNVI-TAXKD AND SPRAS = 'E'.
    ENDFORM.
    FORM F_GET_I_BSID_DATA.
    *DATA: DMBTR TYPE BSID-DMBTR,
         OUTSTAND LIKE BSID-DMBTR.
    SELECT UMSKZ DMBTR SHKZG KUNNR BLART GJAHR BUDAT BLDAT
    FROM BSID
    INTO CORRESPONDING FIELDS OF TABLE I_BSID
    FOR ALL ENTRIES IN I_KNVV
    WHERE KUNNR = I_KNVV-KUNNR AND BLDAT IN DATE.
    *AND  ( BLART = 'HR' OR BLART = 'DZ' OR BLART = 'P1'  )
    *and umskz = 'A' or umskz = 'L' OR UMSKZ = ''
    *AND SHKZG = 'S' OR SHKZG = 'H'.
    ENDFORM.
    FORM F_GET_I_KNC1_DATA.
    SELECT UM01S UM02S UM03S UM04S UM05S UM06S UM07S UM08S UM09S UM10S UM11S UM12S UM13S UM14S UM15S UM16S
           UM01H UM02H UM03H UM04H UM05H UM06H UM07H UM08H UM09H UM10H UM11H UM12H UM13H UM14H UM15H UM16H
           UMSAV KUNNR GJAHR
    FROM KNC1
    INTO CORRESPONDING FIELDS OF TABLE I_KNC1
    FOR ALL ENTRIES IN I_KNVV
    WHERE KUNNR = I_KNVV-KUNNR AND GJAHR IN YEAR .
    ENDFORM.
    FORM F_GET_I_KNC3_DATA.
    SELECT KUNNR GJAHR SHBKZ SALDV SOLLL HABNL
    FROM KNC3
    INTO CORRESPONDING FIELDS OF TABLE I_KNC3
    FOR ALL ENTRIES IN I_KNVV
    WHERE KUNNR = I_KNVV-KUNNR
    AND SHBKZ = 'A' OR SHBKZ = 'L'.
    ENDFORM.
    FORM F_GET_I_FINAL_DATA.
    *BREAK-POINT.
    LOOP AT I_KNVV INTO WA_KNVV.
    CLEAR WA_FINAL.
    WA_FINAL-BZIRK = WA_KNVV-BZIRK.
    WA_FINAL-VKBUR = WA_KNVV-VKBUR.
    WA_FINAL-KDGRP = WA_KNVV-KDGRP.
    WA_FINAL-KUNNR = WA_KNVV-KUNNR.
    WA_FINAL-VKORG = WA_KNVV-VKORG.
    WA_FINAL-VTWEG = WA_KNVV-VTWEG.
    WA_FINAL-SPART = WA_KNVV-SPART.
    WA_FINAL-KTGRD = WA_KNVV-KTGRD.
    READ TABLE I_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_KNVV-KUNNR.
    WA_FINAL-NAME1 = WA_KNA1-NAME1.
    WA_FINAL-ORT01 = WA_KNA1-ORT01.
    WA_FINAL-STCEG = WA_KNA1-STCEG.
    WA_FINAL-REGIO = WA_KNA1-REGIO.
    WA_FINAL-STRAS = WA_KNA1-STRAS.
    WA_FINAL-TELF1 = WA_KNA1-TELF1.
    WA_FINAL-WERKS = WA_KNA1-WERKS.
    WA_FINAL-GFORM = WA_KNA1-GFORM.
    WA_FINAL-LAND1 = WA_KNA1-LAND1.
    IF SY-SUBRC = 0.
    ENDIF.
    READ TABLE I_KNB1 INTO WA_KNB1 WITH KEY KUNNR = WA_KNVV-KUNNR.
    IF SY-SUBRC = 0.
    WA_FINAL-ALTKN = WA_KNB1-ALTKN.
    WA_FINAL-AKONT = WA_KNB1-AKONT.
    WA_FINAL-VZSKZ = WA_KNB1-VZSKZ.
    ENDIF.
    READ TABLE I_T151T INTO WA_T151T WITH KEY KDGRP = WA_KNVV-KDGRP .
    IF SY-SUBRC = 0.
    WA_FINAL-KTEXT = WA_T151T-KTEXT.
    ENDIF.
    READ TABLE I_KNVI INTO WA_KNVI  WITH KEY KUNNR = WA_KNVV-KUNNR.
    IF SY-SUBRC = 0.
    WA_FINAL-TAXKD = WA_KNVI-TAXKD.
    WA_FINAL-TATYP = WA_KNVI-TATYP.
    ENDIF.
    READ TABLE I_TSKDT INTO WA_TSKDT WITH KEY TAXKD = WA_KNVI-TAXKD
    WA_FINAL-VTEXT = WA_TSKDT-VTEXT.
    *UP TO THIS POINT REPORT IS OK
    *read table I_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr
                               UMSKZ = 'A' .
    *if sy-subrc = 0.
    *WA_final-DOWN = WA_bsid-dmbtr * -1.
    **modify i_final.
    **clear it_bsid.
    *endif.
    *read table i_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr
                               UMSKZ = 'L'  .
    *if sy-subrc = 0.
    *WA_final-deposit = WA_bsid-dmbtr * -1.
    *endif.
    *read table i_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr
                               blart = 'DZ' .
    **IF BLART = 'HR' OR BLART = 'DZ' OR BLART = 'P1'.
    *if sy-subrc = 0.
    *WA_final-coll1 = WA_bsid-dmbtr * -1.
    *ENDIF.
    *read table i_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr
                               blart = 'HR' .
    **IF BLART = 'HR' OR BLART = 'DZ' OR BLART = 'P1'.
    *if sy-subrc = 0.
    *WA_final-coll2 = WA_bsid-dmbtr * -1.
    *ENDIF.
    *read table i_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr
                               blart = 'P1' .
    **IF BLART = 'HR' OR BLART = 'DZ' OR BLART = 'P1'.
    *if sy-subrc = 0.
    *WA_final-coll3 = WA_bsid-dmbtr * -1.
    *ENDIF.
    *read table i_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr.
    **IF BLART = 'HR' OR BLART = 'DZ' OR BLART = 'P1'.
    *if sy-subrc = 0.
    *WA_final-coll = ( WA_final-coll1 + WA_final-coll2 + WA_final-coll3 ) - ( wa_final-deposit ) * -1.
    *ENDIF.
    *read table i_bsid INTO WA_BSID with key kunnr = WA_kna1-kunnr
                               UMSKZ = 'L'  .
    *if sy-subrc = 0.
    *WA_final-deposit = WA_bsid-dmbtr * -1.
    *endif.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM01S = WA_KNC1-UM01S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM02S = WA_KNC1-UM02S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM03S = WA_KNC1-UM03S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM04S = WA_KNC1-UM04S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM05S = WA_KNC1-UM05S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM06S = WA_KNC1-UM06S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM07S = WA_KNC1-UM07S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM08S = WA_KNC1-UM08S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM09S = WA_KNC1-UM09S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM10S = WA_KNC1-UM10S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM11S = WA_KNC1-UM11S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM12S = WA_KNC1-UM12S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM13S = WA_KNC1-UM13S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM14S = WA_KNC1-UM14S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM15S = WA_KNC1-UM15S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM16S = WA_KNC1-UM16S.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR  .
    IF SY-SUBRC = 0.
    WA_FINAL-DEBIT = WA_KNC1-UM01S + WA_KNC1-UM02S + WA_KNC1-UM03S + WA_KNC1-UM04S + WA_KNC1-UM05S + WA_KNC1-UM06S + WA_KNC1-UM07S +
                     WA_KNC1-UM08S + WA_KNC1-UM09S + WA_KNC1-UM10S + WA_KNC1-UM11S + WA_KNC1-UM12S + WA_KNC1-UM13S + WA_KNC1-UM14S +
                     WA_KNC1-UM15S + WA_KNC1-UM16S .
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR.
    IF SY-SUBRC = 0.
    WA_FINAL-UM01H = WA_KNC1-UM01H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM02H = WA_KNC1-UM02H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM03H = WA_KNC1-UM03H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM04H = WA_KNC1-UM04H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM05H = WA_KNC1-UM05H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM06H = WA_KNC1-UM06H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM07H = WA_KNC1-UM07H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM08H = WA_KNC1-UM08H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM09H = WA_KNC1-UM09H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM10H = WA_KNC1-UM10H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM11H = WA_KNC1-UM11H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM12H = WA_KNC1-UM12H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM13H = WA_KNC1-UM13H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM14H = WA_KNC1-UM14H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM15H = WA_KNC1-UM15H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-UM16H = WA_KNC1-UM16H.
    ENDIF.
    READ TABLE I_KNC1 INTO WA_KNC1 WITH KEY KUNNR = WA_KNVV-KUNNR
    IF SY-SUBRC = 0.
    WA_FINAL-CREDIT = WA_KNC1-UM01H + WA_KNC1-UM02H + WA_KNC1-UM03H + WA_KNC1-UM04H + WA_KNC1-UM05H + WA_KNC1-UM06H + WA_KNC1-UM07H +
                     WA_KNC1-UM08H + WA_KNC1-UM09H + WA_KNC1-UM10H + WA_KNC1-UM11H + WA_KNC1-UM12H + WA_KNC1-UM13H + WA_KNC1-UM14H +
                     WA_KNC1-UM15H + WA_KNC1-UM16H .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                                SHBKZ  = 'A' .
    IF SY-SUBRC = 0.
    WA_FINAL-SALDV = WA_KNC3-SALDV  .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                                 SHBKZ = 'A' .
    IF SY-SUBRC = 0.
    WA_FINAL-SOLLL = WA_KNC3-SOLLL  .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                                 SHBKZ = 'A' .
    IF SY-SUBRC = 0.
    WA_FINAL-HABNL = WA_KNC3-HABNL  .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                        SHBKZ = 'A'  .
    IF SY-SUBRC = 0.
    WA_FINAL-DOWN =   WA_KNC3-SALDV + WA_KNC3-SOLLL + WA_KNC3-HABNL  * -1.
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                SHBKZ = 'L' .
    IF SY-SUBRC = 0.
    WA_FINAL-SALDV = WA_KNC3-SALDV  .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                SHBKZ = 'L' .
    IF SY-SUBRC = 0.
    WA_FINAL-SOLLL = WA_KNC3-SOLLL  .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                SHBKZ = 'L' .
    IF SY-SUBRC = 0.
    WA_FINAL-HABNL = WA_KNC3-HABNL  .
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR
                                SHBKZ = 'L'  .
    IF SY-SUBRC = 0.
    WA_FINAL-DEPOSIT =  WA_KNC3-SALDV + WA_KNC3-SOLLL + WA_KNC3-HABNL * -1.
    ENDIF.
    READ TABLE I_KNC3 INTO WA_KNC3 WITH KEY KUNNR = WA_KNVV-KUNNR GJAHR = WA_KNC1-GJAHR.
    IF SY-SUBRC = 0.
    WA_FINAL-COLL =  WA_FINAL-DOWN - WA_FINAL-DEPOSIT.
    ENDIF.
    APPEND WA_FINAL TO I_FINAL.
    ENDLOOP.
    ENDFORM.
    FORM DATA_BUILD.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'NAME1'.
      WA_FIELDCATALOG-SELTEXT_M = 'NAME'.
    fieldcatalog-col_pos = 1.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'ORT01'.
      WA_FIELDCATALOG-SELTEXT_M = 'CITY'.
    fieldcatalog-col_pos = 2.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'STCEG'.
      WA_FIELDCATALOG-SELTEXT_M = 'VAT. REG. NO.'.
    fieldcatalog-col_pos = 3.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'REGIO'.
      WA_FIELDCATALOG-SELTEXT_M = 'REGION'.
    fieldcatalog-col_pos = 4.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'STRAS'.
      WA_FIELDCATALOG-SELTEXT_M = 'STREET'.
    fieldcatalog-col_pos = 5.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'TELF1'.
      WA_FIELDCATALOG-SELTEXT_M = 'TELEPHONE'.
    fieldcatalog-col_pos = 6.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'WERKS'.
      WA_FIELDCATALOG-SELTEXT_M = 'PLANT'.
    fieldcatalog-col_pos = 7.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'BZIRK'.
      WA_FIELDCATALOG-SELTEXT_M = 'SALES DISTRICT'.
    fieldcatalog-col_pos = 8.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
    fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
    CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'VKBUR'.
      WA_FIELDCATALOG-SELTEXT_M = 'SALES OFFICE'.

    hi dinesh......
    please use  'INTO TABLE' instead of  ' INTO CORRESPONDING FIELDS OF TABLE '.  and use ' FOR ALL ENTRIES '............based on relavence ....coz when I set break point  over the select queries it took me long time to execute .......
    becoz u didnt used the for all entries  in select query ............ u r read statement
    READ TABLE I_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_KNVV-KUNNR.  ..... 
    it is reading wrong kunnr value .............even it took long time to execute ......
    use sort where ever required...
    use for all entries .......and check weather the table initial or not......
    use sy-subrc check where ever reqired ..............

  • Query in customer master data upload ....?

    Hi Guru's,
    I am uploading the customer master data from presentaion server to customer tables using functional module SD_CUSTOMER_MAINTAIN_ALL.
    while check the Function module separatly and it working properley and i am able to ctere customer...
    and i am using the same function module in the program i am unable to upload ..could please check and let me know where i am doing mistake in the below program logis..and values also moving properly before calling function module..while calling the functinal module the controle comming out of the loop and program went to dump i am able to see the message in dump as like this(it may helpfull for resolve):
    Name of function module...............: "SD_CUSTOMER_MAINTAIN_ALL"
    Name of formal parameter..............: "O_KNA1"
    Technical type of actual parameter....: "C"
    Technical length of actual parameter..: 20 bytes
    Technical type of formal parameter....: "u"
    Technical length of formal parameter..: 3634 bytes
    Name of formal parameter at caller....: "O_KNA1"
    *& Report  ZERP_CUSTOMER_CREATE_UPLOAD
    REPORT  zerp_customer_create_upload.
    PARAMETERS:p_files        TYPE string.
    *DATA :xkunnr(10)      LIKE kna1-kunnr.  "unique KUNNR
    DATA: gs_i_kna1           TYPE kna1,
          gs_i_knb1             TYPE knb1,
          gs_i_knvv           TYPE knvv,
          gs_return           TYPE bapireturn1,
          gs_i_bapiaddr1      TYPE   bapiaddr1,
          gt_t_xknvi          TYPE STANDARD TABLE OF fknvi,
          gwa_t_xknvi         TYPE fknvi,
          gt_t_xknbk          TYPE STANDARD TABLE OF fknbk,
          gwa_t_xknbk         TYPE fknbk,
          gt_t_yknvp          TYPE STANDARD TABLE OF fknvp,
          gwa_t_xknvp         TYPE fknvp.
    TYPES:BEGIN OF gty_itab1,
          abc(305),
          END OF gty_itab1.
    DATA: gt_itab1 TYPE STANDARD TABLE OF gty_itab1,
          gwa_itab1 TYPE gty_itab1.
    TYPES :BEGIN OF gty_itab2,
           ktokd(4),        "customer account grp      kna1
           kunnr(10),       "customer                  kna1
           name1(35),       "name1                     kna1
           sortl(10),       "sort filed                kna1
           stras(35),       "house number and adres    kna1
           pstlz(10),       "postal code               kna1
           ort01(35),       "city                      kna1
           land1(3),        "country                   kna1
           telf1(16),       "tele phone no             kna1
           telfx(31),       "fax num                   kna1
           kukla(2),        "cust classificaion        kna1
           bukrs(4),        "company code              knb1
           akont(10),       "reconcilation acct        knb1
           vkorg(4),        "sales org                 knvv
           vtweg(2),        "distr chan                knvv
           spart(2),        "division                  knvv
           zterm(4),        "terms of payment          knvv
           bzirk(6),        "sales district            knvv
           vkbur(4),        "sales office              knvv
           vkgrp(3),        "sales grp                 knvv
           kdgrp(2),        "cust grp                  knvv
           waers(5),        "currency                  knvv
           konda(2),        "price grp                 knvv
           kalks(1),        "pricing procedure assign  knvv
           lprio(2),        "delivery plant            knvv
           vsbed(2),        "shipping conditions       knvv
           vwerk(4),        "delivering plant          knvv
           inco1(3),        "inco1                     knvv
           inco2(28),       "inco2                     knvv
           kkber(4),        "cred control area         knvv
           ktgrd(2),        "acc assgn grp             knvv
           taxkd(1),        "tax classification 4 cust knvi
           bankn(18),       "bank account number       knbk -
            xkunnr(10),
           END OF gty_itab2.
    DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,
          gwa_itab2 TYPE gty_itab2.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                = p_files
        filetype                = 'ASC'
      TABLES
        data_tab                = gt_itab1
      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 gt_itab1 INTO gwa_itab1.
      gwa_itab2 = gwa_itab1-abc(305).
      APPEND gwa_itab2 TO gt_itab2.
    ENDLOOP.
    LOOP AT gt_itab2 INTO gwa_itab2.
      SPLIT gwa_itab2 AT ',' INTO gwa_itab2-ktokd
                                  gwa_itab2-kunnr
                                  gwa_itab2-name1 gwa_itab2-sortl
                                  gwa_itab2-stras gwa_itab2-pstlz
                                  gwa_itab2-ort01 gwa_itab2-land1
                                  gwa_itab2-telf1 gwa_itab2-telfx
                                  gwa_itab2-kukla gwa_itab2-bukrs
                                  gwa_itab2-akont gwa_itab2-vkorg
                                  gwa_itab2-vtweg gwa_itab2-spart
                                  gwa_itab2-zterm gwa_itab2-bzirk
                                  gwa_itab2-vkbur gwa_itab2-vkgrp
                                  gwa_itab2-kdgrp gwa_itab2-waers
                                  gwa_itab2-konda gwa_itab2-kalks
                                  gwa_itab2-lprio gwa_itab2-vsbed
                                  gwa_itab2-vwerk gwa_itab2-inco1
                                  gwa_itab2-inco2 gwa_itab2-kkber
                                  gwa_itab2-ktgrd
                                  gwa_itab2-taxkd
                                  gwa_itab2-bankn.
    *moving files values from ITAB2 work area to global structure related to FM.
      gs_i_kna1-ktokd   = gwa_itab2-ktokd.
      gs_i_kna1-kunnr   = gwa_itab2-kunnr.
      gs_i_kna1-name1   = gwa_itab2-name1.
      gs_i_kna1-sortl   = gwa_itab2-sortl.
      gs_i_kna1-stras   = gwa_itab2-stras.
      gs_i_kna1-pstlz   = gwa_itab2-pstlz.
      gs_i_kna1-ort01   = gwa_itab2-ort01.
      gs_i_kna1-regio   = gwa_itab2-land1.
      gs_i_kna1-telf1   = gwa_itab2-telf1.
      gs_i_kna1-telfx   = gwa_itab2-telfx.
      gs_i_kna1-kukla   = gwa_itab2-kukla.
      gs_i_knb1-bukrs   = gwa_itab2-bukrs.
      gs_i_knb1-akont   = gwa_itab2-akont.
    *I FOR GOT TO INCLUDE THE ZTERM VALUE IN EXCELL SHEET SO INCLUDED HARD CODE HERE
      gs_i_knb1-zterm   = '0001'.
      gs_i_knvv-vkorg   = gwa_itab2-vkorg.
      gs_i_knvv-vtweg   = gwa_itab2-vtweg.
      gs_i_knvv-spart   = gwa_itab2-spart.
      gs_i_knvv-zterm   = gwa_itab2-zterm.
      gs_i_knvv-bzirk   = gwa_itab2-bzirk.
      gs_i_knvv-vkbur   = gwa_itab2-vkbur.
      gs_i_knvv-vkgrp   = gwa_itab2-vkgrp.
      gs_i_knvv-kdgrp   = gwa_itab2-kdgrp.
      gs_i_knvv-waers   = gwa_itab2-waers.
      gs_i_knvv-konda   = gwa_itab2-konda.
      gs_i_knvv-kalks   = gwa_itab2-kalks.
      gs_i_knvv-lprio   = '02'.             "gwa_itab2-lprio.
      gs_i_knvv-vsbed   = gwa_itab2-vsbed.
      gs_i_knvv-vwerk   = gwa_itab2-vwerk.
      gs_i_knvv-inco1   = gwa_itab2-inco1.
      gs_i_knvv-inco2   = gwa_itab2-inco2.
      gs_i_knvv-kkber   = gwa_itab2-kkber.
      gs_i_knvv-ktgrd   = gwa_itab2-ktgrd.
      gwa_t_xknvi-tatyp  = 'UTXJ'.          "HARD CODE
      gwa_t_xknvi-aland  = 'US'.            "HARD CODED
      gwa_t_xknvi-kz     = '0'.             "HADR CODE
      gwa_t_xknvi-taxkd  = '0'.             "gwa_itab2-taxkd.
      APPEND gwa_t_xknvi TO gt_t_xknvi.
      gwa_t_xknbk-bankn  = gwa_itab2-bankn.
      APPEND gwa_t_xknbk TO gt_t_xknbk.
      gs_i_knb1-lockb          = 'X'.
      gs_i_knvv-kzazu          = 'X'.
      gs_i_knvv-kztlf          = 'X'.
      gs_i_knvv-perfk          = 'X'.
      gs_i_knvv-prfre          = 'X'.
      gs_i_kna1-spras          = 'EN'.
      CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
       EXPORTING
         i_kna1                              = gs_i_kna1
         i_knb1                              = gs_i_knb1
         i_knvv                              = gs_i_knvv
      I_BAPIADDR1                         =
      I_BAPIADDR2                         =
      I_MAINTAIN_ADDRESS_BY_KNA1          = ' '
      I_KNB1_REFERENCE                    = ' '
      I_FORCE_EXTERNAL_NUMBER_RANGE       = ' '
      I_NO_BANK_MASTER_UPDATE             = ' '
      I_CUSTOMER_IS_CONSUMER              = ' '
      I_RAISE_NO_BTE                      = ' '
      PI_POSTFLAG                         = ' '
      PI_CAM_CHANGED                      = ' '
      PI_ADD_ON_DATA                      =
      I_FROM_CUSTOMERMASTER               = ' '
    IMPORTING
      e_kunnr                             = xkunnr
      o_kna1                              = xkunnr
      E_SD_CUST_1321_DONE                 =
       TABLES
      T_XKNAS                             =
         t_xknbk                             = gt_t_xknbk
      T_XKNB5                             =
      T_XKNEX                             =
      T_XKNVA                             =
      T_XKNVD                             =
         t_xknvi                             = gt_t_xknvi
      T_XKNVK                             =
      T_XKNVL                             =
      T_XKNVP                             =
      T_XKNZA                             =
      T_YKNAS                             =
      T_YKNBK                             =
      T_YKNB5                             =
      T_YKNEX                             =
      T_YKNVA                             =
      T_YKNVD                             =
      T_YKNVI                             =
      T_YKNVK                             =
      T_YKNVL                             =
       t_yknvp                             = gt_t_yknvp
      T_YKNZA                             =
      T_UPD_TXT                           =
       EXCEPTIONS
         client_error                        = 1
         kna1_incomplete                     = 2
         knb1_incomplete                     = 3
         knb5_incomplete                     = 4
         knvv_incomplete                     = 5
         kunnr_not_unique                    = 6
         sales_area_not_unique               = 7
         sales_area_not_valid                = 8
         insert_update_conflict              = 9
         number_assignment_error             = 10
         number_not_in_range                 = 11
         number_range_not_extern             = 12
         number_range_not_intern             = 13
         account_group_not_valid             = 14
         parnr_invalid                       = 15
         bank_address_invalid                = 16
         tax_data_not_valid                  = 17
         no_authority                        = 18
         company_code_not_unique             = 19
         dunning_data_not_valid              = 20
         knb1_reference_invalid              = 21
         cam_error                           = 22
         OTHERS                              = 23.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF sy-subrc EQ 0.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        WRITE: / 'Error Message:', 'error in creation'.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
        WRITE: / 'costomer', gwa_itab2-kunnr, 'created'.
      ENDIF.
    ENDLOOP.

    please let me know if my qestion is not clear...
    and please cinfirm me ..that can i use the function module (SD_CUSTOMER_MAINTAIN_ALL) instead of BAPI (BAPI_CUSTOMER_CREATEFROMDATA1) for uploading customer master data.
    please respond me ASAP.
    thanks in advance and will give full points
    thanks&regards
    Srinivas.

  • Select query join problem

    hey guys,
    i've used a select query to get details from KNA1, KNVV, ADRC, KNVP, pa0002. tables by joining. but i'm getting only about 170 records. there are more than 3000 records in the database. for each tables. here is my select query
    SELECT KNA1KUNNR KNA1NAME1 KNA1NAME2 ADRCSTR_SUPPL1 ADRCSTR_SUPPL2 ADRCSTR_SUPPL3 ADRCCITY1 KNVVVWERK KNVPPERNR PA0002VORNA PA0002NACHN KNVVVKBUR KNVVKDGRP KNA1STCD1 KNA1~STCEG
        INTO CORRESPONDING FIELDS OF TABLE IT_FINAL FROM KNA1
        INNER JOIN KNVV ON KNA1KUNNR = KNVVKUNNR
        INNER JOIN ADRC ON KNA1ADRNR = ADRCADDRNUMBER
        INNER JOIN KNVP ON KNA1KUNNR = KNVPKUNNR
        INNER JOIN PA0002 ON KNVPPERNR = PA0002PERNR
        WHERE KNA1KUNNR IN S_KUNNR AND KNVVVWERK in P_VWERK AND PA0002PERNR IN S_PERNR AND KNVVVKBUR IN S_VKBUR AND KNVV~KDGRP IN S_KDGRP.
    can anyone tell me the problem in the above query.
    thanks.

    Hi
    you are using tables KNA1, KNVV, ADRC, KNVP, pa0002.
    Create internal table for each table mentioned above with all the primary keys and find the links between them
    then select data in one table and select data from another table into your internal table for all the entries exists in firs internal table.
    go for below links.
    http://www.sapdev.co.uk/abap/commands/select_forallentries.htm
    http://wiki.sdn.sap.com/wiki/display/ABAP/FORALLENTRIES-Home+page
    http://help.sap.com/abapdocu_70/en/ABENWHERE_LOGEXP_ITAB.htm
    Thanks
    lalit

  • Issue for retrive data from ITAB

    Case:HOW CAN WE FETCH DATA FROM TRANSPARENT TABLE
    scenario:calculating net price for material on sales order
    (on the basis of material number,sales organization,distribution channel,division,sale to partY ,sales office)
    For this 5 prices are calculated :
    a)zmrp
    b)zlbj
    c)zmlb
    d)zdij
    e)mwst
    A bapi is developed through which all these data are fetched using joins on transparent and pooled tables.
    Bapi is properly working in Sap Environment.But when fetching data from non sap environment(.NET) only pooled tables are returning data.
    Transparent tables are returning blank data.
    And also if in query of transprent table if  in " where Clause " all parameters are hard codded then transparent table also return data in non sap envirnment.
    for eg...
    instead of writing ---
    select data from tranparent table where matnr= (matnr variable made in bapi entered by user) and vkorg=(sales org  variable made in bapi) ....same with all conditions
    if we write(returing data)----
    select data from tranparent table where matnr='5476665987' and vkorg='1400' ....same with all conditions
                                                                                    FUNCTION ZBAPI_BAR3.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(MATNR) TYPE  ZBAPI_IMPORT2-MATNR
    *"     VALUE(VKORG) TYPE  ZBAPI_IMPORT2-VKORG
    *"     VALUE(VTWEG) TYPE  ZBAPI_IMPORT2-VTWEG
    *"     VALUE(KUNNR) TYPE  ZBAPI_IMPORT2-KUNNR
    *"     VALUE(SPART) TYPE  ZBAPI_IMPORT2-SPART
    *"     VALUE(AUART) TYPE  ZBAPI_IMPORT2-AUART
    *"     VALUE(VKBUR) TYPE  ZBAPI_IMPORT2-VKBUR
    *"  EXPORTING
    *"     VALUE(RETURN) TYPE  BAPIRETURN
    *"  TABLES
    *"      ITAB STRUCTURE  ZBAPI_TABLE3
      DATA: LAND1  LIKE KNA1-LAND1  ,
            REGIO  LIKE KNA1-REGIO  ,
            WERKS  LIKE VBAP-WERKS  ,
           KNUMH  LIKE A004-KNUMH  ,
                   KNUMH LIKE ZBAPI_TABLE3-Knumh  ,
            KBETR   LIKE  COND_KONW-Kbetr ,
           LIKE ZBAPI_TABLE3-KBETR  ,
          KNUMH1(10) TYPE C ,
                KNUMH2(10) TYPE C ,
                KNUMH3(6) TYPE C ,
         KNUMH2 LIKE ZBAPI_TABLE3-KNUMH  ,
         KNUMH3 LIKE ZBAPI_TABLE3-KNUMH  ,
         KNUMV LIKE  ZBAPI_TABLE3-KNUMV  ,
            KDGRP  LIKE KNVV-KDGRP  ,
            TAXKD  LIKE KNVI-TAXKD  ,
            TAXM1  LIKE MLAN-TAXM1  ,
            ADRNR  LIKE TVBUR-ADRNR ,
            REGION LIKE ADRC-REGION ,
            DATE  TYPE A503-DATAB .
      SELECT SINGLE KDGRP FROM KNVV INTO KDGRP WHERE KUNNR  = KUNNR AND VKORG = VKORG AND VTWEG = VTWEG AND SPART = SPART   .
      SELECT SINGLE LAND1 REGIO  FROM KNA1 INTO (LAND1,REGIO)  WHERE KUNNR  = KUNNR .
      SELECT SINGLE WERKS FROM VBAP INNER JOIN VBAK ON VBAPVBELN = VBAKVBELN  INTO WERKS  WHERE AUART = AUART  .
      SELECT SINGLE TAXKD FROM KNVI INTO TAXKD WHERE KUNNR = KUNNR AND ALAND = LAND1 AND TATYP = 'MWST' .
      SELECT SINGLE TAXM1 FROM MLAN INTO TAXM1 WHERE MATNR = MATNR AND ALAND = LAND1  .
      SELECT SINGLE ADRNR FROM TVBUR INTO ADRNR WHERE VKBUR = VKBUR  .
      SELECT SINGLE REGION FROM ADRC INTO REGION WHERE ADDRNUMBER = ADRNR   .
      DATE = SY-DATUM .
      SELECT SINGLE KNUMH FROM A931 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'ZMRP' AND VKORG = VKORG AND VTWEG = VTWEG AND WERKS = '1410' AND KUNNR = KUNNR AND MATNR = MATNR AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE  .
    SELECT SINGLE KNUMH FROM A931 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'ZMRP' AND VKORG = '1400' AND VTWEG = '10' AND WERKS = '1410' AND KUNNR = '0000100163' AND MATNR = 'A10AN027PNSL' AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE  .
      SELECT SINGLE zkarigar FROM zkari INTO KNUMH1 WHERE erdat = '20070410' .
    SELECT SINGLE KNUMH FROM A004 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'ZMRP' AND VKORG = VKORG AND VTWEG = VTWEG AND MATNR = MATNR  AND DATAB LE DATE AND DATBI GE DATE  .
    *'0000280050'
    CLEAR KNUMH .
    CLEAR KBETR .
    SELECT SINGLE KNUMH FROM A503 INTO KNUMH1 WHERE KAPPL = 'V' AND KSCHL = 'MWST' AND ALAND = LAND1 AND WKREG = REGION AND REGIO = REGIO
    AND TAXK1 = TAXKD  AND TAXM1 = TAXM1 AND KFRST = SPACE  AND DATAB LE DATE AND DATBI GE DATE and knumh = '0000279708'.
    concatenate '0000' KNUMH into knumh1 .
    **KNUMH1 = KNUMH .
    **select single kbetr from konp into kbetr where knumh = knumh1 .
    **knumh3 = knumh1+4(6) .
    ***itab-kbetr = kbetr .
    **concatenate '0000' knumh3 into knumh2 .
    **write:/ knumh2 .
    ITAB-KNUMH1 =  KNUMH2 .
    ITAB-KNUMH1 = KNUMH1 .
      APPEND ITAB .
    *loop at itab .
    *write:/ itab-knumh1 .
    *endloop .
    CLEAR KNUMH .
    CLEAR KBETR .
      SELECT SINGLE KNUMH FROM A940 INTO KNUMH WHERE KAPPL = 'V' AND KSCHL = 'ZDIJ' AND VKORG = VKORG AND VTWEG = VTWEG AND KDGRP = KDGRP AND MATNR = MATNR AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE .
      SELECT SINGLE KNUMH FROM A931 INTO KNUMH WHERE KAPPL = 'V' AND KSCHL = 'ZDIJ' AND VKORG = VKORG AND VTWEG = VTWEG AND WERKS = WERKS AND KUNNR = KUNNR AND MATNR = MATNR AND KFRST = SPACE AND DATAB LE DATE AND DATBI GE DATE  .
    ITAB-KNUMH =  KNUMH.
    APPEND ITAB .
    CLEAR KNUMH .
    CLEAR KBETR .
    ITAB-KNUMH =  KNUMH .
    APPEND ITAB .
    COMMIT WORK AND WAIT.
    ENDFUNCTION.
    Thanks & Regards
    Amrish

    Hi,
    Please Check this => The specified item was not found.
    How to post code in SCN, and some things NOT to do...
    Faisal

  • ABAP QUERY PROGRAM OUTPUT SHOULD DISPLAY FROM SAP SCRIPT.

    THIS IS MY URGENT REQUIREMENT ...
    I DONT KNOW ABAP QUERY PROGRAM ..
    PLEASE SUGGEST ME A WAY ON THIS ....
    Functional requirements
    Introduction
    The wish of the customer is a printable customer overview. All desired fields will be shown in a new query called ZZADDRSS_CO. Double entries are taken for granted because of the data taken from the sales area and because of multiple contact persons. The customer accepts this. It should be made possible that the user creates and saves its own variant.
    A second overview is needed, another ABAP will be developed for this requirement. This ABAP will show all the customer data and this list will have the possibility to be printed.
    Solution
    New Query ZZADDRESS_CO
    The desired fields of attachment 1 need to be shown in the query.
    The selection criteria are shown in attachment 2.
    The column names of the additional data have to changed in the query.
    Customer Overview.
    Functional specification.
    On behalf of this customer overview a standard SAP transaction will be used (transaction VC/2).This transaction will be extended.
    The fields are shown on screen with the described headers. Printing of the overview will be done via SAP script. The script makes use of a fixed layout of the data.
    The selection criteria are specified in attachment 2.
    The layout of the customer overview and the SAP Script are specified in attachment 3.
    Specification.
    The next steps need to be performed.
    1.     A routine per infoblock need to be created in Include RV77UNNN. In this routine the data is retrieved and written down to the screen and script,
    Example LST1_901 . In include RV77SNNN you can find the standard infoblocks.
    2.     Adapt via transaction SE16 table TFRM.
    3.     Create a new view in the customizing (sales and distribution- Sales support-sales summary-Assign Reporting Views).Assign the new view to the infoblocks.(Example view 001 is assigned to block 901).
    4.     In customizing it is not possible to assign the correct window and element to the infoblock .so this is done via SE16 in table T182A.
    5.     Adapt script. Copy script SD-SALES-SUMMARY to a Z-SALES_SUMM.
    Assign this new version to the new view in customizing. Create in the main window the element who writes the data on behalf of the print.
    Attachment 1 Desired fields
    Header: Address
    ~ Customer number                          KNA1-KUNNR
    ~ Title                                               KAN1-ANRED
    ~ Name1                                           ADRC-NAME1
    ~ Name2                        ADRC-NAME2
    ~ Name3                                           ADRC-NAME3
    ~ Name4                                           ADRC-NAME4
    ~ PO Box                                         ADRC-PO_BOX
    ~ PO Box POSTAL CODE             ADRC-POST_CODE2
    ~ PO Box city                                  ADRC-PO_BOX_LOC
    ~ Telephone no1                              ADR2-TEL_NUMBER   1ST RECORD
    ~ Telephone no2                              ADR2-TEL_NUMBER   2ND RECORD
    ~ Fax number1                                 ADR3-FAX_NUMBER 1ST RECORD
    ~ Fax number2                                ADR3-FAX_NUMBER 2ND RECORD
    ~ E-mail                                            ADR6-SMTP_ADDR
    ~ Search item                                   ADRC-SORT1
    ~ Notes                                            ADRT-REMARK
    Header: control data
    ~ VAT registration number              KAN1-STCEG
    Header: Payment transactions
    ~Bank country key                         KNBK-BANKS
    ~Bank key                                      KNBK-BANKL
    ~Bank Account number                 KNBK-BANKN
    Header: Marketing
    ~ Industry key                                   KNA1-BRSCH
    ~ Industry code 1                              KNA1-BRAN1
    ~ Industry code 2                              KNA1-BRAN2
    ~ Industry code 3                                KNA1-BRAN3
    ~ Industry code 4                                KNA1-BRAN4
    ~ Industry code 5                               KNA1-BRAN5
    ~Annual sales, currency, year           KNA1-UMSA1, KNA1-UWAER, KNA1-UMAH
    ~ Yearly no of employees, year      KAN1-JMZAH, KNA1-JMJAH       
    ~ Fiscal year variant                          KNA1-PERIV
    ~Legal status                                      KNA1-GFORM
    Header: Correspondence
    ~ Our account number at customer            KNB1-EIKTO
    Header: sales
    ~ Sales office                                              KNVV-VKBUR
    ~ Customer group                                       KNVV-KDGRP
    ~ ABC-classification                                  KNVV-KLABC
    Header: Invoice
    ~Tax classification                          KNVI-TAXKD
    ~Terms of payment key                    KNVV-ZTERM
    ~
    Header: Contact Persons
    ~Title                                   KNVK-ANRED
    ~Name                                   KNVK-NAME1
    ~Advertising material                         KNVK-NMAIL
    ~Martial Status                         KNVK-FAMST
    ~Notes                                   KNVK-PARAU
    ~Function                              KNVK-PAFKT
    ~Department                              KNVK-ABTNR
    Header: Partnerroles
    ~Personnel Number                         KNVP-PERNR
    ~Name of employee                         PA0001-ENAME
    Header: Additional Data
    ~Attribute 1                              KNA1-KATR1
    ~Creation date                              KNA1-ERDAT
    ~Attribute 2                              KNA1-KATR2
    ~Change date of field KNA1-KATR2          CDHDR-UDATE
    ~Attribute 3                              KNA1-KATR3
    ~Attribute 4                              KNA1-KATR4          
    ~Attribute 5                              KNA1-KATR5
    ~Attribute 6                              KNA1-KATR6
    Attachment 2 Selection fields
    ~Customer number
    ~Sales office
    ~Personnel Number
    ~Sales Organization (default NL01)
    ~Industry key
    ~Industry codes (1 till 5)
    ~ABC- classification
    ~Creation date
    ~Attribute 1
    ~Attribute 2
    ~Attribute 3
    ~Attribute 4
    ~Attribute 5
    Attachment 3 Customer overview + SAP Script
    Customer master data sheet: 11490                 Page1
    Requested by karen Dunnewold                Date: 25.08.2004
    Address
    (Default SAP script ADDRESS statement)
    Title
    Name1
    Street + number
    PO Box city
    Country
    Search term: ADRC-SORT1
    Telephone 1:      ADR2-TEL_NUMBER     2: ADR2-TEL_NUMBER
    Fax 1:          ADR3-FAX_NUMBER     2: ADR3-FAX_NUMBER
    E-mail:          ADR6-SMTP_ADDR     
    Notes:           ADRT-REMARK
    PO BOX
    ADRC-PO_BOX
    ADRC-POST_CODE2 ADRC-PO_BOX_LOC
    T005T-LANDX (T005T-LAND1 = ADRC-COUNTRY)
    Control data
    VAT registration number:     KNA1-STCEG
    Payment transactions
    Country: KNBK-BANKS Bank-key: KNBK u2013 BANKL Bank account: KNBK-BANKN
    Marketing
    Industry           KNA1-BRSCH     Industry Description
    Industry code1          KNA1-BRAN1     Industry Description
    Industry code2          KNA1-BRAN2     Industry Description
    Industry code3          KNA1-BRAN3     Industry Description
    Industry code4          KNA1-BRAN4     Industry Description
    Industry code5          KNA1-BRAN5     Industry Description
    Figures
    Annual Sales          KNA1-UMSA1, KNA1-UWAER in KNA1-UMAH
    Employees          KNA1-JMZAH                         in KNA1-JMJAH
    Legal status            KNA1-GFORM description
    Customer master data sheet 11490                         Page 2
    Requested by karen Dunnewold                         Date: 25.08.2004
    Contact Persons
    KNVK-ANRED
    Mailings: KNVK-NMAIL           Notes: KNVK-PARAU
    KNVK-ANRED
    Mailings: KNVK-NMAIL           Notes: KNVK-PARAU
    Correspondence
    Our account number at customer      KNB1-EIKTO
    Sales
    Sales office          KNVV-VKBUR     Description
    Customer group     KNVV-KDGRP     Description
    ABC-classify          KNVV-KLABC
    Currency          KNVV-WAERS
    Invoice
    Terms of payment key KNVV-ZTERM      Tax classification KNV1-TAXKD
                                  Description     
    Partner (Leave SAP default)
    Partnerrole               Number          Name
    KNVP-PARVW          KNVP-KUNNR     NAME1
    KNVP-PARVW          KNVP-KUNNR     NAME1
    Additional data
    Attribute1          kna1-katr1     Description
    Attribute2          kna1-katr2     Description
    Attribute3          kna1-katr3     Description
    Attribute4          kna1-katr4     Description
    Attribute5          kna1-katr5     Description
    Attribute6          kna1-katr6     Description

    hi narayana
    i think u need to write a driving program and a provided with a smatform u sit along with the SD consultant.
    ur further views can be shared.
    Rgs,
    Venkat.

  • Not Displaying List when called in subscreen

    Hi all
      My program is not showing the output screen(list) when it is called from the subscreen, it is returing back to the subscreen.
    Following is the program flow.
    1. I have a normal selection screen and a selection subscree.
    SELECTION-SCREEN BEGIN OF BLOCK b1. PARAMETERS: pa_bukrs LIKE t001-bukrs,
                pa_kunnr LIKE kna1-kunnr,
                pa_kdgrp LIKE knvv-kdgrp,
                pa_gjahr LIKE bsid-gjahr DEFAULT '2007'.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF SCREEN 2001 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK b2.
    PARAMETERS: p1 RADIOBUTTON GROUP g1 DEFAULT 'X',
                p2 RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF SCREEN 2001.
    2. Now after displaying normal selection screen, with some input parameter combination i am calling new screen, as shown below.
      IF pa_kunnr <> ''.
        CALL SCREEN 100.
      ENDIF.
    following is the code of screen flow logic
    PROCESS BEFORE OUTPUT.
      MODULE status_0100.
      CALL SUBSCREEN area INCLUDING sy-repid '2001'.
    PROCESS AFTER INPUT.
      MODULE cancel AT EXIT-COMMAND.
      MODULE TEST.
      CALL SUBSCREEN area.
      MODULE user_command_0100.
    3. Now in "user_command_0100" Module i am writing the commands to print the list, as shown below
      CASE sy-ucomm.
        WHEN 'BACK'.
          LEAVE PROGRAM.
          LEAVE TO SCREEN 0.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
          LEAVE TO SCREEN 0.
        WHEN 'EXEC'.   "This is the button defined on the sub screen"
          IF ( p1 = 'X' ).
            PERFORM select_data_opt3_1.
            PERFORM rep_opt3_1_top.
            PERFORM rep_opt3_1_print.
          ELSE.
            PERFORM select_data_opt3_2.
          ENDIF.
      ENDCASE.
    _Problem:-_ Now i am writing the list in the perform statements,
    now problem is that after executing all the command the program is returing back to the subscree(OR screen no 100) without displaying the list.
    Please tell me where should i give the write command.
    Regards
    Sukhjinder Singh

    You have to write the follwoing statements if you want to switch list from screen :
      LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
      SET PF-STATUS space.
      SUPPRESS DIALOG.
    Ex: Check the following code:
    REPORT demo_leave_to_list_processing .
    TABLES demo_conn.
    DATA: wa_spfli TYPE spfli,
          flightdate TYPE sflight-fldate.
    CALL SCREEN 100.
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE user_command_0100.
      CALL SCREEN 500.
      SET SCREEN 100.
    ENDMODULE.
    MODULE call_list_500 OUTPUT.
      LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
      SET PF-STATUS space.
      SUPPRESS DIALOG.
      SELECT  carrid connid cityfrom cityto
        FROM  spfli
        INTO  CORRESPONDING FIELDS OF wa_spfli
        WHERE carrid = demo_conn-carrid.
        WRITE: / wa_spfli-carrid, wa_spfli-connid,
                 wa_spfli-cityfrom, wa_spfli-cityto.
        HIDE: wa_spfli-carrid, wa_spfli-connid.
      ENDSELECT.
      CLEAR: wa_spfli-carrid.
    ENDMODULE.
    TOP-OF-PAGE.
      WRITE text-001 COLOR COL_HEADING.
      ULINE.
    TOP-OF-PAGE DURING LINE-SELECTION.
      WRITE sy-lisel COLOR COL_HEADING.
      ULINE.
    AT LINE-SELECTION.
      CHECK NOT wa_spfli-carrid IS INITIAL.
      SELECT  fldate
        FROM  sflight
        INTO  flightdate
        WHERE carrid = wa_spfli-carrid AND
              connid = wa_spfli-connid.
        WRITE / flightdate.
      ENDSELECT.
      CLEAR: wa_spfli-carrid.
    screen 100
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
    PROCESS AFTER INPUT.
      module cancel at exit-command.
      MODULE USER_COMMAND_0100.

Maybe you are looking for

  • Trying to restore old GarageBand projects, some will, some won't?

    I am on OS X 10.6.8, 2.66 GHz Intel Core 2 Duo, and before the last system update (to 10.6.8) I was running Time Machine on an outboard Samsung drive, and had an Iomega external drive to which I had moved my GarageBand folder (and its pointer) and al

  • Icon size in Mountain Lion

    I just upgraded to Mountain Lion and it's great, but I used to be able to change the size of icons just by pinching on the trackpad and whatever the opposite of pinching is. I know I can't "right click" and bring up "View Options" and change it that

  • Not to display units for keyfigures in the query output

    Hi All, i have created a query and when i executed it displays all the key figure values with units. is there any way to restrict with only value. there are more than 20 to 25 keyfigures in query. i canot create formula keyfigure for these keyfigures

  • APO -DP and BW linking

    Hi 1) Is it mandatory to do some setting in BW for data upload by APO consultant. 2) If a orgnaisation is using  manual forcasting by taking inputs frm sale team , sales data  than how to convenced client that he will get benifited from APO DP. Thank

  • Windows XP Firefox 3.6.8 hangs up on xmarks 3.7.8 dialog

    Before firefox main window is displayed, the xmarks update 3.7.8 is offered by dialog box which hangs up whatever option is chosen. Firefox never starts. Re-installing firefox has worked using the "run now" option, but how can I clear up this problem