Most efficient logic based on my selection screen...

Hello Experts,
My selection screen's parameters is based on different tables like VBAK, LIKP, MARA and LIPS.
Now, How do I code my select statement since my selection screen is based from different tables?
I want to avoid using JOINS for this scenario.Anyway, below is my selection screen:
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln,
                s_audat FOR vbak-audat,
                s_auart FOR vbak-auart,
                s_bstnk FOR vbak-bstnk,
                s_sold  FOR vbak-kunnr,
                s_ship  FOR likp-kunnr,
                s_spart FOR mara-spart,
                s_matnr FOR vbap-matnr,
                s_charg FOR lips-charg,
                s_dlv   FOR lips-vbeln,
                s_lfdat FOR likp-lfdat.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: rb_local RADIOBUTTON GROUP grp1 DEFAULT 'X' USER-COMMAND cmd,
            rb_ftp   RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
PARAMETERS:     p_fname2(60) TYPE c MODIF ID fnb,
                p_fname      TYPE   rlgrap-filename DEFAULT 'c:' MODIF ID fna ,
                p_ip(64)     TYPE c LOWER CASE ,
                p_user(30)   TYPE c LOWER CASE ,
                p_pword(30)  TYPE c LOWER CASE .
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN END OF BLOCK b1.
Hope you can help me guys. Thank you and take care!

Hi
It is better to declare the Select -options with their Master data tables
where ever it is possible.
Kunnr from KNA1 instead of VBA-kunnr, Matnr from MARA instead of VBAP-MATNR, SPART from TSPA instead of MARA-SPART.
You can join the tables VBAk,VBAP,LIKP,LIPS,MARA and can give all the select -options in the where conditions
that is the efificient way I feel, since the tables Order and Delivery tables can easily be joined.
or first join VBAk,VBAP,MARA and give the VBELn,AUDAT,AUART,BSTNK, SPART from VBAK and then for all entries of this ITAB fetch LIKP and LIPS validating the LIKP-KUNNR,CHARG,VBELN,LFDAT in where condition.
Regards
Anji

