User-command and pf-status

Hi can anybody please give tell me what is the user-command and what is pf-status.
please provide me a sample code how to create these step by step.
and how to copy standard pf-status to user defined one.
thanks in advance
kp

hi,
The Standard List Status
As with normal screens, you can define your own GUI status for lists and attach it to a list level using the SET PF-STATUS statement. If you do not set a particular GUI status, the system sets a default list status for the list screen in an executable program. In other programs, for example, when you call a list from screen processing, you must set this status explicitly using the statement
SET PF-STATUS space.
This default interface always contains at least the functions described in the Standard List section.
Unlike normal dialog statuses, the default list status is affected by the ABAP program.
If you define event blocks in your program using the event keywords AT LINE-SELECTION or AT PF]
This statement sets the status  parameters. To display an ampersand character ‘&’, repeat it in the title ‘&&’.
Examples
Example for dialog status in a list.
REPORT demo_list_menu_painter.
START-OF-SELECTION.
  SET PF-STATUS 'TEST'.
  WRITE:  'Basic list, SY-LSIND =', sy-lsind.
AT LINE-SELECTION.
  WRITE:  'LINE-SELECTION, SY-LSIND =', sy-lsind.
AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'TEST'.
      WRITE:  'TEST, SY-LSIND =', sy-lsind.
  ENDCASE.
This program uses a status TEST, defined in the Menu Painter.
Function key F5 has the function code TEST and the text Test for demo.
Function code TEST is entered in the List menu.
The function codes PICK and TEST are assigned to pushbuttons.
The user can trigger the AT USER-COMMAND event either by pressing F5 , or by choosing List ® Test for demo, or by choosing the pushbutton Test for demo.The user can trigger the AT LINE-SELECTION event by selecting a line.
Example of setting a dialog status for the current list
REPORT demo_list_set_pf_status_1.
DATA: fcode TYPE TABLE OF sy-ucomm,
      wa_fcode TYPE sy-ucomm.
START-OF-SELECTION.
  wa_fcode = 'FC1 '. APPEND wa_fcode TO fcode.
  wa_fcode = 'FC2 '. APPEND wa_fcode TO fcode.
  wa_fcode = 'FC3 '. APPEND wa_fcode TO fcode.
  wa_fcode = 'FC4 '. APPEND wa_fcode TO fcode.
  wa_fcode = 'FC5 '. APPEND wa_fcode TO fcode.
  wa_fcode = 'PICK'. APPEND wa_fcode TO fcode.
  SET PF-STATUS 'TEST'.
  WRITE: 'PF-Status:', sy-pfkey.
AT LINE-SELECTION.
  IF sy-lsind = 20.
    SET PF-STATUS 'TEST' EXCLUDING fcode.
  ENDIF.
  WRITE: 'Line-Selection, SY-LSIND:', sy-lsind,
       / '                SY-PFKEY:', sy-pfkey.
AT USER-COMMAND.
  IF sy-lsind = 20.
      SET PF-STATUS 'TEST' EXCLUDING fcode.
    ENDIF.
    WRITE: 'User-Command, SY-LSIND:', sy-lsind,
         / '              SY-UCOMM:', sy-ucomm,
         / '              SY-PFKEY:', sy-pfkey.
Suppose that the function codes FC1 to FC5 are defined in the status TEST and assigned to pushbuttons: The function code PICK is assigned to function key F2 .
When the program starts, the user can create detail lists by selecting a line or choosing one of the function codes FC1 to FC5. For all secondary lists up to level 20, the user interface TEST is the same as for the basic list:
On list level 20, EXCLUDING ITAB deactivates all function codes that create detail lists. This prevents the user from causing a program termination by trying to create detail list number 21.
Example of setting a dialog status for the current list
REPORT demo_list_set_pf_status_2.
START-OF-SELECTION.
  WRITE: 'SY-LSIND:', sy-lsind.
AT LINE-SELECTION.
  SET PF-STATUS 'TEST' IMMEDIATELY.
