SMARTFORMS使用Template绘制表单
SMARTFORMS
- 设置样式
- 设置表单
- 程序调用
设置样式
输入样式名创建样式
根据需求设置文本格式
居中:设置对齐方式为定中心并添加描述即可。
设置字体:根据需求设置即可
设置表单
创建表单
表单绘制
根据需要创建窗口,可在查看创建的窗口。
在创建的窗口下创建Template模板
在模板中绘制表格
注意模板宽度不得超过窗口宽度,否则会提示模板不适合窗口,从1-2表示第一行和第二行共用一个模板。
绘制结果如下
加入文本
在文本界面可以更改显示文字,&**&符号表示传入的数据
输出结构表示在Template中显示的位置,如图为14行2列
数据接受
在智能表中接受数据需要在表格接口中定义一个内表
在全局定义中定义相应的工作区
程序调用
FORM FRM_DATA_PRINT .
DATA:GT_OUTPUT_FM TYPE TABLE OF ZT187386_SF22_01,
GS_OUTPUT_FM TYPE ZT187386_SF22_01.
LOOP AT GT_SF INTO GS_OUTPUT_FM.
APPEND GS_OUTPUT_FM TO GT_OUTPUT_FM.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZSF22_187386_01' "填写创建的smartform的名字
IMPORTING
FM_NAME = G_FM "功能模块的名字
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CONTROL_PARAMETERS-NO_DIALOG = 'X'.
CONTROL_PARAMETERS-PREVIEW = 'X'.
CALL FUNCTION G_FM
EXPORTING
CONTROL_PARAMETERS = CONTROL_PARAMETERS
* GV_DT = GV_DT
TABLES
GT_OUTPUT = GT_OUTPUT_FM " GT_OUTPUT这个名字是smartform里面表格接口里面的内表的那个名字
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
ENDFORM.
执行结果
-LE0N: Check是验证数据的有效性,如果成功倒是没啥,就怕是失败了,如果失败了也会创建一个单号,这笔数据就会占用这个单号,我们在正式POST之前Check就会避免错误数据占用单号的情况。
cgwkx: 大佬能不能讲下财务开发CHECK的原因和使用场景,谢谢。
mikann221: 重新试了一下 就是会出现您在文章中提到的error 给idpop付了空值 但是还是报错
-LE0N: 你说的空值是指的在调用这个bapi时的EXPORTING部分不写i_dpop吗?如果是这样报错的,原因是se37中查看这个参数会发现这个参数不是可选的(optional),也就是必须写的,如果不写就会dump,可以提供一下具体dump信息吗,以便可以具体分析。
mikann221: 您好 使用这个bapi idpop空值时会出现 short dump 请问您知道为什么吗