SAP Adobe Form表单打印

Adobe Form介绍:

全局定义:

  • 全局数据:可以指定缺省值或在代码初始化中赋值,可以被集成到表单布局中。

  • 类型:用types声明的变量,无法集成到布局中。

  • 字段符号:可以作为全局字段用在相同位置,动态编程和加速内表处理时有用。

初始化:

  • 代码初始化:来自程序中的数据可以在发送到表单前被修改,注意输入输出的声明。

  • FORM例程:在初始化中可以调用在接口中创建的from子程序。

货币/数量字段:

  • 必须为表单中打印的金额和数量字段给出一个参考字段,类似se11创建金额或数量字段时指定的参考字段。(结构定义中引用的参考字段在PDF会报错提示不可用)。

Context页签被分为四个部分:

  • 接口:所有相关接口中的字段,也包括系统字段。可以拖放到上下文中

  • 上下文:所有从接口中拖过来的字段,也会包含一些附加元素(右键创建)。被用于布局中。

  • 接口字段的属性:双击接口中的字段可以查看。

  • 上下文元素的属性、细节、条件:双击上下文元素可以查看或者编辑。

不要在显示模式下修改布局,修改会在离开布局区域时丢失。 熟用面板Palettes功能。

  • 层次hierarchy面板:显示了所有包含在布局中的对象

  • 数据-视图data-view面板:所有活动的上下文节点中的对象都显示在这个面板中,可以通过拖拽将它们放到PDF中。

  • 库library面板:列出了可以包含在表单中的所有对象,也可以通过拖拽放在PDF中,如某个元素被多次使用,可以添加到库中,然后从库中拖拽。

  • 字段font和段落paragraph面板:可以调整字段或文本的字体及大小和对应文本的位置,设置文本与边框之间的边距。

  • 报告report面板:可以找到布局中字段的信息以及它们对上下文字段的映射,此外,当表单本地预览时警告也会显示在这里。

在创建一个对象的时候,主要通过数据-视图面板或库面板拖动到页面相对象的位置。

对象object面板(动态显示):

  • 点击某个字段,object会显示cell子面板:可以修改对象的类型,改成文本类型或者数字类型等。

  • 点击master page,object会显示master page和pagination子面板:可以修改页的尺寸及方向。

  • 点击subform page,object会显示subform、pagination和binding子面板。

  • 布局layout面板:修改字段在页面中的位置以及字段的宽度和高度,对于动态元素可以对高度和宽度选择扩展以适应来避免行消失。

  • 边框Border面板:设置边框显示或隐藏,设置背景填充。

  • 辅助Accessibility面板:设置table role。

重命名对象的时候,应该注意大小写,PDF是大小写敏感的。

  • 场所Form Locale:某个语言和国家的结合,会隐含了时间和日期格式以及小数点格式。

  • 表单运行中的脚本:JS和FormCalc,JS更适合于交互式场景,FormCalc更加适合打印场景,可以在default中设置默认的脚本语言,但是可以在某段独立脚本中使用另外一种。

  • 如果想要测试数据,但又不想激活表单或者每次输入数据,就可以在预览中输入一个文本文件。<DATA> </DATA>格式。

  1. 插入静态图像:可以从data-view或库里面拖放,对于静态图像,必须通过有效的URL指定它的定位。图像有三种尺寸:原始尺寸、缩放适应、扩展适应。

  2. 插入静态文本:文本会自动换行。如果想要强制换行,可以输入回车或者shift+回车,差别是前者将文本分成两个互相独立的段落,可以设置不同的字体和段落格式;后者仍然是一个单元。

  3. 插入几何图像:从库里直接拖拽即可,可以设置背景填充色等。

  4. 插入动态字段/图像:有些文本字段设计时如果不知道确切高度和宽度,就在布局面板的尺寸和位置下选择扩展以适应。

Master page

  • 每个表单至少要包含一个主页面。

  • 主页面上的对象会出现在所有的页体上,类似的公司logo什么的可以设置在主页面上。

  • 每个主页面必须包含一个内容区域(content area),它定义了供动态输出使用的大小,页体使用内容区域提供的空间。

  • 主页面对象object面板:

  • 页尺寸:A4,A5或者自定义等等。

  • 方向:纵向或横向。

  • 限制页面出现次数:主页面出现的次数。

