User command cases..

Hi,
I have displayed the ALV report.
Now I want to create a single user command case so that if I double click on the record I go to transaction IW33. After going to IW33 when I click ob 'back' button it should come back to the ALV report.
Can anyone tell me how I can do this? Please post the lines of code if possible

hi,
try like this.
DATA:t_eve TYPE slis_alv_event.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     i_list_type           = 0
   IMPORTING
     et_events             = eve
EXCEPTIONS
  LIST_TYPE_WRONG       = 1
  OTHERS                = 2
  IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  READ TABLE eve INTO t_eve WITH KEY name = 'USER_COMMAND'.
  IF sy-subrc = 0.
    t_eve-form = 'USER_COMMAND'.
    MODIFY eve FROM t_eve TRANSPORTING form WHERE name = t_eve-name.
  ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     i_callback_program                = 'ZINT_ALV'
  <b>   i_callback_user_command           = 'USER_COMMAND'</b>
     i_grid_title                      = 'Interactive ALV'
     it_fieldcat                       = fcat
     it_events                         = eve
    TABLES
      t_outtab                          = itab
EXCEPTIONS
  PROGRAM_ERROR                     = 1
  OTHERS                            = 2
  IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
<b>FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.</b>
  CLEAR fcat1.
  CASE u_com.
    WHEN '&IC1'.
      READ TABLE itab INDEX sel_field-tabindex.
        IF sy-subrc = 0.
          t_mat = itab-matnr.
        ENDIF.
     SET PARAMETER ID 'MAT' FIELD t_mat.
     CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
  ENDCASE.
<b>ENDFORM.                    "user_command</b>
here instead of
<b>SET PARAMETER ID 'MAT' FIELD t_mat.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.</b>
you have to write,
<b>SET PARAMETER ID 'ANR' FIELD t_mat.
CALL TRANSACTION 'IW33' AND SKIP FIRST SCREEN.</b>
here in t_mat, take the order number on which cursor is placed.
reward if useful.

