PDF Form (2) --- 创建显示任意多行数据的动态Table
来源:互联网 发布:淘宝的视频怎么保存 编辑:程序博客网 时间:2024/05/29 16:33
创建一个可以显示任意多行数据的table
第一步:定义structure ZTABEETEST_STRUCT
第二步:定义table type :ZTESTF01_TABLE
它所对应的Line type为第一步创建的structure ZTABEETEST_STRUCT
第三步:定义structure : ZTESTF01_DATA
它含有两个component,第一个为comp1,第二个为第二步创建的table type ZTESTF01_TABLE
第四步:t-code:SFP 中创建一个interface ZTESTIF01,并激活
如下图所示,指定它的输入参数名称为:IM_DATA,类型为第三步创建的structure ZTESTF01_DATA
第五步:t-code:SFP 中创建一个Form: ZTESTIF01_FORM
(1)指定它的interface为第四步创建的interface ZTESTIF01
(2)在context标签页中,拖拽左侧的interface中的import:IM_DATA,到右侧的context中
第六步:创建动态的table
(1)如下图所示:在Layout标签页,左侧找到Data View,这个地方显示了Form中Context指定的参数的结构。找到要绑定到动态table中的内表,TABEE。
(2)右键TABEE->Options->勾选Allow Tables to Be Generated
如果要创建的动态Table是带有header的,可以勾选Create A Header Row for Any Table。
然后拖拽TABEE到Design View标签页效果如下图所示:
第七步:激活并测试我们创建的Form.
效果如下图所示:
第八步:在abap程序中调用该Form
REPORT ZTEST06.
*定义Form的名字
data: lv_form_name type fpwbformname.
data: form_data type ZTESTF01_DATA .
data: form_data_table_struc type ZTABEETEST_STRUCT.
form_data-COMP1 = 'comp1'.
data : name1 type string.
data: idx type string.
do 200 times.
idx = sy-index.
concatenate 'partno-' idxintoname1.
form_data_table_struc-PARTNO = name1.
append form_data_table_struc to form_data-TABEE.
enddo.
*定义得到的函数名字,这个函数就是form的接口
data: lv_fm_name type rs38l_fnam.
*定义打印参数
data: lwa_fp_params type SFPOUTPUTPARAMS.
*定义处理结果
data: lv_result type sfpjoboutput.
START-OF-SELECTION.
*取得函数的名字:根据Form的名称lv_form_name ,调用函数FP_FUNCTION_MODULE_NAME得到的
lv_form_name = 'ZTESTIF01_FORM'.
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-MSGIDTYPESY-MSGTYNUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*调用真正的form接口函数
CALL FUNCTION lv_fm_name
EXPORTING
im_data = form_data.
* 关闭打印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-MSGIDTYPESY-MSGTYNUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
运行该程序得到的效果如下图所示,也就是说,可以将table中的数据显示出来了。
注意:
(1)要显示的动态table,必须是放在Design View中的,不可以放在Master Page 中
(2)Master Page中至少要有一个Context Area
(3)要显示的动态table,不仅要放在Design View中,还要放在其中的Context Area中
(4)table相关的属性如下图所示:
Allow Page Breaks within Context --- 这个必须打勾,否则将不能分页显示所有的数据
- PDF Form (2) --- 创建显示任意多行数据的动态Table
- 原生态 JavaScript 动态创建任意行数和列数的表格简单脚本 (简单Table ,object)
- 用js动态添加form的行数
- 记录手动处理form表单中对table表格中的行数据的收集
- 读取任意行数据
- table动态增加删除行数
- 检测动态table的行数,可判断非空
- PHP,Form提交多行数据处理
- Struts1 table提交多行数据
- PDF Form中显示页面
- strut,jsp动态添加table行,绑定table行数据到formbean
- 动态设置textview显示行数
- easyui-datagrid的detailview扩展动态显示行数据详细内容(C#MVC)
- 动态显示,隐藏Table的tr
- 动态创建form
- 动态创建TABLE的行与列
- 创建操作/删除多行数据的UITableView的细节
- 创建操作/删除多行数据的UITableView的细节
- Special Purpose Vehicle/Entity - SPV/SPE(Legal Vehicle)
- 打印当前页面
- iPhone UI 元素大小
- 香港经典古装电视剧
- MT6573 1048MP 版本发布(笔记)
- PDF Form (2) --- 创建显示任意多行数据的动态Table
- 最全最全的文件扩展名
- 正则表达式规则(全)
- Asp.Net 构架(HttpModule 介绍)
- 解决phpmyadmin上传文件大小限制的配置方法
- 正则表达式去除a标签和img标签源码
- 透视MySQL数据库之更新语句
- qinqijinqinqijinqinqijinqinqijin
- PHP+OCI访问Oracle数据库时的字符集设置--sqlplus乱码解决