Body page

  • 页体是动态内容的组织单元。

  • 标记页数pagination:设置页体在主页面中的位置,有点类似于smart forms中的窗口。

  • 页体类型:

  • Positioned:根据拖拽的实际位置插入。

  • Flowed:根据所占空间一个跟一个显示。

  • 允许内容中的换页:当内容超出表单容量时,是否自动添加新行换页。

对象模板:

  1. Field页签中的Appearance外观:文本字段的显示样子。

  2. Field页签中的允许多页:和layout中的扩展以适合联合起来用,如果没有设置,超出的长度部分不会显示,如果设置就会显示所有的行。

  3. Field页签中的长度限制:限制字符显示的长度。

  4. Field页签中的格式:日期、时间、数字等的格式,必要时用。

  5. Value页签中的类型:更交互型打印有关。

  6. Value页签中的default:如果字段没有数据绑定或数据绑定失效,就会使用缺省值。对于空字段无效。

  7. Binding页签中的Name:就是字段的名称。

  8. Binding页签中的data binding:所有动态字段必须有字段绑定,如果在是通过data-view拖拽过来的字段会自动绑定,绑定是大小写敏感的。

浮动字段:在静态文本中包含动态字段的时候使用,方法如下:

  1. 设置光标到希望插入浮动字段的位置。

  2. 选择 insert-floating field或右键-floating field。

  3. 选中浮动的字段,在对象面板下面的绑定中输入相应的数据绑定。

  4. 浮动字段自动就是文本字段,如果想要一个不同的类型可以在对象面板的字段选项卡中修改类型。

  5. 页号也可以作为浮动字段插入,右键-当前页编号或总页数。

Adobe Form创建教程:

T-CODE—SFP

  • 创建interface(界面接口)

 保存激活完成

  • 创建FORM表单

在context tab中,我们需要把输入的参数加入到context中,这个就是一个拖拽的动作

在Layout tab中,设计Form的显示

【Master Pages是为了插入固定logo抬头数据,Design View主要表单内容数据】

保存激活。

  • 编写代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

*&---------------------------------------------------------------------*

*& Report  ZBO_PDF_001

*&

*&---------------------------------------------------------------------*

REPORT  ZBO_PDF_001.

*定义Form的名字

data: lv_form_name type fpwbformname.

*定义得到的函数名字,这个函数就是form的接口

data: lv_fm_name type rs38l_fnam.

*定义打印参数

data: lwa_fp_params type SFPOUTPUTPARAMS.

*定义处理结果

data: lv_result type sfpjoboutput.

START-OF-SELECTION.

*取得函数的名字

  lv_form_name = 'ZBOBO_PDF_DEMO_HELLOWORLD'.

  CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'

    EXPORTING

      I_NAME     = lv_form_name

    IMPORTING

      E_FUNCNAME = lv_fm_name.

* 这个是RFC的名字

  lwa_fp_params-connection = 'ADS'.

* 打开一个打印job

  CALL FUNCTION 'FP_JOB_OPEN'

    CHANGING

      IE_OUTPUTPARAMS = lwa_fp_params

    EXCEPTIONS

      CANCEL          = 1

      USAGE_ERROR     = 2

      SYSTEM_ERROR    = 3

      INTERNAL_ERROR  = 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.

*调用真正的form接口函数

  CALL FUNCTION lv_fm_name

    EXPORTING

      im_string = 'Hello World!'.

* 关闭打印job

  CALL FUNCTION 'FP_JOB_CLOSE'

    IMPORTING

      E_RESULT       = lv_result

    EXCEPTIONS

      USAGE_ERROR    = 1

      SYSTEM_ERROR   = 2

      INTERNAL_ERROR = 3

      OTHERS         = 4.

  IF SY-SUBRC <> 0.

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.

分页:将每页subform设置成Flowmed

笔记记录不易,希望有帮助到你,谢谢关注阅读!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值