Need simple sample program

I need a very SIMPLE application that does the following so I can see the logic/syntax and put it in the program I am writing:
1. Has a GUI
2. has one text field with ActionListener implemented
3. computes the squares of one through ten and sends the results to a text file
4. sends results to a text file whose name is gotten from the text field
For example: I would type "asdf" (without the quoatation marks) in the text field , then press enter/return. The program would then send the results of the math operation to a text file named "asdf."

I may be wrong but this awfully looks like a school assignment. If not, and you may really be trying to start up with Swing, here goes:import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.File;
public class SimpleApplication extends JPanel {
     private JTextField theFileNameField;
     public SimpleApplication() {
          super(new BorderLayout());
          theFileNameField = new JTextField(20);
          theFileNameField.addActionListener(new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                    saveToFile();
          add(theFileNameField, BorderLayout.CENTER);
     private void saveToFile() {
          String text = theFileNameField.getText();
          if (text.equals("")) return;
          BufferedWriter bw = null;
          try {
               File outputFile = new File(theFileNameField.getText());
               bw = new BufferedWriter(new FileWriter(outputFile));
               for (int i = 1; i <= 10; i++) {
                    bw.write("" + (i * i));
                    bw.newLine();
               System.out.println("successfully saved to " + outputFile.getAbsolutePath());
          } catch (IOException e) {
               e.printStackTrace();
          } finally {
               if (bw != null) {
                    try {
                         bw.close();
                    } catch (IOException e) {}
     public static void main(String[] args) {
          try {
               UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
          } catch (Exception e) {
               e.printStackTrace();
          final JFrame frame = new JFrame(SimpleApplication.class.getName());
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setContentPane(new SimpleApplication());
          SwingUtilities.invokeLater(new Runnable() {
               public void run() {
                    frame.pack();
                    frame.show();
}

Similar Messages

  • Need a sample program for hierarchial oops ALV report

    Hello experts,
                     I Need a sample program for hierarchial oops ALV report.

    Hi,
       Check the following sample code...
    T A B L E S
    tables : ekko.
      data definition
    types : begin of ty_ekko,
              ebeln type ekko-ebeln,
              lifnr type ekko-lifnr,
              bsart type ekko-bsart,
              aedat type ekko-aedat,
              ernam type ekko-ernam,
            end of ty_ekko.
    types : begin of ty_eket,
               ebeln type ekpo-ebeln,
               ebelp type ekpo-ebelp,
               werks type ekpo-werks,
               matnr type ekpo-matnr,
               menge type eket-menge,
               wamng type eket-wamng,
               netpr type ekpo-netpr,
            end of ty_eket.
    data : it_ekko type table of ty_ekko,
           it_eket type table of ty_eket.
    data: ob_hieralv type ref to cl_salv_hierseq_table.
    data: it_binding type salv_t_hierseq_binding,
          is_binding type salv_s_hierseq_binding.
    S E L C T O P T I O N S
    select-options : s_ebeln for ekko-ebeln.
    S T A R T O F S E L E C T I O N
    start-of-selection.
    select ebeln
           lifnr
           bsart
           aedat
           ernam from ekko
    into corresponding fields of table it_ekko
    where ebeln in s_ebeln.
    if sy-subrc eq 0.
    select aebeln aebelp
           awerks amatnr
           bmenge bwamng
           a~netpr from ekpo as a join eket as b
                     on  amandt = bmandt
                     and aebeln = bebeln
                     and aebelp = bebelp
                   into corresponding fields of table it_eket
                  where a~ebeln in s_ebeln.
    endif.
    is_binding-master = 'EBELN'.
    is_binding-slave = 'EBELN'.
    append is_binding to it_binding.
    *TRY.
    call method cl_salv_hierseq_table=>factory
    exporting
    t_binding_level1_level2 = it_binding
    importing
    r_hierseq = ob_hieralv
    changing
    t_table_level1 = it_ekko
    t_table_level2 = it_eket .
    *CATCH cx_salv_data_error .
    *CATCH cx_salv_not_found .
    *ENDTRY.
    call method ob_hieralv->display( ).
    Cheers,
    Ram

  • Need Simple Executable program

    Hi
       I'm not an ABAPer  .so, please help me in this task... I want to write an executable program in taht i just call an BAPI (BAPI_COMPANY_GETDETAIL )   and for this BAPI  i want to pass  the COMPANY ID . and RFC destionation are the input parameters...
    because if i execute this BAPI menas.. the output of this BAPI i want to send it to external system.. that configuration is done... only thing is.. how can we pass those RFC destiona and COMPANYID as inputs  to the bapi..
    if possible please give me  the solution
    Thanks
    Babu

    Hi,
    BAPI stands for Business API(Application Program Interface).
    A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
    The following standardized BAPIs are provided:
    Reading instances of SAP business objects
    GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
    The BAPI GetList() is a class method.
    GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
    The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
    Create( ) and CreateFromData! ( )
    The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
    Change( )
    The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
    Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
    The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
    Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
    Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
    BAPI-step by step
    http://www.sapgenie.com/abap/bapi/example.htm
    just refer to the link below
    http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g
    list of all bapis
    http://www.planetsap.com/LIST_ALL_BAPIs.htm
    for BAPI's
    http://www.sappoint.com/abap/bapiintro.pdf
    http://www.sappoint.com/abap/bapiprg.pdf
    http://www.sappoint.com/abap/bapiactx.pdf
    http://www.sappoint.com/abap/bapilst.pdf
    http://www.sappoint.com/abap/bapiexer.pdf
    http://service.sap.com/ale
    http://service.sap.com/bapi
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
    http://www.planetsap.com/Bapi_main_page.htm
    http://www.topxml.com/sap/sap_idoc_xml.asp
    http://www.sapdevelopment.co.uk/
    http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
    Also refer to the following links..
    www.sap-img.com/bapi.htm
    www.sap-img.com/abap/bapi-conventions.htm
    www.planetsap.com/Bapi_main_page.htm
    www.sapgenie.com/abap/bapi/index.htm
    Checkout !!
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    http://techrepublic.com.com/5100-6329-1051160.html#
    Example Code
    U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
    U can find these parameters for a particular condition type in table KONV.
    *& Form saveTransactionJOCR
    text
    --> p1 text
    <-- p2 text
    FORM saveTransactionJOCR .
    data: salesdocument like BAPIVBELN-VBELN,
    order_header_inx like bapisdh1x,
    order_header_in like bapisdh1,
    return type standard table of bapiret2 with header line,
    conditions_in type standard table of bapicond with header line,
    conditions_inx type standard table of bapicondx with header line,
    logic_switch like BAPISDLS,
    step_nr like conditions_in-cond_st_no,
    item_nr like conditions_in-itm_number,
    cond_count like conditions_in-cond_count,
    cond_type like conditions_in-cond_type.
    salesdocument = wa_order_information-VBELN.
    LOGIC_SWITCH-COND_HANDL = 'X'.
    order_header_inx-updateflag = 'U'.
    conditions
    clear conditions_in[].
    clear conditions_inx[].
    clear: step_nr,
    item_nr,
    cond_count,
    cond_type.
    step_nr = '710'.
    item_nr = '000000'.
    cond_count = '01'.
    cond_type = 'ZCP2'.
    CONDITIONS_IN-ITM_NUMBER = item_nr.
    conditions_in-cond_st_no = step_nr.
    CONDITIONS_IN-COND_COUNT = cond_count.
    CONDITIONS_IN-COND_TYPE = cond_type.
    CONDITIONS_IN-COND_VALUE = 666.
    CONDITIONS_IN-CURRENCY = 'EUR'.
    append conditions_in.
    CONDITIONS_INX-ITM_NUMBER = item_nr.
    conditions_inx-cond_st_no = step_nr.
    CONDITIONS_INX-COND_COUNT = cond_count.
    CONDITIONS_INX-COND_TYPE = cond_type.
    CONDITIONS_INX-UPDATEFLAG = 'U'.
    CONDITIONS_INX-COND_VALUE = 'X'.
    CONDITIONS_INX-CURRENCY = 'X'.
    append conditions_inx.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
    SALESDOCUMENT = salesdocument
    ORDER_HEADER_IN = order_header_in
    ORDER_HEADER_INX = order_header_inx
    LOGIC_SWITCH = logic_switch
    TABLES
    RETURN = return
    CONDITIONS_IN = conditions_in
    CONDITIONS_INX = conditions_inx
    if return-type ne 'E'.
    commit work and wait.
    endif.
    ENDFORM. " saveTransactionJOCR
    Bdc to Bapi
    The steps to be followed are :
    1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
    for VA01 use BAPI_SALESORDER_CREATEFROMDAT2
    2. Create a Z program and call the BAPi (same as a Funtion module call).
    2. Now, if you see this BAPi, it has
    -> Importing structures.
    eg: SALESDOCUMENT: this will take the Sales order header data as input.
    -> Tables parameters:
    eg: ORDER_ITEM_IN: this will take the line item data as input.
    Note :
    Only specify fields that should be changed
    Select these fields by entering an X in the checkboxes
    Enter a U in the UPDATEFLAG field
    Always specify key fields when changing the data, including in the checkboxes
    The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
    Maintain quantities and dates in the schedule line data
    Possible UPDATEFLAGS:
    U = change
    D = delete
    I = add
    Example
    1. Delete the whole order
    2. Delete order items
    3. Change the order
    4. Change the configuration
    Notes
    1. Minimum entry:
    You must enter the order number in the SALESDOCUMENT structure.
    You must always enter key fields for changes.
    You must always specify the update indicator in the ORDER_HEADER_INX.
    2. Commit control:
    The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
    For further details... refer to the Function Module documentation for the BAPi.
    Bapi to VB(Visual Basic)
    Long back I had used the following flow structure to acheive the same.
    Report -> SM59 RFC destination -> COM4ABAP -> VB.exe
    my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.
    You need to have com4abap.exe
    If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
    else refer OSS note 419822 for installation of com4abap
    after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
    for setting up com4abap and rfc destination please refer to the documentation for com4abap.
    Invoke NEW DCOM session
    call function 'BEGIN_COM_SESSION'
    exporting
    service_dest = service_dest "(this will be a RFC destination created in SM59)
    importing
    worker_dest = worker_dest
    exceptions
    connect_to_dcom_service_failed = 1
    connect_to_dcom_worker_failed = 2
    others = 3.
    call function 'create_com_instance' destination worker_dest
    exporting
    clsid = g_c_clsid
    typelib = g_c_typelib
    importing
    instid = g_f_oid
    exceptions
    communication_failure = 1 message g_f_msg
    system_failure = 2 message g_f_msg
    invalid_instance_id = 3
    others = 4.
    call function 'com_invoke' destination worker_dest
    exporting
    %instid = g_f_oid
    %method = 'UpdatePDF'
    sntemp = g_v_const_filent
    snsysid = sy-sysid
    snflag = 'N'
    tables
    rssaptable = g_t_pdfdetail1
    %return = g_t_pdfdetail1 "t_test
    exceptions
    communication_failure = 1 message g_f_msg
    system_failure = 2 message g_f_msg
    invalid_instance_id = 3
    others = 4.
    then close the com session , using
    FM delete_com_instance
    FM END_COM_SESSION
    Thanks
    Sarada

  • NEED A SAMPLE BADI PROGRAM

    Hi everybody,
        I am learning BADi'S, so i need a sample program so that i can do it and learn how to design and implement a BADI.
      I am thankful if any body help me regarding this.
    waiting for reply.
    thanks and regards,
    mahaboob subhani shaik.

    hi,
    check any fo the below links. this will def help u.
    http://www.allsaplinks.com/badi.html
    And also download this file....
    http://www.savefile.com/files.php?fid=8913854
    There are other tutorials on this site...
    http://sapbrain.com/Tutorials/tuto_download.html
    BADI'S
    BADI Link
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    Regards,
    anver.
    if hlped pls reward points

  • Using all types of resultset Objects i need a single program

    i think all of u know that there are 8 types of resultset objects are there in jdbc technology i.e
    # next() - moves the cursor forward one row. Returns true if the cursor is now positioned on a row and false if the cursor is positioned after the last row.
    # previous() - moves the cursor backwards one row. Returns true if the cursor is now positioned on a row and false if the cursor is positioned before the first row.
    # first() - moves the cursor to the first row in the ResultSet object. Returns true if the cursor is now positioned on the first row and false if the ResultSet object
    does not contain any rows.
    # last() - moves the cursor to the last row in the ResultSet object. Returns true if the cursor is now positioned on the last row and false if the ResultSet object
    does not contain any rows.
    # beforeFirst() - positions the cursor at the start of the ResultSet object, before the first row. If the ResultSet object does not contain any rows, this method has
    no effect.
    # afterLast() - positions the cursor at the end of the ResultSet object, after the last row. If the ResultSet object does not contain any rows, this method has no effect.
    # relative(int rows) - moves the cursor relative to its current position.
    # absolute(int n) - positions the cursor on the n-th row of the ResultSet object.
    Using all these result set methods i need a sample program all these methods must be used in a single program itself

    BalajiEnntech123 wrote:
    i think all of u know that there are 8 types of resultset objects are there in jdbc technology i.e I don't know who "u" are but they're wrong if they think there are "8 types of resultset objects are there in jdbc technology".
    They'd be especially wrong to think that the methods you mention are "types of resultset objects".

  • Sample program and how to executue that

    hi,
    I am vinod from US. I am working on jini project. Can u help me?
    Please I need a sample program using jini1.1 or jini 2.1 and how to execute that program.
    my mail id :- [email protected]
    Thanks and Regards,
    vinod nigade

    Did you try to google?
    Kaj

  • I need ready code for a simple paint program today

    hi all I need ready code for a simple paint program today for me ics projct
    plz give me a halp on this give me what you have with you and it is so good if it look like this :
    Design a GUI based drawing Java application that works like a simple paint program
    1-There should be a number of buttons for choosing different shapes to draw. For example, there should be a button for rectangle. If user presses the rectangle button, then he can draw a rectangle using mouse. Similarly, there should be a button for each shape(rectangle, circle, ellipse, and line etc.
    2-The shapes can be filled with different colors.
    3-There should be option of moving .
    4- There should also be three menus including File, Shape, and Color menu.
    i. File menu can have menu items New and Exit. If user selects New, the drawing area will be cleared and all shapes will be erased.
    ii. Shape menu will serve the same purpose as of feature 2 described above. It will have menu items for drawing all the different shapes. For example, there will be menu item for rectangle; so user can draw a rectangle by selecting the menu item for rectangle.
    iii. Color menu will serve the same purpose as of feature 3 described above. It will have menu items for all the colors which are shown in color buttons. The user can select a color from this menu and then click inside a shape to fill it with the selected color.

    Read the Swing tutorial. There are sections on how to use menus and painting and all other kinds of stuff you need to do this homework assignment. Nobody here is going to write the code for you:
    http://java.sun.com/docs/books/tutorial/uiswing/TOC.html

  • Need help on with simple email program

    i have been set a task to create a simple email program that has the variables of the sender the recipient the subject the content and a date object representing when the email was sent (this is just to be set to the current system date)
    It also needs to include a constructor with four String arguments, i.e the sender, receiver, subject and content. The constructor has to initialise the date of the email then transfer the values of the input parameters to the relevant attributes. If any values of the strings aren'nt given, the string �Unknown� should be set as the value.
    I was given a java file to test the one i am to create, but some of the values are not given, if anyone could be of anyhelp or just point me in the right direction then i would be very greatfull, ive posted the code for the test file i have been given below, thanks.
    public class SimpleEmailTest {
         public static void main( String[] args ) {
              SimpleEmail email;     // email object to test.
              String whoFrom;          // sender
              String whoTo;          // recipient
              String subject;          // subject matter
              String content;          // text content of email
              static final String notKnown = "Unknown";
              email = new SimpleEmail
    (notKnown, notKnown, notKnown, notKnown);
              System.out.println( "SimpleEmail: " +
    "\n    From: " + email.getSender() +
    "\n      To: " + email.getRecipient() +
    "\n Subject: " + email.getSubject() +
    "\n    Date: " + 
    email.getDate().toString() +
    "\n Message: \n" + email.getContent() + "\n";
              email.setSender( "Jimmy Testsender");
              email.setRecipient( "Sheena Receiver");
              email.setSubject( "How are you today?");
              email.setContent( "I just wrote an email class!");
              System.out.println( "SimpleEmail: " +
    "\n    From: " + email.getSender() +
    "\n      To: " + email.getRecipient() +
    "\n Subject: " + email.getSubject() +
    "\n    Date: " + 
    email.getDate().toString() +
    "\n Message: \n" + email.getContent() + "\n";
         }

    Start by writing a class named SimpleEmail, implement a constructor with four arguments in it, and the methods that the test code calls, such as the get...() and set...() methods. The class probably needs four member variables too.
    public class SimpleEmail {
        // ... add member variables here
        // constructor
        public SimpleEmail(String whoFrom, String whoTo, String subject, String content) {
            // ... add code to the constructor here
        // ... add get...() and set...() methods here
    }

  • Need sample programs for inbound & outbound interfaces in abap hr?

    hi friends
    i need sample programs for inbound & outbound interface programs in hr abap . any one send me pls
    thanks & regards
    deepurd

    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Report ZPROG65_11 *
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    REPORT zprog65_11 .
    TABLES : lfa1.
    TYPES : BEGIN OF ven ,
    lifnr LIKE rf02k-lifnr,
    bukrs LIKE rf02k-bukrs ,
    ekorg LIKE rf02k-ekorg,
    ktokk LIKE rf02k-ktokk,
    name1 LIKE lfa1-name1,
    sortl LIKE lfa1-sortl,
    land1 LIKE lfa1-land1,
    spars LIKE lfa1-spras,
    akont LIKE lfb1-akont,
    fdgrv LIKE lfb1-fdgrv,
    waers LIKE lfm1-waers,
    anred LIKE lfa1-anred ,
    END OF ven .
    DATA : t_ven TYPE TABLE OF ven WITH HEADER LINE ,
    t_bdc LIKE TABLE OF bdcdata WITH HEADER LINE .
    DATA : v_file TYPE string ,
    v_temp TYPE i ,
    v_lifnr(10) TYPE n,
    v_hdate LIKE sy-datum.
    DATA : c_tcode LIKE sy-tcode .u201Dvalue u2018XK01u2032.
    PARAMETERS : p_file(30) DEFAULT u2018c:\vendor1_11.txtu2019,
    p_group LIKE apqi-groupid.
    START-OF-SELECTION .
    MOVE p_file TO v_file .
    PERFORM file_upload TABLES t_ven USING v_file .
    v_hdate = sy-datum - 1.
    CALL FUNCTION u2018BDC_OPEN_GROUPu2019
    EXPORTING
    client = sy-mandt
    DEST = FILLER8
    group = p_group
    holddate = v_hdate
    keep = u2018Xu2019
    user = sy-uname
    IMPORTING
    QID =
    EXCEPTIONS
    client_invalid = 1
    destination_invalid = 2
    group_invalid = 3
    OTHERS = 11
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT t_ven .
    clear lfa1.
    v_temp = 0.
    MOVE t_ven-lifnr TO v_lifnr.
    SELECT SINGLE * FROM lfa1 INTO lfa1 WHERE lifnr =
    v_lifnr.
    IF sy-subrc = 0.
    WRITE :/ u2018foundu2019.
    v_temp = 1.
    else.
    write: / u2018not foundu2019.
    ENDIF.
    IF v_temp = 0.
    c_tcode = u2018xk01u2032.
    PERFORM fill_ddc_table .
    ELSEIF v_temp = 1.
    c_tcode = u2018xk02u2032.
    PERFORM fill_bdc_table .
    ENDIF.
    CALL FUNCTION u2018BDC_INSERTu2019
    EXPORTING
    tcode = c_tcode
    TABLES
    dynprotab = t_bdc
    EXCEPTIONS
    internal_error = 1
    OTHERS = 7.
    REFRESH t_bdc .
    ENDLOOP .
    CALL FUNCTION u2018BDC_CLOSE_GROUPu2019
    EXCEPTIONS
    not_open = 1
    queue_error = 2
    OTHERS = 3.
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Form file_upload
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    u2013>P_T_VEN text
    u2013>P_V_FILE text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    FORM file_upload TABLES p_tven STRUCTURE t_ven
    USING p_vfile.
    CALL FUNCTION u2018GUI_UPLOADu2019
    EXPORTING
    filename = p_vfile
    filetype = u2018ASCu2019
    has_field_separator = u2018Xu2019
    IMPORTING
    FILELENGTH =
    HEADER =
    TABLES
    data_tab = p_tven
    EXCEPTIONS
    file_open_error = 1
    file_read_error = 2
    OTHERS = 17
    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. u201D file_upload
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Form FILL_DDC_TABLE
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    u2013> p1 text
    <u2013 p2 text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    FORM fill_ddc_table .
    SCREN 100
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180100u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-LIFNRu2019.
    t_bdc-fval = t_ven-lifnr .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-BUKRSu2019.
    t_bdc-fval = t_ven-bukrs.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-EKORGu2019.
    t_bdc-fval = t_ven-ekorg.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-KTOKKu2019.
    t_bdc-fval = t_ven-ktokk.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    110
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180110u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-NAME1u2032.
    t_bdc-fval = t_ven-name1 .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SORTLu2019.
    t_bdc-fval = t_ven-sortl.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-LAND1u2032.
    t_bdc-fval = t_ven-land1.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SPRASu2019.
    t_bdc-fval = t_ven-spars.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    120
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180120u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    130
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180130u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018=ENTRu2019.
    APPEND t_bdc. CLEAR t_bdc.
    210
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180210u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFB1-AKONTu2019.
    t_bdc-fval = t_ven-akont .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFB1-FDGRVu2019.
    t_bdc-fval = t_ven-fdgrv.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    215
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180215u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    220
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180220u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    310
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180310u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFM1-WAERSu2019.
    t_bdc-fval = t_ven-waers .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    320
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180320u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018=UPDAu2019.
    APPEND t_bdc. CLEAR t_bdc.
    ENDFORM. u201CFILL_DDC_TABLE
    u201D FILL_DDC_TABLE
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Form FILL_BDC_TABLE
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    u2013> p1 text
    <u2013 p2 text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    FORM fill_bdc_table .
    SCREN 101
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180101u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-LIFNRu2019.
    t_bdc-fval = t_ven-lifnr .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-BUKRSu2019.
    t_bdc-fval = t_ven-bukrs.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-EKORGu2019.
    t_bdc-fval = t_ven-ekorg.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    110
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180110u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018lfa1-anredu2019.
    t_bdc-fval = t_ven-anred .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-NAME1u2032.
    t_bdc-fval = t_ven-name1 .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SORTLu2019.
    t_bdc-fval = t_ven-sortl.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-LAND1u2032.
    t_bdc-fval = t_ven-land1.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SPRASu2019.
    t_bdc-fval = t_ven-spars.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    300
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180300u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018=YESu2019.
    APPEND t_bdc. CLEAR t_bdc.
    ENDFORM. u201D FILL_BDC_TABLE
    Best Regards

  • Need sample program OO abap alv using  hotspot( interactive report)

    need sample program on Object Oriented program using alv interactive report.

    *& Report Z8VM_N_PO_PRICING_CONDITION *
    REPORT Z8VM_N_PO_PRICING_CONDITION NO STANDARD PAGE HEADING
    MESSAGE-ID Z8VM.
    vivekanand meghmala
    trial assignment
    po with pricing condition interactive report with checkbox
    data declaration
    TYPES : BEGIN OF STRUCT_EKKO, "po header
    BUKRS LIKE T001-BUKRS,
    EBELN LIKE EKKO-EBELN,
    BSART LIKE EKKO-BSART,
    BEDAT LIKE EKKO-BEDAT,
    EKORG LIKE EKKO-EKORG,
    WAERS LIKE EKKO-WAERS,
    LIFNR LIKE EKKO-LIFNR,
    KNUMV LIKE EKKO-KNUMV,
    END OF STRUCT_EKKO.
    TYPES : BEGIN OF STRUCT_EKPO, "po details
    EBELN LIKE EKPO-EBELN,
    EBELP LIKE EKPO-EBELP,
    MATNR LIKE EKPO-MATNR,
    END OF STRUCT_EKPO.
    TYPES : BEGIN OF STRUCT_KONV,
    KNUMV LIKE KONV-KNUMV,
    KPOSN LIKE KONV-KPOSN,
    KSCHL LIKE KONV-KSCHL,
    KAWRT LIKE KONV-KAWRT,
    KBETR LIKE KONV-KBETR,
    END OF STRUCT_KONV.
    DATA : IT_EKKO TYPE STANDARD TABLE OF STRUCT_EKKO WITH HEADER LINE.
    DATA : IT_EKPO TYPE STANDARD TABLE OF STRUCT_EKPO WITH HEADER LINE.
    DATA : IT_KONV TYPE STANDARD TABLE OF STRUCT_KONV WITH HEADER LINE.
    PARAMETERS : T_BUKRS LIKE EKKO-BUKRS .
    SELECT-OPTIONS : S_BEDAT FOR IT_EKKO-BEDAT.
    SELECT-OPTIONS : S_EKORG FOR IT_EKKO-EKORG.
    validations
    AT SELECTION-SCREEN.
    IF T_BUKRS = ' '.
    MESSAGE E009.
    ENDIF.
    SELECT BUKRS FROM T001
    INTO CORRESPONDING FIELDS OF IT_EKKO
    WHERE BUKRS = T_BUKRS.
    EXIT.
    ENDSELECT.
    IF SY-SUBRC 0.
    MESSAGE E001.
    ENDIF.
    logic
    START-OF-SELECTION.
    SELECT BUKRS
    EBELN
    BSART
    BEDAT
    EKORG
    WAERS
    LIFNR
    KNUMV FROM EKKO INTO CORRESPONDING FIELDS OF TABLE IT_EKKO
    WHERE BUKRS = T_BUKRS
    AND BEDAT IN S_BEDAT
    AND EKORG IN S_EKORG.
    SELECT EBELN
    EBELP
    MATNR FROM EKPO INTO CORRESPONDING FIELDS OF IT_EKPO
    FOR ALL ENTRIES IN IT_EKKO WHERE EBELN = IT_EKKO-EBELN.
    APPEND IT_EKPO.
    ENDSELECT.
    LOOP AT IT_EKPO.
    SELECT KNUMV
    KPOSN
    KSCHL
    KAWRT
    KBETR FROM KONV INTO CORRESPONDING FIELDS OF IT_KONV
    WHERE KPOSN = IT_EKPO-EBELP.
    APPEND IT_KONV.
    ENDSELECT.
    ENDLOOP.
    *data printing
    LOOP AT IT_EKKO.
    WRITE :/ IT_EKKO-BUKRS,IT_EKKO-EBELN,IT_EKKO-BSART,IT_EKKO-BEDAT,
    IT_EKKO-EKORG,IT_EKKO-WAERS,IT_EKKO-LIFNR,IT_EKKO-KNUMV.
    LOOP AT IT_EKPO WHERE EBELN = IT_EKKO-EBELN.
    WRITE :/ IT_EKPO-EBELP,IT_EKPO-MATNR.
    LOOP AT IT_KONV.
    WHERE KPOSN = IT_EKPO-EBELN.
    WRITE :/ IT_KONV-KNUMV COLOR 3,IT_KONV-KPOSN COLOR 3,IT_KONV-KSCHL COLOR 3,IT_KONV-KAWRT COLOR 3,IT_KONV-KBETR COLOR 3.
    ENDLOOP.
    ENDLOOP.
    ENDLOOP.[/code]
    thanks
    reward if helpful

  • IDoc - Program simple Sample Urgent

    Hi,
    Could any body give me an example program to create an idoc and fill that idoc with some data.Very simple example to understand. along with sample program.
    Regards
    SAISRI

    Here you go..
    report z_idoc_creat_tr .
    tables : ekpo,
             edidd,  " Data record (IDoc)
             tbdlst, " Text for logical system
             edmsg . "Logical message types
    parameters: p_ebeln like ekpo-ebeln.
    *            p_logsys LIKE tbdlst-logsys .
    *            p_mestyp LIKE edmsg-msgtyp DEFAULT 'Z_EKPO'.
    data : c_seg1 like edidd-segnam value 'ZSEG1_TR',
           c_seg2 like edidd-segnam value 'ZSEG2_TR',
           itab_comm_idocs  like edidc occurs 0 with header line ,
           control_record like edidc.
    *Internal Tables
    data :
         itab_edidd like edidd occurs 0 with header line, "Data record(IDoc)
    *       itab_seg1 LIKE zseg1_tr  OCCURS 0 WITH HEADER LINE ,
    * zseg1_tr structure generated when you define the Segments in WE31
           itab_seg2 like zseg2_tr  occurs 0 with header line .
    * zseg2_tr structure generated when you define the Segments in WE31
    * Work Area
    data : seg1 like zseg1_tr, " Header Data
           seg2 like zseg2_tr.
    select single * from ekpo  where ebeln = p_ebeln.
    *Build Control Data
    control_record-mestyp = 'Z_EKPO' .  "p_mestyp .
    control_record-idoctp = 'ZIDOC_TR' .
    control_record-sndprt = 'LS'.
    control_record-sndprn = 'LOGSYS0100' .
    control_record-sndpor = 'SAPLT1'.
    control_record-rcvprt = 'LS'.
    control_record-rcvprn = 'SEND' .
    control_record-rcvpor = 'A000000171'.
    *Filling the Segment 1 ie.,Purchasing Document Number .
    move-corresponding ekpo to seg1.
    itab_edidd-segnam = 'ZSEG1_TR'.
    itab_edidd-sdata = seg1.  " Value for the Segment1.
    append itab_edidd .
    clear itab_edidd.
    *Filling the Segment 2 ie.,Item Number of Purchasing Document.
    select * from ekpo into corresponding fields of table itab_seg2  where
             ebeln = p_ebeln .
    loop at itab_seg2 .
      move-corresponding  itab_seg2 to seg2.
      itab_edidd-segnam = 'ZSEG2_TR'.
      itab_edidd-sdata = seg2.
      append itab_edidd.
      clear itab_edidd.
    endloop.
    call function MASTER_IDOC_DISTRIBUTE
      exporting
        master_idoc_control                  = control_record
    *   OBJ_TYPE                             = ''
    *   CHNUM                                = ''
      tables
        communication_idoc_control           = itab_comm_idocs
        master_idoc_data                     = itab_edidd
    exceptions
       error_in_idoc_control                = 1
       error_writing_idoc_status            = 2
       error_in_idoc_data                   = 3
       sending_logical_system_unknown       = 4
       others                               = 5
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    loop at itab_comm_idocs.
      write:/2 'Docs generated', itab_comm_idocs-docnum.
    endloop.
    <i>* Reward each useful answer</i>
    Raja T
    Message was edited by:
            Raja Thangamani

  • Need Help with BI Beans Sample Programs

    I am trying to use the print and export functions that are described in the BI Beans sample program. I need to make a small change and don't know how to do it. I would like to open the print or export page in a new window instead of on top of the current page. Any ideas on how to do this? Thanks.

    first hit on google
    thankyou for using the georgemc google proxy

  • Need Help with Simple Chat Program

    Hello Guys,
    I'm fairly new to Java and I have a quick question regarding a simple chat program in java. My problem is that I have a simple chat program that runs from its own JFrame etc. Most of you are probably familiar with the code below, i got it from one of my java books. In any case, what I'm attempting to do is integrate this chat pane into a gui that i have created. I attempted to call an instace of the Client class from my gui program so that I can use the textfield and textarea contained in my app, but it will not allow me to do it. Would I need to integrate this code into the code for my Gui class. I have a simple program that contains chat and a game. The code for the Client is listed below.
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    public class Client
    extends JPanel {
    public static void main(String[] args) throws IOException {
    String name = args[0];
    String host = args[1];
    int port = Integer.parseInt(args[2]);
    final Socket s = new Socket(host, port);
    final Client c = new Client(name, s);
    JFrame f = new JFrame("Client : " + name);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent we) {
    c.shutDown();
    System.exit(0);
    f.setSize(300, 300);
    f.setLocation(100, 100);
    f.setContentPane(c);
    f.setVisible(true);
    private String mName;
    private JTextArea mOutputArea;
    private JTextField mInputField;
    private PrintWriter mOut;
    public Client(final String name, Socket s)
    throws IOException {
    mName = name;
    createUI();
    wireNetwork(s);
    wireEvents();
    public void shutDown() {
    mOut.println("");
    mOut.close();
    protected void createUI() {
    setLayout(new BorderLayout());
    mOutputArea = new JTextArea();
    mOutputArea.setLineWrap(true);
    mOutputArea.setEditable(false);
    add(new JScrollPane(mOutputArea), BorderLayout.CENTER);
    mInputField = new JTextField(20);
    JPanel controls = new JPanel();
    controls.add(mInputField);
    add(controls, BorderLayout.SOUTH);
    mInputField.requestFocus();
    protected void wireNetwork(Socket s) throws IOException {
    mOut = new PrintWriter(s.getOutputStream(), true);
    final String eol = System.getProperty("line.separator");
    new Listener(s.getInputStream()) {
    public void processLine(String line) {
    mOutputArea.append(line + eol);
    mOutputArea.setCaretPosition(
    mOutputArea.getDocument().getLength());
    protected void wireEvents() {
    mInputField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
    String line = mInputField.getText();
    if (line.length() == 0) return;
    mOut.println(mName + " : " + line);
    mInputField.setText("");

    Thanks for ur help!i have moved BufferedReader outside the loop. I dont think i am getting exception as i can c the output once.What i am trying to do is repeat the process which i m getting once.What my method does is first one sends the packet to multicasting group (UDP) and other method receives the packets and prints.

  • Needed  sample program for emailing the report output

    hi all,
    neede sample program for emailing the report output

    Hi,
    Please refer this program for sending e-mail with attachment.
    ***INCLUDE ZHZLPP_CLZSN_DAILY_MIS_PRINT .
    *&      Form  print
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM print .
      DATA:  wa_output_options     TYPE ssfcompop,
             wa_control_parameters TYPE ssfctrlop,
             t_otfdata             TYPE ssfcrescl,
             t_pdf_tab             TYPE TABLE OF tline WITH HEADER LINE.
      DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.
      DATA: w_filesize TYPE i.
      DATA: w_bin_filesize TYPE i.
      DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
      i_tline TYPE TABLE OF tline WITH HEADER LINE,
      v_form_name TYPE rs38l_fnam,
      v_len_in LIKE sood-objlen,
      w_return TYPE ssfcrescl.
      DATA : l_mean  TYPE p DECIMALS 2,
             l_mean1 TYPE p DECIMALS 2,
             l_mean2 TYPE p DECIMALS 2,
             l_mean3 TYPE p DECIMALS 4,
             temp    TYPE p DECIMALS 2,
             v_header LIKE zmisdisp3-remark,
             disp_d_kwh_mt TYPE zmisdisp5,
             disp_m_kwh_mt TYPE zmisdisp5,
             disp_d_mt_mw  TYPE zmisdisp5,
             disp_m_mt_mw  TYPE zmisdisp5,
             l_bptarget(16) TYPE p DECIMALS 2,
             l_act_d(16)    TYPE p DECIMALS 2,
             l_act_c(16)    TYPE p DECIMALS 2,
             l_pow_gen      TYPE p DECIMALS 2,
             l_pow_gen_d    TYPE p DECIMALS 2,
             l_pow_gen_c    TYPE p DECIMALS 2,
             l_no_of_days   TYPE p,
             disp_bptarget  TYPE zmisdisp5,
             disp_act_d     TYPE zmisdisp5,
             disp_act_c     TYPE zmisdisp5,
             disp_d_kwh     TYPE zmisdisp5,
             disp_c_kwh     TYPE zmisdisp5,
             disp_d_mw      TYPE zmisdisp5,
             disp_c_mw      TYPE zmisdisp5,
             disp_pow_gen_d TYPE zmisdisp5,
             disp_pow_gen_c TYPE zmisdisp5,
             disp_pow_gen   TYPE zmisdisp5,
             disp_ftd_h1    TYPE zmisdisp5,
             disp_ftd_h2    TYPE zmisdisp5,
             disp_ftd_h3    TYPE zmisdisp5,
             disp_ftd_h4    TYPE zmisdisp5,
             disp_ftd_h5    TYPE zmisdisp5,
             disp_ftd_o1    TYPE zmisdisp5,
             disp_ftd_o2    TYPE zmisdisp5,
             disp_ftd_o4    TYPE zmisdisp5,
             disp_ftd_o5    TYPE zmisdisp5,
             disp_***_o1    TYPE zmisdisp5,
             disp_***_o2    TYPE zmisdisp5,
             disp_***_o4    TYPE zmisdisp5,
             disp_***_o5    TYPE zmisdisp5,
             disp_cath_d    TYPE zmisdisp5,
             disp_cath_c    TYPE zmisdisp5,
             disp_anode_d   TYPE zmisdisp5,
             disp_anode_c   TYPE zmisdisp5,
             l_rec_con_d_kwh(16) TYPE p DECIMALS 2,
             l_rec_con_c_kwh(16) TYPE p DECIMALS 2,
             l_rec_con_d_mw(16)  TYPE p DECIMALS 2,
             l_rec_con_c_mw(16)  TYPE p DECIMALS 2,
             tot_kah      TYPE p DECIMALS 2,
             avg_kah      TYPE p DECIMALS 2,
             disp_tot_kah TYPE zmisdisp5,
             disp_avg_kah TYPE zmisdisp5,
             v_ftd_h1 TYPE p DECIMALS 2,
             v_ftd_h2 TYPE p DECIMALS 2,
             v_ftd_h3 TYPE p DECIMALS 2,
             v_ftd_h4 TYPE p DECIMALS 2,
             v_ftd_h5 TYPE p DECIMALS 2,
             v_ftd_o1 TYPE p DECIMALS 2,
             v_ftd_o2 TYPE p DECIMALS 2,
             v_ftd_o4 TYPE p DECIMALS 2,
             v_ftd_o5 TYPE p DECIMALS 2,
             v_***_o1 TYPE p DECIMALS 2,
             v_***_o2 TYPE p DECIMALS 2,
             v_***_o4 TYPE p DECIMALS 2,
             v_***_o5 TYPE p DECIMALS 2,
             l_cdiff1 LIKE imrg-cdiff,
             l_cdiff2 LIKE imrg-cdiff,
             l_cdiff3 LIKE imrg-cdiff,
             l_cdiff4 LIKE imrg-cdiff,
             l_path   LIKE rlgrap-filename,
             l_flag.
      DATA :prod_disp TYPE TABLE OF zmisdisp1 WITH HEADER LINE,
            keyp_disp TYPE TABLE OF zmisdisp2 WITH HEADER LINE,
            keyp_dis1 TYPE TABLE OF zmisdisp2 WITH HEADER LINE,
            rmat_disp TYPE TABLE OF zmisdisp4 WITH HEADER LINE,
            rcur_disp TYPE TABLE OF zmisdisp6 WITH HEADER LINE,
            rhrs_disp TYPE TABLE OF zmisdisp4 WITH HEADER LINE,
            brkd_disp TYPE TABLE OF zmisdisp7 WITH HEADER LINE.
      DEFINE fill_kpp.
        clear l_flag.
        loop at it_mic_data where kurztext = &1.
          l_mean1 = it_mic_data-mittelwert.
          l_mean = it_mic_data-mean.
          if l_flag = ' '.
            move : &2                     to keyp_disp-desc,
                   l_mean1                to keyp_disp-ftd.
            if     it_mic_data-kurztext = 'Ingot Pb SHG Zinc'.
              l_mean2 = v_mean_pbshg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Cu SHG Zinc'.
              l_mean2 = v_mean_cushg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Cd SHG Zinc'.
              l_mean2 = v_mean_cdshg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Fe SHG Zinc'.
              l_mean2 = v_mean_feshg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
              l_mean2 = v_mean_znshg.
              move   l_mean2                to keyp_disp-avg.
            else.
              move   l_mean                 to keyp_disp-avg.
            endif.
            if     it_mic_data-masseinhsw = 'GLI'.
              move 'g/l'                  to keyp_disp-unit.
            elseif it_mic_data-masseinhsw = 'PPM'.
              move 'ppm'                  to keyp_disp-unit.
            elseif it_mic_data-masseinhsw = 'NO'.
              move 'no'                   to keyp_disp-unit.
            else.
              move it_mic_data-masseinhsw to keyp_disp-unit.
            endif.
            append  keyp_disp.
            clear keyp_disp.
            move 'X' to l_flag.
          else.
            move : l_mean1                to keyp_disp-ftd.
            append  keyp_disp.
            clear keyp_disp.
          endif.
        endloop.
        if sy-subrc is not initial.
          move &2 to keyp_disp-desc.
          append  keyp_disp.
          clear keyp_disp.
        endif.
      END-OF-DEFINITION.
      DEFINE fill_kp1.
        clear l_flag.
        loop at it_mic_data where kurztext = &1.
          l_mean1 = it_mic_data-mittelwert.
          l_mean = it_mic_data-mean.
          if l_flag = ' '.
            move : &2                     to keyp_dis1-desc,
                   l_mean1                to keyp_dis1-ftd.
            if     it_mic_data-kurztext = 'Ingot Pb SHG Zinc'.
              l_mean2 = v_mean_pbshg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Cu SHG Zinc'.
              l_mean2 = v_mean_cushg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Cd SHG Zinc'.
              l_mean2 = v_mean_cdshg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Fe SHG Zinc'.
              l_mean2 = v_mean_feshg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
              l_mean3 = v_mean_znshg.
              move   l_mean3                to keyp_dis1-avg.
              clear  l_mean3.
              l_mean3 = it_mic_data-mittelwert.
              move   l_mean3                to keyp_dis1-ftd.
            else.
              move   l_mean                 to keyp_dis1-avg.
            endif.
            if     it_mic_data-masseinhsw = 'GLI'.
              move 'g/l'                  to keyp_dis1-unit.
            elseif it_mic_data-masseinhsw = 'PPM'.
              move 'ppm'                  to keyp_dis1-unit.
            elseif it_mic_data-masseinhsw = 'NO'.
              move 'no'                   to keyp_dis1-unit.
            else.
              move it_mic_data-masseinhsw to keyp_dis1-unit.
            endif.
            append  keyp_dis1.
            clear keyp_dis1.
            move 'X' to l_flag.
          else.
            if it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
              clear  l_mean3.
              l_mean3 = it_mic_data-mittelwert.
              move   l_mean3                to keyp_dis1-ftd.
            else.
              move : l_mean1                to keyp_dis1-ftd.
            endif.
            append  keyp_dis1.
            clear keyp_dis1.
          endif.
        endloop.
        if sy-subrc is not initial.
          move &2 to keyp_dis1-desc.
          append  keyp_dis1.
          clear keyp_dis1.
        endif.
      END-OF-DEFINITION.
    *FIRST PAGE
    ********PLANT HEADER
      MOVE 'CLZS HYDRO I PLANT - DAILY PRODUCTION REPORT' TO v_header.
    ********Production figure
      LOOP AT it_disp1.
        prod_disp-desc        = it_disp1-desc.
        prod_disp-d_plnmg     = it_disp1-d_plnmg.
        prod_disp-d_menge     = it_disp1-d_menge.
        prod_disp-u_plnmg     = it_disp1-u_plnmg.
        prod_disp-u_menge     = it_disp1-u_menge.
        prod_disp-avg         = it_disp1-avg.
        prod_disp-ask_rate    = it_disp1-ask_rate.
        prod_disp-m_plnmg     = it_disp1-m_plnmg.
        prod_disp-y_plnmg     = it_disp1-y_plnmg.
        prod_disp-y_menge     = it_disp1-y_menge.
        prod_disp-y_variance  = it_disp1-y_variance.
        APPEND prod_disp.
      ENDLOOP.
    ********Key performance parameters
      MOVE 'ROASTER :' TO keyp_disp-desc.
      APPEND  keyp_disp.
      fill_kpp '% S/S IN 45 DEG'            '  S/S in Calcine'.
      MOVE 'LEACHING :' TO keyp_disp-desc.
      APPEND  keyp_disp.
      fill_kpp '% S/S IN  CAL'              '  S/S in Calcine'.
      fill_kpp '%water soluble Zn'          '  W/S Zn in Jarosite Cake'.
      fill_kpp '%total Zn in HBF'           '  T/Zn in Jarosite cake'.
      fill_kpp 'ZINC IN CT'                 '  Zn in Conditioning tank'.
      fill_kpp 'g/l zn in neutral overflow' '  Zn in Electrolyte Prod (gpl)'.
      fill_kpp 'PPM CU IN PS25'             '  Purified Solution Cu'.
      fill_kpp 'PPM CADMIUM IN PS25'        '  Purified Solution Cd'.
      fill_kpp 'PPM COBALT IN PS25'         '  Purified Solution Co'.
      MOVE 'CELLHOUSE :' TO keyp_disp-desc.
      APPEND  keyp_disp.
      fill_kpp 'g/l zinc in cell feed'      '  Cell Feed Zinc gpl'.
      fill_kpp 'GPL ACID IN CELL FEED'      '  Cell Feed acidity gpl'.
      fill_kpp 'g/l manganese in cell feed' '  Cell Feed Mn gpl'.
      LOOP AT t_imrg_add_disp.
        MOVE:  t_imrg_add_disp-desc    TO keyp_disp-desc,
               t_imrg_add_disp-d_value TO keyp_disp-ftd,
               t_imrg_add_disp-c_value TO temp,
               temp                    TO keyp_disp-avg.
        IF t_imrg_add_disp-units = 'NO'.
          MOVE:  'no'                    TO keyp_disp-unit.
        ELSE.
          MOVE:  t_imrg_add_disp-units   TO keyp_disp-unit.
        ENDIF.
        APPEND keyp_disp.CLEAR keyp_disp.
      ENDLOOP.
      fill_kp1 'Ingot Pb SHG Zinc'          '  Ingot Pb SHG Zinc'.
      fill_kp1 'Ingot Cu SHG Zinc'          '  Ingot Cu SHG Zinc'.
      fill_kp1 'Ingot Cd SHG Zinc'          '  Ingot Cd SHG Zinc'.
      fill_kp1 'Ingot Fe SHG Zinc'          '  Ingot Fe SHG Zinc'.
      fill_kp1 'Ingot Zn SHG Zinc'          '  Ingot Zn SHG Zinc'.
    ********Cellhouse power
      CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1.
        v_m_kwh_mt = v_ind8_m / cathode_recipt.
        v_m_mt_mw  = cathode_recipt / ( v_ind8_m / 24000 ).
      ENDCATCH.
      MOVE : v_d_kwh_mt TO disp_d_kwh_mt,
             v_m_kwh_mt TO disp_m_kwh_mt,
             v_d_mt_mw  TO disp_d_mt_mw,
             v_m_mt_mw  TO disp_m_mt_mw.
    *SECOND PAGE
    ********Raw Material
      LOOP AT it_disp3.
        rmat_disp-desc    = it_disp3-desc.
        rmat_disp-opstk   = it_disp3-opstk.
        rmat_disp-d_recpt = it_disp3-d_recpt.
        rmat_disp-u_recpt = it_disp3-u_recpt.
        rmat_disp-d_cons  = it_disp3-d_cons.
        rmat_disp-u_cons  = it_disp3-u_cons.
        rmat_disp-clstk   = it_disp3-clstk.
        APPEND rmat_disp.
      ENDLOOP.
    ********Work in Progress
    ********Finished Goods
    ********power consumption
      l_no_of_days = v_mm_en_dt+6(2).
      CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1.
        l_bptarget   = ( v_bp_nrms_p * v_gross_d ) / l_no_of_days.
        l_act_d      = v_ind6_d + v_ind2_d - ( v_ind3_d + ( v_ind4_d / 2 ) ) - v_ind5_d.
        l_act_c      = v_ind6_m + v_ind2_m - ( v_ind3_m + ( v_ind4_m / 2 ) ) - v_ind5_m.
        l_pow_gen    = ( v_ind2_d / 1000 ) / v_ind7_d.
      ENDCATCH.
      l_pow_gen_d  = v_ind2_d / 1000.
      l_pow_gen_c  = v_ind9_m / 1000.
      l_rec_con_d_kwh = v_ind8_d.
      l_rec_con_c_kwh = v_ind8_m.
      l_rec_con_d_mw  = v_ind8_d / 24000.
      l_rec_con_c_mw  = v_ind8_m / ( 24000 * v_days_pased ).
      LOOP AT t_disp_curr.
        rcur_disp-time    = t_disp_curr-time.
        rcur_disp-current = t_disp_curr-current.
        rcur_disp-kah     = t_disp_curr-kah.
        APPEND rcur_disp.
        AT LAST.
          SUM.
          tot_kah = t_disp_curr-kah.
        ENDAT.
      ENDLOOP.
      avg_kah = tot_kah / '24'.
    *********************running hrs
      LOOP AT it_disp6.
        rhrs_disp-desc    = it_disp6-desc.
        rhrs_disp-opstk   = it_disp6-d_runhrs.
        rhrs_disp-d_recpt = it_disp6-m_runhrs.
        APPEND rhrs_disp.
      ENDLOOP.
      rhrs_disp-desc    = 'Turbo Generator'.
      rhrs_disp-opstk   = v_turbod.
      rhrs_disp-d_recpt = v_turboc.
      INSERT rhrs_disp INDEX 2.
    **********************BREAK_DOWN & OIL
      CLEAR value.
      LOOP AT itab2.
        IF itab2-equnr = 'NMZ-EH01G001'.
          PERFORM s_conversion_h.
          v_ftd_h1 = v_ftd_h1 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01G002'.
          PERFORM s_conversion_h.
          v_ftd_h2 = v_ftd_h2 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01V003'.
          PERFORM s_conversion_h.
          v_ftd_h3 = v_ftd_h3 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01V001'.
          PERFORM s_conversion_h.
          v_ftd_h4 = v_ftd_h4 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01V002'.
          PERFORM s_conversion_h.
          v_ftd_h5 = v_ftd_h5 + value.
          CLEAR value.
        ENDIF.
      ENDLOOP.
      LOOP AT t_oil.
        AT END OF ind.
          SUM.
          IF t_oil-ind = 1.
            v_***_o1 = t_oil-cdiff * 1000.
          ELSEIF t_oil-ind = 2.
            v_***_o2 = t_oil-cdiff * 1000.
          ELSEIF t_oil-ind = 3.
            v_***_o4 = t_oil-cdiff * 1000.
          ELSEIF t_oil-ind = 4.
            v_***_o5 = t_oil-cdiff * 1000.
          ENDIF.
        ENDAT.
        IF t_oil-idate = p_repdt.
          IF t_oil-ind = 1.
            l_cdiff1 = l_cdiff1 + t_oil-cdiff.
          ELSEIF t_oil-ind = 2.
            l_cdiff2 = l_cdiff2 + t_oil-cdiff.
          ELSEIF t_oil-ind = 3.
            l_cdiff3 = l_cdiff3 + t_oil-cdiff.
          ELSEIF t_oil-ind = 4.
            l_cdiff4 = l_cdiff4 + t_oil-cdiff.
          ENDIF.
        ENDIF.
      ENDLOOP.
      v_ftd_o1 = l_cdiff1 * 1000.
      v_ftd_o2 = l_cdiff2 * 1000.
      v_ftd_o4 = l_cdiff3 * 1000.
      v_ftd_o5 = l_cdiff4 * 1000.
    *********Breakdown details----3rd page
      LOOP AT itab INTO wa.
        CALL FUNCTION 'FLTP_CHAR_CONVERSION'
          EXPORTING
            decim = 0
            expon = 0
            input = wa-auszt
            ivalu = 'X'
          IMPORTING
            flstr = wk_char_auszt.
        CONDENSE wk_char_auszt NO-GAPS.
        wk_flt_auszt = wk_char_auszt.
        wk_flt_auszt = wk_flt_auszt / 3600.
        duration = wk_flt_auszt.
        brkd_disp-eqdesc = wa-eqktx.
        brkd_disp-nodesc = wa-qmtxt.
        brkd_disp-hrs    = duration.
        APPEND brkd_disp.
      ENDLOOP.
      MOVE : v_ftd_h1 TO disp_ftd_h1,
             v_ftd_h2 TO disp_ftd_h2,
             v_ftd_h3 TO disp_ftd_h3,
             v_ftd_h4 TO disp_ftd_h4,
             v_ftd_h5 TO disp_ftd_h5,
             v_ftd_o1 TO disp_ftd_o1,
             v_ftd_o2 TO disp_ftd_o2,
             v_ftd_o4 TO disp_ftd_o4,
             v_ftd_o5 TO disp_ftd_o5,
             v_***_o1 TO disp_***_o1,
             v_***_o2 TO disp_***_o2,
             v_***_o4 TO disp_***_o4,
             v_***_o5 TO disp_***_o5,
             l_bptarget      TO disp_bptarget,
             l_act_d         TO disp_act_d,
             l_act_c         TO disp_act_c,
             l_rec_con_d_kwh TO disp_d_kwh,
             l_rec_con_c_kwh TO disp_c_kwh,
             l_rec_con_d_mw  TO disp_d_mw,
             l_rec_con_c_mw  TO disp_c_mw,
             tot_kah         TO disp_tot_kah,
             avg_kah         TO disp_avg_kah,
             l_pow_gen       TO disp_pow_gen,
             l_pow_gen_d     TO disp_pow_gen_d,
             l_pow_gen_c     TO disp_pow_gen_c,
             v_cath_d        TO disp_cath_d,
             v_cath_c        TO disp_cath_c,
             v_anode_d       TO disp_anode_d,
             v_anode_c       TO disp_anode_c.
      wa_output_options-tdimmed = 'X'.
      wa_control_parameters-device = 'PRINTER'.
      wa_control_parameters-preview = 'X'.
      IF rb3 = 'X'.
        wa_control_parameters-getotf  = 'X'.
        wa_control_parameters-no_dialog = 'X'.
      ENDIF.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZHZLPP_CLZSN_DAILY_MIS'
        IMPORTING
          fm_name            = v_form_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
      ENDIF.
      CALL FUNCTION v_form_name
        EXPORTING
          control_parameters         = wa_control_parameters
          output_options             = wa_output_options
          user_settings              = 'X'
          header                     = v_header
          date                       = p_repdt
          l_bptarget                 = disp_bptarget
          l_act_d                    = disp_act_d
          l_act_c                    = disp_act_c
          disp_d_kwh                 = disp_d_kwh
          disp_c_kwh                 = disp_c_kwh
          disp_d_mw                  = disp_d_mw
          disp_c_mw                  = disp_c_mw
          disp_tot_kah               = disp_tot_kah
          disp_avg_kah               = disp_avg_kah
          disp_d_kwh_mt              = disp_d_kwh_mt
          disp_m_kwh_mt              = disp_m_kwh_mt
          disp_d_mt_mw               = disp_d_mt_mw
          disp_m_mt_mw               = disp_m_mt_mw
          disp_pow_gen               = disp_pow_gen
          disp_pow_gen_d             = disp_pow_gen_d
          disp_pow_gen_c             = disp_pow_gen_c
          disp_ftd_h1                = disp_ftd_h1
          disp_ftd_h2                = disp_ftd_h2
          disp_ftd_h3                = disp_ftd_h3
          disp_ftd_h4                = disp_ftd_h4
          disp_ftd_h5                = disp_ftd_h5
          disp_ftd_o1                = disp_ftd_o1
          disp_ftd_o2                = disp_ftd_o2
          disp_ftd_o4                = disp_ftd_o4
          disp_ftd_o5                = disp_ftd_o5
          disp_***_o1                = disp_***_o1
          disp_***_o2                = disp_***_o2
          disp_***_o4                = disp_***_o4
          disp_***_o5                = disp_***_o5
          disp_cath_d                = disp_cath_d
          disp_cath_c                = disp_cath_c
          disp_anode_d               = disp_anode_d
          disp_anode_c               = disp_anode_c
      IMPORTING
        job_output_info              = w_return           " .    
        TABLES
          prod_tab                   = prod_disp
          keyp_tab                   = keyp_disp
          remk_tab                   = it_remarks
          rmat_tab                   = rmat_disp
          rwip_tab                   = it_disp4
          rfng_tab                   = it_disp_fg
          rcur_tab                   = rcur_disp
          rhrs_tab                   = rhrs_disp
          brkd_tab                   = brkd_disp
          keyp_tab1                  = keyp_dis1
        EXCEPTIONS
          formatting_error           = 1
          internal_error             = 2
          send_error                 = 3
          user_canceled              = 4
          OTHERS                     = 5
      IF sy-subrc <> 0.
        MESSAGE 'Error in printing form' TYPE 'I'.
      ENDIF.
    ********Downloading in pdf format.
      IF rb3 = 'X'.
        IF l_usract <> 9.
          MOVE fullpath TO l_path.
          i_otf[] = w_return-otfdata[].
          CALL FUNCTION 'CONVERT_OTF'                   "
            EXPORTING
              format                = 'PDF'
              max_linewidth         = 132
            IMPORTING
              bin_filesize          = v_len_in
            TABLES
              otf                   = i_otf
              lines                 = i_tline
            EXCEPTIONS
              err_max_linewidth     = 1
              err_format            = 2
              err_conv_not_possible = 3
              OTHERS                = 4.
          IF sy-subrc <> 0.
          ENDIF.
          CALL FUNCTION 'WS_DOWNLOAD'
            EXPORTING
              bin_filesize            = v_len_in
              filename                = l_path
              filetype                = 'BIN'
            IMPORTING
              filelength              = w_filesize
            TABLES
              data_tab                = i_tline
            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 'File downloaded successfully' TYPE 'S'.
          ENDIF.
        ENDIF.
      ENDIF.
      IF sy-batch = 'X'.               " SENDING MAILS IF SCHEDULED IN BACKGROUND
        DATA: formname           TYPE tdsfname,
              fm_name            TYPE rs38l_fnam,
              control_parameters TYPE ssfctrlop,
              output_options     TYPE ssfcompop,
              job_output_info    TYPE ssfcrescl,
              otf_data           TYPE tsfotf.
        DATA: otf                TYPE TABLE OF itcoo WITH HEADER LINE,
              doctab_archive     TYPE TABLE OF docs WITH HEADER LINE,
              lines              TYPE TABLE OF tline WITH HEADER LINE,
              bin_filesize       TYPE i.
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            formname           = 'ZHZLPP_CLZSN_DAILY_MIS'
          IMPORTING
            fm_name            = v_form_name
          EXCEPTIONS
            no_form            = 1
            no_function_module = 2
            OTHERS             = 3.
        IF sy-subrc <> 0.
        ENDIF.
        control_parameters-no_dialog = 'X'.
        control_parameters-getotf    = 'X'.
        CALL FUNCTION v_form_name
          EXPORTING
            control_parameters = control_parameters
            header             = v_header
            date               = p_repdt
            l_bptarget         = disp_bptarget
            l_act_d            = disp_act_d
            l_act_c            = disp_act_c
            disp_d_kwh         = disp_d_kwh
            disp_c_kwh         = disp_c_kwh
            disp_d_mw          = disp_d_mw
            disp_c_mw          = disp_c_mw
            disp_tot_kah       = disp_tot_kah
            disp_avg_kah       = disp_avg_kah
            disp_d_kwh_mt      = disp_d_kwh_mt
            disp_m_kwh_mt      = disp_m_kwh_mt
            disp_d_mt_mw       = disp_d_mt_mw
            disp_m_mt_mw       = disp_m_mt_mw
            disp_pow_gen       = disp_pow_gen
            disp_pow_gen_d     = disp_pow_gen_d
            disp_pow_gen_c     = disp_pow_gen_c
            disp_ftd_h1        = disp_ftd_h1
            disp_ftd_h2        = disp_ftd_h2
            disp_ftd_h3        = disp_ftd_h3
            disp_ftd_h4        = disp_ftd_h4
            disp_ftd_h5        = disp_ftd_h5
            disp_ftd_o1        = disp_ftd_o1
            disp_ftd_o2        = disp_ftd_o2
            disp_ftd_o4        = disp_ftd_o4
            disp_ftd_o5        = disp_ftd_o5
            disp_***_o1        = disp_***_o1
            disp_***_o2        = disp_***_o2
            disp_***_o4        = disp_***_o4
            disp_***_o5        = disp_***_o5
            disp_cath_d        = disp_cath_d
            disp_cath_c        = disp_cath_c
            disp_anode_d       = disp_anode_d
            disp_anode_c       = disp_anode_c
          IMPORTING
            job_output_info    = job_output_info
          TABLES
            prod_tab           = prod_disp
            keyp_tab           = keyp_disp
            remk_tab           = it_remarks
            rmat_tab           = rmat_disp
            rwip_tab           = it_disp4
            rfng_tab           = it_disp_fg
            rcur_tab           = rcur_disp
            rhrs_tab           = rhrs_disp
            brkd_tab           = brkd_disp
            keyp_tab1          = keyp_dis1
          EXCEPTIONS
            formatting_error   = 1
            internal_error     = 2
            send_error         = 3
            user_canceled      = 4
            OTHERS             = 5.
        IF sy-subrc = 0.
          otf_data = job_output_info-otfdata[].
          CALL FUNCTION 'CONVERT_OTF_2_PDF'
            IMPORTING
              bin_filesize           = bin_filesize
            TABLES
              otf                    = otf_data[]
              doctab_archive         = doctab_archive[]
              lines                  = lines[]
            EXCEPTIONS
              err_conv_not_possible  = 1
              err_otf_mc_noendmarker = 2
              OTHERS                 = 3.
          IF sy-subrc = 0.
            SUBMIT rsconn01 with mode = 'INT' AND RETURN.
    *                                    ----<<distrubution list>>----
            PERFORM mail_users TABLES lines USING 'MIS-HY1A' v_header.   " Donot put more than 8 email-ids
            PERFORM mail_users TABLES lines USING 'MIS-HY1B' v_header.   " in a distribution list
            PERFORM mail_users TABLES lines USING 'MIS-HY1C' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1D' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1E' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1F' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1G' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1H' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1I' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1J' v_header.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    " print
    *&      Form  get_download_path
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_download_path .
      CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'
        EXPORTING
          window_title      = 'Download as pdf file'
          default_extension = 'pdf'
        IMPORTING
          fullpath          = fullpath
          user_action       = l_usract.
      IF l_usract = '9'.
        STOP.
      ENDIF.
    ENDFORM.                    " get_download_path
    *&      Form  mail_users
    *       text
    *      -->P_LINES  text
    *      -->P_2153   text
    *      -->P_V_HEADER  text
    FORM mail_users  TABLES   p_lines STRUCTURE tline
                     USING    p_dist_list
                              p_v_header.
      CONSTANTS: c_raw TYPE so_obj_tp VALUE 'RAW',
                 c_pdf TYPE so_obj_tp VALUE 'PDF',
                 c_255 TYPE i VALUE 255,
                 c_134 TYPE i VALUE 134,
                 c_x   TYPE c VALUE 'X'.
      DATA: document_data LIKE sodocchgi1 ,
            tab_lines     TYPE i,
            contents_txt  TYPE TABLE OF solisti1 WITH HEADER LINE,
            contents_bin  TYPE TABLE OF solisti1 WITH HEADER LINE,
            packing_list  TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
            object_header TYPE TABLE OF solisti1 WITH HEADER LINE,
            receivers     TYPE TABLE OF somlreci1 WITH HEADER LINE,
            l_str(255) ,
            v1 TYPE i,
            v2 TYPE i,
            v3 TYPE i.
      document_data-obj_name  = 'EMAIL'.
      document_data-obj_descr = p_v_header.  " SUBJECT LINE
      CONCATENATE 'Please find the attached SAP generated Daily Production Report for the day'
                  p_repdt+6(2)
                  p_repdt+4(2)
                  '.' p_repdt+0(4)
             INTO contents_txt.
      APPEND      contents_txt.
      CLEAR       contents_txt.
      APPEND      contents_txt.
      APPEND      contents_txt.
      DESCRIBE TABLE contents_txt LINES tab_lines.
      READ TABLE     contents_txt INDEX tab_lines.
      document_data-doc_size  = ( tab_lines - 1 ) * 255 + STRLEN( contents_txt ).
      document_data-doc_size  = tab_lines .
      CLEAR packing_list-transf_bin.
      packing_list-head_start = 1.
      packing_list-head_num   = 0.
      packing_list-body_start = 1.
      packing_list-body_num   = tab_lines.
      packing_list-doc_type   = c_raw.
      packing_list-doc_size   = document_data-doc_size.
      APPEND packing_list.
      LOOP AT p_lines.
        CLEAR l_str.
        l_str+0(2)   = p_lines-tdformat.
        l_str+2(132) = p_lines-tdline.
        v2 = v1 + c_134.
        IF v2 LE c_255.
          contents_bin-line+v1(c_134) = l_str. v1 = v2.
        ELSE.
          v3 = v2 - c_255.
          v2 = c_255 - v1.
          IF NOT v2 IS INITIAL.
            contents_bin-line+v1(v2) = l_str+0(v2).
          ENDIF.
          APPEND contents_bin.
          CLEAR  contents_bin.
          v1 = v3.
          v3 = 134 - v1.
          IF NOT v1 IS INITIAL.
            contents_bin-line+0(v1) = l_str+v3(v1).
          ENDIF.
        ENDIF.
      ENDLOOP.
      APPEND contents_bin.
      CLEAR  contents_bin.
      DESCRIBE TABLE contents_bin LINES tab_lines.
      READ     TABLE contents_bin INDEX tab_lines.
      CONCATENATE 'Hy-I Report'
                  p_repdt+6(2)
                  p_repdt+4(2)
                  '.' p_repdt+0(4)
                  '.pdf'
             INTO object_header.
      APPEND object_header.
      packing_list-transf_bin = c_x.
      packing_list-head_start = 1.
      packing_list-head_num   = 1.
      packing_list-body_start = 1.
      packing_list-body_num   = tab_lines.
      packing_list-doc_type   = c_pdf.
      packing_list-obj_name   = 'text1'.
      packing_list-obj_descr  = 'Production report'.
      packing_list-doc_size   = tab_lines * 255 + STRLEN( contents_bin ).
      APPEND packing_list.
      receivers-receiver      = p_dist_list.
      receivers-rec_type      = 'C'.
      APPEND receivers.
      CLEAR  receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          document_data              = document_data
          put_in_outbox              = ' '
          SENDER_ADDRESS             = 'CZPPPLG'
          SENDER_ADDRESS_TYPE        = 'B'
          commit_work                = 'X'
        TABLES
          packing_list               = packing_list
          object_header              = object_header
          contents_bin               = contents_bin
          contents_txt               = contents_txt
          receivers                  = 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.
      IF sy-subrc = 0.
        WAIT UP TO 2 SECONDS.
        SUBMIT rsconn01 with mode = 'INT' AND RETURN.
      ENDIF.
    ENDFORM.                    " mail_users

  • Can any one please send me sample programs using java mapping..

    <b>Can any one please send me sample programs using java mapping with input and output?</b>
    please let me know how to get started with java mapping?
    Prerequisites for java mapping ?
    What are the jars need to be deployed for SAX,DOM.  And how to do it in NWDS?
    Use of Execute() and setparameter() ... StreamTransformation?
    Some sample program using java mapping with simple logic(input and output)?

    Hi,
    Did you go thro these blogs?
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii
    Nice blogs to start Java Mapping.
    Go thro this one too.
    /people/stefan.grube/blog/2006/10/23/testing-and-debugging-java-mapping-in-developer-studio
    Regards,
    P.Venkat
    Message was edited by:
            Venkataramanan

Maybe you are looking for

  • Itunes credit card purchases

    hello ~~ wher can i get details on purchases charged to my credit card?

  • How To Download Older Version From App Store

    I bought Pages from the App Store to run on my MacBook in 2012 which is limited to Snow Leopard. After reformatiing and updating the MacBook, I went to the App Store to re-download Pages and was greeted with the message that the current version will

  • Updating software for iPod Touch Model MC086LL

    The current software on my iPod Touch is 4.2.1 and I would like to update it to the most recent software or to the 4.3 version at the very least. However, when I click check for software I receive a message indicateing that my software version is upt

  • How do you install Skyrim on to Retina MBP without a superdrive?

    Hello! I'm wondering how one would go about installing games (in my case Skyrim) onto one of the new retina display MacBook Pros when it has a flash drive in he place of a superdrive. Would I have to buy an external superdrive to be able to install i

  • Database won't automatically open in win2000

    When we boot up numerous windows 2000 machines the database starts fine through the services menu BUT it doesn't automatically open as it did with windowsNT. This is for 8.1.7 and 8.1.6. Anyone got any ideas? Thanks