Similar Messages

  • AT user command in interactive list(basic) is not calling smartform

    Hi,
    I am facing a problem, which will be strange for all i think.
    in a basic list (not ALV) simple interactive report i am using
    a at user-command. my concern is to collect the checked
    box in the first output report display and store it into the
    internal table and call a smart form when user
    enter 'SHOW' command.
    the problem is when i am entering a show command and
    debugging it, it collects all the checked checkbox in the
    internal table and it even call the smartform print popup
    window, when i give print or printpreview it leave the
    program with out throughing any error.
    here is the code.
    at user-command.
      case sy-ucomm.
        when 'SHOW'.
          do mline times.
            READ LINE SY-INDEX FIELD VALUE itab_item-chkbox.
            if itab_item-chkbox eq 'X'.
    *          write:/ itab_item-banfn,30 itab_item-bnfpo.
              perform extract_final_data using itab_item-bnfpo itab_item-banfn.
            endif.
          enddo.
          refresh: itab, itab_ser.
          clear:   itab, itab_ser.
    * move all data to structure (itab) of form .
          loop at iitab_wa1.
            Move :  iitab_wa1-matnr  to itab-matnr,
                    iitab_wa1-meins  to itab-meins,
                    iitab_wa1-ebeln  to itab-ebeln,
                    iitab_wa1-ebelp  to itab-ebelp,
                    iitab_wa1-menge  to itab-ktmng,
                    iitab_wa1-lfdat  to itab-eindt,
                    iitab_wa1-typ    to itab-typ.
            append itab.
            clear  itab.
          endloop.
    * display the selected item in the report screen.
          if sy-subrc is initial.
    * sorting the table according to RFQ no and item no.
            sort itab by ebeln ebelp.
    * including sr.no in table itab
            clear icnt.
            loop at itab.
              icnt  =  icnt  +  1.
              itab-srno = icnt.
              modify itab.
              clear  itab.
            endloop.
    * Call the output form.
    * YSF_MEDRUCK_RFQ_PR_ser_SAE is in 300
    * for pr to rfq material and service in single form.
            CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
              EXPORTING
                FORMNAME = 'YSF_MEDRUCK_RFQ_PR_MAT_SAE'
              IMPORTING
                FM_NAME  = V_FM.
            CALL FUNCTION '/1BCDWB/SF00000037'
              EXPORTING
                ser_flg          = ser_flag
                material         = p_mat
                services         = p_ser
              TABLES
                itab             = itab
              EXCEPTIONS
                FORMATTING_ERROR = 1
                INTERNAL_ERROR   = 2
                SEND_ERROR       = 3
                USER_CANCELED    = 4
                OTHERS           = 5.
            IF SY-SUBRC <> 0.
              MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
          else.
            write: ' Some error has occurred'.
          endif.
      endcase.
    <MOVED BY MODERATOR TO THE CORRECT FORUM>
    Edited by: Alvaro Tejada Galindo on Aug 22, 2008 6:16 PM

    hi...
    this shouldnt be happening..ne ways.u may try this..
    put the smartform calling code in a report porgram and then use submit program and return command.
    write this part of code in the report program....you will get all ur variables from stack....
    Report y_call_sf.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
             EXPORTING
                FORMNAME = 'YSF_MEDRUCK_RFQ_PR_MAT_SAE'
              IMPORTING
                FM_NAME  = V_FM.
            CALL FUNCTION v_fm
              EXPORTING
                ser_flg          = (calling_prog)ser_flag    --> declare like this fro stack access
                material         = (calling_prog)p_mat
                services         = (calling_prog)p_ser
              TABLES
                itab             = (calling_prog)itab
              EXCEPTIONS
                FORMATTING_ERROR = 1
                INTERNAL_ERROR   = 2
                SEND_ERROR       = 3
                USER_CANCELED    = 4
                OTHERS           = 5.
            IF SY-SUBRC  0.
              MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
          else.
            write: ' Some error has occurred'.
          endif.
    calling prog is program from where u r submitting.......
    so ur code will look like this....
    at user-command.
      case sy-ucomm.
        when 'SHOW'.
          do mline times.
            READ LINE SY-INDEX FIELD VALUE itab_item-chkbox.
            if itab_item-chkbox eq 'X'.
             write:/ itab_item-banfn,30 itab_item-bnfpo.
              perform extract_final_data using itab_item-bnfpo itab_item-banfn.
            endif.
          enddo.
          refresh: itab, itab_ser.
          clear:   itab, itab_ser.
    move all data to structure (itab) of form .
          loop at iitab_wa1.
            Move :  iitab_wa1-matnr  to itab-matnr,
                    iitab_wa1-meins  to itab-meins,
                    iitab_wa1-ebeln  to itab-ebeln,
                    iitab_wa1-ebelp  to itab-ebelp,
                    iitab_wa1-menge  to itab-ktmng,
                    iitab_wa1-lfdat  to itab-eindt,
                    iitab_wa1-typ    to itab-typ.
            append itab.
            clear  itab.
          endloop.
    display the selected item in the report screen.
          if sy-subrc is initial.
    sorting the table according to RFQ no and item no.
            sort itab by ebeln ebelp.
    including sr.no in table itab
            clear icnt.
            loop at itab.
              icnt  =  icnt  +  1.
              itab-srno = icnt.
              modify itab.
              clear  itab.
            endloop.
    Call the output form.
    YSF_MEDRUCK_RFQ_PR_ser_SAE is in 300
    for pr to rfq material and service in single form.
           submit y_call_sf and return. -->plz check the syntax
      endcase.

  • Using AT USER COMMAND

    good day,
    i have question in using the at user command, because i want to translate all the text( starting from column 27 onwards) in my report if it is clicked, im using translate syntax, how will my syntax go?
    at user command.
    if sy-cucol > 27.
    translate ___ to upper case.
    endif.
    but this is not working

    Hello,
    First capture the SY-UCOMM then Translate it
    Try like and see the output.
    at user command.
    case sy-ucomm
    when 'TRAN'
    if sy-cucol > 27.
    translate _ to upper case.
    endif.
    endcase.

  • At line-selection & At user-command

    Hi friends,
    I have a small doubt. Can we user AT LINE-SELECTION & AT USER-COMMAND in one report..plz gimme an example.
    Thanks is advance,
    regards,
    Ram

    hi, try these with example i have given.
    Write the set pf-status under start-of-selection,
    In the set pf-status under the function keys give
    F2 Pick Choose.
    u can validate the at line-selection by taking..
    At line-selection.
    case sy-lsind.
    when 1.
    message....
    when 2.
    message....
    endcase.
    similarly, for At user-command.
    case sy-ucomm.
    when 'back'.
    message...
    when...
    endcase.
    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
    here is an example handling both the commands in a program.
    EXAMPLE:
    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.
    Hope this may be helpful.
    Sri.
    pls:award points.

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

  • User command is not getting triggered in interactive ALV with LIST display

    Hi experts,
    I have developed an interactive ALV report with LIST display. Here, the issue is, when i double click a record in the primary ALV list, the control must go to the USER COMMAND event which i have written in my report. But the user command event is not getting triggered at all when i double click any record.
    It gives the following information instead.
    "Choose a valid function".
    (My user command name and its respective form name are same.)
    Here is my code..
    START-OF-SELECTION.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program       = sy-repid
          i_structure_name         = p_table
          i_callback_user_command  = 'TST1'
          i_callback_pf_status_set = 'SET_PF_STATUS'
        TABLES
          t_outtab                 = <dyn_table>
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
      ENDIF.
    FORM tst1 USING r_ucomm LIKE sy-ucomm
                    rs_selfield TYPE slis_selfield.
    * Local data declaration
      DATA: li_tab TYPE REF TO data,
            l_line TYPE REF TO data.
    * Local field-symbols
      FIELD-SYMBOLS:<l_tab> TYPE table,
                    <l_wa>  TYPE ANY.
    * Create table
      CREATE DATA li_tab TYPE STANDARD TABLE OF (p_table).
      ASSIGN li_tab->* TO <l_tab>.
    * Create workarea
      CREATE DATA l_line LIKE LINE OF <l_tab>.
      ASSIGN l_line->* TO <l_wa>.  CASE r_ucomm.
    *   When a record is selected
        WHEN '&IC1'.
    *     Read the selected record
          READ TABLE <dyn_table> ASSIGNING <dyn_wa> INDEX
          rs_selfield-tabindex.      IF sy-subrc = 0.
    *       Store the record in an internal table
            APPEND <dyn_wa> TO <l_tab>.
    *       Fetch the field catalog info
            CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
              EXPORTING
                i_program_name         = 'Z_DEMO_PDF_JG'
                i_structure_name       = p_table
              CHANGING
                ct_fieldcat            = i_fieldcat
              EXCEPTIONS
                inconsistent_interface = 1
                program_error          = 2
                OTHERS                 = 3.
    Please advice what is the msitake i have done here..

    Read the following code:
    pass the  i_callback_user_command = g_user_command to the ALV function module and write the FORM user_command USING ucomm    LIKE sy-ucomm
                            selfield TYPE slis_selfield.
    as shown below.
    thanx
    Data for ALV display
    DATA  : gt_fieldcat TYPE slis_t_fieldcat_alv,
            gt_events           TYPE slis_t_event,
            g_variant LIKE disvariant,
            g_user_command      TYPE slis_formname VALUE 'USER_COMMAND',
            g_status            TYPE slis_formname VALUE 'SET_PF_STATUS',
            gt_list_top_of_page TYPE slis_t_listheader,
            g_repid LIKE sy-repid,
            gf_pos TYPE i
    Data for ALV display
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
               EXPORTING
              i_callback_program      = g_repid
                 i_callback_program      = sy-repid
                 it_fieldcat             = gt_fieldcat[]
           it_events               = gt_events[]
              i_callback_user_command = g_user_command
                 i_save                  = 'A'
                 is_variant              = g_variant
               TABLES
                 t_outtab                = it_print.
    FORM user_command USING ucomm    LIKE sy-ucomm
                            selfield TYPE slis_selfield.
      CASE ucomm.
        WHEN '&IC1'.
          CASE selfield-sel_tab_field.
            WHEN '1-KUNNR'.
              READ TABLE it_print INTO wa_print INDEX selfield-tabindex.
              IF sy-subrc = 0.
                SET PARAMETER ID 'BPA' FIELD wa_print-kunnr.
                CALL TRANSACTION 'BP'.
              ENDIF.
            WHEN '1-MATNR'.
              READ TABLE it_print INTO wa_print INDEX selfield-tabindex.
              IF sy-subrc = 0.
                SET PARAMETER ID 'JP_ISS' FIELD wa_print-matnr.
                CALL TRANSACTION 'JP29' AND SKIP FIRST SCREEN..
               GET PARAMETER ID 'WRK' FIELD wa_zprint-werks.
               SET PARAMETER ID 'VKO' FIELD wa_zprint-vkorg.
               SET PARAMETER ID 'VTW' FIELD wa_zprint-vtweg.
               CALL TRANSACTION 'JP29' AND SKIP FIRST SCREEN.
              ENDIF.
    Endcase.
    Endform.

  • Problem with User Command in alv report

    Hi
    I have developed a ALV grid report with drill down capability to transaction code for user command. I am having a trouble with this.
    CASE ucomm.
        WHEN '&IC1'.
          CLEAR: wa_import.
          IF selfield-fieldname EQ 'ANLN1'.
            READ TABLE t_import INTO wa_import INDEX selfield-tabindex.
            SET PARAMETER ID 'BUK' FIELD wa_import-bukrs.
            SET PARAMETER ID 'ANl' FIELD wa_import-anln1.
            CALL TRANSACTION 'AW01N'.
          ENDIF.
    here my parameter ids are showing the values but when i call the transaction i am not getting the actual asset numbers.
    Can someone help me out this
    Thanks

    Hi,
    add the AND SKIP FIRST SCREEN...addition..
    CALL TRANSACTION 'AW01N' AND SKIP FIRST SCREEN.
    Thanks
    Naren

  • Trying to generate the spool from at user command...

    Hi Gurus,
    The spool is not getting created in the foreground, I think I am missing something here, the code is below.
    AT USER-COMMAND.
      CASE sy-ucomm .
        WHEN 'SEND'.
          PERFORM get_cust_emails.
          LOOP AT i_output.
            READ TABLE i_mail INTO wa_mail WITH KEY kunnr = i_output-rcvprn. " rcvprn  is customer number,
            IF sy-subrc IS INITIAL.
              IF wa_mail-smtp_addr IS NOT INITIAL.  if the customer has an email then create the entry in i_output_mail.
                i_output_mail = i_output.
                APPEND i_output_mail.
                CLEAR: i_output_mail.
                DELETE i_output.
                CLEAR: i_output.
              ENDIF.
            ENDIF.
          ENDLOOP.
    Setting the Print Parameter's for Portrait
          PERFORM f_print_report. " form is below
          SORT i_output_mail BY rcvprn belnr. "rcvprn is the customer number
          PERFORM f_prepare_mail. " form is below
          MESSAGE i307.
          LEAVE LIST-PROCESSING.
         WHEN 'BACK'.
          LEAVE TO SCREEN 0.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
        WHEN 'CANCEL'.
          LEAVE PROGRAM.
      ENDCASE.
    Subroutines provided below:
    FORM f_print_report .
    *Program name
      DATA : l_prog_name TYPE sy-repid,
             i_print TYPE slis_print_alv.
    Local Constants
      CONSTANTS: lc_vline TYPE c VALUE '|'.
      l_prog_name = sy-repid.
      CLEAR: i_events[], wa_events.
      wa_events-name  = c_top. "'TOP_OF_PAGE'.
      wa_events-form  = c_top.
      APPEND wa_events TO i_events.
      CONSTANTS: lc_prtr   TYPE sypdest VALUE 'LP01',
                 lc_layout TYPE sypaart VALUE 'X_90_120',
                 lc_layout1 TYPE sypaart VALUE 'X_65_255',
                 lc_lines  TYPE sylinsz VALUE '-120',
                 lc_lines1  TYPE sylinsz VALUE '-185',
                 lc_mode   TYPE sycallr VALUE 'CURRENT'.
    Get the print paramters
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING
          authority              = space
          destination            = lc_prtr
          immediately            = space
          new_list_id            = c_x
          layout                 = lc_layout
          line_size              = lc_lines
          mode                   = lc_mode
          no_dialog              = c_x
          report                 = sy-repid
          user                   = sy-uname
          suppress_shading       = c_x
        IMPORTING
          out_parameters         = i_pr_param
          valid                  = l_valid
        EXCEPTIONS
          archive_info_not_found = 1
          invalid_print_params   = 2
          invalid_archive_params = 3
          OTHERS                 = 4.
      CLEAR: g_heading_completed."Indicator for print header
    ENDFORM.                    "f_print_report
    FORM f_prepare_mail .
      LOOP AT i_output_mail.
        l_flag_mail = 'X'.
        CLEAR: l_flag.
        WRITE: /08(1) c_vline, 10(09) i_output_mail-stapa1, 20(1) c_vline,21(10) i_output_mail-datum,
                31(1) c_vline, 32(10) i_output_mail-belnr,  42(1) c_vline,43(15) i_output_mail-total,
                58(1) c_vline, 59(15) i_output_mail-surcrg, 74(1) c_vline,75(05) i_output_mail-kperc,
                80(1) c_vline, 81(15) i_output_mail-betrg,  96(1) c_vline,97(19) i_output_mail-summe,
               116(1) c_vline,117(03) i_output_mail-curcy, 120(1) c_vline.
        AT END OF rcvprn.
          SUM.
          ULINE /8(113).
          WRITE:  /8(1) c_vline.
          FORMAT COLOR 3.
          WRITE: 10(09) text-064, 20(01) c_vline,             21(10)  space,
                  31(1) c_vline, 32(10) space,                42(01)  c_vline, 43(15) i_output_mail-total,
                  58(1) c_vline, 59(15) i_output_mail-surcrg, 74(1)   c_vline, 75(05) space,
                  80(1) c_vline, 81(15) i_output_mail-betrg,  96(1)   c_vline, 97(19) i_output_mail-summe,
                 116(1) c_vline,117(03) space,                120(01) c_vline.
          FORMAT COLOR OFF.
          ULINE /8(113).
          NEW-PAGE.
        ENDAT.
        AT END OF rcvprn.
          i_pr_param-linsz = 1000.
          NEW-PAGE PRINT ON PARAMETERS i_pr_param NO DIALOG.
          NEW-PAGE PRINT OFF.
        If spool number is obtained, generate PDF
          IF sy-spono IS NOT INITIAL.
            PERFORM f_generate_pdf.
    *Send the PDF as mail attachement
            PERFORM f_send_email.
          ENDIF.
        ENDAT.
      ENDLOOP.
    ENDFORM.                   " SEND_MAIL
    Please check the code and suggest some changes.
    Thanks,
    Sukumar.

    Hi,
    The data is getting printed incorrectly, I have coded as you have instructed. But the report output (not emailing) is getting printed ok. The code for that is as below.
    FORM f_list_display .
      LOOP AT i_output.
        g_flag = c_x.
        CLEAR: g_flag_mail.
        WRITE: /08(1) c_vline, 10(09) i_output-stapa1, 20(1) c_vline,21(10) i_output-datum,
                31(1) c_vline, 32(10) i_output-belnr,  42(1) c_vline,43(15) i_output-total,
                58(1) c_vline, 59(15) i_output-surcrg, 74(1) c_vline,75(05) i_output-kperc,
                80(1) c_vline, 81(15) i_output-betrg,  96(1) c_vline,97(19) i_output-summe,
               116(1) c_vline,117(03) i_output-curcy, 120(1) c_vline,121(10) i_output-rcvprn.
        AT END OF rcvprn.
          SUM.
          ULINE /8(113).
          WRITE:  /8(1) c_vline.
          FORMAT COLOR 3.
          WRITE: 10(09) text-064, 20(01) c_vline,        21(10)  space,
                  31(1) c_vline, 32(10) space,           42(01)  c_vline, 43(15) i_output-total,
                  58(1) c_vline, 59(15) i_output-surcrg, 74(1)   c_vline, 75(05) space,
                  80(1) c_vline, 81(15) i_output-betrg,  96(1)   c_vline, 97(19) i_output-summe,
                 116(1) c_vline,117(03) space,           120(01) c_vline.
          FORMAT COLOR OFF.
          ULINE /8(113).
          NEW-PAGE.
        ENDAT.
      ENDLOOP.
    ENDFORM.                    " F_LIST_DISPLAY
    The code which you gave should work as the above code. The above code is for report output and our code is for sending mails to the customers separately, thus we are creating separate spools customer-wise.
    Our code for emailing to customers seperately is below.
    FORM f_prepare_mail .
    LOOP AT i_output_mail.
    At new rcvprn.
    NEW-PAGE PRINT ON PARAMETERS i_pr_param NO DIALOG.
    endat.
    l_flag_mail = 'X'.
    CLEAR: l_flag.
    WRITE: /08(1) c_vline, 10(09) i_output_mail-stapa1, 20(1) c_vline,21(10) i_output_mail-datum,
    31(1) c_vline, 32(10) i_output_mail-belnr, 42(1) c_vline,43(15) i_output_mail-total,
    58(1) c_vline, 59(15) i_output_mail-surcrg, 74(1) c_vline,75(05) i_output_mail-kperc,
    80(1) c_vline, 81(15) i_output_mail-betrg, 96(1) c_vline,97(19) i_output_mail-summe,
    116(1) c_vline,117(03) i_output_mail-curcy, 120(1) c_vline.
    AT END OF rcvprn.
    SUM.
    ULINE /8(113).
    WRITE: /8(1) c_vline.
    FORMAT COLOR 3.
    WRITE: 10(09) text-064, 20(01) c_vline, 21(10) space,
    31(1) c_vline, 32(10) space, 42(01) c_vline, 43(15) i_output_mail-total,
    58(1) c_vline, 59(15) i_output_mail-surcrg, 74(1) c_vline, 75(05) space,
    80(1) c_vline, 81(15) i_output_mail-betrg, 96(1) c_vline, 97(19) i_output_mail-summe,
    116(1) c_vline,117(03) space, 120(01) c_vline.
    FORMAT COLOR OFF.
    ULINE /8(113).
    NEW-PAGE.
    ENDAT.
    AT END OF rcvprn.
    i_pr_param-linsz = 1000.
    NEW-PAGE PRINT OFF.
    If spool number is obtained, generate PDF
    IF sy-spono IS NOT INITIAL.
    PERFORM f_generate_pdf.
    *Send the PDF as mail attachement
    PERFORM f_send_email.
    ENDIF.
    ENDAT.
    ENDLOOP.
    ENDFORM. " SEND_MAIL
    Let me know, what could be the error in our code which generates separate spools for customers.
    Thanks in advance for the help.
    Sukumar.

  • 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

  • I have a problem with ALV Grid User Command?

    Hi Experts,
    I have a problem with ALV GRID User Command.
    I am calling TCODE IW33 (Order Display) from the ALV output at first time by selecting an order. But, User command is calling IW33 Initial screen with blank value of order. Even I checked in debugging the value what I selected is passing properly, but once that screen (IW33 Initial) displays, value doesn't appear. Then, Manually, I  created another session and gone to TCODE IW33 and displayed an order. After that I came out from that order. Then again run my ALV program and selected another order, now order is displaying, but not what I selected current order instead of displaying previous order what I just displayed manually. If I selected any other order, system will display the same order what I dislayed manually.
    Here is my code.
    FORM user_command_alv  USING u_ucomm TYPE sy-ucomm
                           us_self_field TYPE slis_selfield.
    CASE u_ucomm.
    WHEN '&IC1'.
    READ TABLE it_final INDEX us_self_field-tabindex INTO wa_final.
            WHEN 'ORDER'.
              IF NOT wa_final-order IS INITIAL.
                SET PARAMETER ID 'COK' FIELD wa_final-order.
                CALL TRANSACTION 'IW33' AND SKIP FIRST SCREEN.
              ENDIF.
    endform.
    PARAMETER ID 'COK'  also the standard one.
    Could you please help me out, Where I did wrong?
    If I select any order, that order only should display.
    Thanks in advance.
    Regards,
    Sarayu.
    Code Formatted by: Alvaro Tejada Galindo on Jan 8, 2009 2:33 PM

    hi,
    Please check it once the Paramater ID is 'ANR' for IW33 order number.
    Hope this may help.
    Regards,
    Sravanthi

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

  • 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 IN NORMAL REPORT

    Please do not have your subject in ALL CAPITALS
    Hi Experts,
    Please advice,
    I am having three fields in output first one  is directly fetched from table and other two are variables.
    ITAB-MENGE = fetched data.
    ITAB-UCOMM =   user command.
    AT SELECTION-SCREEN OUTPUT
    when the user press ENTER
    ITAB-SUM = ITAB-MENGE + ITAB-UCOMM.
    For eq:
    Suppose if:
    ITAB-MENGE = 100
    and if the user enters the value in ITAB-UCOMM = 200
    and when the user press enter the sum should display on the other field ITAB-SUM
    Note: I am using normal write statement ( not ALV ) & I am not using any parameters in selection screen all these has to fired on output screen
    Thanks
    R.Karthik
    Edited by: Karthik R on Feb 28, 2009 3:34 PM
    Edited by: Matt on Mar 1, 2009 7:18 PM

    Hi,
    Refer code:-
    REPORT  Z19TG7_1 NO STANDARD PAGE HEADING.
    TABLES : LFA1.
    TYPES : BEGIN OF VENDOR,
            LIFNR LIKE LFA1-LIFNR,
            NAME1 LIKE LFA1-NAME1,
            END OF VENDOR,
            BEGIN OF VENDOR1,
            LIFNR LIKE LFA1-LIFNR,
            NAME1 LIKE LFA1-NAME1,
            ORT01 LIKE LFA1-ORT01,
            LAND1 LIKE LFA1-LAND1,
            BUKRS LIKE LFB1-BUKRS,
            END OF VENDOR1.
    DATA : VENDOR_TAB TYPE STANDARD TABLE OF VENDOR INITIAL SIZE 20 WITH HEADER LINE,
           VENDOR1_TAB TYPE STANDARD TABLE OF VENDOR1 INITIAL SIZE 20 WITH HEADER LINE,
           CB.
    *       WAS_USED.
    TOP-OF-PAGE DURING LINE-SELECTION.
      WRITE SY-LSIND.
    START-OF-SELECTION.
      SET PF-STATUS 'Z19TG7_1_PF'.
      SELECT LIFNR NAME1
      FROM LFA1
      INTO TABLE VENDOR_TAB.
    AT USER-COMMAND.
      CASE SY-UCOMM.
        WHEN 'VL'.
          IF SY-LSIND = 1.
            SET PF-STATUS SPACE.
            DO.
              CLEAR CB.
              READ LINE SY-INDEX FIELD VALUE CB.
              IF SY-SUBRC <> 0.
                EXIT.
              ELSE.
                CHECK CB = 'X'.
                MODIFY CURRENT LINE : FIELD VALUE CB FROM SPACE.
                SELECT A~LIFNR A~NAME1 A~ORT01 A~LAND1 B~BUKRS
                FROM LFA1 AS A
                LEFT OUTER JOIN LFB1 AS B
                ON A~LIFNR = B~LIFNR
                INTO TABLE VENDOR1_TAB
                WHERE A~LIFNR = VENDOR_TAB-LIFNR.
                LOOP AT VENDOR1_TAB.
                  WRITE : / 'Vendor ID:' NO-GAP, VENDOR1_TAB-LIFNR,
                          / 'Vendor Name :' NO-GAP, VENDOR1_TAB-NAME1,
                          / 'City :' NO-GAP, VENDOR1_TAB-ORT01,
                          / 'Land :' NO-GAP, VENDOR1_TAB-LAND1,
                          / 'Country Code :' NO-GAP, VENDOR1_TAB-BUKRS.
                  ULINE.
                ENDLOOP.
              ENDIF.
            ENDDO.
          ENDIF.
      ENDCASE.
    END-OF-SELECTION.
      WRITE : /1 'CB', 5 TEXT-001, 18 TEXT-002.
      ULINE.
      LOOP AT VENDOR_TAB.
        WRITE : /1 CB AS CHECKBOX, 5 VENDOR_TAB-LIFNR, 18 VENDOR_TAB-NAME1.
        HIDE : VENDOR_TAB-LIFNR.
      ENDLOOP.
      ULINE.
    Hope this helps you.
    Regards,
    Tarun

  • REUSE checkbox values not saved after user-command

    Hi,
    I have an ALV grid using REUSE_ALV_GRID_DISPLAY within i have checkbox editable field. Initially all lines in the grid are checked. (user can deselect some of the lines)
    After display of ALV grid user deselect some of the lines in the grid and he press ENTER Here i am updating only checked data the alv grid data to a custom table.But my problem is user deselect some of lines in the gird and press ENTER, but the output table from the grid still showing all lines are checked. ie grid results not showing in the output table.
    Here is code
      data: pt_grpfcat      type slis_t_fieldcat_alv,
            ps_grpfcat      like line of pt_grpfcat,
            pt_grpself      type slis_selfield,
            pt_grplayout2   type slis_layout_alv,
            pv_grptitle(20) type c,
            p_grpexcltab2   type slis_t_extab with header line,
            p_header        type  slis_formname.
      ps_grpfcat-fieldname = 'BOX'.
      ps_grpfcat-checkbox  = c_x.
      ps_grpfcat-edit      = c_x.
      ps_grpfcat-seltext_m = text-272.
      ps_grpfcat-outputlen = 3.
      append ps_grpfcat to pt_grpfcat[].
      clear ps_grpfcat.
      ps_grpfcat-fieldname = 'WERKS'.
      ps_grpfcat-outputlen = 4.
      ps_grpfcat-seltext_m = 'Plants'.
      append ps_grpfcat to pt_grpfcat[].
      clear ps_grpfcat.
      ps_grpfcat-fieldname = 'NAME1'.
      ps_grpfcat-outputlen = 40.
      ps_grpfcat-seltext_m = 'Description'.
      append ps_grpfcat to pt_grpfcat[].
      clear ps_grpfcat.
      select * from t001w into table i_t001w_1.
      if p_plgrp ne c_gl.
        select * from yfe024 into table i_yfe024
                 where plgrp eq p_plgrp.
      else.
        select * from yfe024 into table i_yfe024
                 where plgrp ne space.
      endif.
      refresh : i_grpoutput. clear : i_grpoutput.
      pt_grplayout2-zebra = c_x.
      refresh i_events. clear i_events.
      if not i_yfe024[] is initial.
        loop at i_yfe024 into wa_yfe024.
          read table i_t001w_1 into wa_t001w_1
                      with key werks = wa_yfe024-werks.
          if sy-subrc eq 0.
            move : c_x            to i_grpoutput-box,
                   wa_t001w_1-werks to i_grpoutput-werks,
                   wa_t001w_1-name1 to i_grpoutput-name1.
            append i_grpoutput.
          endif.
        endloop.
      endif.
      pv_grptitle = text-t01.
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          it_fieldcat                 = pt_grpfcat[]
          it_excluding                = p_grpexcltab2[]
          is_layout                   = pt_grplayout2
          i_callback_program          = sy-repid
          i_callback_html_top_of_page = p_header
          i_callback_pf_status_set    = v_status_set1
          i_callback_user_command     = v_user_command1
          i_screen_start_column       = 5
          i_screen_start_line         = 5
          i_screen_end_column         = 70
          i_screen_end_line           = 15
          it_events                   = i_events[]
        tables
          t_outtab                    = i_grpoutput.
    endform.                                 " F_f4_help_fieldname
    * Form  f_user_command1                                                *
    * This form will handle the user command from fm REUSE                 *
    form f_user_command1 using p_ucomm type sy-ucomm
                         rs_selfield type  slis_selfield.
      case p_ucomm.
        when 'YCNC'.
          leave to screen 0.
        when 'YNTR'.
          perform f_upload_readions.
          leave to screen 0.
      endcase.
    endform.                                 " F_user_command1
    * Form f_pf_status_set1                                                *
    * For setting PF status to REUSE                                       *
    form f_pf_status_set1 using rt_extab type slis_t_extab..
      set pf-status '9001'.
      set titlebar '9001' with v_plgrp.
    endform.                                 " F_pf_status_set1
    * Form f_upload_readions                                               *
    * For upload plants under regions to load into YSCCPLNT                *
    form f_upload_readions.
      if not i_grpoutput[] is initial.
        loop at i_grpoutput where box eq c_x.
          read table i_ysccplnttemp with key werks = i_grpoutput-werks
                                             updkz = space.
          if sy-subrc ne 0.
            move i_grpoutput-werks to i_ysccplnttemp-werks.
            move v_affind          to i_ysccplnttemp-affind.
            append i_ysccplnttemp. clear i_ysccplnttemp.
          endif.
        endloop.
      endif.
    endform.                                 " F_upload_readions
    Any suggestions?
    Thanks
    aRs

    form f_user_command1 using p_ucomm type sy-ucomm
                         rs_selfield type  slis_selfield.
    <b>Data ref1 type ref to cl_gui_alv_grid.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    E_GRID = ref1.
    call method ref1->check_changed_data</b>
      case p_ucomm.
        when 'YCNC'.
          leave to screen 0.
        when 'YNTR'.
          perform f_upload_readions.
          leave to screen 0.
      endcase.
    endform.

  • USER COMMAND CODE for the ICON "Back"

    Hello All,
                 I wanted to know if there is any command code for the user-command icon "back" that i can use while programming.
    e.g. as for the icon "save" there is '&data_save' code which we can use.
    I have used the code "&F03" for 'back" but it does not call the routine i have written for the same.
    So if in case no other code for "Back" icon is available, what is the procedure to implement the "back" command through programming?
    as when i click the icon,the code written inside the report should be executed along with the normal "back" function.
    Thanks

    Hi..
    you do one thing..put /h. then click on back.At the bottom pART of the debugging screen u find
    Field names section..There type sy-ucomm and press enter. The value of sy-ucomm can be seen...
    Thats the value u need...Which u can use the same in case statement
    and its case sensitive.chk the same.. and  write it in quotes( ''). that is 'BACK' or 'F03'
    Edited by: Rudra Prasanna Mohapatra on Jun 21, 2008 7:48 AM

Maybe you are looking for

  • Connecting Macbook to Dell U2312HM Monitor

    I'm interested in connecting the Dell U2312HM monitor to my Macbook OS X Version 10.6.8. How do I do it? What are the parts that I need to buy? Thank you.

  • Close PO using API po_actions.close_po

    HI, Iam trying to close a po through the api po_actions.close_po Here is my code v_value :=          po_actions.close_po (p_docid           => line_rec.po_header_id,                               p_doctyp          => 'PO',                            

  • Royally screwed up my startup disk... can anyone help?

    I have been playing around a little too much with my new OSX to make it as efficient as possible. So, when I went to Disk Utility and saw "erase free space" on Harddrive. My brain (which is not as efficient nor as intelligent as my MAC brain) read it

  • Automated Exception Reports

    When do people use them and how much reliance hould be put on them? This is to notify us if the data did not load into SAP completely or accurately. Your help is appreciated.Thanks.

  • Dreamviewer CS5 opens but shuts down right after first view again and again...without no error information

    I have Adobe Premium CS5 for MAC. My Dreamviewer CS5 opens but shuts down right after first view again and again. With no error information. I have tried to download it again (web download link) with reopening the computer, but still it does not work