After executing the program, the output screen shows the basic list and the user interface predefined for line selection (with function code PICK).
When you choose Choose, the user interface changes. However, since the AT LINE-SELECTION processing block does not contain an output statement, the system does not create a detail list: The status TEST is defined as in the previous example.
Example: Titles of detail lists.
REPORT demo_list_title .
START-OF-SELECTION.
  WRITE 'Click me!' HOTSPOT COLOR 5 INVERSE ON.
AT LINE-SELECTION.
  SET TITLEBAR 'TIT' WITH sy-lsind.
  WRITE 'Click again!' HOTSPOT COLOR 5 INVERSE ON.
Regards,
Sreevani.

Similar Messages

  • Wht's the Diff bet AT-USER command and AT-PF STATUS

    Can Anybody explain me the diffarence between At user command and At-pf status.
    Thanks,
    Srik

    Hi Srikanth,
    AT USER-COMMAND - Event in interactive reporting
    This event is executed whenever the user presses a function key in the list or makes an entry in the command field .
    Some functions are executed directly by the system and thus cannot be processed by programs. These include:
    PICK See variant AT LINE-SELECTION PFn See variant AT PFn /... System command %... System command PRI Print BACK Back RW Cancel P... Scroll function (e.g.: P+ , P- , PP+3 , PS-- etc.)
    Instead of this functions, you can use the SCROLL statement in programs.
    Since many of these system functions begin with "P", you should avoid using this letter to start your own function codes.
    Otherwise, the effect is as for AT LINE-SELECTION ; also, the current function code is stored in the system field SY-UCOMM .
    Example
    DATA: NUMBER1 TYPE I VALUE 20,
          NUMBER2 TYPE I VALUE  5,
          RESULT  TYPE I.
    START-OF-SELECTION.
      WRITE: / NUMBER1, '?', NUMBER2.
    AT USER-COMMAND.
      CASE SY-UCOMM.
        WHEN 'ADD'.
          RESULT = NUMBER1 + NUMBER2.
        WHEN 'SUBT'.
          RESULT = NUMBER1 - NUMBER2.
        WHEN 'MULT'.
          RESULT = NUMBER1 * NUMBER2.
        WHEN 'DIVI'.
          RESULT = NUMBER1 / NUMBER2.
        WHEN OTHERS.
          WRITE 'Unknown function code'.
          EXIT.
      ENDCASE.
      WRITE: / 'Result:', RESULT.
    After entry of a function code, the appropriate processing is performed under the event AT USER-COMMAND and the result is displayed in the details list.
    AT PFn - Event in interactive reporting
    Here, n stands for a numeric value between 0 and 99.
    This event is executed whenever the user presses a function key that contains the function code PFn in the interface definition. The default status for lists contains some of these functions.
    Otherwise, the effect is as for the variant AT LINE-SELECTION . The cursor can be on any line.
    To ensure that the chosen function is executed only for valid lines, you can check the current HIDE information. This variant should be used only for test or prototyping purposes, since the default status is not normally used. Instead, you should set a program-specific status with SET PF-STATUS . This should not contain any function codes beginning with " PF ".
    Example
    DATA NUMBER LIKE SY-INDEX.
    START-OF-SELECTION.
      DO 9 TIMES.
        WRITE: / 'Row', (2) SY-INDEX.
        NUMBER = SY-INDEX.
        HIDE NUMBER.
      ENDDO.
    AT PF8.
      CHECK NOT NUMBER IS INITIAL.
      WRITE: / 'Cursor was in row', (2) NUMBER.
      CLEAR NUMBER.

  • *when we use at user -command and give smaple code fro at user-command*

    Hi experts,
    i am new to abap can any body tell me when we use AT USER-COMMAND and give a sample code for that.
    point will be rewarded.
    thanks.

    Hi,
    AT USER-COMMAND  is a list Event.This Event is triggered when user make an action on the Application Toolber Or Menubar.
    Here is the Program.
    START-OF-SELECTION.
      SET PF-STATUS 'TEST'.
      WRITE:  'Basic list, SY-LSIND =', sy-lsind.
    AT LINE-SELECTION.
      WRITE:  'LINE-SELECTION, SY-LSIND =', sy-lsind.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'TEST'.
          WRITE:  'TEST, SY-LSIND =', sy-lsind.
      ENDCASE.
    This program uses a status TEST, defined in the Menu Painter.
    Function key F5 has the function code TEST and the text Test for demo.
    Function code TEST is entered in the List menu.
    The function codes PICK and TEST are assigned to pushbuttons.
    The user can trigger the AT USER-COMMAND event either by pressing F5 , or by choosing List -> Test for demo, or by choosing the pushbutton 'Test for demo'.The user can trigger the AT LINE-SELECTION event by selecting a line.
    Hopr This Will help You.
    Regards,
    Sujit

  • How to use both At USER-COMMAND and AT LINE-SELECTION in one abap program

    I am trying out a program where I need to use both line selection and user command events in one program. Suggest me how to do it.

    USE the okcode 'PICK'. (I mean add a 'PICK' in the GUI staus or the menu.) When ever u use both the events u have to use PICK to trigger the at line selection.
    U just need to add the PICK in the GUI status and ofcourse write code in the program.
    AT LINE-SELECTION.
    CASE sy-ucomm.
    WHEN 'PICK'.
    write:/ 'HELLO WORLD'.
    ENDCASE.

  • Reg:USER COMMAND and sorting in REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hi,
    I am displaying sales order and items in hierachical ALV using REUSE_ALV_HIERSEQ_LIST_DISPLAY.
    How to handle User command in the above function module.
    I have a scenario: A hyperlink should be provided to Sales Document at header level.
    When User clicks on it, it should take to transaction VA02 (sales order change mode).
    Please give me the declaration and  logic for this functionality.
    And also help me in sorting hierachical list based on particular field.
    Eg:
    based on 1)creation date,
                   2) sales document at header level
    based on 1)material
                    2) Plant at item level
    Useful logic will be rewarded
    Thanks in Advance,
    Priya.

    Priya,
    There is  a parametere called "callback_user_command" , u have to use form/subroutine for that parameter.,,
    for example:
                     reuse_alv_hierseq_list_display
                      exporting
                          callback_user_command = 'demo'
                     form demo rucomm type sy_ucomm rselfield type slis_selfield
    for hyperlink u have to user hotspot option while building the fieldcatalog for header level for ur report,
    set the hotspot = 'X' for the respective fieldcatalog of header level.
    regards
    John

  • Info for command and busy status

    Can anyone provide me with info on the busy status property returned by the info for command?
    Under OS 9, I used that to determine if files were busy before attempting to process them.
    Now, under OS X, it doesn't seem to be functional, the files are processed even if they really are busy, and the fider throws a message back at me saying so.
    Basic scenario (repeated with any PostScript files found in folder):
    set busyStatus to busy status of (info for epsFile as alias)
    if busyStatus is false then
    try
    <distill file>
    on error
    return 10
    end try
    end if
    if exists epsFile then
    set busyStatus to busy status of (info for epsFile as alias)
    if busyStatus is false then
    try
    delete epsFile
    on error
    return 10
    end try
    end if
    end if
    The folder being watched is a folder that graphic artists are writing PS files to directly from InDesign.
    If the script runs and a PS file is in the process of being written, it still attempts to distill it, and it still attempts to delete it, and the result is a finder error.
    I had assumed that the busy status would solve my problem, but it doesn't ever appear to return a true value.
    I had also assumed that the try-on error block would catch the finder error and prevent it from displaying the dialog box, but it doesn't appear to.
    I have found a few references to the fact that busy status isn't reliable, and may not work at all under OS X. Anyone have any ideas?

    We used to use the watched folder feature of Acrobat. We just upgraded our process from OS 9/Acrobat 4 to OS X/Acrobat 7. What Adobe fails to tell you, is that the Standard version of Acrobat doesn't have watched folders. That is now only a feature of the Pro version.
    I thought I could avoid paying $150 a copy to upgrade from Standard to Pro, just for that one feature.
    I have previously used Applescript to create watched folders for a variety of automation tasks, and never had a problem. Because I have a lot of Applescript processes in place already that rely on being able to determine if a file is busy, I need to figure out how to do it with OS X.

  • How to use 'AT PF' and 'AT USER-COMMAND' is used in reports...?

    HI,
    I AM SIVA,
    I AM NEW TO ABAP,
    I HAVE NOT CLARY ON 'AT PF' AND 'AT USER-COMMAND'....
    I DONT KNOW HOW AND WHEN TO USE ABOVE TWO EVENTS..
    SEND ME ANY SOURCE CODE OF USING ABOVE TWO EVENTS...
    IF U KNOW THE ANSWER...
    PLEASE SEND ME...
    REGUARS,
    SIVA.

    hi ,
    the on;y diference b/w At User-command and PF Status is that in At user-command we create a menu but in PF Ststus we define the f1 to f12 keys.
    eg; for at User Command.
    let us take tables such as mara, marc, mard.
    data : itab like mara occurs 0 with header line,
             jtab like marc occurs 0 with hl,
             ktab like mard occurs 0 with hl.
    select-options matnr for mara-matnr.
    initialization.
    matnr-low = '0'.
    amtnr-high = '1000'.
    matnr-sign = 'i'.
    matnr-option = 'bt'.
    append matnr.
    start-of-selection.
    write :/ 'menu bar creation'.
    set Pf Status 'MENU'.
    at user-command.
    case sy-ucomm.
    when 'mm01'.
    select * from mara into table itab where matnr in matnr.
    loop at itab.
    write :/ itab-matnr, itab-ernam, itab-ersda, itab-mbrsh.
    hide itab-matnr.
    endloop.
    when 'mm02'.
    select * from marc into table jtab where matnr = itab- matnr.
    loop at jtab.
    write :/ jtab-matnr, jtab-werks, itab-pstat.
    hide itab-matnr.
    hide jtab-werks.
    endloop.
    when 'mm03'.
    select * from mard into table ktab where matnr  = itab- matnr werks = jtab-werks.
    loop at ktab.
    write :/ ktab-matnr, ktab-werks, ktab-lgort.
    endloop.
    when 'mm04'.
    do 10 times.
    write :/ 'hi'.
    enddo.
    when 'mm05'.
    write "/ 'u pressed enter'.
    endcase.
    now go to set pf status 'menu' n double click on it.
    then press yes.
    then again yes.
    then u will find 6 tabstrips tht r blank in menu bar.
    now go to the first tabstrip n name it as table...then in the code give mm01 n text as mara.then again give code as mm02 n text same with mm03.
    then go to second tabstrip n give details n then i nt tht u give mm04 as code n text as hi.then mm05 as code n text....save check n activate,
    then go to function keys n thre u will find save back error tabstrips name them s,c,activate.
    then come back n activate.
    then same thing is wit pf but there is no menu bar creation for it n instead of when 'mm01' we will give at pf04, at pf05....
    one more thing we should always give pf keys from 04 as o1,o2,o3 r used help errors n activation.
    if  u found ur answer n if it is helpful to u then dont forget to reward with points,
    with regards,
    madhuri.

  • Set PF Status and At-Line Selection & At User-Command

    Hi All
    I've used set PF status, at user command and at-line selection in my program. initially when i click on the material number it was not drilling further that is it was not taking to secondary list. i commented the PF status and tried. then it was working fine. Later, after checking on couple of doc i added F.code PICK in my PF status and uncommented the set-PF status in my program it was working fine. Now my question is why this kind of behaviour. When i uncomment the PF status  and run the program without the f.code PICK in my PF status(se41)  it was not working but after inlcuding the F.code in my PF it is working. Any good explanation?
    thks   
    Prabhu

    hi,
    generally fuction code is useful for the system to find on which button or in which area the user has clicked in. based on the function code the system executes the satatements that are in user command.  in your case i think u didnt gave any functionality in user-command. when at-user command is a event in interactive reporting which is triggered based on the button u had clicked.
    at line-selection event uses two system variables
       1. sy-lsind [ current list index number ]
       2. sy-lisel  [ contains the current area in which user ckicked ].
       3. sy-ucomm [ function code of clicked button ].
    using these 3 vars we can drill down to 21 lists [ including 1st list ]
    if helpful reward some points.
    with regards,
    suresh.

  • How to use AT LINE-SELECTION and AT USER-COMMAND in one report????

    Dear all,
    I have a problem in reports I want to use AT USER-COMMAND.and AT LINE-SELECTION.both in the one report.
    But as soon as I use SET PF-STATUS my AT LINE-SELECTION event stop workingand only AT USER-COMMAND is working.
    How can I use both of them in one report for your reference I am giving my test program below.
    REPORT ZTEST111 .
    SET PF-STATUS '100'.
    DO 10 TIMES.
    WRITE:/ SY-INDEX.
    HIDE SY-INDEX.
    ENDDO.
    START-OF-SELECTION.
    AT LINE-SELECTION.
    MESSAGE I002(SY) WITH SY-INDEX.
    AT USER-COMMAND.
    MESSAGE I002(SY) WITH 'USER COMMAND'.
    END-OF-SELECTION.
    Thanks in advance
    Sachin Gautam

    hi
    Syntax
    AT USER-COMMAND.
    Effect
    This statement defines an event block whose event is triggered by the ABAP runtime environment if, during the display of a screen list, a function with a self-defined function code was chosen.
    Note
    Self-defined function codes are all those that include character combinations, except for the following:
    The function codes PICK and PF## ("##" stands for 01 to 24) do not cause the event AT USER-COMMAND, but the events AT LINE-SELECTION and AT PF##.
    All function codes that start with the character "%" are interpreted as system functions and do not cause the event AT USER-COMMAND. The system functions for lists are listed in the following table 1.
    The function codes in the following table 2, likewise, do not cause the event AT USER-COMMAND, but are handled by the list processor.
    Table 1
    Function code Function
    %CTX Call a context menu
    %EX Exit
    %PC Save to file
    %PRI Print
    %SC Search for ...
    %SC+ Find next
    %SL Search in office
    %ST Save to report tree
    Table 2
    Function code Function
    BACK Back
    P- Scroll to previous page
    P-- Scroll to first page
    P+ Scroll to next page
    P++ Scroll to last page
    PFILE name Store list lines in a text file named abap.lst in standard character representation in the standard directory of the application server. If a name is entered using name, this is converted to lowercase letters and used as the file name.
    PL- Scroll to first line of the page
    PL-n Scroll n lines back
    PL+ Scroll to last line of the page
    PL+n Scroll n lines up
    PNOP No effect
    PP- Scroll back one page
    PP-n Scroll n pages back
    PP+ Scroll one page forward
    PP+n Scroll n pages forwad
    PPn Scroll to beginning of page n
    PRI, PRINT Print
    PS-- Scroll to first column
    PS++ Scroll to last column
    PS- Scroll one column to the left
    PS-n Scroll n columns to the left
    PS+ Scroll one column to the right
    PS+n Scroll n columns to the right
    PSn Scroll to column n
    PZn Scroll to line n
    RW Cancel

  • Gui status (AT USER-COMMAND) trigger at first

    Hello all,
    I wrote a basic list  shown below.
    In it , AT USER-COMMAND and AT LINE-SELECTION events are used all.
    when i double click on line in the list, I think the at line-selection should be trigger at first. but  in fact ,the AT USER-COMMAND trigger.
    and the sy-ucomm get the first button value in the GUI-STATUS BAR(There's only one button on it).
    how can i solve it .
    any answers should be appreciated.
    START-OF-SELECTION.
      SET PF-STATUS 'ZSATMM24F1'.
      write :  \ 'aaaaaaaaaaaa'
      write :  \ 'aaaaaaaaaaaa'
      write :  \ 'aaaaaaaaaaaa'
      write :  \ 'aaaaaaaaaaaa'
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'TO_a'.
          PERFORM to_a.
      ENDCASE.
    AT LINE-SELECTION.
      write : 'test'.
    best regards,
    daniel.

    Please make sure to add the fcode PICK to the F2 function code in your gui status and try again.
    Regards,
    Rich Heilman

  • At line-selection and user command

    hi,
    is it possible to use both at line selecion and at user command at a time.

    Hi Kiran,
      Yes, it is possible to use both at line selecion and at
      user command at a time.
    AT LINE-SELECTION.
    Event in interactive reporting
    This event is processed whenever the user chooses a valid line in the list (i.e. a line generated by statements such as WRITE,ULINE, or SKIP) with the cursor and presses the function key which has the function PICK in the interface definition. This should normally be the function key F2, because it has the same effect as double-clicking the mouse, or clicking once in the case of a hotspot.
    The processing for the event AT LINE-SELECTION usually generates further list output (the details list) which completely covers the current list display. If you want the current list display to remain visible (to aid user orientation), you can do this with the key word WINDOW.
    AT USER-COMMAND.
    Event in interactive reporting
    This event is executed whenever the user presses a function key in the list or makes an entry in the command field.
    DATA: NUMBER1 TYPE I VALUE 20,
          NUMBER2 TYPE I VALUE  5,
          RESULT  TYPE I.
    START-OF-SELECTION.
      WRITE: / NUMBER1, '?', NUMBER2.
    AT USER-COMMAND.
      CASE SY-UCOMM.
        WHEN 'ADD'.
          RESULT = NUMBER1 + NUMBER2.
        WHEN 'SUBT'.
          RESULT = NUMBER1 - NUMBER2.
        WHEN 'MULT'.
          RESULT = NUMBER1 * NUMBER2.
        WHEN 'DIVI'.
          RESULT = NUMBER1 / NUMBER2.
        WHEN OTHERS.
          WRITE 'Unknown function code'.
          EXIT.
      ENDCASE.
      WRITE: / 'Result:', RESULT.
    After entry of a function code, the appropriate processing is performed under the event AT USER-COMMAND and the result is displayed in the details list.
    Reward points if helpful,
    Rgds,
    Sumana

  • AT USER COMMAND is not getting triggerd

    Hi Techie's
    I have two fields on the selection screen
    1) Name:   ___________
    2) Id:         ___________
    I have some buttons say on the Application toolbar say::
    Save            Delete            Modify           Exit
    I have created these buttons in the INITIALIZATION event.
    I am using AT Selection Screen OUTPUT for some logic purpose.
    Later I am writing AT USER COMMAND and pressing  SAVE The function code for SAVE is "SAV".
    But the drama is that AT USER COMMAND is not getting triggered at all.
    It goes first to Initialization--->At selection Screen OUTPUT>Then screen appears> I give the values and press the SAVE button--
    again it goes to the At Selection screen OUTPUT.
    Not even getting the hang of it. Please help if anybody know the story of it.
    ITS SO URGENT.

    At user command is for list processing, you need something like this:
    Pushbuttons in the Application Toolbar
    In the application toolbar of the standard GUI status of the selection screen, five pushbuttons are predefined with the function codes FC01 to FC05, but are inactive by default. You can activate them during the definition of the selection screen as follows:
    SELECTION-SCREEN FUNCTION KEY i.
    The numbering i must be between 1 and 5. The individual function texts must be assigned to the functxt_0i components of structure sscrfields before the selection screen is called. You must declare this structure as an interface work area using the TABLES statement.
    If the user chooses one of these buttons, the runtime environment triggers the AT SELECTION-SCREEN event and the function code FC0i is placed into the component ucomm of the structure sscrfields.
    After the AT SELECTION-SCREEN event has been processed, the system displays the selection screen again. The only way to exit the selection screen and carry on processing the program is to choose Execute (F8). Consequently, the pushbuttons on the application toolbar are more suitable for controlling dynamic modifications of the selection screen than for controlling the program flow.
    REPORT demo_sel_screen_function_key.
    TABLES sscrfields.
    PARAMETERS: p_carrid TYPE s_carr_id,
                p_cityfr TYPE s_from_cit.
    SELECTION-SCREEN: FUNCTION KEY 1,
                      FUNCTION KEY 2.
    INITIALIZATION.
      sscrfields-functxt_01 = 'LH'.
      sscrfields-functxt_02 = 'UA'.
    AT SELECTION-SCREEN.
      CASE sscrfields-ucomm.
          WHEN'FC01'.
          p_carrid = 'LH'.
          p_cityfr = 'Frankfurt'.
        WHEN 'FC02'.
          p_carrid = 'UA'.
          p_cityfr = 'Chicago'.
      ENDCASE.
    START-OF-SELECTION.
      WRITE / 'START-OF-SELECTION'.
    This defines a standard selection screen with two parameters. In the application toolbar, two pushbuttons are assigned the texts LH and UA and activated.
    When the user clicks one of the buttons, the AT SELECTION-SCREEN event is triggered and there the input fields are preassigned correspondingly.

  • At user-command & At Line-selection

    Hi,
    I am using ECC5 ver. of ABAP.
    Can I use AT USER-COMMAND and AT LINE-SELECTION
    in the same report?
    I have used it but only At user command works, not At line selection.
    When I remove Set pf-Status, At line selection works.
    Here is my code.
    REPORT PF&ATLINE.
    AT LINE-SELECTION.
      MESSAGE 'Line Selected' TYPE 'I'.
    AT USER-COMMAND.
      IF sy-ucomm = 'PUSH'.
        MESSAGE 'Button Pushed' type 'I'.
      elseif sy-ucomm = 'EXIT'.
        LEAVE PROGRAM.
      ENDIF.
    START-OF-SELECTION.
      SET PF-STATUS 'ZRND3'.
      DO 10 TIMES.
        WRITE:/01 SY-INDEX HOTSPOT.
      ENDDO.
    END-OF-SELECTION.

    Hi Rajiv,
    Setting the PICK function code to F2 will definitely solve it..
    and it triggers the at user-command and at line-selection event as per user interaction...
    If it is not working properly... then there might me something wrong in your code...
    can you place the code... so that we can know the exact problem
    regards
    padma

  • PF Status and User Command in CALL METHOD alv_grid_ob- set_table_for_first_

    Hi Can anyone please advice me how can we have PF Status in User Command in Object Oriented ALV Grid Display.
    * display alv grid
      CALL METHOD alv_grid_ob->set_table_for_first_display
        EXPORTING
    *    IS_VARIANT                    =
    *    I_SAVE                        =
          i_default                     = 'X'
          is_layout                     = t_lay
    *    IT_TOOLBAR_EXCLUDING          =
        CHANGING
          it_outtab                     =
          it_fieldcatalog               = t_field_catalog
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

    Hi,
    you can directly handle that in PBO module of the screen....
    you can give a direct
    set PF-status statement in any of the module in PBO...
    and you can handle in PAI
    Regards,
    Siddarth

  • Pf status and user-command

    hi
    can any one explain me about pf-status and user-command?  what is the difference between this two and how to display icons in it.
    max reward points for good answer
    thanks
    alka

    Hi alka ritu  ,
    Check the following websites for good documentation o n pf status and user-command
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/dba34635c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/dba99935c111d1829f0000e829fbfe/content.htm
    1. How to set pf-status
    set pf-status ‘ZZBILSTA’.
    2. How to set pf-status excluding/including single menu items
    You can exclude menus by using exclude :
    set pf-status ‘ZZBILSTA’ excluding ‘PST’.
    Note: Can also be used with include instead of exclude
    3. How to set pf-status excluding/including several menu items
    You have to use an internal table to store the status you wan’t to ex- or include:
    DATA:BEGIN OF I_PF_STATUS_TAB OCCURS 10,
    FCODE,
    END OF I_PF_STATUS_TAB.
    FORM SET_PF_STATUS_POSTER.
    REFRESH I_PF_STATUS_TAB. MOVE ‘PST’ TO I_PF_STATUS_TAB. APPEND I_PF_STATUS_TAB. MOVE ‘ART’ TO I_PF_STATUS_TAB. APPEND I_PF_STATUS_TAB. SET PF-STATUS ‘ZZBILSTA’ EXCLUDING I_PF_STATUS_TAB.
    ENDFORM.
    4. Setting PF status to the (SAP) system default
    set pf-status ‘BASIC’.
    5. How to check for pf-status
    AT USER-COMMAND.
    CASE SY-UCOMM. WHEN ‘ART’. PERFORM STYR_ARTSKONTI. WHEN ‘PST’. PERFORM STYR_POSTER. WHEN ‘BIL’. PERFORM VIS_BILAG. ENDCASE.
    6. Use of SY-PFKEY
    You can use the system variable sy-pfkey to retrieve the name of the current pf status
    USER-COMMAND:
    If the user chooses a function code during list processing that is neither processed by the system, or PICK or PFnn, the system triggers the event AT USER-COMMAND. For this event, you must define your own GUI status for a list. To react to your own function codes in a program, you must define the following event block:
    AT USER-COMMAND.
      statements.
    In this event block, you can use an IF or CASE structure to differentiate between the function codes. They are available in the system field sy-ucomm. There are further system fields that are filled in list events, such as sy-lsind and sy-pfkey, that allow you to make further case distinctions.
    Triggering a List Event from the Program
    You can trigger a list event from the program as follows:
    SET USER-COMMAND fc.
    This statement takes effect after the current list is completed. Before the list is displayed, the event assigned to function code fc is triggered, regardless of the dialog status you are using.
    The effect is the same as when the user chooses the function. In other words, predefined list function codes are trapped and processed by the runtime environment, the function codes PICK and PFnn trigger the AT LINE-SELECTION and AT PFnnevents, and user-defined function codes trigger the AT USER-COMMAND event block.
    Function code PICK triggers an event only if the cursor is located on a list line.
    Using this statement in conjunction with the function codes reserved for system functions, you can call the system functions from the program. For example, you can use SET USER-COMMAND '%SC' to call the Find dialog box directly, or to position the list correctly before it is displayed.
    If you use several SET USER-COMMAND statements while creating a list, the system executes only the last one.
    Example of AT USER-COMMAND.
    REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
    START-OF-SELECTION.
      WRITE: 'Basic List',
           / 'sy-lsind:', sy-lsind.
    TOP-OF-PAGE.
      WRITE 'Top-of-Page'.
      ULINE.
    TOP-OF-PAGE DURING LINE-SELECTION.
      CASE sy-pfkey.
        WHEN 'TEST'.
          WRITE 'Self-defined GUI for Function Codes'.
          ULINE.
      ENDCASE.
    AT LINE-SELECTION.
      SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
      PERFORM out.
      sy-lsind = sy-lsind - 1.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'FC1'.
          PERFORM out.
          WRITE / 'Button FUN 1 was pressed'.
        WHEN 'FC2'.
          PERFORM out.
          WRITE / 'Button FUN 2 was pressed'.
        WHEN 'FC3'.
          PERFORM out.
          WRITE / 'Button FUN 3 was pressed'.
        WHEN 'FC4'.
          PERFORM out.
          WRITE / 'Button FUN 4 was pressed'.
        WHEN 'FC5'.
          PERFORM out.
          WRITE / 'Button FUN 5 was pressed'.
      ENDCASE.
      sy-lsind = sy-lsind - 1.
    FORM out.
      WRITE: 'Secondary List',
           / 'sy-lsind:', sy-lsind,
           / 'sy-pfkey:', sy-pfkey.
    ENDFORM.
    Example of AT USER-COMMAND.
    REPORT demo_list_set_user_command NO STANDARD PAGE HEADING.
    START-OF-SELECTION.
      SET USER-COMMAND 'MYCO'.
      WRITE 'Basic List'.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'MYCO'.
          WRITE 'Secondary List from USER-COMMAND,'.
          WRITE: 'sy-lsind', sy-lsind.
          SET USER-COMMAND 'PF05'.
      ENDCASE.
    AT pf05.
      WRITE 'Secondary List from PF05,'.
      WRITE: 'sy-lsind', sy-lsind.
      SET CURSOR LINE 1.
      SET USER-COMMAND 'PICK'.
    AT LINE-SELECTION.
      WRITE 'Secondary List from LINE-SELECTION,'.
      WRITE: 'sy-lsind', sy-lsind.
      SET USER-COMMAND '%SC'.
    http://maxdb.sap.com/currentdoc/94/90ee41c334c717e10000000a155106/content.htm
    cheers!
    gyanaraj
    ****Pls reward points if u find this helpful

Maybe you are looking for