1, 业务场景介绍

自定义表“全国商超主数据表”是用来保存公司入驻的商超,数据是随着业务的增长添加的。所以需要做一个对话框式的应用交付渠道主管部门,当有新商超的时候,他们自行添加。这样就有了下面的例子,利用SAP dialog开发的表格控件(Table Control)完成数据的批量输出或输入。

2, 定义table control用内表

Tcode:se38,新建程序:Z_INPUT_SAMPLE

【转载】屏幕开发:创建TABLE CONTROL教程

定义内表IT_ITAB

 

1

2

3

4

5

6

7

8

9

REPORT  Z_INPUT_SAMPLE.  

TABLES:ZMARKET_MESSAGE.  

DATA: BEGIN OF IT_ITAB OCCURS 0,  

      CHK TYPE C,  

      SUPPERID LIKE ZMARKET_MESSAGE-SUPPERID,  

      SUPPER LIKE ZMARKET_MESSAGE-SUPPER,  

      MARKETID LIKE ZMARKET_MESSAGE-MARKETID,  

      MARKET LIKE ZMARKET_MESSAGE-MARKET,  

      END OF IT_ITAB.

 

3, 创建屏幕

我们可以用Tcode:SE51来实现Screen的创建和维护,当然使用该工具需要提供刚建的程序名及Screen编号。

注意:1000为SAP预留屏幕号,这里自定义的屏幕号必须定义1000以外的其他数字,且最多不能超过4位,本例定义屏幕号为100.

【转载】屏幕开发:创建TABLE CONTROL教程

点击创建后,进入Screen设置界面。界面分3个部分,如下面的图

属性tab页,

【转载】屏幕开发:创建TABLE CONTROL教程

元素清单tab页,

【转载】屏幕开发:创建TABLE CONTROL教程

逻辑流tab页,

【转载】屏幕开发:创建TABLE CONTROL教程

也可以使用Tcode:SE80来创建Screen

【转载】屏幕开发:创建TABLE CONTROL教程

【转载】屏幕开发:创建TABLE CONTROL教程

指定next screen

【转载】屏幕开发:创建TABLE CONTROL教程

设定OK code

【转载】屏幕开发:创建TABLE CONTROL教程

进入屏幕制作页面,

【转载】屏幕开发:创建TABLE CONTROL教程

4, 创建Table control控件

点击table control图标,进入wizard

【转载】屏幕开发:创建TABLE CONTROL教程

绘制一表格区域,系统将弹出表格创建向导,如下:

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,在Name of table control这里输入屏幕表格元素名称,例如:T_TEST

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,在Internal program talbe 处按F4会自动出现刚我们创建的内表IT_ITAB.

Table work area也是如此。加入进去。

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,可以看到我们定义内表的Field,多选需要input数据的这几行。

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,因为我们要写入表格,所以单选Input control。With column headers是设置是否显示每栏的标题,CHK这个字段就是我们内表中第一个字段,就是为在此出现特别定义的。按F4会自动加显示出来

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,看到3个复选框,第一个是:是否滚动,第二个是:是否自动加载增加和删除按钮,第三个是:是否增加全选和全不选按钮,我们这里都选中,这样向导会自动加载程序代码,省事省力省时。

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,下面这些,可以保持默认就可。

【转载】屏幕开发:创建TABLE CONTROL教程

单击:继续,最后一步,点击:complete,至此用向导就将Table control画好了。

【转载】屏幕开发:创建TABLE CONTROL教程

双击标签栏的字段,出现属性窗口,更改下名称。

【转载】屏幕开发:创建TABLE CONTROL教程

【转载】屏幕开发:创建TABLE CONTROL教程

5, 添加代码

最后保存**。再回到我们的代码,发现通过向导建Table Control给我们做了很多便利的事情,如图,生成了方法,区分了类别。还生成不少代码。

【转载】屏幕开发:创建TABLE CONTROL教程

回到ABAP编辑界面,我们给代码中加几句:

【转载】屏幕开发:创建TABLE CONTROL教程

保存**后,就可以看到如下效果:你会发现状态栏的按钮都不起作用。接下来,我们来设计它,让它起作用。

在逻辑流里将这两段被注释的语句解封。

【转载】屏幕开发:创建TABLE CONTROL教程

然后双击:STATUS_0100,创建该对象

【转载】屏幕开发:创建TABLE CONTROL教程

在出现的对话框中选择第二项提交。

【转载】屏幕开发:创建TABLE CONTROL教程

【转载】屏幕开发:创建TABLE CONTROL教程

点击是,界面转到ABAP编辑界面,出现如下代码:

【转载】屏幕开发:创建TABLE CONTROL教程

将 SET PF-STATUS 'xxxxxxxx'.SET TITLEBAR 'xxx'.解封,并重命名。

【转载】屏幕开发:创建TABLE CONTROL教程

双击重命名后的名称:ZCREEN0100 创建该对象

【转载】屏幕开发:创建TABLE CONTROL教程

【转载】屏幕开发:创建TABLE CONTROL教程

点击确定后,系统带我们进入如下界面:

【转载】屏幕开发:创建TABLE CONTROL教程

将功能键区打开,我们可以看到我们经常看到的图标都在此聚集着

【转载】屏幕开发:创建TABLE CONTROL教程

在每个icon图标上方命名

【转载】屏幕开发:创建TABLE CONTROL教程

然后再双击每一个icon图标进行设置

【转载】屏幕开发:创建TABLE CONTROL教程

完成后保存**。这时你会发现右边树形结构处多了一栏。

【转载】屏幕开发:创建TABLE CONTROL教程

进入PAI模块的T_TEST_USER_COMMAND,双击进去,在后面的代码栏输入如图代码。

【转载】屏幕开发:创建TABLE CONTROL教程

保存**后,再运行状态栏这行就可以正常使用了。

【转载】屏幕开发:创建TABLE CONTROL教程

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-29
  • 2021-11-30
  • 2021-05-21
  • 2022-12-23
  • 2021-07-01
猜你喜欢
  • 2022-01-19
  • 2021-12-26
  • 2021-10-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案