SAP Adobe Form 教程一 简单示例
马上需要用到adobe form,这里搬运一篇教程学习下。
英文原文:SAP Adobe Interactive Form Tutorial. Part I. First Adobe Form
本文链接:https://www.cnblogs.com/hhelibeb/p/15493324.html
准备
前提:系统中有Adobe life cycle designer,并且在服务器中配置过。
事务代码:SFP。可以用这个关键词来记住它:Smart Form PDF。
创建interface
输入一个interface并创建(interface对于adobe form是必填项):

interface有什么用?
1,在form interface中,你可以指定和应用程序交互的数据(表、结构、工作区)。
2,使用全局定义,定义你的字段、变量等。
3,系统字段包含预定义的数据,比如date。
填入描述并保存,

选择包,保存,

检查interface属性,浏览面板的左侧和右侧,点击自动生成的parameter name,

让我们添加自己的parameter name。选择form interface(在左侧)下的import选项,点击创建按钮(在右侧)。增加一个importing parameter IV_TEXT.

在本教程中,IV_TEXT是CHAR30类型,可选。
检查,保存,激活form interface.

创建form
回到事务代码SFP。这次我们需要创建form.



这是form的界面。左侧有interface右侧有context。

展开import parameter并拖放需要的变量到context。

Form builder中的context的意义是什么?
在context(也称为form context)中,指定将哪些数据从interface复制到form。还可以将此数据作为节点包含在层次结构中。在此层次结构中,还可以通过指定处理节点的条件来决定form逻辑。
Form Builder中的context函数是将interface绑定到布局的链接。可以从现有interface构造form context。
如果上面的解释让你觉得很模糊,那就先忘掉它。只需将context记作全局区域的数据声明,可能就像TOP Include程序一样。
简而言之,如果你希望参数,即内表、工作区或变量等从程序传递到interface,然后传递到form,那么你需要在表单的context中定义该内表、工作区或变量 。
form context中定义的任何内容都可以在要显示或操作的form中使用。 如果在form Interface中定义了一个变量但没有在context中创建它,那么该Interface变量将不会在form中可用。
如果你不喜欢快捷方式(拖放)或希望上下文参数名称与表单界面中的名称不同,则需要自己在上下文元素的属性中指定数据字段。 例如,如果你想创建一个上下文P_TEXT但想用 IV_TEXT绑定它,那么数据字段应该是IV_TEXT,如下所示。
提示:从interface拖放到context,然后更改context元素的名称/描述。 这会节省时间,并且不需要显式维护属性。

查看样式标签页,

左侧有Hierarchy, Tab Order, Data View等,右侧有Design, Mater和PDF Preview options.


让我们选择Data View并将我们想要在表单上打印的字段拖放到设计视图。 可以将此文件放置在布局中的任何位置。 对于我们的示例,只有一个元素IV_TEXT。 原因很简单, 我们在context中只创建了一个元素。 你可以添加更多context元素,它们将在此处可用,以传递给布局。 在接下来的内容中,我们将增加需求的复杂性,你将能够看到如何处理多个元素。

可以将标题从 IV_TEXT更改为所需的标题。 例如:Text。 单击元素并更改右侧对象的属性。
检查,保存和激活form。
使用接口对Adobe窗体进行独立测试


注意:与smartform一样,adobe form也会在后端生成一个Function Module。
F8运行,

按“打印预览”按钮。检查输入参数是否成功地从接口传递到布局。
与SAP Script和Smartform一样,Adobe Form 也需要一个驱动程序。 如果Form单独存在,它们就没有效用。 他们需要一个合作伙伴来完成。 让我们来看看这方面。
如果你之前曾用过Smartform,你会发现没有任何区别。 我们只需要使用接口参数将数据传递给表单。 并且调试也和Smartform类似。
*&---------------------------------------------------------------------*
*======================================================================*
* YRAM_ADOBE_FORM_PROGRAM1 *
*======================================================================*
* Project : SAP Adobe Forms Tutorial *
* Author : Ramanjula Naidu DARURU *
* Description : Driver Program to Print Adobe form *
*======================================================================*
REPORT yram_adobe_form_program1. TABLES : apb_lpd_otr_keys. **&&~~ Data Objects
DATA: gv_fm_name TYPE rs38l_fnam, " FM Name
gs_fp_docparams TYPE sfpdocparams,
gs_fp_outputparams TYPE sfpoutputparams. CONSTANTS : gv_form_name TYPE fpname VALUE 'YRAM_ADOBE_FORM1'. **&&~~ Selection Screen
*
PARAMETERS : p_text TYPE char30.
*&---------------------------------------------------------------------*
**&&~~ Form Processing: Call Form - Open
*
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = gs_fp_outputparams
EXCEPTIONS
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
" Suitable Error Handling
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Get the Function module name based on Form Name
*
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = gv_form_name
IMPORTING
e_funcname = gv_fm_name.
IF sy-subrc <> 0.
" Suitable Error Handling
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Take the FM name by executing the form - by using Pattern-
**&&~~ call that FM and replace the FM Name by gv_fm_name
*
**&&~~ Call the Generated FM
CALL FUNCTION gv_fm_name "'/1BCDWB/SM00000176'
EXPORTING
/1bcdwb/docparams = gs_fp_docparams
iv_text = p_text
* IMPORTING
* /1BCDWB/FORMOUTPUT =
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*&---------------------------------------------------------------------*
**&&~~ Form Processing: Call Form - Open
*
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
* EXCEPTIONS
* USAGE_ERROR = 1
* SYSTEM_ERROR = 2
* INTERNAL_ERROR = 3
* OTHERS = 4
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*&---------------------------------END----------------------------------*
让我们通过SE38使用驱动程序测试输出:

