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.

Similar Messages

  • 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

  • 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.

  • How to find Logical database name using selection view

    Hi Experts,
                      How can we find logical database name using selection view in se36.
    Regards,
    Mani

    Hi,
    If you want to see the logincal database used in the report ( tcode se38) in the intial screen select the attribute tab
    and click display you will bw able to see the logical datbase ysed for the report.
    Thanks.

  • Logical  database and program selection filter

    Hi experts ,
    In my program i have to select pernr through logical database selection and payroll area through manual coding .
    Could you tell me how to give the filter condition in program.I am  using PNPCE Logical database .
    Thank you.
    Devika.

    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.

  • 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 prevent AT SELECTION-SCREEN event on second Selection Screen

    Hi All
    I have a program in which I am entering some parameters in a selection screen and also validating them in AT SELECTION-SCREEN events. After validating them the program shows another selection screen in which I have some push-buttons. I have some events on those push-buttons also.
    However I am facing a different problem now. When I execute the second selection screen I get the report, and when I click on back button then it again triggers the AT SELECTION SCREEN event of the first selection screen and displays the related messages.
    How to prevent this ? Is there any way where I can restrict the execution of selection screen events for a particular selection screen?
    Amol

    Hi,
        try this logic when Ist selection screen validation
         is done set a flag = 'X' .
          at selection-screen.
          if glag is initial
           *screen validation
               flag = 'X..     
          endif.
    regards
    amole

  • How to know logical database supports Dynamic Selections

    hi all,
    1. Logical database KDF supports Dynamic Selections
    2. How to know logical database 'KDF' supports Dynamic Selections

    You might find an answer regarding dynamic 'WHERE' statements in standard SAP report SAPDBKDF

  • 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.

  • Unable to fetch records from database with huge selection screen

    Hi all,
    I have 20 fields from selection screen.
    I have a z table with these 20 fields .
    Now with the values entered in the selection screen i have to fetch the records from the z table.
    All fields in the selection screen are not mandatory, the user may or may not enter the values.
    I have to fetch the records based on the values entered.
    I wrote a select with where condtion to all those 20 fields. but its not retreving the records.
    All the fields in the selection screeen are parameters.
    Could you help me on this, please. I wrote in the where conditon with field1 = value AND field 2 = value.. etc... field20 = value.
    Please guys help me out.
    KV.
    Edited by: Nithin Kumar on Mar 18, 2008 8:48 AM

    Guys,
    I have a problem with the select query.
    as i said i have 20 fields, ranges are working for few fields.
    But i have couple of fields as descriptions. So i have to fetch the records for pattenr as well.
    Means, user can enter in the description............. like    "ab". So in the description if there is anything   with 'ab' it should fetch.
    it works with a LIKE statement with % symbols.
    but it doenst work with   ranges and patterns in same select. I mean the below is not working.
      SELECT  *
             FROM crmd_orderadm_h
             INTO table itab
             WHERE object_id IN r_obj AND
                   process_type IN r_pro AND
                   description LIKE s_des.
    r_obj, r_pro are ranges  and s_des is the pattern, ex: %ab%.              so in this case how it has to be done... could you please help me on this.. the other fields could be blank( r_obj and r_pro).. 
    kindly help me out......
    KV

  • 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

  • What are structures of logical database.

    hi
    what are structures of logical database.

    Dear Chaitanya,
    The structure of LDB can be divided into three sections:
    >Structure
    >Selection
    >Database Program
    STRUCTURE:
    The structure defines the data view of the logical database. It adopts the hierarchy of the database tables defined by their foreign key relationships. This also controls the sequence in which the tables are accessed. It determines the structure of the other components and the behavior of the logical database at runtime.
    The structure of a logical database is usually based on the foreign key relationships between hierarchical tables in the SAP System. Logical databases have a tree-like structure, which can be defined as follows:
    · There is a single node at the highest level. This is known as the root node.
    · Each node can have one or several branches.
    · Each node is derived from one other node.
    The nodes must be structures defined in the ABAP Dictionary or data types from a type group. Normally, these are the structures of database tables which the logical database reads and passes to the user for further evaluation. However, it is also possible, and sometimes useful, to use ABAP Dictionary structures without an underlying database. For technical reasons, the maximum number of nodes allowed in the structure of a logical database is 300.
    Any executable ABAP program that has a logical database linked to it can contain a GET statement for each node of the structure. When you run the program, the corresponding event blocks are processed in the sequence prescribed by the hierarchical structure of the logical database. If a program does not contain a GET statement for every node of a logical database, the processing passes through all the nodes that lie in the path from the root to the nodes specified by GET statements.
    If you call a logical database using the function module LDB_PROCESS, the depth to which the system reads is controlled by an interface parameter.
    SELECTIONS:
    The selections define a selection screen, which forms the user interface of the executable programs that use the logical database. Its layout is usually determined by the structure. You can adapt the selections to your own requirements and also add new ones. When you link a logical database to an executable program, the selections of the logical database become part of the standard selection screen of the program (screen number 1000). If you call a logical database using the function module LDB_PROCESS, the selections are filled using interface parameters.
    The selections in a logical database are defined using the normal statements for defining selection screens, that is, PARAMETERS, SELECT-OPTIONS and SELECTION-SCREEN. In a logical database, you can also use the additions VALUE-REQUEST and HELP-REQUEST to define specific input and value help. You define the selection screen in a special include program known as the selection include.
    When you write programs using a logical database, you can also add your own program specific selections. The standard selection screen then contains the database-specific selections, followed by the program-specific selections that you have defined.
    When the system generates the selection screen for an executable program, database-specific selection criteria and parameters are only displayed if you have declared an interface work area for them in your program using the NODES or TABLES statement.
    Suppose you have a selection include containing the following lines:
    SELECT-OPTIONS slifnr FOR lfa1-lifnr.
    PARAMETERS pbukrs LIKE lfb1-bukrs FOR TABLE lfb1.
    The selection criterion SLIFNR is linked to table LFA1, the parameter PBUKRS to table LFB1. If the TABLES statement in an executable program (report) declares LFA1 but not LFB1, SLIFNR is displayed on the selection screen, but PBUKRS does not appear.
    The selection screen of a logical database can contain dynamic selections as well as static ones. Dynamic selections are extra, user-defined selections that the user can make as well as using the static selections defined in the selection include. To improve performance, you should always use this option instead of reading more data than you need and then sorting it out in the application program.
    To make dynamic selections available for the node nodeof a logical database, the selection include must contain the following statement:
    SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE|TABLE node.
    If the node node is requested by the user of the logical databases, the dynamic selections are included in the selection screen. A user can then choose Dynamic selections to enter extra selections for the corresponding fields. If you call the logical database using the function module LDB_PROCESS, you can pass a corresponding parameter. You can use these selections in dynamic statements in the logical database program to read data. The values of the program-specific selection criteria that you defined for a node for which dynamic selections were available are also passed to the logical database. The user can also define the fields for dynamic selections as a selection view for the logical database.
    The selection screen of a logical database is part of the standard selection screen (number 1000) of the executable program to which the logical database is attached. It has a standardized layout - the selection criteria and parameters appear on separate lines in the order in which they were declared. You can change the layout using the SELECTION-SCREENstatement.
    The runtime environment generates the selection screen with number 1000 for every program in which the attributes do not contain a different selection screen version. You can prevent certain input fields from the selection screen of a logical database from appearing on the selection screen by defining selection screen versions with a screen number lower than 1000 in the selection include, and entering this version number in the program attributes. By pressing F4 there, you can get an overview of the selection screen versions defined in the logical database concerned. To define a selection screen version, use the statements SELECTION-SCREEN BEGIN|END OF VERSION. Within these statements you can use SELECTION-SCREEN EXCLUDEto specify fields that you do not want to appear on the selection screen.
    If the attributes of an executable program contain the number of a selection screen version, the version is used in the standard selection screen. Although the input fields that you excluded from the selection screen are not displayed, the corresponding selections still exist, and you can still edit them in the program or by calling the function module LDB_PROCESS.
    DATABASE PROGRAM:
    The database program contains the ABAP statements used to read the data and pass it to the user of the logical database. There is a container for special subroutines into which, amongst other things, the data from the database tables is read. These subroutines are called by the reporting processor in the runtime environment in a sequence that has been predefined by the structure. The database program is determined by the structure and selections and can be adapted or expanded to meet your requirements.
    The name of the database program of a logical database ldbconforms to the naming convention SAPDBldb. It serves as a container for subroutines, which the ABAP runtime environment calls when a logical database is processed. The sequence of the calls and their interaction with the events in executable programs or the function module LDB_PROCESS depends on the structure of the logical database.
    A logical database program usually contains the following subroutines:
    · FORM LDB_PROCESS_INIT
    Called once only before the logical database is processed. It prepares it to be called more than once by the function module LDB_PROCESS.
    · FORM INIT
    Called once only before the selection screen is processed.
    · FORM PBO
    Called before the selection screen is displayed, each time it is displayed. Consequently, it is only called when you use the logical database with an executable program, not with the function module LDB_PROCESS.
    · FORM PAI
    Called when the user interacts with the selection screen. Consequently, it is only called when you use the logical database with an executable program, not with the function module LDB_PROCESS. The interface parameters FNAME and MARK are passed to the subroutine.
    FNAME contains the name of a selection criterion or parameter on the selection screen.
    MARK describes the selection made by the user: MARK = space means that the user has entered a simple single value or range selection. MARK = '*' means that the user has also made entries on the Multiple Selection screen.
    · FORM LDB_PROCESS_CHECK_SELECTIONS
    Called instead of the subroutine PAI if the logical database is called using the function module LDB_PROCESS without a selection screen. This subroutine can check the selections passed in the function module interface.
    · FORM PUT_node
    Called in the sequence defined in the structure. Reads the data from the node nodeand uses the
    PUT node.
    statement to trigger a corresponding GETevent in the ABAP runtime environment. The PUT statement is the central statement in this subroutine: It can only be used within a subroutine of a logical database. The logical database must contain the node node, and the subroutine name must begin with PUT_node. The PUT statement directs the program flow according to the structure of the logical database. The depth to which the logical database is read is determined by the GET statements in the application program or the interface parameter CALLBACK of the function module LDB_PROCESS.
    First, the subroutine PUT_root is executed for the root node. The PUT statement then directs the program flow as follows:
    i. If the database program contains the subroutine AUTHORITY_CHECK_node, the first thing the PUT_node statement does is to call it.
    ii. Next, the PUT statement triggers a GET event in the runtime environment. If there is a corresponding GET nodestatement in the executable program to which the logical database is linked, the associated event block is processed. If the CALLBACK parameter of the function module LDB_PROCESS is filled accordingly, the corresponding callback routine is called.
    iii. The PUT statement directs the program flow
    (a) To the next subroutine of a node that follows directly, if a lower-level node (not necessarily the very next) in the same subtree is requested by GET in the executable program or in the function module.
    (b) To the subroutine of a node at the same level, if the preceding node branches to such a node and if a GET statement exists for such a node in the executable program or the function module.
    The PUT statement in that subroutine starts again at step (i). In the subroutine of the lowest node in a subtree to be processed using GET, the program control does not branch further. Instead, the current subroutine is processed further. When a subroutine PUT_node has been executed in its entirety, the program flow returns to the PUTstatement from which it branched to the subroutine PUT_node.
    iv. When control has returned from a lower-level subroutine PUT_node, the PUTstatement triggers the event GET node LATEin the runtime environment.
    · FORM AUTHORITY_CHECK_node
    Called automatically by the PUT node statement. In this subroutine, you can specify authorization checks for the appropriate node node from the structure of the logical database.
    · FORM PUT_ldb_SP
    Called when the user makes a selection using a search help to process the key chosen in the search help. ldb is the name of the logical database. From this subroutine, you can use the entries in the search help tables to read the relevant entries from the root node root. The processing in the program can then be triggered using PUT root. The subroutine PUT_root is then not called automatically.
    · FORM BEFORE_EVENT
    Called before an event, the name of which is passed in the parameter EVENT. Currently, the EVENT field can only contain the value START-OF-SELECTION, to call a subroutine before this event.
    · FORM AFTER_EVENT
    Called after an event, the name of which is passed in the parameter EVENT. Currently, the EVENT field can only contain the value END-OF-SELECTION, to call a subroutine after this event.
    · FORM par_VAL, selop_VAL, selop-LOW_VAL, selop-HIGH_VAL
    Called when the user calls possible values help for the parameter par or the selection criterion selop. These must belong to the selections in the logical database.
    · FORM par_HLP, selop_HLP, selop-LOW_HLP, selop-HIGH_HLP
    Called when the user calls possible values help for the parameter par or the selection criterion selop. These must belong to the selections in the logical database.
    Example
    Suppose that in the logical database structure, LFB1 is a branch of LFA1.
    and that the following selection criteria are defined in the selection include:
    SELECT-OPTIONS: slifnr FOR lfa1-lifnr,
    sbukrs FOR lfb1-bukrs.
    A section of the database program would then read:
    FORM put_lfa1.
    SELECT * FROM lfa1
    WHERE lifnr IN slifnr.
    PUT lfa1.
    ENDSELECT.
    ENDFORM.
    FORM put_lfb1.
    SELECT * FROM lfb1
    WHERE lifnr = lfa1-lifnr.
    AND bukrs IN sbukrs.
    PUT lfb1.
    ENDSELECT.
    ENDFORM.
    An executable program (report) linked to the logical database could contain the lines:
    GET lfa1.
    WRITE lfa1-lifnr.
    GET lfb1.
    WRITE lfb1-bukrs.
    In this example, the runtime environment calls the routine put_lfa1 after the event START-OF-SELECTION. The event GET lfa1 is triggered by the statement PUT lfa1.
    Once the corresponding event block in the program is complete, PUT lfa1 branches to the subroutine put_lfb1.
    From this subroutine, the event GET lfb1 is triggered in the application program. If LFB1 is the last node to be read, processing resumes with the SELECTloop in put_lfb1. Otherwise, the program flow moves to the subroutine put_node of the next node. At the end of the SELECT loop of the last node, processing resumes in the SELECTloop of the node at the next level up. The example of programming using nested SELECT loops is only used to make the program flow clearer. In a real logical database, you would avoid doing this in order to minimize the number of database accesses.
    Regards,
    Rajesh K Soman
    Please reward points if helpful.

  • How to make use of logical database in reports?

    hi,
    I am working on a Cash Flow Forecast report, which requires the usage of 'PSJ' Logical Database for the selection screen with Profit Center(PRCTR) as one field and the other field being Period ( in MM/YYYY format).
    I have not worked on Logical Database before. Since, its for the first time I am working on LDB, I require help on it.
    How to proceed for this, can someone help me with it?
    On receiving further inputs, I will proceed and might come up with some more queries.
    Regards,
    Ravi

    Hi Hari,
    Thanks a lot for being so patient. yeah, I will just send you a code snippet of mine. My code is of 3000 Lines. Hence, I will send few parts of it. Just go through and let me know if you need any further information from my side.
    Here is the snippet:
    *& TABLES
    TABLES: PROJ,                              "Project definition.
            PRPS,                              "WBS Element Master Data
            COSP,                              "CO: External Table.
            COFP,                              "CO: External Table.
            SETLEAF,                       "Value in sets.
            FAGLFLEXT,                         "Profit Center.
            S031,                              "Statistics: Movements for Current Stocks.
            SETHEADERT,                        "short Description of Sets.
            AFVC,                              "Operation within an Order.
            AUFK,                              "Order master data.
            PRHI,                              "Work Breakdown Structure.
            AFKO,                              "Order header data PP orders.
            NRIV,                              "Number range Intervals.
            SKB1,                              "G/L Account Master (company code).
            FMCI.                              "Commitments Item master data.
    Type Pool
    TYPE-POOLS: SLIS.
    FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
                   <DYN_WA>,
                   <DYN_FIELD>.
    DATA: COUNT TYPE I,
          D_PERIOL LIKE COFP-PERIO,
          D_PERIOH LIKE COFP-PERIO,
          D_GJAHRL LIKE COFP-GJAHR,
          D_GJAHRH LIKE COFP-GJAHR,
          D_GJAHR LIKE COFP-GJAHR,
          D_PERIO LIKE COFP-PERIO,
          OBJNR LIKE COSP-OBJNR,
          PKOKR LIKE PRPS-PKOKR,
          G_NRLEVEL LIKE NRIV-NRLEVEL,
          G_BELNR LIKE COFP-BELNR,
         I_OBJ-OBJNR LIKE COFP-OBJNR,
          G_OPNGBAL LIKE FAGLFLEXT-HSL01,
          G_PAYROLL LIKE COSP-WKG001,
          G_PYROL_TAX LIKE COFP-WKGBTR,
          G_PENSION LIKE COFP-WKGBTR,
          G_BTLDGR LIKE COFP-WKGBTR,
          G_REIMPYMT LIKE COFP-WKGBTR,
          G_INTCORCPT LIKE COFP-WKGBTR,
          G_CAPEXP LIKE COFP-WKGBTR,
          G_SLSLDGR LIKE COFP-WKGBTR,
          G_REIMRCPT LIKE COFP-WKGBTR,
          G_TOTPYMNTS LIKE COFP-WKGBTR VALUE 0,
          G_TOTRECPTS LIKE COFP-WKGBTR VALUE 0,
          G_MVMTFRMNTH LIKE COFP-WKGBTR VALUE 0,
          G_CLSGBAL LIKE COFP-WKGBTR VALUE 0.
    DATA: LYEAR(4) TYPE N,
          LMONTH1(2) TYPE N,
          MON1(2) TYPE N.
    DATA: HYEAR(4) TYPE N.
    DATA: LMONTH(2) TYPE N.
    DATA: HMONTH(2) TYPE N.
    DATA: TOTAL(10) TYPE N.
    DATA: SUM(10) TYPE N.
    DATA: G_PSPID LIKE PROJ-PSPID.
    DATA: TOTAL1 LIKE COFP-WKGBTR,
          TOTAL2 LIKE COFP-WKGBTR.
    DATA: G_KOKRS LIKE COFP-KOKRS,
          G_FIPOS LIKE SKB1-FIPOS,
          G_POSIT LIKE COFP-POSIT,
          G_BUKRS LIKE COFP-BUKRS.
    DATA: L_RACCT LIKE FAGLFLEXT-RACCT VALUE '0000220000',
          H_RACCT LIKE FAGLFLEXT-RACCT VALUE '0000227999'.
    DATA: I TYPE I VALUE '74'.
    DATA: P TYPE I VALUE '62'.
    *& SELECT-OPTIONS
    PARAMETERS : S_PRCTR LIKE PROJ-PRCTR.         "Profit Center
    SELECT-OPTIONS: SL_SPMON FOR S031-SPMON OBLIGATORY.            "Period
    *INITIALIZATION
    INITIALIZATION.
      SL_SPMON-SIGN = C_IN.
      SL_SPMON-OPTION = C_BT.
      SL_SPMON-LOW = SL_SPMON.
      SL_SPMON-HIGH = SL_SPMON.
      APPEND SL_SPMON.
    AT SELECTION-SCREEN
    Event which occurs each time the user hits enter on the selection
    Screen.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SL_SPMON-LOW.
      PERFORM MONAT_F4.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SL_SPMON-HIGH.
      PERFORM MONAT_F4.
      SELECT SINGLE * FROM PROJ WHERE PRCTR = S_PRCTR.
      IF SY-SUBRC <> 0 AND NOT ( S_PRCTR IS INITIAL ).
        MESSAGE E019.
      ENDIF.
    ALL WBS ELEMENT SELECTION
      SELECT PSPID INTO TABLE I_PROJTAB FROM PROJ WHERE PRCTR = S_PRCTR.
      IF SY-SUBRC = 0.
        LOOP AT I_PROJTAB.
          CALL FUNCTION 'GET_TREE_FROM_PRHI'
            EXPORTING
              I_POSID                   = I_PROJTAB-PSPID
       I_PSPNR                   = 00000000
       NO_BUFFER                 = ' '
            TABLES
              PSP_TREE                  = I_PRHI
            EXCEPTIONS
              INPUT_ERROR               = 1
              PSP_HIERARCHY_ERROR       = 2
              PSP_NOT_FOUND             = 3
              OTHERS                    = 4
       ENDLOOP. " PROJTAB
      ENDIF.
      SELECT * FROM PRPS INTO TABLE I_PRPSVC FOR ALL ENTRIES IN I_PRHI
                      WHERE PSPNR = I_PRHI-POSNR.
      SELECT * FROM AFVC INTO TABLE I_AFVC FOR ALL ENTRIES IN I_PRPSVC
                      WHERE PROJN = I_PRPSVC-PSPNR.
      SELECT * FROM AUFK INTO TABLE I_AUFK FOR ALL ENTRIES IN I_PRPSVC
                      WHERE PSPEL = I_PRPSVC-PSPNR AND AUTYP NE C_TWENTY.
      SELECT OBJNR FROM PRPS INTO TABLE I_OBJ FOR ALL ENTRIES IN I_PRHI
                      WHERE PSPNR = I_PRHI-POSNR.
      IF SY-SUBRC <> 0.
        MESSAGE E010.
      ENDIF.
    I hope that's of some use.
    Thanks & Regards,
    Ravi

  • How to deal with dynamic selection screen elements when macros are used?

    Hello experts,
    This is regarding the dynamic selection screen elements. Actually the requirement is to modify the existing standard report program RFUMSV00 by copying it into a Z report, adding a few selection screen elements and new fields in the output. I actually did everything required except for the one thing that is going out of my reach.
    There are a certain fields which are coming when they are not supposed to get displayed. I don't understand the code because of its obsoleteness. Neither can I debug it because it is just data declaration.
    This is the code where there is a fault. If I copy the entire code into a new Z report, I'm getting new fields like Entry Date, Document Type, Reference Transaction,  Reference key, Logical system.
      DEFINE selection_screen_line.
      selection-screen: begin of line.
      parameters &3 like &4 default 'X' modif id mc4.
      selection-screen: comment (30) &1 for field &3 modif id mc4.
      selection-screen: comment pos_low(10) text-019
                        for field &2 modif id mc4.  "neu
      parameters &2 like rfums_alv-variante modif id mc4.
      selection-screen:
          position pos_high.
      selection-screen: pushbutton (15) text-028
                        user-command &5 modif id mc4.
      selection-screen end of line.
    END-OF-DEFINITION.
    Kindly, suggest me the right solution.

    In the program attributes ( SE38 > RFUMSV00 > GOTO > Properties ), you will find a logical database BRF declared. The include DBBRFSEL is part of the selection screen of this logical database.
    The selection screen is actually the selection screen of this logical database.
    Under the Logical Database field, there is a Selection screen field where you can input which selection screen of the logical database to be used.
    But, this is just to change the selection screen that is displayed. To completely suppress it you need to remove logical database declaration from the properties of the program and call it inside your program through function module.
    You cannot just remove it from the declaration because many of its variables are used in the program.
    So call it using function module as the first step in INITIALIZATION section of the program.
    The syntax and function module to call it in your program can be found in the following thread :
    How to hide the selection screen of a Logical datebase?
    Regards,
    Ashish

  • How to change the text in default selection screen

    Hi,
      I have created the default selection screen(using PNP Logical database) ,In that I wants to display 'Data Selection Period' instead of 'Period'.
    Please send me the related code.
    Thanks in advace
    mohan

    HR Logical Database is PNP
    Main Functions of the logical database PNP:
    Standard Selection screen
    Data Retrieval
    Authorization check
    To use logical database PNP in your program, specify in your program attributes.
    Standard Selection Screen
    Date selection
    Date selection delimits the time period for which data is evaluated. GET PERNR retrieves all records of the relevant infotypes from the database. When you enter a date selection period, the PROVIDE loop retrieves the infotype records whose validity period overlaps with at least one day of this period.
    Person selection
    Person selection is the 'true' selection of choosing a group of employees for whom the report is to run.
    Sorting Data·
    The standard sort sequence lists personnel numbers in ascending order.
    · SORT function allows you to sort the report data otherwise. All the sorting fields are from infotype 0001.
    Report Class
    · You can suppress input fields which are not used on the selection screen by assigning a report class to your program.
    · If SAP standard delivered report classes do not satisfy your requirements, you can create your own report class through the IMG.  
    regards
    vinod

Maybe you are looking for

  • Thumbnail view for RAW in Explorer?

    This is probably a stupid question but I simply do not know and cannot find the answer. When browsing files in Windows Explorer, should I be able to see thumbnails of my RAW files? I have ACR 4.5 installed (and it's in the right location) and can bri

  • Png images not shown in applet when opened in internet explorer

    hi all, I am using some transparent PNG images in my applet . Its working properly in appletviewer as well as netscape but images just disappear in internet explorer. same image appears in internet explorer but not in applet in internet explorer. can

  • Pass the structure name and return the description fields.

    Hi experts!!, I would like to know a class and the method that I pass the structure name and return all the description fields. Thanks a lot

  • Migrate images still very slow in 1.1.1

    This new feature introduced in 1.1 allows for raw images to be processed under the new and improved raw engine. It became apparent in 1.1 that using the Migrate images command on several raw took a very long time to do. This has not improved in 1.1.1

  • Performance mod_plsql / DAD

    Hi! I´ve made a system using mod_plsql. But it is very slow. I did some tests using the main procedure. If i execute the main procedure in sqlplus (I replaced "htp.p" with dbms_output.put_line), the procedure takes 16 ms to execute. Very fast. The sa