ABAP

转自http://wiki.sdn.sap.com/wiki/display/ABAP/Call+Adobe+Form+through+ABAP+Program


Scenario

Create an Adobe Form and call it through an ABAP Program 

Pre-request:

1)  In the Front End System Adobe Life Cycle Designer has to install. Then only the Adobe Form  Layout  and Adobe form will open in the SAP system
2)  Adobe Reader 8.0 and above version has to installed

Steps to Create and Call the adobe form

1)  Create a Table Type for a Table
 2) Create the Interface for the Adobe Form
3)  Create the Adobe Form and design the layout
4)  Write a Program to Call the Adobe Form

Step by Step Approach

1)   Create a  Table Type for a Table
 
Go to the Transaction Code "SE11" and give the Table Type name as "ZMARI_TBL" ABAP_第1张图片


Then click "Create" and a popup will appear as shown below.


ABAP_第2张图片

Select the radio button "Table Type" and press enter

ABAP_第3张图片

 Enter the Table Name 'MARI' in the line type.
 Then save it as Local Object and activate it.

  ABAP_第4张图片

Activate the Table Type.

  ABAP_第5张图片


2) Create the Interface for the Adobe Form  
Go to Transaction code 'SFP' and create the Interface for the ADOBE FORM

Enter the Interface Name as 'ZSUR_ADOBE_INTR' and click "Create"

  ABAP_第6张图片
 
Give the Description and click save.

  ABAP_第7张图片


Give Description and press enter


ABAP_第8张图片

Save as Local Object

  ABAP_第9张图片

Then the below screen will appear.


ABAP_第10张图片

Then Click "Append Row" icon as indicated below. 

ABAP_第11张图片
 
Then as new row will inserted and assign the Table Type ZMARI_TBL value as shown below.


ABAP_第12张图片
 

Then activate it.  

ABAP_第13张图片

Then go back and Give the Adobe Form name click Create.

 3) Create Adobe Form and design the layout in the Same Transaction Code "SFP"


  ABAP_第14张图片
 
Give the Description and the Interface name, which just created as indicated below.

ABAP_第15张图片

 Then Save as Local Object.

  ABAP_第16张图片
 
  Then the below Screen will appear.


ABAP_第17张图片

 Expand the import button and you can find the Table Parameter ZMARI.

ABAP_第18张图片
 
Then Drag and drop it to the Context as shown below. 

ABAP_第19张图片 

 After Drag and Drop the Table type to Context, then below screen will appear.

ABAP_第20张图片

Then Click the "Layout" Tab and the Below Screen will appear.

ABAP_第21张图片


Drag and Drop the table type "ZMARI" to Design View Layout as indicated below.

ABAP_第22张图片

Then adjust the Table in the Top center of the layout as shown below. 
   ABAP_第23张图片

Select the 'Text' from the Library and drop it the Layout 'Design" View and give a description to the Table as shown below.

ABAP_第24张图片

ABAP_第25张图片
 
Then Activate the Adobe form.


ABAP_第26张图片 4) 

4) Write a Program to Call the Adobe Form


Go to Transaction code SE38 and Create a Test Program "ZCALL_ADOBE_FORM". 

  ABAP_第27张图片
ABAP_第28张图片


 Save it as local Object.

  ABAP_第29张图片

Then enter the Below Code.

  ABAP_第30张图片

REPORT  zcall_adobe_form.
&-----------------------------------------------------------------------&
*& Author  : P Surjith Kumar
*& Purpose : Call the Adobe form in the ABAP Program
*&------------------------------------------------------------------------
DATA: fm_name           TYPE rs38l_fnam,      " CHAR 30 0 Name of Function Module
      fp_docparams      TYPE sfpdocparams,    " Structure  SFPDOCPARAMS Short Description  Form Parameters for Form Processing
      fp_outputparams   TYPE sfpoutputparams, " Structure  SFPOUTPUTPARAMS Short Description  Form Processing Output Parameter
      it_mari           TYPE zmari_tbl.       " Table Type ZMARI_TBL MARI Table Tyoe
* Sets the output parameters and opens the spool job
CALL FUNCTION 'FP_JOB_OPEN'                   "& Form Processing: Call Form
  CHANGING
    ie_outputparams = fp_outputparams
  EXCEPTIONS
    cancel          = 1
    usage_error     = 2
    system_error    = 3
    internal_error  = 4
    OTHERS          = 5.
IF sy-subrc <> 0.
*            <error handling>
ENDIF.
*&---- Get the name of the generated function module
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'           "& Form Processing Generation
  EXPORTING
    i_name     = 'ZSUR_ADOBE_FORM'
  IMPORTING
    e_funcname = fm_name.
IF sy-subrc <> 0.
*  <error handling>
ENDIF.
*-- Fetch the Data and store it in the Internal Table
SELECT * FROM mari INTO TABLE it_mari UP TO 15 ROWS.
* Language and country setting (here US as an example)
fp_docparams-langu   = 'E'.
fp_docparams-country = 'US'.
*&--- Call the generated function module
CALL FUNCTION fm_name
  EXPORTING
    /1bcdwb/docparams        = fp_docparams
    zmari                   = it_mari
*    IMPORTING
*     /1BCDWB/FORMOUTPUT       =
  EXCEPTIONS
    usage_error           = 1
    system_error          = 2
    internal_error           = 3.
IF sy-subrc <> 0.
*  <error handling>
ENDIF.
*&---- Close the spool job
CALL FUNCTION 'FP_JOB_CLOSE'
*    IMPORTING
*     E_RESULT             =
  EXCEPTIONS
    usage_error           = 1
    system_error          = 2
    internal_error        = 3
    OTHERS               = 4.
IF sy-subrc <> 0.
*            <error handling>
ENDIF.

 Then activate and Execute (F8) it.


ABAP_第31张图片

 Then the printer screen will appear. 

  ABAP_第32张图片

Click the Print Preview

  ABAP_第33张图片

Then the Output will shown as below.


ABAP_第34张图片

Labels

你可能感兴趣的:(Adobe,abap)