执行驱动程序并选择打印预览选项。输入字段在表单布局中正确显示,

希望你喜欢这篇简单的文章。 这只是Adobe Form的基础知识。 在下一篇文章(Adobe Form中的Form)中,我们将学习单词,然后开始使用这些ABC来构建句子。
配置
读者提问:在哪里配置驱动程序和关联的Adobe Form名称,从而事务中触发?
答案:t-code NACE==>选择应用程序。 例如:V3 ==> 按“Output type”按钮 ==> 选择输出类型。 例如:RD00 ==> 按“Processing Routines” ==> 在这里我们可以配置Medium / Program / Form Routine / Form / PDF-SmartForm Form。
在PDF-Smartform表单下,我们可以配置 adobe form。
在PP模块中——我们可以在事务OPK8中进行配置。
SAP Adobe Form 教程一 简单示例的更多相关文章
- ActiveMQ学习教程/2.简单示例
ActiveMQ学习教程(二)——简单示例 一.应用IDEA构建Maven项目 File->New->Module...->Maven->勾选->选择->Next ...
- SharpDX之Direct2D教程I——简单示例和Color(颜色)
研究Direct2D已经有一段时间了,也写了一个系列的文章 Direct2D ,是基于Windows API Code Pack 1.1.在前文 Direct2D教程VIII——几何(Geometry ...
- RecyclerView(5)官方教程带简单示例
Create Lists The RecyclerView widget is a more advanced and flexible version of ListView. This widge ...
- Python结合SAP GUI Script操作sap的简易教程
众所周知,如果要用Python做一些桌面WIN32应用的自动化工作,就需要用到著名的pywin32尤其是其中的win32com.client模块,pywin32的安装不能直接通过pip install ...
- Playmaker全面实践教程之简单的使用Playmaker示例
Playmaker全面实践教程之简单的使用Playmaker示例 简单的使用Playmaker示例 通过本章前面部分的学习,相信读者已经对Playmaker有了一个整体的认识和印象了.在本章的最后,我 ...
- Spring MVC 文件上传简单示例(form、ajax方式 )
1.Form Upload SpringMVC 中,文件的上传是通过 MultipartResolver 实现的,所以要实现上传,只要注册相应的 MultipartResolver 即可. Multi ...
- pureMVC简单示例及其原理讲解三(View层)
本篇说的是View层,即视图层,在本示例中包括两个部分:MXML文件,即可视控件:Mediator. 可视控件 可视控件由UserForm.mxml(图1)和UserList.mxml(图2)两个文件 ...
- adobe form
Call Adobe Form through ABAP Program 2015-04-24 0个评论 来源:ChampaignWolf的专栏 收藏 我要投稿 Scenar ...
- pureMVC简单示例及其原理讲解五(Facade)
本节将讲述Facade,Proxy.Mediator.Command的统一管家.自定义Facade必须继承Facade,在本示例中自定义Facade名称为ApplicationFacade,这个名称也 ...
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
随机推荐
- KingbaseES V8R3 备份恢复案例 -- sys_rman物理备份异机恢复
案例说明: 在生产环境通过sys_rman执行了物理备份后,需要在异机构建测试环境,本案例描述了通过物理备份异机恢复的详细过程及操作. 适用版本: KingbaseES V8R3 节点信息: [kin ...
- KingbaseES kdb_database_link客户端字符集导致的乱码问题
前言 关于我们经常见到的字符集乱码问题,很可能因为数据库服务器端的操作系统字符集和客户端字符集不一致导致的. 当我们通过kdb_database_link插件访问oracle数据库出现乱码,只需要调整 ...
- SQLSERVER 的表分区(水平) 操作记录1
--创建表格 (注意) 是唯一(NONCLUSTERED)表示 非聚集索引 CREATE TABLE [dbo].[UserInfo]( [Id] [int] IDENTITY(1,1) NOT NU ...
- #状压dp#C 计划带师
分析 状压dp显然,主要是字典序的问题, 考虑初态终态转换就可以保证字典序最小了 代码 #include <cstdio> #include <cctype> #include ...
- Android NDK之使用 arm-v7a 汇编实现两数之和
Android NDK之使用 arm-v7a 汇编实现两数之和 关键词: NDK armv7a WebRTC arm汇编 CMake 最近适配对讲程序,在webrtc的库编译的过程中,发现其为arm的 ...
- jcmd:JDK14中的调试神器
目录 简介 jcmd的语法 列出运行的JVM 打印stack信息 打印heap info 打印heap dump 统计heap使用情况 JFR功能 总结 简介 jcmd是JDK自带的调试工具,具有非常 ...
- C#中操作Excel
在GIS数据处理中,经常遇到与Excel的交互,这里进行简单的总结. Excel行列号就像是编辑中的二维数据组,操作Excel相当于操作二维数组.遍历.循环.取值.赋值-- 1.添加引用 添加引用也有 ...
- 深入了解图片Base64编码
title: 深入了解图片Base64编码 date: 2024/4/8 10:03:22 updated: 2024/4/8 10:03:22 tags: Base64编码 图片转换 HTTP请求 ...
- Maven——阿里云镜像
<mirror> <id>nexus-aliyun</id> <mirrorOf>*,!jeecg,!jeecg-snapshots</mirro ...
- HarmonyOS应用性能与功耗云测试
性能测试 性能测试主要验证HarmonyOS应用在华为真机设备上运行的性能问题,包括启动时长.界面显示.CPU占用和内存占用.具体性能测试项的详细说明请参考性能测试标准. 性能测试支持Phone和TV ...