Collect reports into a book header

Hey!
I'm willing to create a header having some text and images for each page on a book collecting some reports I've done in Financial Reporting.
Is there any way to do it from planning??
as when i add header in FR I'm not seeing all the images displayed on the same size on every page as i selected the grid to auto fit.
Thanks!
Edited by: loskiorama on Dec 15, 2010 6:11 AM

Hello Shashi
You should not use itab with header lines since they mess up any coding and are a nightmare when it comes to maintaining code.
Fortunately, SAP has abandoned header lines from ABAP-OO. If you are not using table types then you have to define your own types, e.g.:
TYPES: BEGIN OF ty_s_line.
TYPES:   field_a  TYPE ... .
TYPES:   field_b  TYPE ... .
TYPES: END OF ty_s_line.
TYPES: ty_t_itab  TYPE STANDARD TABLE OF ty_s_line
                  WITH DEFAULT KEY.
DATA:
  ls_line   TYPE ty_s_line,
  lt_itab   TYPE ty_t_itab.
* Now fill your itab, e.g.
  SELECT * FROM ... INTO CORRESPONDING FIELDS
                    OF TABLE lt_itab.
* Now working with the itab data.
  LOOP AT lt_itab INTO ls_line.
  ENDLOOP.
Regards
   Uwe

Similar Messages

  • Get report into PDF - with header logo

    I want to batch generate Discoverer reports into PDF files, with the company logo in the header.
    So, for batch generation - the easiest thing is to write a script which calls Desktop. Ok, no problem.
    Oh, sorry, you can't export to PDF using desktop. Grrr. So okay, I use a utility named Neevia to take the html export from Desktop and covert that to PDF.
    Oh, so sorry! Export to html from Desktop does not output the logo!
    This is on version 10.1 (not that things sound improved more recently).
    I'm tempted to try using a print to pdf print driver, but I need to run hundreds of reports... typically those print drivers (PrimoPDF for example) will pop up and ask for the file name to be specified. I don't see a way to have the batch script answer that prompt with a unique name for each report.
    Ideas folks? It all seems like a Catch-22 to try to get PDF + Logo + Batch generation. Pick 1.

    Hi,
    We use print to PDF print driver to generate PDF. You can set the default directory so that the PDF driver does not prompt for the filename. The filename defaults to the same name as the .DIS file. We use Adobe Professional for this but I am sure you can do the same with other print drivers. What is a pain, and I really wish Oracle would fix this, is that you cannot print from a workbook stored in the database so all the workbooks have to be stored locally. Using a VBScript we can generate dozens of PDF reports overnight without any problems.
    Rod West

  • VF05 Report(ALV GRID REPORT) to be exported into excel without  Header

    Hi
    I need to export the VF05 Billing due list report(ALV Grid Report) into excel with out having the Top of the page. I need to export only the bottom grid into excel sheet.
    Plz help me on this.  URGENT

    Dear Chandra sekhar
    Once VF05 is executed, select "List" on top left followed by "Save - File" and "Spreadsheet".
    By default, the data will be downloaded into a text file.  Open the file and select "Save as" and choose "Excel" and save.  Now you can make changes whatever you want.
    Thanks
    G. Lakshmipathi

  • How to convert Classical Report into PDF format..........

    Hi Experts,
    I have written a classical report with write statements and when i am downloading in excel the format is mismatching and now i want to convert into PDF format.
    How to convert into PDF format from Classical report ?
    Yusuf

    Hi yusuf,
    please find the below report,,
    please make two include programs before executing it,
    there codes are pasted below,
    INCLUDE zimpr_data_declaration.
    INCLUDE zimpr_performs_wrap.
    REPORT  zimpr_word_wrap NO STANDARD PAGE HEADING LINE-SIZE 115..
                INCLUDE for DATA DECLARATION                               *
    INCLUDE zimpr_data_declaration.
                INCLUDE for all performs.                                  *
    INCLUDE zimpr_performs_wrap.
    TOP-OF-PAGE--
    TOP-OF-PAGE.
      PERFORM f_top_page.                     "TOP OF THE REPORT PAGE,I.E. HEADER.
    START-OF-SELECTION.
      SET PF-STATUS 'SEL_SCREEN'.             "PF-STATUS OF THE SELECTION SCREEN.
      PERFORM f_data_retrieval.               "PERFORM FOR ALL SELECT STATEMENTS.
      PERFORM f_report_display.               "REPORT DISPLAY,WRITE STATEMENTS.
    --Define the actions to be performed for pf-status-----
    AT USER-COMMAND.
      wf_ok_code = sy-ucomm.
      wf_save_ok = wf_ok_code.
      CLEAR wf_ok_code.
      CASE wf_save_ok.
        WHEN 'PDF'.          "WHEN PDF ICON IS CLICKED,REPORT WILL CONVERT INTO PDF.
          loc_repid  = sy-repid.   "PROGRAM NAME
    --THIS FM SETS  THE PARAMETERS FOR LAYOUT OF PDF OUTPUT--
          CALL FUNCTION 'GET_PRINT_PARAMETERS'
            EXPORTING
              layout                 = loc_paart             "LANDSCAPE LAYOUT
              line_size              = loc_linsz                  "CHARACTER WIDTH OF REPORT
              no_dialog              = 'X'
              user                   = sy-uname              "USERNAME
            IMPORTING
              out_parameters         = loc_print_parms        "OUTPUT PARAMETERS WILL BE COLLECTED HERE.
              valid                  = loc_valid
            EXCEPTIONS
              archive_info_not_found = 1
              invalid_print_params   = 2
              invalid_archive_params = 3
              OTHERS                 = 4.
    --FOR GENERATING THE SPOOL NUMBER--
          NEW-PAGE PRINT ON NO DIALOG PARAMETERS loc_print_parms.                        " This allocates the spool no
          "to the screen without the dialog screen.
          PERFORM f_top_page.
          PERFORM f_report_display.
          NEW-PAGE PRINT OFF.                                                      "This marks the end of the screen for which the spool no was generated.
          wf_id = sy-spono.                                                      " This assign the spool no of the screen to the variable.
    --PERFORM FOR GETTING THE PDF OUTPUT--
          PERFORM f_pdf_display.
    --PERFORM FOR DOWLOADING FILE TO A LOCAL DISK--
          PERFORM f_download_local.
        WHEN 'BACK'.
          LEAVE PROGRAM.
      ENDCASE.
    include data declaration----
    *&  Include           ZIMPR_DATA_DECLARATION
    TYPE-POOLS : shlp.
    DATA : wf_ordert TYPE aufk-auart.                      "ORDER TYPE
    DATA : wf_order TYPE aufk-aufnr.                       "ORDER NUMBER
    DATA : wf_bdate TYPE afko-gstrp.                       "BASIC START DATE
    DATA : wf_status(4) TYPE c ."rihea-i_astatin.                 "STATUS
    DATA : wf_objnr TYPE jest-objnr VALUE 'OR%'.           "Object number
    DATA : wf_aufnr TYPE aufk-aufnr.
    DATA : wf_name TYPE thead-tdname.                      "NAME TO PASS IN FM READ_TEXT
    DATA : wf_date1(12) TYPE c.                            "DATE
    DATA : wf_i1(3) TYPE n,wc_i1(3) TYPE n VALUE '1'.      "COUNTERS FOR REPORT DISPLAY
    DATA : wf_i2(3) TYPE n,wc_i2(3) TYPE n VALUE '1'.
    DATA : wf_kopf TYPE tdid VALUE 'KOPF',wf_aufk TYPE tdobject VALUE 'AUFK'.
    DATA : wf_save_ok TYPE sy-ucomm ,wf_ok_code TYPE sy-ucomm.
    DATA: wf_id TYPE tsp01-rqident ,                         " For storing Spool request number
          wf_bytes TYPE i .                                  " For storing the bytes of data to be converted to PDF.
    DATA : wf_langu(2) TYPE c VALUE 'EN'.
    DATA: wf_pripar TYPE pri_params,                         " Structure for Passing Print Parameters
          wf_rcpar TYPE arc_params.                          " ImageLink structure
    DATA : wf_statu TYPE dfies-fieldname VALUE 'STATUS',
           wf_field TYPE help_info-dynprofld VALUE 'S_STATUS'.
    &--SELECTION SCREEN--
    SELECTION-SCREEN BEGIN OF BLOCK b_1 WITH FRAME TITLE text-000.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS:  s_ordert FOR wf_ordert .                  "ORDER TYPE
    SELECT-OPTIONS:  s_order FOR wf_order OBLIGATORY.          "ORDER NUMBER
    SELECT-OPTIONS:  s_bdate FOR wf_bdate.                      "BASIC START DATE
    SELECT-OPTIONS:  s_status FOR wf_status matchcode object zei_sys .  "SYSTEM STATUS
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN END OF BLOCK b_1.
    *--INTERNAL TABLES--
    TYPES : BEGIN OF ty_aufk,
          aufnr TYPE aufk-aufnr,              "OREDR NUMBER
          auart TYPE aufk-auart,              "ORDER TYPE
          objnr TYPE aufk-objnr,              "OBJECT NUMBER
          ktext type aufk-ktext,              "SHORT TEXT
          gstrp TYPE afko-gstrp,              "BASIC START DATE
          END OF ty_aufk.
    TYPES : BEGIN OF ty_tj02t,
          objnr TYPE aufk-objnr,              "OBJECT NUMBER
          txt04 TYPE tj02t-txt04,             "STATUS
          istat TYPE tj02t-istat,             "Object status
          spras TYPE tj02t-spras,             "LANGUAGE KEY
          END OF ty_tj02t.
    TYPES : BEGIN OF ty_temp,
          objnr TYPE aufk-objnr,
          status(300) TYPE c,
           END OF ty_temp.
    TYPES : BEGIN OF ty_wrap,
           line(54) TYPE c,                     "LONG TEXT
           END OF ty_wrap.
    TYPES : BEGIN OF ty_wrap2,
           line(25) TYPE c,                     "STATUS
           END OF ty_wrap2.
    TYPES : BEGIN OF ty_f4,
            txt04 TYPE tj02t-txt04,
            txt30 TYPE tj02t-txt30,
            END OF ty_f4.
    types :  begin of ty_sta,
            istat type tj02t-istat,
            objnr type jest-objnr,
            end of ty_sta.
    data : int_sta type table of ty_sta with header line.
    DATA : int_f4 TYPE TABLE OF ty_f4 WITH HEADER LINE.
    DATA: int_pdf TYPE TABLE OF tline WITH HEADER LINE.            "TABLE FOR PDF CONVERSION
    DATA: int_wrap TYPE TABLE OF ty_wrap WITH HEADER LINE.         "TABLE FOR LONGTEXT
    DATA: int_wrap2 TYPE TABLE OF ty_wrap2 WITH HEADER LINE.       "TABLE FOR STATUS
    DATA: int_temp TYPE TABLE OF ty_temp WITH HEADER LINE.         "Table for concatenation of system status.
    DATA: int_aufk TYPE TABLE OF ty_aufk WITH HEADER LINE.
    DATA: int_tj02t TYPE TABLE OF ty_tj02t WITH HEADER LINE.
    DATA: int_tline TYPE STANDARD TABLE OF tline WITH HEADER LINE. "TABLE FOR READ_TEXT.
    DATA : int_fld TYPE TABLE OF dfies ,wa_fld LIKE LINE OF int_fld.                     " Field Type for FM for F4 help
    DATA :int_return   TYPE TABLE OF ddshretval WITH HEADER LINE .
    DATA:
      loc_print_parms LIKE pri_params,          "PRINT PARAMETERS
      loc_valid(1)      TYPE c,
      loc_file type SDOK_CHTRD,
      loc_bytecount     TYPE i,                 "NUMBER OF BYTES TRANSFERRED
      loc_length        TYPE i,                 "LINE-LENGTH
      loc_rqident       LIKE tsp01-rqident,     "SPOOL NUMBER
      loc_rq2name(12)   TYPE c.
    DATA: loc_filename LIKE rlgrap-filename.     "FILENAME
    DATA:loc_repid LIKE sy-repid,                    " Report to execute
         loc_linsz LIKE sy-linsz VALUE 115,          " Line size
         loc_paart LIKE sy-paart VALUE 'X_65_132'.   " Paper Format
    Include           ZIMPR_PERFORMS_WRAP----
    *&  Include           ZIMPR_PERFORMS_WRAP
    *&      Form  f_top_page
         top-of the page
    -->  p1        text
    <--  p2        text
    FORM f_top_page .
    *--HEADER--
      FORMAT COLOR 1 .
      WRITE : text-010.
      FORMAT COLOR 1 OFF.
      WRITE : / text-011,sy-datum NO-GAP.
      WRITE : / text-012,sy-uzeit NO-GAP,90 text-013,101 sy-uname.
      ULINE .
      FORMAT COLOR 1 INTENSIFIED OFF .
      WRITE : 1 sy-vline,                "HEADINGS
      2 text-014 NO-GAP,
      7 sy-vline,
      8 text-015 NO-GAP,
      20 sy-vline,
      21 text-016 NO-GAP,
      76 sy-vline,
      77 text-017 NO-GAP,
      88 sy-vline,
       89 text-018  NO-GAP,
      115 sy-vline.
      WRITE : /1 sy-vline,
        2 text-019 NO-GAP,7 sy-vline,
        20 sy-vline,76 sy-vline,77 text-020 NO-GAP,88 sy-vline,115 sy-vline.
      ULINE.
      FORMAT COLOR 1 OFF.
    ENDFORM.                    " f_top_page
    *&      Form  f_data_retrieval
         select statements
    -->  p1        text
    <--  p2        text
    FORM f_data_retrieval .
    SELECTING ORDER TYPE,ORDER NO.,OBJECT NO. AND BASIC START DATE
      SELECT  p~aufnr
               p~auart
               p~objnr
               p~ktext
               r~gstrp
               FROM  ( aufk AS p INNER JOIN afko AS r ON raufnr = paufnr )
               INTO TABLE int_aufk
               WHERE p~aufnr IN s_order AND
                     p~auart IN s_ordert AND
                     r~gstrp IN  s_bdate AND
                     p~objnr LIKE wf_objnr.
      IF sy-subrc <> 0.
        MESSAGE s101(zipm).                "no values found for selection criteria.
        STOP.
      ENDIF.
      SORT int_aufk BY aufnr.
      DELETE ADJACENT DUPLICATES FROM int_aufk.
      SELECT q~istat
           p~objnr
           FROM ( jest AS p INNER JOIN tj02t AS q ON pstat = qistat )
           INTO TABLE int_sta
           FOR ALL ENTRIES IN int_aufk
           WHERE p~objnr = int_aufk-objnr
                 AND q~txt04 IN s_status and
                 q~spras = wf_langu and
                 p~inact = ''.
      IF sy-subrc <> 0.
        MESSAGE s101(zipm).                "no values found for selection criteria.
        STOP.
      ENDIF.
      SORT int_sta BY objnr.
      DELETE ADJACENT DUPLICATES FROM int_sta.
    *--SELECTING OBJECT NO.,STATUS AND LANGUAGE--
      IF int_sta[] IS NOT INITIAL.
        SELECT p~objnr
               q~txt04
               q~istat
               q~spras
               FROM ( jest AS p INNER JOIN tj02t AS q ON pstat = qistat )
               INTO TABLE int_tj02t
               FOR ALL ENTRIES IN int_sta
               WHERE p~inact = '' AND
                     p~objnr = int_sta-objnr AND
                     q~spras = wf_langu AND
                    q~txt04 IN s_status AND
                     p~objnr LIKE wf_objnr.
        IF sy-subrc <> 0.
          MESSAGE s101(zipm).               "no values found for selection criteria.
          STOP.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f_data_retrieval
    *&      Form  f_report_display
          report display
    -->  p1        text
    <--  p2        text
    FORM f_report_display .
      LOOP AT int_tj02t.              "concatenating the status into a internal table
        AT NEW objnr.
          CLEAR int_temp-status.
        ENDAT.
        CONCATENATE int_temp-status int_tj02t-txt04 INTO int_temp-status SEPARATED BY space.
        AT END OF objnr.
          int_temp-objnr = int_tj02t-objnr.       "key field.
          APPEND int_temp.
          CLEAR int_temp.
        ENDAT.
        CLEAR int_tj02t.
      ENDLOOP.
      LOOP AT int_aufk.
        CONCATENATE sy-mandt int_aufk-aufnr INTO wf_name .    "concatenating client number and order number
    *--THIS FM CAPTURES THE LONG TEXT AND STORES IT IN INTERNAL TABLE--
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
            id                      = wf_kopf         "TEXT ID
            language                = sy-langu       "LANGUAGE
            name                    = wf_name        "TEXT NAME
            object                  = wf_aufk         "TEXT OBJECT
          TABLES
            lines                   = int_tline      "LINES OF LONG TEXT.
          EXCEPTIONS
            id                      = 1
            language                = 2
            name                    = 3
            not_found               = 4
            object                  = 5
            reference_check         = 6
            wrong_access_to_archive = 7
            OTHERS                  = 8.
        IF sy-subrc <> 0.
          int_tline-tdline = int_aufk-ktext.
          APPEND int_tline.
          CLEAR :int_tline.
        ENDIF.
        LOOP AT int_tline.
    *--THIS FM WRAPS THE LONG TEXT INTO 54 CHARACTERS EACH--
          CALL FUNCTION 'RKD_WORD_WRAP'
            EXPORTING
              textline            = int_tline-tdline          "LONG TEXT LINE
              outputlen           = 54                        "OUTPUT LENGTH
            TABLES
              out_lines           = int_wrap                  "INTERNAL TABLE
            EXCEPTIONS
              outputlen_too_large = 1
              OTHERS              = 2.
          IF sy-subrc <> 0.
            CLEAR :int_tline.
          ENDIF.
        ENDLOOP.
    *-- THIS FM WRAPS THE STATUS INTO 25 CHARACTERS EACH--
        READ TABLE int_temp WITH KEY objnr = int_aufk-objnr.
        CALL FUNCTION 'RKD_WORD_WRAP'
          EXPORTING
            textline            = int_temp-status
            outputlen           = 25
          TABLES
            out_lines           = int_wrap2
          EXCEPTIONS
            outputlen_too_large = 1
            OTHERS              = 2.
        IF sy-subrc <> 0.
         CONTINUE.
        ENDIF.
        IF NOT int_wrap2[] IS INITIAL.
          ULINE AT (115).
        ENDIF.
        DESCRIBE TABLE int_wrap LINES wf_i2.         "COUNTING THE NO. OF LINES FOR TABLE INT_WRAP
        DESCRIBE TABLE int_wrap2 LINES wf_i1.        "COUNTING THE NO. OF LINES FOR TABLE INT_WRAP2
        WHILE ( wc_i1 LE wf_i1 OR wc_i2 LE wf_i2 ).
          IF ( wc_i2 LE wf_i2 ).
            READ TABLE int_wrap INDEX wc_i2 .        "READING THE INTERNAL TABLE INT_WRAP WITH INDEX
            wc_i2 = wc_i2 + 1.
          ENDIF.
          IF ( wc_i1 LE wf_i1 ).
            READ TABLE int_wrap2 INDEX wc_i1 .       "READING THE INTERNAL TABLE INT_WRAP2 WITH INDEX
            wc_i1 = wc_i1 + 1.
          ENDIF.
    *--THIS FM CONVERTS THE DATE FROM SYSTEM FORMAT TO OUTPUT FORMAT--
          CALL FUNCTION 'CONVERSION_EXIT_SDATE_OUTPUT'
            EXPORTING
              input  = int_aufk-gstrp
            IMPORTING
              output = wf_date1.
          IF NOT int_wrap2[] IS INITIAL .
    *--REPORT DISPLAY--
            WRITE : /1 sy-vline, 2 int_aufk-auart COLOR = 4 INTENSIFIED OFF NO-GAP ,
                    7 sy-vline ,8 int_aufk-aufnr COLOR = 4 INTENSIFIED OFF NO-GAP,
                    20 sy-vline,21 int_wrap-line,
                    76 sy-vline ,77  wf_date1 ,
                    88 sy-vline ,89 int_wrap2-line,
                    115 sy-vline.
    *--CLEARING THE VARIABLES--
            wf_date1 = ''.
            CLEAR: int_aufk,int_temp,int_wrap2-line,int_wrap-line.
          ENDIF.
        ENDWHILE.
        wc_i1 = 1.
        wc_i2 = 1.
        CLEAR :int_wrap,int_wrap2.
        REFRESH : int_wrap,int_wrap2,int_tline.
      ENDLOOP.
      ULINE AT (115).
    ENDFORM.                    " f_report_display
    *&      Form  F_PDF_DISPLAY
         pdf conversion
    -->  p1        text
    <--  p2        text
    FORM f_pdf_display .
    *--THIS FM CONVERTS THE SPOOL REQUEST INTO PDF REPORT--
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
        EXPORTING
          src_spoolid              = wf_id                 "SPOOL NUMBER
          no_dialog                = space
          pdf_destination          = 'X'
        IMPORTING
          pdf_bytecount            = loc_bytecount        "NUMBER OF BYTES TRANSFERRED
        TABLES
          pdf                      = int_pdf                                  "TABLE FOR PDF REPORT
        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.
    ENDFORM.                    " F_PDF_DISPLAY
    *&      Form  f_download_local
         download to local system
    -->  p1        text
    <--  p2        text
    FORM f_download_local .
    ---------------------THIS FM DOWNLOADS THE PDF REPORT INTO LOCAL MACHINE
    data  loc_ret TYPE iwerrormsg.
      CALL FUNCTION 'IW_C_GET_SAPWORKDIR'
       IMPORTING
         SAPWORKDIR       = loc_file
        ERROR_MSG        =  loc_ret
      loc_filename = loc_file.
      if loc_ret is initial.
      concatenate loc_filename '\work order header long text_  ' sy-timlo '.pdf' into loc_filename.
      endif.
      CALL FUNCTION 'DOWNLOAD'
        EXPORTING
          bin_filesize = loc_bytecount      "NO. OF BYTES
          filename     = loc_filename       "DEFAULT FILE NAME
          filetype     = 'BIN'
        IMPORTING
          act_filename = loc_filename
        TABLES
          data_tab     = int_pdf.
    ENDFORM.                    " f_download_local
    if you have any doubts,,
    please revert
    Regards,
    Talwinder

  • How to add a report into the tree??

    Hi all,
    Pls help me add a report into the tree same as standard report that we can click icon on tree to run.
    Thank you!

    Hi,
    use FM HR_ALV_HIERSEQ_LIST_DISPLAY
    there are 2 internal table , one for header and one for detail
    below is code for reference
    REPORT zinsd_quot_cont.
    TYPES : BEGIN OF ty_vbak,
    vbeln TYPE vbeln_va,
    vkorg TYPE vkorg,
    vtweg TYPE vtweg,
    spart TYPE spart,
    vkbur TYPE vkbur,
    vkgrp TYPE vkgrp,
    angdt TYPE angdt_v,
    bnddt TYPE bnddt,
    kunnr TYPE kunnr,
    kwmeng TYPE kwmeng,
    meins TYPE meins,
    kunwe TYPE kunnr,
    name1 TYPE name1_gp ,
    name2 TYPE name1_gp ,
    sel(1),
    expand(1),
    salesdocument TYPE bapivbeln-vbeln,
    message TYPE bapi_msg,
    END OF ty_vbak.
    DATA : w_vbak TYPE ty_vbak,
    t_vbak TYPE TABLE OF ty_vbak.
    DATA : w_update TYPE ty_vbak,
    t_update TYPE TABLE OF ty_vbak.
    TYPES : BEGIN OF ty_kna1,
    kunnr TYPE kunnr,
    name1 TYPE name1_gp ,
    END OF ty_kna1.
    DATA : w_kna1 TYPE ty_kna1,
    t_kna1 TYPE TABLE OF ty_kna1.
    TYPES : BEGIN OF ty_vbap,
    vbeln TYPE vbeln_va,
    posnr TYPE posnr_va,
    matnr TYPE matnr,
    matkl TYPE matkl,
    werks TYPE werks_ext,
    kwmeng TYPE kwmeng,
    meins TYPE meins,
    mvgr5 TYPE mvgr5,
    maktx TYPE maktx,
    END OF ty_vbap.
    DATA : w_vbap TYPE ty_vbap,
    t_vbap TYPE TABLE OF ty_vbap.
    TYPES : BEGIN OF ty_makt,
    matnr TYPE matnr,
    maktx TYPE maktx,
    END OF ty_makt.
    DATA : w_makt TYPE ty_makt,
    t_makt TYPE TABLE OF ty_makt.
    TYPES : BEGIN OF ty_sum,
    vbeln TYPE vbeln_va,
    kwmeng TYPE kwmeng,
    END OF ty_sum.
    DATA : w_sum TYPE ty_sum,
    t_sum TYPE TABLE OF ty_sum.
    TYPES : BEGIN OF ty_vbpa,
    vbeln TYPE vbeln,
    posnr TYPE posnr,
    parvw TYPE parvw,
    kunnr TYPE kunnr,
    END OF ty_vbpa.
    DATA : w_vbpa TYPE ty_vbpa,
    t_vbpa TYPE TABLE OF ty_vbpa.
    TYPES : BEGIN OF ty_vbup,
    vbeln TYPE vbeln,
    posnr TYPE posnr ,
    gbsta TYPE gbsta ,
    END OF ty_vbup.
    DATA : w_vbup TYPE ty_vbup,
    t_vbup TYPE TABLE OF ty_vbup.
    TYPE-POOLS slis.
    DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv,
    w_fieldcatalog TYPE slis_fieldcat_alv,
    w_layout TYPE slis_layout_alv,
    gs_keyinfo TYPE slis_keyinfo_alv.
    DATA: g_tabname_header TYPE slis_tabname,
    g_tabname_item TYPE slis_tabname.
    data definition
    Batchinputdata of single transaction
    DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    messages of call transaction
    DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    DATA : g_lines TYPE i.
    *Selection Screen
    TABLES : vbak,vbap.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
    SELECT-OPTIONS s_vkorg FOR vbak-vkorg. " Sales Org
    SELECT-OPTIONS s_vtweg FOR vbak-vtweg. " Dist Channel
    SELECT-OPTIONS s_spart FOR vbak-spart. " Division
    SELECT-OPTIONS s_vkbur FOR vbak-vkbur. " Sales Off
    SELECT-OPTIONS s_vkgrp FOR vbak-vkgrp. " Sales Grp
    SELECT-OPTIONS s_matkl FOR vbap-matkl. " Mat Grp
    SELECT-OPTIONS s_werks FOR vbap-werks. " Plant
    SELECT-OPTIONS s_period FOR vbak-angdt. " Sales Off
    SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
    PERFORM f_getdata.
    PERFORM f_initdata.
    END-OF-SELECTION.
    PERFORM f_createalv.
    PERFORM f_dispalv.
    *& Form f_getdata
    text
    --> p1 text
    <-- p2 text
    FORM f_getdata .
    *Sales Header
    SELECT
    vbeln
    vkorg
    vtweg
    spart
    vkbur
    vkgrp
    angdt
    bnddt
    kunnr
    INTO TABLE t_vbak
    FROM vbak
    WHERE
    vkorg IN s_vkorg " Sales Org
    AND vtweg IN s_vtweg " Dist Channel
    AND spart IN s_spart " Division
    AND vkbur IN s_vkbur " Sales Off
    AND vkgrp IN s_vkgrp " Sales Grp
    AND angdt IN s_period
    AND bnddt IN s_period
    AND auart = 'ZQMO'
    AND vbtyp = 'B'.
    *CUST NAME
    SELECT
    kunnr
    name1
    INTO TABLE t_kna1
    FROM kna1
    FOR ALL ENTRIES IN t_vbak
    WHERE
    kunnr = t_vbak-kunnr
    *Sales Item
    SELECT
    vbeln
    posnr
    matnr
    matkl
    werks
    kwmeng
    meins
    mvgr5
    INTO TABLE t_vbap
    FROM vbap
    FOR ALL ENTRIES IN t_vbak
    WHERE
    vbeln = t_vbak-vbeln
    AND matkl IN s_matkl " Mat Grp
    AND werks IN s_werks " Plant
    *Partners
    SELECT
    vbeln
    posnr
    parvw
    kunnr
    INTO TABLE t_vbpa
    FROM vbpa
    FOR ALL ENTRIES IN t_vbak
    WHERE
    vbeln = t_vbak-vbeln.
    IF t_vbpa[] IS NOT INITIAL.
    SELECT
    kunnr
    name1
    APPENDING TABLE t_kna1
    FROM kna1
    FOR ALL ENTRIES IN t_vbpa
    WHERE
    kunnr = t_vbpa-kunnr
    ENDIF.
    *Status - Sales Doc
    SELECT
    vbeln
    posnr
    gbsta
    INTO TABLE t_vbup
    FROM vbup
    FOR ALL ENTRIES IN t_vbap
    WHERE
    vbeln = t_vbap-vbeln
    AND posnr = t_vbap-posnr
    AND gbsta NE 'C'.
    SELECT
    matnr
    maktx
    INTO TABLE t_makt
    FROM makt
    FOR ALL ENTRIES IN t_vbap
    WHERE
    matnr = t_vbap-matnr
    AND spras = 'E'.
    ENDFORM. " f_getdata
    *& Form f_initdata
    text
    --> p1 text
    <-- p2 text
    FORM f_initdata .
    SORT t_vbap BY vbeln DESCENDING.
    *delete all closed stat items
    LOOP AT t_vbap INTO w_vbap.
    READ TABLE t_vbup INTO w_vbup
    WITH KEY
    vbeln = w_vbap-vbeln
    posnr = w_vbap-posnr.
    IF sy-subrc <> 0.
    DELETE t_vbap.
    CONTINUE.
    ELSE.
    READ TABLE t_makt INTO w_makt
    WITH
    KEY matnr = w_vbap-matnr.
    IF sy-subrc = 0.
    w_vbap-maktx = w_makt-maktx.
    MODIFY t_vbap FROM w_vbap.
    ENDIF.
    ENDIF.
    ENDLOOP.
    *find the total quantity
    LOOP AT t_vbap INTO w_vbap.
    w_sum-vbeln = w_vbap-vbeln.
    w_sum-kwmeng = w_vbap-kwmeng.
    COLLECT w_sum INTO t_sum.
    CLEAR w_sum.
    ENDLOOP.
    *populate header
    LOOP AT t_vbak INTO w_vbak.
    Quantity - Total
    READ TABLE t_sum INTO w_sum
    WITH KEY
    vbeln = w_vbak-vbeln.
    IF sy-subrc = 0.
    w_vbak-kwmeng = w_sum-kwmeng.
    ELSE.
    CLEAR w_vbak-kwmeng.
    ENDIF.
    UoM
    READ TABLE t_vbap INTO w_vbap
    WITH KEY
    vbeln = w_vbak-vbeln.
    IF sy-subrc = 0.
    w_vbak-meins = w_vbap-meins.
    ELSE.
    CLEAR w_vbak-meins.
    ENDIF.
    Partner
    READ TABLE t_vbpa INTO w_vbpa
    WITH KEY
    vbeln = w_vbak-vbeln
    parvw = 'WE'.
    IF sy-subrc = 0.
    w_vbak-kunwe = w_vbpa-kunnr.
    ELSE.
    CLEAR w_vbak-kunwe.
    ENDIF.
    SHIP TO PARTY NAME
    READ TABLE t_kna1 INTO w_kna1
    WITH KEY
    kunnr = w_vbak-kunwe.
    IF sy-subrc = 0.
    w_vbak-name2 = w_kna1-name1.
    ENDIF.
    CUST NAM - SOLD TO PARTY
    READ TABLE t_kna1 INTO w_kna1
    WITH KEY
    kunnr = w_vbak-kunnr.
    IF sy-subrc = 0.
    w_vbak-name1 = w_kna1-name1.
    ENDIF.
    MODIFY t_vbak FROM w_vbak.
    ENDLOOP.
    DELETE t_vbak WHERE kwmeng IS INITIAL.
    SORT t_vbak BY vbeln DESCENDING.
    SORT t_vbap BY vbeln DESCENDING posnr ASCENDING.
    ENDFORM. " f_initdata
    *& Form f_createalv
    Create Field Cat.
    --> p1 text
    <-- p2 text
    FORM f_createalv .
    g_tabname_header = 't_vbak'.
    g_tabname_item = 't_vbap' .
    CLEAR gs_keyinfo.
    gs_keyinfo-header01 = 'VBELN'.
    gs_keyinfo-item01 = 'VBELN'.
    *VBAK
    w_fieldcatalog-fieldname = 'VBELN'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Sales Document'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'VKORG'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Sales Org'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'VTWEG'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Dist Channel'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'SPART'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Division'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'VKBUR'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Sales Office'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'VKGRP'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Sales GRP'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'KUNNR'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Sold to Party'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'NAME1'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-outputlen = 35.
    w_fieldcatalog-seltext_l = 'Sold to Party Code - Name'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'KUNWE'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Ship to Party'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'NAME2'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Ship Party Code - Name'.
    w_fieldcatalog-outputlen = 35.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'KWMENG'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Quantity'.
    w_fieldcatalog-outputlen = 25.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MEINS'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'UoM'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'SALESDOCUMENT'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Document'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MESSAGE'.
    w_fieldcatalog-tabname = 't_vbak'.
    w_fieldcatalog-seltext_l = 'Log'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    *VBAP
    w_fieldcatalog-fieldname = 'POSNR'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'POS'.
    w_fieldcatalog-outputlen = 6.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MATNR'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'Material'.
    w_fieldcatalog-outputlen = 18.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MAKTX'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'Material Desc'.
    w_fieldcatalog-outputlen = 40.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MATKL'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'Material Grp'.
    w_fieldcatalog-outputlen = 9.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MVGR5'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'MCNO'.
    w_fieldcatalog-outputlen = 4.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'WERKS'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'Plant'.
    w_fieldcatalog-outputlen = 91.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'KWMENG'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'Quantity'.
    w_fieldcatalog-outputlen = 25.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    w_fieldcatalog-fieldname = 'MEINS'.
    w_fieldcatalog-tabname = 't_vbap'.
    w_fieldcatalog-seltext_l = 'UoM'.
    APPEND w_fieldcatalog TO t_fieldcatalog.
    CLEAR: w_fieldcatalog.
    LAYOUT
    w_layout-colwidth_optimize = 'X'.
    w_layout-zebra = 'X'.
    w_layout-expand_fieldname = 'EXPAND'.
    w_layout-box_fieldname = 'SEL'.
    w_layout-box_tabname = 't_vbak'.
    ENDFORM. " f_createalv
    *& Form f_dispalv
    Call ALV
    --> p1 text
    <-- p2 text
    FORM f_dispalv .
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    i_callback_pf_status_set = 'SET_PF_STATUS'
    i_callback_user_command = 'USER_COMMAND'
    is_layout = w_layout
    it_fieldcat = t_fieldcatalog
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    i_tabname_header = g_tabname_header
    i_tabname_item = g_tabname_item
    is_keyinfo = gs_keyinfo
    TABLES
    t_outtab_header = t_vbak
    t_outtab_item = t_vbap
    EXCEPTIONS
    program_error = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    ENDIF.
    ENDFORM. " f_dispalv
    *& Form set_pf_status
    PF stat
    -->RT_EXTAB text
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'ZINSD_QUOT_CONT_ST'.
    ENDFORM. "set_pf_status
    *& Form user_command
    Process List UCOMM
    -->R_UCOMM text
    -->RS_SELFIELD text
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    REFRESH t_update.
    IF r_ucomm = 'EXIT'.
    LEAVE PROGRAM.
    ENDIF.
    IF r_ucomm = 'EXECUTE'.
    LOOP AT t_vbak INTO w_update
    WHERE
    sel = 'X'
    AND salesdocument = ' '.
    APPEND w_update TO t_update.
    ENDLOOP.
    IF t_update[] IS NOT INITIAL.
    LOOP AT t_update INTO w_update.
    PERFORM f_bapi_contract_createfromdata USING w_update.
    PERFORM f_bdc_contract_from_quotation.
    MODIFY t_update FROM w_update.
    ENDLOOP.
    ELSE.
    ENDIF.
    PERFORM f_dispalv.
    ENDIF.
    IF r_ucomm = '&IC1'.
    IF rs_selfield-sel_tab_field = 't_vbak-VBELN'.
    SET PARAMETER ID 'AGN' FIELD rs_selfield-value.
    CALL TRANSACTION 'VA23' AND SKIP FIRST SCREEN.
    ENDIF.
    IF rs_selfield-sel_tab_field = 't_vbak-SALESDOCUMENT' AND
    rs_selfield-value NE ' '.
    SET PARAMETER ID 'KTN' FIELD rs_selfield-value.
    CALL TRANSACTION 'VA43' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDIF.
    ENDFORM. "user_command
    *& Form F_BAPI_CONTRACT_CREATEFROMDATA
    BAPI CALL
    -->P_W_UPDATE text
    FORM f_bapi_contract_createfromdata USING p_w_update STRUCTURE w_update .
    DATA : w_contract_header_in TYPE bapisdhd1 ,
    w_contract_header_inx TYPE bapisdhd1x ,
    t_contract_items_in TYPE TABLE OF bapisditm WITH HEADER LINE,
    t_contract_items_inx TYPE TABLE OF bapisditmx WITH HEADER LINE,
    t_contract_partners TYPE TABLE OF bapiparnr WITH HEADER LINE,
    t_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
    CLEAR : w_contract_header_in,
    w_contract_header_inx.
    REFRESH : t_contract_items_in,
    t_contract_items_inx,
    t_contract_partners,
    t_return.
    w_contract_header_in-doc_type = 'ZCNT'.
    w_contract_header_in-sales_org = p_w_update-vkorg.
    w_contract_header_in-distr_chan = p_w_update-vtweg.
    w_contract_header_in-division = p_w_update-spart.
    w_contract_header_in-ct_valid_f = p_w_update-angdt.
    w_contract_header_in-ct_valid_t = p_w_update-bnddt.
    w_contract_header_inx-doc_type = 'X'.
    w_contract_header_inx-sales_org = 'X'.
    w_contract_header_inx-distr_chan = 'X'.
    w_contract_header_inx-division = 'X'.
    w_contract_header_inx-ct_valid_f = 'X'.
    w_contract_header_inx-ct_valid_t = 'X'.
    LOOP AT t_vbap INTO w_vbap
    WHERE
    vbeln = p_w_update-vbeln.
    t_contract_items_in-material = w_vbap-matnr.
    t_contract_items_in-plant = w_vbap-werks.
    t_contract_items_in-target_qty = w_vbap-kwmeng.
    t_contract_items_in-target_qu = w_vbap-meins.
    t_contract_items_in-ref_doc = w_vbap-vbeln.
    t_contract_items_in-ref_doc_it = w_vbap-posnr.
    t_contract_items_in-ref_doc_ca = 'B'.
    t_contract_items_in-prc_group5 = w_vbap-mvgr5.
    t_contract_items_inx-material = 'X'.
    t_contract_items_inx-plant = 'X'.
    t_contract_items_inx-target_qty = 'X'.
    t_contract_items_inx-target_qu = 'X'.
    t_contract_items_inx-ref_doc = 'X'.
    t_contract_items_inx-ref_doc_it = 'X'.
    t_contract_items_inx-ref_doc_ca = 'X'.
    t_contract_items_inx-prc_group5 = 'X'.
    APPEND t_contract_items_in.
    APPEND t_contract_items_inx.
    ENDLOOP.
    LOOP AT t_vbpa INTO w_vbpa
    WHERE
    vbeln = p_w_update-vbeln.
    AND posnr = w_vbap-posnr.
    t_contract_partners-partn_role = w_vbpa-parvw.
    t_contract_partners-partn_numb = w_vbpa-kunnr.
    t_contract_partners-itm_number = w_vbpa-posnr.
    APPEND t_contract_partners.
    ENDLOOP.
    CALL FUNCTION 'BAPI_CONTRACT_CREATEFROMDATA'
    EXPORTING
    SALESDOCUMENTIN =
    contract_header_in = w_contract_header_in
    contract_header_inx = w_contract_header_inx
    SENDER =
    BINARY_RELATIONSHIPTYPE = ' '
    INT_NUMBER_ASSIGNMENT = ' '
    BEHAVE_WHEN_ERROR = ' '
    LOGIC_SWITCH =
    TESTRUN =
    CONVERT = ' '
    IMPORTING
    salesdocument = p_w_update-salesdocument
    TABLES
    return = t_return
    contract_items_in = t_contract_items_in
    contract_items_inx = t_contract_items_inx
    contract_partners = t_contract_partners
    CONTRACT_CONDITIONS_IN =
    CONTRACT_CONDITIONS_INX =
    CONTRACT_CFGS_REF =
    CONTRACT_CFGS_INST =
    CONTRACT_CFGS_PART_OF =
    CONTRACT_CFGS_VALUE =
    CONTRACT_CFGS_BLOB =
    CONTRACT_CFGS_VK =
    CONTRACT_CFGS_REFINST =
    CONTRACT_DATA_IN =
    CONTRACT_DATA_INX =
    CONTRACT_TEXT =
    CONTRACT_KEYS =
    EXTENSIONIN =
    PARTNERADDRESSES =
    IF p_w_update-salesdocument NE ' ' .
    p_w_update-message = 'SUCCESS'.
    ELSE.
    READ TABLE t_return INDEX 1.
    p_w_update-message = t_return-message.
    ENDIF.
    READ TABLE t_vbak INTO w_vbak
    WITH KEY
    vbeln = p_w_update-vbeln.
    IF sy-subrc = 0.
    MODIFY t_vbak INDEX sy-tabix FROM p_w_update .
    ENDIF.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = 'X'.
    ENDFORM. " F_BAPI_CONTRACT_CREATEFROMDATA
    *& Form f_bdc_contract_from_Quotation
    BAPI CALL
    -->P_W_UPDATE text
    FORM f_bdc_contract_from_quotation.
    DATA : l_date TYPE char10.
    REFRESH : messtab, bdcdata.
    CLEAR : messtab, bdcdata.
    PERFORM bdc_dynpro USING 'SAPMV45A' '0101'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=COPY'.
    PERFORM bdc_field USING 'VBAK-AUART'
    'ZCNT'.
    PERFORM bdc_dynpro USING 'SAPLV45C' '0100'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=RANG'.
    PERFORM bdc_dynpro USING 'SAPLV45C' '0100'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=UEBR'.
    PERFORM bdc_field USING 'LV45C-VBELN'
    w_update-vbeln.
    PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=SICH'.
    IF NOT w_update-angdt IS INITIAL.
    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
    EXPORTING
    date_internal = w_update-angdt
    IMPORTING
    date_external = l_date
    EXCEPTIONS
    date_internal_is_invalid = 1
    OTHERS = 2.
    PERFORM bdc_field USING 'VBAK-GUEBG'
    l_date.
    ENDIF.
    IF NOT w_update-bnddt IS INITIAL.
    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
    EXPORTING
    date_internal = w_update-bnddt
    IMPORTING
    date_external = l_date
    EXCEPTIONS
    date_internal_is_invalid = 1
    OTHERS = 2.
    PERFORM bdc_field USING 'VBAK-GUEEN'
    l_date.
    ENDIF.
    CALL TRANSACTION 'VA41' USING bdcdata
    MODE 'E'
    UPDATE 'S'
    MESSAGES INTO messtab.
    break abap.
    READ TABLE messtab WITH KEY msgid = 'V1'
    msgnr = '311'.
    IF sy-subrc EQ 0.
    w_update-message = 'SUCCESS'.
    w_update-salesdocument = messtab-msgv2.
    ELSE.
    READ TABLE messtab WITH KEY msgtyp = 'E'.
    IF sy-subrc EQ 0.
    DATA : l_info TYPE einfo.
    CLEAR l_info.
    l_info-msgid = messtab-msgid.
    l_info-msgty = messtab-msgtyp.
    l_info-msgno = messtab-msgnr.
    l_info-msgv1 = messtab-msgv1.
    l_info-msgv2 = messtab-msgv2.
    l_info-msgv3 = messtab-msgv3.
    l_info-msgv4 = messtab-msgv4.
    CALL FUNCTION 'MESSAGE_GET_TEXT'
    EXPORTING
    ieinfo = l_info
    ilangu = sy-langu
    IMPORTING
    etext = w_update-message
    EXCEPTIONS
    no_t100_found = 1
    OTHERS = 2.
    ENDIF.
    ENDIF.
    READ TABLE t_vbak INTO w_vbak WITH KEY vbeln = w_update-vbeln.
    IF sy-subrc = 0.
    MODIFY t_vbak INDEX sy-tabix FROM w_update transporting message
    salesdocument.
    ENDIF.
    ENDFORM. " f_bdc_contract_from_Quotation
    Start new screen *
    FORM bdc_dynpro USING program dynpro.
    CLEAR bdcdata.
    bdcdata-program = program.
    bdcdata-dynpro = dynpro.
    bdcdata-dynbegin = 'X'.
    APPEND bdcdata.
    ENDFORM. "bdc_dynpro
    Insert field *
    FORM bdc_field USING fnam fval.
    CLEAR bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    APPEND bdcdata.
    ENDFORM. "bdc_field
    Also, check the following:
    http://www.sapdevelopment.co.uk/reporting/alv/alvtree.htm
    You can get help as programs also.
    hope this helps.
    cheers,
    Hema.

  • How to download the output of a report along with column header

    Hi,
    Could someone please tell me on how to download the output of a report along with column header to .txt format. A download option needs to be given to the user using physical and logical file names .The report basically contains header details and item details and requirement is to download the same format into an .txt format.

    Hello,
    Try this FM:
    Data: being of itab occurs 0,
    matnr like mara-matnr,
    maktx like makt-maktx,
    end of itab.
    data:begin of fld_tab occurs 0,
    fld_name(20),
    end of fld_tab.
    fld_tab = 'Material'.
    append fld_tab.
    fld_tab = 'Material Desc'.
    append fld_tab.
    CALL FUNCTION 'WS_DOWNLOAD'
       EXPORTING
            BIN_FILESIZE            = ' '
            CODEPAGE                = ' '
             FILENAME                = 'C:\1.txt '
             FILETYPE                = 'DAT'
            MODE                    = ' '
            WK1_N_FORMAT            = ' '
            WK1_N_SIZE              = ' '
            WK1_T_FORMAT            = ' '
            WK1_T_SIZE              = ' '
            COL_SELECT              = ' '
            COL_SELECTMASK          = ' '
            NO_AUTH_CHECK           = ' '
       IMPORTING
            FILELENGTH              =
         TABLES
              DATA_TAB                = itab
              FIELDNAMES              = fld_tab
       EXCEPTIONS
            FILE_OPEN_ERROR         = 1
            FILE_WRITE_ERROR        = 2
            INVALID_FILESIZE        = 3
            INVALID_TYPE            = 4
            NO_BATCH                = 5
            UNKNOWN_ERROR           = 6
            INVALID_TABLE_WIDTH     = 7
            GUI_REFUSE_FILETRANSFER = 8
            CUSTOMER_ERROR          = 9
            OTHERS                  = 10
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Regards,
    Naimesh

  • I have the answer to Importing VCards into Address book

    Ok after reading all the forums etc and banging my head against the wall for a couple of hour I have found a two stage solution to Importing VCards from Outlook into Address book.
    As I have 978 contacts in about 14 categories I had to find an efficient solution, firstly I downloaded a small program called "Outpod": Backup iPod to PC,copy songs from iPod to computer,iPod to iTunes whilst it is old and talks about iPod it works perfectly on my Outlook 2010 version.
    It doesn't actually "install", just run the .exe file from anywhere after you extract it. In Outpod select "Contacts" if you have multiple profiles it will then prompt for which profile to use, expand your Contacts list, and then select "categories" on the top bar.
    All contacts are now displayed in their correct category, select all of the contacts in the first category, right click, and select  you want to export from a Category using Outpod, insert a thumbdrive on the PC, right click and select "Save selected items in one file", Outpod will ask you where you wish to save the file and gives you the opportunity to name the file. Just name the file the same name as the category you are exporting to, and repeat for all categories until you have them all on the USB stick.
    Now to the Mac. Open Address Book on the Mac, create Groups (not "Smart Groups") to match all your categories. Now insert the thumb drive into the Mac, open it in the Finder until you can see all your files. with both windows open, highlight the Group in Address Book and then double click the corresponding file in the finder window. Shazam! all those contacts will appear in the correct group. repeat for all other Groups.
    I find it astonishing that Apple just ignore issues like this, and "Last Import" not clearing it's cache for instance. So now I just have to figure out how to get a movie to auto play on a Keynote slide, another great product dissapointment, anyone?
    Cheers
    Tex260Z

    Thank you thank you. UTF 16 did the trick. What I was trying to do was import/save addresses i found on whitepages.com directly to my address book. I can't seem to find an ideal way tht doesn't involve a few steps of cutting and pasting. anyone?

  • How do I add photos from another collection to my saved Book?

    Hi,
    In my lightroom library I have created a collection set called "Wedding". As I have 1000 photos from my wedding, within this Collection Set I have created 10 or more Collections to organise these photos (Ceremony, Reception, First Dance, etc.).
    I have created a new 'Book' which as expected, has created a new Collection within my 'Wedding' collection set.
    When I first create the book (before saving it) it seems like I can click on a page, then browse my Collections and add the photo that I desire to the page.
    After I have saved the book, I can't so this. I want to work on my book later, and use my existing organisation of photos, and add photos to my books from these collections.
    I know I am missing something basic (I am new to lightroom). I don't understand why I can't add a photo to my book after I have saved it.
    Each time I click on one of my other collections, a new unsaved book appears in the main project window.
    I have worked out that if I copy all my wedding photos into the new "Book" collection, then my photos are available for use - but this defeats the purpose of organising my photos into separate collections, and it doesn't seem like you can create a sub-collection within the Book project.
    I also can't seem to find any documentation to explain this properly.
    Any help would be apreciated - or if I coud be pointed to a good resource.
    Cheers,
    Mandy.

    Thanks for the response.
    I saw these discussions previously, but not of them seem to answer my question (nor confirm that what I am trying to do cannot be done).
    If I want to create a "Wedding Album" book, do I have to firstly use the Library module to drag ALL the photos I may want to use into my "Wedding Album" collection (saved book) ?
    This seems annoying as I have already categorisied my 1000+ wedding photos into separate Collections using the Library (so that I can find the one I want easier).
    It seems as though the Book module would function much better if you could create a book, choose a page that you want to add a photo to, then browse through your pre-configured collection sets & collections, and add photos to the book from the navigation panel on the left when you have the "Book" module open. (Rather than having to copy the photo first into the "Book" 's Collection, then adding it to the page that you want)
    Mandy.

  • How to save the data of ABAP report into a notepad in desktop location???

    HI all,
    Can any one tell me how to transfer the data of ABAP report into a Notepad.
    Actually I have to schedule a ABAP report in background on daily basis and I want to transfer the
    whole record into Notepad.
    If any program is available for this..please clearify the relevent code for transferring.
    Thanks
    Rajeev

    declare a character type internal table.
    now move your data from it_data ( internal table with data ) into table itab.
    since you are running this report in background, you cannot save it to the desktop. Instead give any app server location
    data: itab(400) occurs 0 with header line.
    field-symbols: <fs1> type any.
    data: gv_file type rlgrap-filename default 'TEST.TXT'.
    data: gv_filepath type rlgrap-filename default <path>.
    LOOP AT it_data.
        DO 100 TIMES.
          ASSIGN COMPONENT sy-index OF STRUCTURE it_data TO <fs1>.
          IF sy-subrc = 0.
            CONCATENATE itab <fs1> INTO itab SEPARATED BY ' '.
          ELSE.
            EXIT.
          ENDIF.
        ENDDO.
        SHIFT itab LEFT DELETING LEADING ' '.
        APPEND itab.
        CLEAR itab.
      ENDLOOP.
      concatenate gv_filepath '/' gv_file into gv_file.
      OPEN DATASET gv_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
      IF sy-subrc = 0.
        LOOP AT itab.
          TRANSFER itab TO gv_file.
        ENDLOOP.
        CLOSE DATASET gv_file.
      ENDIF.

  • Download report into a flat file format

    Hi Friends,
    I would like to know your thoughts on what is the best practice most of you using to download a report into a flat file(NOT csv).
    In my application business users want a report to be downloaded into their local desktop (just like a .csv) but into a flat file and they have their byte specific format.
    My concerns :
    1) Is there any straight method to download a report into a flatfile (like it is now for CSV) from Apex 3.1.2 ?
    2) If I write my own code using UTL_FILE, can I let the user to save them to their desired directory on their desktop ?
    Your thoughts would definitely help me in delivering a right solution to the users in this regard.
    Thanks a lot.
    Raj.

    Raj:
    You could create a 'Before Header' page process to create this 'flat file'. The code for the page process will be something similar to declare
    v_file_name   VARCHAR2 (2000) := 'fixedFieldsFile.txt';
    --- Client Record Format
    f1 char(20);
    f2 char(20);
    f3 char(20);
    ---- End format
    begin
    OWA_UTIL.mime_header ('application/txt', FALSE);
    htp.p('Content-Disposition:attachment;filename="'|| v_file_name|| '"');
    OWA_UTIL.http_header_close;
    for c1 in (select * from emp) loop                           ----- The report query
    f1:= c1.empno;f2:=c1.ename;f3:=c1.sal;
    htp.p(f1||f2||f3);
    end loop;
    apex_application.g_unrecoverable_error:=true;
    exception when others then
    null;
    end; Varad

  • Installed 200 fonts into Font Book, webpages not displaying correctly now.

    My wife accidentally installed a ton of fonts from my collection into Font Book. Now most webpages won't display properly. I deleted most of the fonts, but certain webpages still don't look right/display the correct font. I need to know how to restore Font Book to it's default, or basically get me back to where I was before all this happened. I've tried using Font Finagler to clean my font caches, but that didn't work. I've also tried getting rid of any fonts in Home/Library/Fonts. PLEASE HELP!!!!!
    Power Mac G5 Dual 1.8 Ghz   Mac OS X (10.4.9)  

    If after reinstalling your fonts your still have issues, then Font Book's database may be damaged, along with the system's font cache files. To reset each, do the following.
    First, follow the steps in Undoing Font Book.
    Then follow this additional step.
    Download and run Mark Douma's Font Finagler to clear the font cache files on the system.

  • Moving images from 1  catalog into another/book

    I am creating a photo album via LightRoom and Blurb.  I have ~ 250 of my images available to me in this catalog.  I am trying to move an additional 50 images from a different catalog (or Quick Collection) into the book catalog.  Can someone please tell me how?

    I may be misusing my terminology.  To hopefully better summarize:  I have ~300 images from a collection (called Myanmar slideshow).  I created a book from this collection.  Only 240 of the images transferred (I understand due to limits by Blurb to 20-240 images).  I then manipulated the book pages, so there were multiple images per page.  This reduced the number of pages to ~95.  That would theoretically allow me 145 more pages in the end.  So I have 55 images from the original collection (slideshow) that I would now like to add to the book (this book is now a collection?).  I have tried click and drag, import from another catalog.  If any one knows how to move it over, I would greatly appreciate it.  If blurb would allow me to create a second album and then they combine them, that would work for me, but I can't seem to communicate with a human on that end.  Thanks in advance for your advice.

  • I needed to make a account receivable collection report

    Hi
    I needed to make a account receivable collection report.  for that which table I needed select.
    bsid is enough or I needed go for any other tables also like bsad.
    Regards
    Sebastian

    Hi Sebastian,
    Use BKPF: Accounting Document Header and BSEG: Accounting Document Segment.
    Best regards,
    Shahid Malayil

  • Recent Collection Report

    can i get a collection report taken off by paying it off?

      On a serious note....It depends. You can try what is called a Pay For Delete (PFD) letter where you send the collection agency (CA) or original creditor (OC) a letter asking them to delete the account from your credit report if you pay it in full or they agree to a set amount..... Or if you have already paid the debt then you can try a Good Will (GW) letter where you ask the CA to look into their cold hearts and remove the collection on the basis that you've already paid them......it will require some time and patience. Look at some of the stickies here: http://ficoforums.myfico.com/t5/Rebuilding-Your-Credit/Helpful-Rebuilding-Threads/td-p/224981 Good luck !

  • Collection Report - Template AGE3

    Hi Team,
    I have duplicated the AGE3001 template and facing a problem on trying to get the comments field into the collection report and would appreciate if there anyone know how to do it?
    or if there is anyone who have a sample query on aging report, please kindly send it to me at:  [email protected]
    Thank you.
    Regards,
    Joan.

    Joan,
    If you want to get the exact query, please Run SQL Profiler and execute the Report and you should ge the SQL Code used for this Report.
    You can modify this to add Invoice Comments.
    Suda