Similar Messages

  • How to fetch data based on this selection screen

    Hi Friends:
       I've a selection screen which contains these 3 fields:
    company code (t001-bukrs)
    material division (mara-spart)
    posting date  (bkpf-budat)
    based on the above fields, I've to fetch the following:
    ekpo-bukrs
    mara-spart
    mseg-werks
    mseg-lgort
    bseg-hkont
    bseg-kostl
    bseg-hkont
    skat-txt50
    mseg-mblnr
    mseg-zeile
    bseg-belnr
    bkpf-bktxt
    mseg-insmk
    bkpf-monat
    bkpf-budat
    mseg-bwart
    mbew-matnr
    makt-maktx
    mseg-menge
    mseg-meins
    mbew-stprs
    mseg-dmbtr
    bseg-pswsl
    ausp-atwrt
    mara-matkl
    mara-mtart
    mbew-bklas
    mbew-bwtar
    mkpf-vgart
    mcha-charg
    mseg-ebeln
    aufk-aufnr
    mseg-ummat
    vbak-vbeln
    likp-vbeln
    bkpf-usnam
    Please help me with the logic . I want to ask that in which order I should start fetching data.How to relate it from selection screen. Which table I should fetch first based on the selection screen.how to relate mseg/bseg/mara/mbew/vbak/bkpf  etc.
    Please help.
    Thanks for your time.

    Hi,
    I dont think you need EKPO to fetch your bukrs. It is available in BKPF too.
    Use inner join to join MKPF, BKPF, MAKT, fetch all the related entreis.
    Use Inner join on MBEW, MCHA for all entries from above query.
    use inner join on AUSP for all entries from above query.
    Use may use separate queries or inner joins for LIKP and VBAK with for all entries.
    Use separate for all entries for BSEG and MSEG. Do not use any JOIN on BSEG as it is a pooled table.
    As per the need you may change the queries..
    Regards,
    Subramanian

  • Logical database : user defined selection screen

    Hi Experts,
                 I am working with HR-ABAP. The logical databases provide a selection screen......but i want to use a selection screen of my own and not that of the LDB.
    Plz help...............

    hi do like this....
    go to attributes-->hr report catagory-->master data...here use the value _____000(5underscores and 000 )..
    you wii get that..
    regards,
    venkat

  • Based from my selection-screen, how can I make the parameter dynamic?

    Hi experts,
    Based from my code below and logic, I have to modify the loop at screen without removing the original IF condition in such a way that the parameter p_code will only be available for input if the radiobutton pr_edit is clicked by the user.
    Again, thank you guys and have a great day!
    SELECTION-SCREEN BEGIN OF BLOCK box1 WITH FRAME TITLE text-001.
    PARAMETERS: pr_upld RADIOBUTTON GROUP grp MODIF ID id3.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 03(30) text-a11 FOR FIELD p_flnme MODIF ID id3.
    PARAMETERS: p_flnme LIKE rlgrap-filename DEFAULT 'C:\' MODIF ID id3.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(32) text-002 FOR FIELD p_dcode MODIF ID id1.
    PARAMETERS: p_dcode LIKE vbak-kunnr MODIF ID id1,
                p_name1 LIKE kna1-name1 MODIF ID id1.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: pr_list RADIOBUTTON GROUP grp MODIF ID id4,
                pr_add  RADIOBUTTON GROUP grp MODIF ID id2,
                pr_edit RADIOBUTTON GROUP grp MODIF ID id5.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 03(30) text-a12 FOR FIELD p_code MODIF ID id2.
    *PARAMETERS: p_kunnr LIKE zts0001-kunnr.
    PARAMETERS: p_code LIKE zts0001-cdseq MODIF ID id6.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK box1.
    IF v_compflag EQ space.
        LOOP AT SCREEN.
          IF screen-group1      = 'ID1'.
            screen-input        = '0'.
            screen-output       = '1'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID2'.
            screen-active       = '1'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID3'.
            screen-active       = '0'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID4'.
            screen-active       = '1'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID5'.
            screen-active       = '1'.
            MODIFY SCREEN.
         ELSEIF screen-group1  = 'ID6'.
            screen-active       = '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSEIF v_compflag NE space.
        LOOP AT SCREEN.
          IF screen-group1      = 'ID1'.
            screen-active       = '0'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID2'.
            screen-active       = '0'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID3'.
            screen-active       = '1'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID4'.
            screen-active       = '1'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID5'.
            screen-active       = '0'.
            MODIFY SCREEN.
          ELSEIF screen-group1  = 'ID6'.
            screen-active       = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.

    Write the below code in  selection Screen Output Event
    AT SELECTION-SCREEN OUTPUT.
      IF pr_edit EQ 'X'.
        LOOP AT SCREEN.
          IF ( screen-group1 = 'ID6' ).
            screen-input = 0.
            screen-invisible = 1.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
    ENDIF.
    Enjoy Coding.
    Thomas.

  • Logical database :-prevention of selection screen

    when i use logical database and i use the statment
    get DBTAB, i am prompted with a selection screen,is
    it possible to supress this selection screen and supply
    some value.

    I guess you mean to modify the screen layout during AT SELECTION-SCREEN OUTPUT via
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        screen-active = 0.
        MODIFY SCREEN.
      ENDLOOP.
    This does hides all screen elements but the screen is still displayed.

  • Exclude one field from Logical Database's dynamic selection screen

    Hi Guru,
    I have a requirement to amend a program to exclude the document number field (bsik-belnr) from the dynamic selection-screen of the logical database KDF(Vendor Database) so that the program will not filter according to the document number.
    I have use the below syntax in my zprogram.
      selection-screen exclude select-options: doc-no.
    However I get syntax error "The addition EXCLUDE is only allowed in INCLUDE DBKDFSEL".
    Please advice.
    Best Regards,
    Fung

    The selection part of the logical database defines input fields for selecting data.
              The runtime environment displays these on the selection screen when you run an executable program linked to the logical database.
              Include called DB<ldbname>SEL.
            SELECTION-SCREEN BEGIN OF VERSION ver TEXT-xxx.
                                                                    SELECTION-SCREEN EXCLUDE ... .
                                                    SELECTION-SCREEN END OF VERSION ver.
    Defines a selection screen version (with a three-character name ver ). Between BEGIN OF VERSION and END OF VERSION , you can exclude selection screen objects for the version ver , i.e. remove them from the selection screen with SELECTION-SCREEN EXCLUDE.
              SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab
    If one of these tables is active in the report (i.e. it is declared under TABLES or lies somewhere on the path from the root of the database hierarchy to a table declared with TABLES ), a pushbutton called 'Dynamic selections' appears on the selection screen.

  • Filtering of the data based upon the selection screen data using ldb

    Hi Experts ,
    I am using ldb pnpce, for my report ,and i created my own report category with selection paramaters
    action type and payroll area
    now the problem is when i am giving the action type as Z0 ,the data to be extracted is not getting filtered
    based upon the action type ,the data consists the records having different action types other than Z0
    Please give me some solution for this

    Thanks Durga ,but the link wat ever u was for hiding the selection screen fields
    but my question is when am using get pernr event my data is not getting filtered with the selection screen paramater value
    i,e m giving action type as only hiring ,but m getting the data for all the action types ,its not filtering based upon my selection

  • Logic need for my selection screen

    Hi,
    i designed my selection screen
    PARAMETERS:
      rb_alv   RADIOBUTTON GROUP g2,                                                        " Radio 1
      rb_pc    RADIOBUTTON GROUP g2,                                                        " Radio 2
      rb_unix  RADIOBUTTON GROUP g2.                                                        " Radio 3
    *File path
    PARAMETERS: pa_ftxt TYPE rlgrap-filename.
    Below isMy requirement is :How to do it???please help
    Do not hard-code the directory output for Unix. Just make sure the selection logic checks to make sure a value exists in the path field if either download option (pc/unix) is set). For the PC default, use u2018c:\temp\veninfo.txtu2019 as a constant.
    Thanks
    asis

    PARAMETERS:
    rb_alv RADIOBUTTON GROUP g2 user-command 'RAD', " Radio 1
    rb_pc RADIOBUTTON GROUP g2, " Radio 2
    rb_unix RADIOBUTTON GROUP g2. " Radio 3
    *File path
    PARAMETERS: pa_ftxt TYPE rlgrap-filename.
    at selection-screen output.
    if rb_pc = 'X'.
    pa_ftxt = 'c:\temp\veninfo.txt'.
    else.
    clear pa_ftxt.
    endif.
    at selection-screen on value request for pa_ftxt.
    CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
    EXPORTING
    i_location_flag = 'A'
    i_server = ' '
    i_path = ' ' "here you can give the path of the server directory
    IMPORTING
    o_path = l_path
    abend_flag = l_abend_flag
    EXCEPTIONS
    communication_failure = 1
    system_failure = 2
    rfc_error = 3.
    IF sy-subrc EQ 0.
    p_file = l_path.        "This gives you the path
    ENDIF.
    IF l_abend_flag = 'X'.
    EXIT.
    else.
    Move l_path to your screen field pa_ftxt.
    ENDIF.

  • Splitting the date based on the selection screen input

    Hi all,
    In the Selection screen of my report i had maintained two fields
    SELECT-OPTIONS  : S_DATE    FOR TPCDATE-FROM_DATE.
    PARAMETERS      : P_NUMBER  TYPE ZMMAREA-NUMBER.
    I need to code such that
    S_DATE should be splitted into P_NUMBER times
    for example if P_NUMBER is 4 i need  S_DATE should be splitted into 4 equal parts or near by equal parts
                        IF  P_NUMBER is 2 i need  S_DATE should be splitted into 2 equal parts or  near by equal parts
    Please suggest me the code of if any Function module exists fot this date splitting
    Thanks in advance
    Ajay.D

    though date question are not allowed, this requirement sounds little different.
    you can take a difference between those days by: S_date-high - S_date-low.
    then divide the difference by p_number. now you get the split positions.
    now in a do enddo you can negate the dates by the split amount you got from the divisions.
    like...
    PARAMETERS: num type i.
    select-OPTIONS: s_date for sy-datum.
    data : gv_split type i, gv_temp type sy-datum.
    gv_split = s_date-high - s_date-low.
    gv_split = gv_split / num.
    gv_temp = s_date-high.
    do num times.
      gv_temp = gv_temp - gv_split.
      WRITE / gv_temp.
    enddo.

  • Selection screen flow logic change not taking affect. Please help!

    Hi
       When I am trying to change the selection scren flow logic I get the following message:
    Selection screen: Report generation makes screen changes ineffective.
    Whatever I am changing is not taking affect in runtime.
    Even though I have activated the changed code for the screen
    What shall I do resolve this?
    Thanks
    Gopal

    You should not be changing the screen flow logic of a standard selection screen 1000.  It will always be regenerated.  In order to modify the standard selection screen, you can do this in the AT SELECTION-SCREEN output event and loop at screen and change the attributes.
    Loop at screen.
      if screen-name = 'P_CHECK'.
        screen-input = '0'.
        modify screen.
      endif.
    endloop.
    Regards,
    Rich Heilman

  • How to retrieve data using logical database and custom select options

    Hi all,
    I have a selection screen which is displayed by logical database PSJ and I have two select options of my own. I need to retrieve data based on both selection screen of logical database and my own select options. How can I do it?
    Thanks in advance.

    Hai Gupta
    Check the following Document & Links
    1. A logical database is in fact
    a program only.
    2. This LDB provides two main things :
    a) a pre-defined selection screen
    which handles all user inputs and validations
    b) pre defined set of data
    based upon the user selection.
    3. So we dont have to worry about from
    which tables to fetch data.
    4. Moreover, this LDB Program,
    handles all user-authorisations
    and is efficient in all respects.
    5. tcode is SLDB
    good info about Logical Database. you can check the link.
    http://www.geekinterview.com/question_details/1506
    http://help.sap.com/saphelp_46c/helpdata/EN/35/2cd77bd7705394e10000009b387c12/frameset.htm
    Re: How to Create and Use ldb in reports?
    Re: Logical databases
    http://help.sap.com/saphelp_46c/helpdata/en/9f/db9bed35c111d1829f0000e829fbfe/frameset.htm
    Functions for displaying and changing logical databases:
    Call Transaction SE36 or
    Choose ABAP Workbench -> Development -> Programming environ. -> Logical databases
    Interaction between database program and report:
    During program processing, subroutines are performed in the database program and events are executed in the report.
    To read data from a database tables we use logical database.
    A logical database provides read-only access to a group of related tables to an ABAP/4 program.
    advantages:-
    The programmer need not worry about the primary key for each table.Because Logical database knows how the different tables relate to each other,and can issue the SELECT command with proper where clause to retrieve the data.
    i)An easy-to-use standard user interface.
    ii)check functions which check that user input is complete,correct,and plausible.
    iii)meaningful data selection.
    iv)central authorization checks for database accesses.
    v)good read access performance while retaining the hierarchical data view determined by the application logic.
    disadvantages:-
    i)If you donot specify a logical database in the program attributes,the GET events never occur.
    ii)There is no ENDGET command,so the code block associated with an event ends with the next event
    statement (such as another GET or an END-OF-SELECTION).
    1. transaction code SLDB.
    2.enter name z<ldb-name>
    3.create
    4.short text
    5.create
    6. name of root node (here Ekko)
    7. enter short text (f6)
    8.node type -> data base table.
    9.create
    10 change logical DB
    riht click on ekko and insert node
    here node name ekpo
    11.create
    12. click on selections
    13. press no Should the changed structure of Z<ldb name> be saved first.
    14.select tables which you want to join.
    15.transfer
    16 now you have to o to coding part.
    17. save
    activate.
    19.click to src code
    double click on first include and activate
    Regards
    Sreeni

  • How to create the selection screen dynamically

    Hi,
    I have a requirement to create the selection screen Dynamically. All the fields that should appear on the selection screen will be available in a custom table. So, based on the entries available in the Z tables, the selection screen should be built. Eg. If there are 10 records available in the Z table, the selection screen should consist of 10 fields. If there are 100 entries, the Selection screen should contain 100 fields. and the logic to build this selection screen should be carried out dynamically in the program.
    Could anyone of you please share the valuable inputs on this. If anyone has the sample code to do this, please share.
    Thanks in advance.
    Regards,
    Paddu.

    Hi,
    Kindly go through this sample program below:
    DEMO_LIST_FORMAT_INPUT *and
    check this function module:
    FREE_SELECTIONS_DIALOG *.
    Hope it helps
    Regards
    Mansi

  • Need selection screen values in Search help user exit in same report

    Hi Experts,
    I am using Logical Data Base PNP.
    Created a custom search help to validate the records for IT000 based on the selection screen dates.
    Enter the DATEs for Data Selection Period and Person selection period in the selection screen.
    When I for search help for PERNR field in the same report, I need the selectin screen DATE values to be in user-exit of search help.
    This will help me in validating the records for specific employees within the date range of given DATE in selectin period.
    As of now it's picking the employees based on the DATE selection of selection screen,
    Regards,
    Prasad

    Hi,
    Go Ahead as mentioned by Satyesh T - (Option two).
    Reading Select Options from DYNP_VALUES_READ
    reffer the above link for getting more clarity for using  'DYNP_VALUES_READ'
    Regards.
    Arun

  • Report which has four selection screens called in a specific order

    Hi All,
    In a report, how can I call multiple selection screens predefined, and  create BDC recording in the program based on the values entered in the selection screens. The selection screens are 4 in my scenario in a specific order. Please send across sample code which has the logic to call multiple selection screens and create BDC recording for sales order, delivery, PGI..Thanks
    Ricky

    If ur option is to creat multiple screens...go for tabstrip option in ur report and record it.
    selection-screen begin of screen 001 as subscreen.
    selection-screen begin of block b1 with frame title text-001.
    selection-screen begin of line.
    selection-screen comment 2(10) text-003.
    parameters:par1 type marc-matnr.
    selection-screen end of line.
    selection-screen end of block b1.
    selection-screen end of screen 001.
    selection-screen begin of screen 002 as subscreen.
    selection-screen begin of block b2 with frame title text-002.
    selection-screen begin of line.
    selection-screen comment 2(10) text-003.
    parameters:par2 type marc-matnr.
    selection-screen end of line.
    selection-screen end of block b2.
    selection-screen end of screen 002.
    selection-screen begin of tabbed block tabstrip for 10 lines.
    selection-screen tab (15) tabs1 user-command t1 default screen 001.
    selection-screen tab (15) tabs2 user-command t2 default screen 002.
    selection-screen end of block tabstrip.
    initialization.
    tabs1 = 'TAB1'.
    tabs2 = 'TAB2'.

  • Can you giv me a brief introduction regarding selection screen with one eg:

    Hello
    can you giv me a brief introduction regarding selection screen with one eg:

    Hi Ranjith,
    Selection Screens
    Selection screens are one of the three types of screen in the R/3 System, along with dialog screens and lists. You use them whenever you want the user to enter either a single value for a field or fields, or to enter selection criteria.
    Function
    ABAP programs use screens to obtain input from users. The most general type of screen is a dialog screen, which you create using the ABAP Workbench tools Screen Painter and Menu Painter These tools allow you to create screens for data input and output. However, each of these screens requires its own flow logic.
    Defining and Calling Selection Screens
    You often use screens purely for data input . In these cases, you can use a selection screen. Selection screens provide a standardized user interface in the R/3 System.  Users can enter both single values and complex selections.  Input parameters are primarily used to control the program flow, while users can enter selection criteria to restrict the amount of data read from the database. You can create and save predefined sets of input values in the ABAP Editor for any selection screen. These are called variants.  Texts on the selection screen are stored as language-specific selection texts in the program text elements.  If you start an executable report using the SUBMIT statement, the input fields of the selection screen also serve as a data interface.
    Defining and Calling Selection Screens
    You define selection screens using ABAP statements in a program.  Simple statements allow you to create input fields, checkboxes, and radio buttons, and design the screen layout.  If you want to create a screen exclusively for data input, you do not need to create it using the normal dialog programming tools. When you create a selection screen, the system automatically assumes the tasks of the Screen Painter and Menu Painter.
    The rules for calling and defining selection screens in ABAP programs depend on the program type:
    ·         Executable program (type 1) without logical database
    You can use a single standard selection screen and as many user-defined selection screens as you wish. The standard selection screen is called automatically when you start the program.  User-defined selection screens, on the other hand, are called using the CALL SELECTION-SCREEN statement in a program.  The standard selection screen always has the screen number 1000. User-defined selection screens can have any screen number except 1000.
    ·         Executable program (type 1) with logical database
    The standard selection screen for an executable program linked to a logical database is made up of the logical database selections and the program selections.
    ·         Module pools (type M) and function modules (type F)
    You can only use user-defined selection screens in module pools and function modules. These can have any number apart from 1000. You can only call a selection screen from a function module using the CALL SELECTION-SCREEN statement. You can also define selection screens as Subscreens and incorporate them in screens or tabstrip controls.
    Hope this is useful.
    regards
    Ram
    Message was edited by:
            Ramanujan Chitrakootam

Maybe you are looking for