Upload and ALV List

Hi ,
I have an requirement to Upload PDF and display the file using ALV List .
Question:
For Ex:  1.  Input Para:  Type:  test.PDF                 
1. Do we have any Function Module to read PDF file ?
Cheers,

I am not sure of this
But what you can do is convert pdf to xml and then you can upload in sap using smartform...
Not sure! Please try.
Regards,
Lalit Mohan Gupta.

Similar Messages

  • Differences between ABAP lists and ALV lists

    what is the differences between ABAP lists and ALV lists?
    Edited by: pong pong on Apr 9, 2008 5:08 AM

    Hello Pong Pong,
    Please go thru help topics:
    ALV Grid
    http://help.sap.com/saphelp_47x200/helpdata/en/bf/3bd1369f2d280ee10000009b38f889/frameset.htm
    ABAP Lists
    http://help.sap.com/saphelp_47x200/helpdata/en/d2/cb408a455611d189710000e8322d00/frameset.htm
    Regards,
    Siddhesh

  • Display totals on the first line in ALV grid and ALV LIST

    Generally we wll display totals at the end..
    bu the requirement is to display it in the first line of the column.
    how to display the totals in the first line?
    I have used ALV GRID and ALV LIST (choice) using function modules.
    Plz help me
    .for example : Po qty : Should display total po qty on the first line of the Po line item.

    IN LAYOUT
    ILAYOUT-totals_before_items = 'X'.
    REGARDS
    SHIBA DUTTA

  • Differences between normal list and ALV list

    Hi All,
      where can i find the differences between a Normal SAP List and ALV List(Documentation part).

    Imagine you have to write a report that lists out customer addresses. You will write code to get the input from the user via selection screen and then read the data based on the seletion from the database into an internal table(or a set of internal tables). Now once you have the data you will need to output this. In normal list reports, you will have to use 'WRITE' statements to format the output into columns and rows. Now suppose user wants some interactivity in it. Then  you will have to provide some buttons and/or menu options through custom pf-status and then write logic for reacting to the user actions. After writing many such reportsm, you will feel like some of this can generalized and reused in every report.
    That is exactly what ALV does. It takes out most of repeated sections of the code from out of you and provides you with excellent outputting functionality. It provides many standard functions like 'print', 'sort', 'filter', 'sum' etc by default. Imagine writing code yourself for all these if you were writing normal list program. One more major difference is the editing feature. If you were write a program that gives the user with editing features, then you will have to write a lot of logic. But with ALV, all the features like adding a row, deleting a row, copying a row, editing some fields of a row etc come by default.
    Likewise, interactivity has become quite easy to implement. Like double clicking on a customer number, if the user wants to go to display customer transaction, it is very easy using ALV.
    As pointed out here by others, go through the documentation of ALV and go through some of those demo programs and you will know the difference. ALV takes out a lot of burden of coding everything away from you and lets you worry about the business functionality that your report provides, rather than formatting the output or providing interactivity to the output.
    Hope this helps,
    Srinivas

  • Change the Layout for Create Change Display and   Alv List

    Hi All,
    I am working on Custom Development  WD Application for Maintain   Employee.
    I need to Get help/advice to hadle the two Problems.
    1) In my application I have to provide Create,Change & display Employee.
    Customer needs seperate Link/Application for all Create , Change and Display in Portal.
    I thought I am planning to Create Three Application in the WD Component(Create,Change & Display) while Pressing the Application I have to find out what is the Application They Pressed in the Componenet Controller to Change the Layout/Field (Edit/Display/Visisble) according to Create/Change/Display Employee.
    For this How to Find the Application name of the WD Componenet.
    2) To show the Employee List I am having using ALV LIst.
    But my List consuists of 35 Fields. Customer not ready for scrolling the List to see all columns.
    I thought I am planning to provide Visible/Invisble columns after providing one button.
    If they pressed this button It will next set of Columns with out scrollibng.
    How to handle this ?
    Kindly help/advise  me for both the Problems to proceed further.
    Thanks in advance.
    Dav

    1.For this How to Find the Application name of the WD Componenet.
    DATA:
      l_api                           type ref to if_wd_component,
      l_application_api               type ref to if_wd_application,
      l_application_info              type ref to if_wd_rr_application,
    lv_name                            type string.
      l_api              = wd_this->wd_get_api( ).
      l_application_api  = l_api->get_application( ).
      l_application_info = l_application_api->get_application_info( ).
      lv_name = l_application_info->get_name( ).
    > 2) To show the Employee List I am having using ALV LIst.
    >
    >  But my List consuists of 35 Fields. Customer not ready for scrolling the List to see all columns.
    Are they planning to buy Wide Screen monitor ??
    I am not really fan of the solution you propose, at the same time i am not having better idea. I would get the customer on table and see how they would like to have the presentation of 35 columns without scrolling.
    ALV provides customization, in that way users can select their own list of columns.

  • Manual Fieldcatalog and ALV list display.

    Hi,
    Could anyone help me to know the step by step procedure to create a fieldcatalog manually and then using it for ALV list display?
    Thanks,
    Sandeep.

    Hi Sandeep,
                          Refer this code :
    FORM build_fieldcatlog  USING    p_it_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: itab_fieldcat TYPE slis_fieldcat_alv.
    FOR LIGHTS
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos     = '1'.                            " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname   = 'V_LIGHTS'.                     " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname     = 'It_matstock'.                  " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
      itab_fieldcat-emphasize   = 'C410'.                         " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l   = 'Category'.                     " LONG TEXT FOR HEADER.
      itab_fieldcat-seltext_m   = 'Category'.                     " MEDIUM TEXT FOR HEADER.
      itab_fieldcat-seltext_s   = 'Category'.                     " SHORT TEXT FOR HEADER.
      itab_fieldcat-outputlen   = 7.                              " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    FOR CHECK BOX
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos     = '2'.                            " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname   = 'V_CHKBOX'.                     " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname     = 'It_matstock'.                  " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
    itab_fieldcat-emphasize   = 'C410'.                         " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l   = 'CHECKBOX'.                     " LONG TEXT FOR HEADER.
      itab_fieldcat-seltext_m   = 'CHKBOX'.                     " MEDIUM TEXT FOR HEADER.
      itab_fieldcat-seltext_s   = 'CHKBOX'.                     " SHORT TEXT FOR HEADER.
      itab_fieldcat-checkbox = 'X'.                             " CHECK BOX
      itab_fieldcat-edit = 'X'.
      itab_fieldcat-outputlen   = 2.                              " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    *FOR MATERIAL NO (IT_MATSTOCK-MATNR)
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos = '3'.                        " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname = 'MATNR'.                  " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname = 'IT_MATSTOCK'.              " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
      itab_fieldcat-emphasize = 'C410'.                   " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l = 'MATERIAL NO'.            " LONG TEXT FOR HEADER.
      itab_fieldcat-seltext_m = 'MATNO'.                  " MEDIUM TEXT FOR HEADER.
      itab_fieldcat-seltext_s = 'MATNO'.                  " SHORT TEXT FOR HEADER.
      itab_fieldcat-hotspot = 'X'.                        " HOT SPOT
      itab_fieldcat-outputlen = 20.                       " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    FOR PLANT (IT_MATSTOCK-WERKS)
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos = '4'.                        " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname = 'WERKS'.                  " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname = 'IT_MATSTOCK'.              " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
      itab_fieldcat-emphasize = 'C510'.                   " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l = 'PLANT'.
      itab_fieldcat-seltext_m = 'PLANT'.
      itab_fieldcat-seltext_s = 'PLANT'.
      itab_fieldcat-outputlen = 10.                        " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    FOR STORAGE LOCATION (IT_MATSTOCK-LGORT)
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos = '5'.                        " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname = 'LGORT'.                  " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname = 'IT_MATSTOCK'.              " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
      itab_fieldcat-emphasize = 'C610'.                   " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l = 'STORAGE LOCATION'.
      itab_fieldcat-seltext_m = 'STORAGE LOC'.
      itab_fieldcat-seltext_s = 'SLOC'.
      itab_fieldcat-outputlen = 10.                        " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    FOR QUANTITY (IT_MATSTOCK-LABST)
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos = '6'.                        " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname = 'LABST'.                  " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname = 'IT_MATSTOCK'.              " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
      itab_fieldcat-emphasize = 'C710'.                   " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l = 'QUANTITY'.
      itab_fieldcat-seltext_m = 'QUANTITY'.
      itab_fieldcat-seltext_s = 'QUAN'.
      itab_fieldcat-outputlen = 10.                        " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    FOR UNIT OF MEASUREMENT (IT_MATSTOCK-MEINS)
      CLEAR itab_fieldcat.
      itab_fieldcat-col_pos = '7'.                        " POSITION OF THE COLUMN.
      itab_fieldcat-fieldname = 'MEINS'.                  " FIELD FOR WHICH CATALOG ID FILLED.
      itab_fieldcat-tabname = 'IT_MATSTOCK'.              " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
      itab_fieldcat-emphasize = 'C110'.                   " COLOR OF THIS COLUMN.
      itab_fieldcat-seltext_l = 'UNIT OF MEASURE'.
      itab_fieldcat-seltext_m = 'UNIT OF MSURE'.
      itab_fieldcat-seltext_s = 'UOM'.
      itab_fieldcat-outputlen = 10.                        " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
      APPEND itab_fieldcat TO p_it_fieldcat.
    FORM alv_display_grid .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = sy-repid
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
         i_structure_name                  = 'D_STRUCTURE'
      I_BACKGROUND_ID                   = ' '
      i_grid_title                      =
      I_GRID_SETTINGS                   =
      is_layout                         =
         it_fieldcat                       = it_fieldcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      it_sort                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
       i_default                         = 'X'
       i_save                            = 'A'
    is_variant                        =
       IT_EVENTS                         = I_EVENTCAT
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = it_matstock
       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.
    ENDFORM.                    " ALV_DISPLAY_GRID
    Reward points if helpful.
    Regards,
    Hemant

  • ALV Grid and ALV List difference?

    Hello,
    Can you help me differentiate ALV List and ALV grid and the low-level definition or context of each?
    Also, can you give me a transaction code that outputs an ALV list as well as a tcode for ALV grid?
    Thanks,
    Jennah

    Hi Kirtish,
    Thanks but I  havent done any function module stuff as I am not an ABAPer but anyway can you guide me through thios?
    "I hope this might slove your query. For more please refer to documentation on ALV and also implement the ALV LIST and GRID reports. By using class Class CL_GUI_ALV_GRID, Function module REUSE_ALV_LIST_DISPLAY , REUSE_ALV_GRID_DISPLAY and some more functions like that only."
    I will give you some tcode can you please try tcode FBL1n? then execute the report. What is the output is it an ALV list?
    I wish to see an ALV list also an ALV grid to see difference.
    Tjhakns,
    Jennah

  • How to view the report of Upload and Download list

    Hello,
    I would like to see the Portal Activity Report of all the users who have logged in and out and their times and I would like to see the names also with how many uploades and downloades from the portal.
    I can view only the user ids thats all in the Portal Activity Report.
    Can anyone help me. Please
    cheers
    murali

    Hi Murali,
    KM access is not logged by the portal activity report so far.
    You would have to implement it on your own. For an introduction see Documents hits count (KM Activity Reporting)
    Hope it helps
    Detlev

  • Report with ALV tree and ALV list?

    I need to create a report with layout as same as this one
    [http://trangiegie.com/MyFile/output.JPG]
    It looks like a report with combination of ALV tree and list. The tree works like a navigation bar. Wonder if there are any demo programs like this. Will appreciate any help.

    For Tree alone - You can check program : BCALV_TREE_02
    Program Name                   Report title
    BCALV_GRID_DND_TREE            ALV Grid: Drag and Drop with ALV Tree
    BCALV_GRID_DND_TREE_SIMPLE     ALV GRID: Drag and drop with ALV tree (simple)
    BCALV_TEST_COLUMN_TREE         Program BCALV_TEST_COLUMN_TREE
    BCALV_TEST_SIMPLE_TREE         Program BCALV_TEST_SIMPLE_TREE
    BCALV_TREE_01                  ALV Tree Control: Build Up the Hierarchy Tree
    BCALV_TREE_02                  ALV Tree Control: Event Handling
    BCALV_TREE_03                  ALV Tree Control: Use an Own Context Menu
    BCALV_TREE_04                  ALV Tree Control: Add a Button to the Toolbar
    BCALV_TREE_05                  ALV Tree Control: Add a Menu to the Toolbar
    BCALV_TREE_06                  ALV tree control: Icon column and icon for nodes/items
    BCALV_TREE_DEMO                Demo for ALV tree control
    BCALV_TREE_DND                 ALV tree control: Drag & Drop within a hierarchy tree
    BCALV_TREE_DND_MULTIPLE        ALV tree control: Drag & Drop within a hierarchy tree
    BCALV_TREE_EVENT_RECEIVER      Include BCALV_TREE_EVENT_RECEIVER
    BCALV_TREE_EVENT_RECEIVER01
    BCALV_TREE_ITEMLAYOUT          ALV Tree: Change Item Layouts at Runtime
    BCALV_TREE_MOVE_NODE_TEST      Demo for ALV tree control
    BCALV_TREE_SIMPLE_DEMO         Program BCALV_TREE_SIMPLE_DEMO
    BCALV_TREE_VERIFY              Verifier for ALV Tree and Simple ALV Tree

  • Uploading logo into interactive reports and ALV rerports

    hi experts,
                how to upload logo into interactive reports and ALV reports.
                                        thank u.

    hi for  any thing in alv check these links,
    chk out these links..
    Simple ALV report
    http://www.sapgenie.com/abap/controls/alvgrid.htm
    http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
    ALV
    1. Please give me general info on ALV.
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    2. How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    3. How do I add subtotals (I have problem to add them)...
    http://www.sapfans.com/forums/viewtopic.php?t=20386
    http://www.sapfans.com/forums/viewtopic.php?t=85191
    http://www.sapfans.com/forums/viewtopic.php?t=88401
    http://www.sapfans.com/forums/viewtopic.php?t=17335
    4. How to add list heading like top-of-page in ABAP lists?
    http://www.sapfans.com/forums/viewtopic.php?t=58775
    http://www.sapfans.com/forums/viewtopic.php?t=60550
    http://www.sapfans.com/forums/viewtopic.php?t=16629
    5. How to print page number / total number of pages X/XX in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
    6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
    http://www.sapfans.com/forums/viewtopic.php?t=64320
    http://www.sapfans.com/forums/viewtopic.php?t=44477
    7. How can I set the cell color in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    8. How do I print a logo/graphics in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=81149
    http://www.sapfans.com/forums/viewtopic.php?t=35498
    http://www.sapfans.com/forums/viewtopic.php?t=5013
    9. How do I create and use input-enabled fields in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=84933
    http://www.sapfans.com/forums/viewtopic.php?t=69878
    10. How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    11. How can I display an icon in ALV? (Common requirement is traffic light icon).
    http://www.sapfans.com/forums/viewtopic.php?t=79424
    http://www.sapfans.com/forums/viewtopic.php?t=24512
    12. How can I display a checkbox in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=88376
    http://www.sapfans.com/forums/viewtopic.php?t=40968
    http://www.sapfans.com/forums/viewtopic.php?t=6919
    Go thru these programs they may help u to try on some hands on
    ALV Demo program
    BCALV_DEMO_HTML
    BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode
    BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode
    BCALV_GRID_DEMO Simple ALV Control Call Demo Program
    BCALV_TREE_DEMO Demo for ALV tree control
    BCALV_TREE_SIMPLE_DEMO
    BC_ALV_DEMO_HTML_D0100
    reward points if useful,
    regards,
    venkat.

  • How to print check box in ALV list display and how to pick selected ones

    Hi
    i am displaying one ALV list dispaly. for that im adding one check box fields by filling the fieldcat as below:
      wa_fldcat-checkbox = 'X'.
      wa_fldcat-edit = 'X'.
    but the check box is showing disable mode only. i want to display that check box and if i select that check box i want pick that records. for ALV grid i found one FM to pick records of selectedones as below.
    DATA ref_grid TYPE REF TO cl_gui_alv_grid.
      IF ref_grid IS INITIAL.
        CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
          IMPORTING
            e_grid = ref_grid.
      ENDIF.
      IF ref_grid IS NOT INITIAL.
        CALL METHOD ref_grid->check_changed_data.
      ENDIF.
    but how can i do for list display to pick those selected one records.
    Can any one sugget regarding this.
    Thanks in advance.
    Rahul.

    Hi,
    Thanks. now it's enabled. but how can we pick the records from that list whichever i selected through that check box.
    i found this one for ALV grid:
    DATA ref_grid TYPE REF TO cl_gui_alv_grid.
      IF ref_grid IS INITIAL.
        CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
          IMPORTING
            e_grid = ref_grid.
      ENDIF.
      IF ref_grid IS NOT INITIAL.
        CALL METHOD ref_grid->check_changed_data.
      ENDIF.
    but how for ALV normal list display.
    Thanks.
    rahul

  • Convert ALV list to PDF and send mails to respective persons

    Hi All,
    I have a requirement ..we have written a program which will give o/p in alv list.Now I got a requirement to download that program to ALV format.Kindly help me how to approch for that we have some standard FM's for that like CONVERT_ABAPSPOOLJOB_2_PDF..what are the necessary inputs I have to give for that FM,
    Second requirement is I have to send an E mail of that list to respective persons.help me on this also
    Regards
      KK

    Hi,
    Try with this program which will send the spool to email.
    PARAMETER: p_email1 LIKE somlreci1-receiver
                        DEFAULT '[email protected]',
               p_sender LIKE somlreci1-receiver
                        DEFAULT '[email protected]',
               p_delspl AS CHECKBOX.
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    * Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    * Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    * Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    * Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    * Write statement to represent report output. Spool request is created
    * if write statement is executed in background. This could also be an
    * ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
    *** Alternative way could be to submit another program and store spool
    *** id into memory.
    *submit ZSPOOLTOPDF2
    *        to sap-spool
    *        spool parameters   %_print
    *        archive parameters %_print
    *        without spool dynpro
    *        and return.
    * Get spool id from program called above
    *  IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
        PERFORM convert_spool_to_pdf.
        PERFORM process_email.
        if p_delspl EQ 'X'.
          PERFORM delete_spool.
        endif.
        IF sy-sysid = c_dev.
          wait up to 5 seconds.
          SUBMIT rsconn01 WITH mode   = 'INT'
                          WITH output = 'X'
                          AND RETURN.
        ENDIF.
      ELSE.
        SKIP.
        WRITE:/ 'Program must be executed in background in-order for spool',
                'request to be created.'.
      ENDIF.
    *       FORM obtain_spool_id                                          *
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
    *       FORM get_job_details                                          *
    FORM get_job_details.
    * Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    ENDFORM.
    *       FORM convert_spool_to_pdf                                     *
    FORM convert_spool_to_pdf.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = gd_spool_nr
                no_dialog                = c_no
                dst_device               = c_device
           IMPORTING
                pdf_bytecount            = gd_bytecount
           TABLES
                pdf                      = it_pdf_output
           EXCEPTIONS
                err_no_abap_spooljob     = 1
                err_no_spooljob          = 2
                err_no_permission        = 3
                err_conv_not_possible    = 4
                err_bad_destdevice       = 5
                user_cancelled           = 6
                err_spoolerror           = 7
                err_temseerror           = 8
                err_btcjob_open_failed   = 9
                err_btcjob_submit_failed = 10
                err_btcjob_close_failed  = 11
                OTHERS                   = 12.
      CHECK sy-subrc = 0.
    * Transfer the 132-long strings to 255-long strings
      LOOP AT it_pdf_output.
        TRANSLATE it_pdf_output USING ' ~'.
        CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
      ENDLOOP.
      TRANSLATE gd_buffer USING '~ '.
      DO.
        it_mess_att = gd_buffer.
        APPEND it_mess_att.
        SHIFT gd_buffer LEFT BY 255 PLACES.
        IF gd_buffer IS INITIAL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
    *       FORM process_email                                            *
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    *  perform send_email using p_email2.
    ENDFORM.
    *       FORM send_email                                               *
    *  -->  p_email                                                       *
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
      REFRESH it_mess_bod.
    * Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    *  CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    * If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    * Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
    *       FORM delete_spool                                             *
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
      ld_spool_nr = gd_spool_nr.
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
    *       Send email
    FORM send_file_as_email_attachment tables it_message
                                              it_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
    data:   t_packing_list like sopcklsti1 occurs 0 with header line,
            t_contents like solisti1 occurs 0 with header line,
            t_receivers like somlreci1 occurs 0 with header line,
            t_attachment like solisti1 occurs 0 with header line,
            t_object_header like solisti1 occurs 0 with header line,
            w_cnt type i,
            w_sent_all(1) type c,
            w_doc_data like sodocchgi1.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    * Fill the document data.
      w_doc_data-doc_size = 1.
    * Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    * Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = it_attach[].
    * Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    * Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    * Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    * Populate zerror return code
      ld_error = sy-subrc.
    * Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    Regards,
    Raghav

  • How to upload and overwrite a file from a dynamic list

    I need to come up with a way to upload and overwrite and existing image file from a dynamically generated list. For instance, there would be a drop-down select box with Company A, Company B, Company C, etc. and when the user selects one of them it should display a prompt to upload a new logo image file, overwriting the existing logo file. Any help would be appreciated.

    I'm not sure why you need a prompt.  Sounds like an unnecessary annoyance to me.
    A simple form with a select and input type="file" should get you started.  Then I would probably do something like:
    1.  upload the file to a temp folder on your server.
    2.  Rename it according to what company was selected.
    3.  Move it to it's permanent folder.

  • ALV  List Layout add new button  and modify Append Row Button Text and Logi

    Hi All,
    I am working on Employee custom development Application in Webdynpro ABAP>
    In my ALV list Layout  I have to add new  two Buttons  Top or Bottom of the ALV List.
    If I am adding I have to add logic for those Buttons. How to add and add logic for those buttons.
    as well as I have to Change the  Text  for  Existing Button ''Append Row''    to  "ADD NEW ROWS"
    and I have to add logic in this button while Append New Row I have to generate ID no for New Rows .
    Kindly help/advice  me to proceed further.
    Thanks in advance.
    Dav

    Hi Dav,
    To Add buttons please refer this thred,
    ALV with user-defined buttons on toolbar in wd abap
    To change or rename text in ALV standard buttons, please refer this ...
    How can i change the text of an standard button in ALV?
    and also see this article on self defined functions...
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/101df93f-4b5c-2910-14aa-9eb0338c2110?quicklink=index&overridelayout=true
    Thanks,
    Kris.
    Edited by: kissnas on Feb 22, 2011 5:59 AM

  • My subtotal and total text in ALV list does not show...

    Hello Experts,
    Please see my code below on what I am doing wrong. I want to display the subtotal and total text in my ALV list.
    CLEAR gs_layout.
        gs_layout-colwidth_optimize = 'X'.
        gs_layout-zebra             = 'X'.
        gs_layout-subtotals_text    = 'Subtotal'.
        gs_layout-totals_text       = 'Total'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
          EXPORTING
    *       I_INTERFACE_CHECK                 = ' '
    *       I_BYPASSING_BUFFER                = ' '
    *       I_BUFFER_ACTIVE                   = ' '
            i_callback_program                = sy-repid
    *       I_CALLBACK_PF_STATUS_SET          = ' '
    *       I_CALLBACK_USER_COMMAND           = ' '
    *       I_CALLBACK_TOP_OF_PAGE            = ' '
    *       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *       I_CALLBACK_HTML_END_OF_LIST       = ' '
    *       I_STRUCTURE_NAME                  =
    *       I_BACKGROUND_ID                   = ' '
    *       I_GRID_TITLE                      =
    *       I_GRID_SETTINGS                   =
            is_layout                         = gs_layout
            it_fieldcat                       = gt_fieldcat
    *       IT_EXCLUDING                      =
    *       IT_SPECIAL_GROUPS                 =
            it_sort                           = gt_sort
    *       IT_FILTER                         =
    *       IS_SEL_HIDE                       =
    *       I_DEFAULT                         = 'X'
    *       I_SAVE                            = ' '
    *       IS_VARIANT                        =
            it_events                         = gt_events
    *       IT_EVENT_EXIT                     =
            is_print                          = gs_print
    *       IS_REPREP_ID                      =
    *       I_SCREEN_START_COLUMN             = 0
    *       I_SCREEN_START_LINE               = 0
    *       I_SCREEN_END_COLUMN               = 0
    *       I_SCREEN_END_LINE                 = 0
    *       I_HTML_HEIGHT_TOP                 = 0
    *       I_HTML_HEIGHT_END                 = 0
    *       IT_ALV_GRAPHICS                   =
    *       IT_HYPERLINK                      =
    *       IT_ADD_FIELDCAT                   =
    *       IT_EXCEPT_QINFO                   =
    *       IR_SALV_FULLSCREEN_ADAPTER        =
    *     IMPORTING
    *       E_EXIT_CAUSED_BY_CALLER           =
    *       ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = lt_output_fin
         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.

    Use on Thread. Don't Cross post. and Follow the Rules.

Maybe you are looking for