Maybe you are looking for

  • Can I install a Nvidia GeForce GTX 660 into my HP laptop?

    Hi I was wondering if I could possibly install a new graphics card into my HP laptop? My laptop is a HP 15-d051sa 15.6" so you can search it up on Google. My specs: RAM: 8gb HDD: 1TB Processor: Intel(R) Pentium(R) CPU N3510 2Ghz (2mb cache) Graphics:

  • How do I sync calendars between my iMac and iPhone?

    I have tried to follow these Apple instructions but cannot find the Info or Contacts tab spoken about in point 2. Can anybody help? Open iTunes, then connect your iPhone, iPad, or iPod to your Mac.Open iTunes Select your device, click the Info (or Co

  • Maximum size for Elements 6.0 catalog

    Is there a maximum size for a singular catalog to keep it operating efficiently?  Everything I read is that the maximum size is dependent on your hard drive space.  I recently had to restore everything from a backup due to a fatal crash.  I keep my p

  • Anonymous block

    I am receiving the following error: Why? ORA-06550: line 11, column 29: PL/SQL: ORA-00905: missing keyword ORA-06550: line 8, column 5: PL/SQL: SQL Statement ignored DECLARE v_end_date_high DATE; v_item_date_high DATE; v_end_date_high DATE; v_item_da

  • $ dollar  sign in variable

    Hi guys, I am looking for dynamic SQL and I found like this in some variables: .... WHERE      empid = LN$Id or : LC$total .... can some one explain to me what the ( $ )dollar sign do in variable and do you have some examples and what the purpose of