您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SAP_Dialog开发教程之Table_Control开发(PDF30页)
EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第1页共30页SAPDialog开发教程之TableControl开发一、创建主程序..............................................................................................................................................21.定义程序相关数据类型......................................................................................................................3(1)定义TableControl的数据来源......................................................................................3(2)定义与TableControl控制相关的数据变量..................................................................32.定义主程序的数据屏幕处理逻辑......................................................................................................4二、创建承载TableControl的子屏幕.....................................................................................................51.给子屏幕添加TableControl控件.................................................................................................5(1)使用“表控制”工具手动创建TableControl...............................................................7(2)使用“表控制向导”来自动创建TableControl.........................................................132.给子屏幕添加OK_CODE屏幕元素..............................................................................................193.给子屏幕添加PBO和PAI追加表控制循环.................................................................................194.实现TableControl与ABAP程序的数据交换...........................................................................205.设置屏幕的GUI状态和标题..........................................................................................................216.实现用户动作响应USER_COMMAND........................................................................................23(1)实现编辑状态切换.............................................................................................................24(2)实现增加行.........................................................................................................................24(3)实现删除行.........................................................................................................................25(4)实现升序排序.....................................................................................................................25(5)实现降序排序.....................................................................................................................267.本例最终实现效果............................................................................................................................26三、本教程用例完整源码...........................................................................................................................27EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第2页共30页一、创建主程序TableControl既可以用于报表程序,也可以用于模块池程序。本教程场景基于报表程序,且不设置选择屏幕,从系统表Sflight查询到数据后,直接进入带有TableControl的屏幕中进行数据显示。使用T-Code:SE38创建报表程序ZTEST_ZH02,程序类型选择“可执行程序”,维护完程序描述信息后,点击编码界面的“显示对象列表”按钮,进入到带有资源库浏览器的界面(即SE80界面)。分别如下3图所示:EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第3页共30页1.定义程序相关数据类型(1)定义TableControl的数据来源这里以演示为主,就直接引用系统现有数据表SFLIGHT的前几个字段,创建一个类型、工作区和内表,这里的内表就是要用于TableControl数据展示的数据源。具体定义如下(本教程的所有源码会以附件形式附在文末):(2)定义与TableControl控制相关的数据变量有过Dialog开发经验的读者应该知道,ABAP程序与Dialog屏幕进行数据交换的方式,其实就是通过在程序中定义一个与Dialog中同名的全局变量或者结构,从而实现数据的自动传递。这里要与自屏幕中的TableControl控件进行数据交互,也需要在程序中声明一个类型为TABLEVIEW的Controls,并且传入子屏幕,这里以屏幕0100为例。同时为了控制表格中字段的输出属性,这里还需要定义一个结构,参考CXTAB_COLUMN,这个结构中包含一个叫做screen的字段,而这个Screen就和我们屏幕上的Screen一样,包含了Tablecontrol中所有的屏幕元素。EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第4页共30页2.定义主程序的数据屏幕处理逻辑报表程序的屏幕逻辑是在START‐OF‐SELECTION中进行的。本演示程序主逻辑是先取数,再定义tablecontrol的默认输出状态为不可编辑,最后调用子屏幕0100输出数据,具体代码如下:其中前两个函数的代码示例如下:这里之所以在子屏幕调用之前设置tablecontrol的屏幕元素为不可编辑状态,是因为Tablecontrol中的屏幕元素默认是可以编辑的,这个不符合我们报表查询的习惯,一般报表默认是不可以修改的。并且这个函数不能在0100的PBO事件中调用,否则每一次屏幕刷新后,tablecontrol中的元素都会变成不可编辑。EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第5页共30页二、创建承载TableControl的子屏幕TableControl作为Dialog中常用的一种屏幕元素,一般会布局在子屏幕的一部分,所以需要单独创建一个子屏幕来承载TableControl控件。创建子屏幕的方法,有很多,最简单的办法就是双击“CALLSCREEN100”中的“100”,就会弹出创建提示,也可以在SE80的试图下,右击左侧的程序名‐》创建‐》屏幕。输入屏幕编号“0100”后,就创建了一个空白的子屏幕。1.给子屏幕添加TableControl控件双击左侧程序属性结构中“屏幕”节点下的0100屏幕,可以激活屏幕属性界面,然后点击上方工具栏中的“格式”按钮,就可以进入画屏界面。EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第6页共30页在屏幕制作器界面,点击工具栏上的“修改”按钮,激活左侧控件工具箱。在控件工具箱中提供了两个创建的TableControl的按钮,如下图所示:下面将分别以这两个按钮来说明本教程中所需要用到TableControl的创建过程。EDITBYZohooZhouDOCNo.APAP‐JC‐2017082601TITLESAPDialog开发教程之TableControl开发DATE2017/8/26PAGE第7页共30页(1)使用“表控制”工具手动创建TableControl点击“表控制”按钮,将光标移到画布的左上角,按住鼠标左键,向右下方拖拽出一个区域,这个区域就是tableControl的区域(这个区域后面还可以调整大小),松开鼠标后,控件被激活,维护控件的名称,回车后控件生成。再双击控件右上角的表格按钮,可以调出TableControl的属性设置窗口。以下为表控制属性的描述信息:关键字作用带列标题勾选此选项,则会在给表格的每个列都生成一个标题,此标题需要手动添加文本元素进去可配置的激活表控制的设置按钮含标题勾选此选项,则会在表格上方单独生成一行标题,需要手动添加文本元素进行描述调整大小允许用户通过拖拽来改变表格的整体大小,分为允许垂直方向和水平方向两种,可同时选分隔符即显示表格单元格的边框,分为垂直方向和水平方向两种,可同时勾选行选定行选的方式,分为三种:不允许、允许单行、允许多行,三选一列选定列选择方式,分为三种:不允许、允许单列、允许多列,三选一带选择列是否包含选择
本文标题:SAP_Dialog开发教程之Table_Control开发(PDF30页)
链接地址:https://www.777doc.com/doc-13750 .html