如何在表控件中选择一行

2020-08-31 16:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨..

我们创建了一个表格控件,并给了一个选择的小格作为itab标记,

但是在运行prog itab-mark ='x'时没有任何值。

它显示的是最后一行而不是所选行...

对于abap来说我们还很陌生,有人会尽快向我们说明。

感谢你。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨..

我们创建了一个表格控件,并给了一个选择的小格作为itab标记,

但是在运行prog itab-mark ='x'时没有任何值。

它显示的是最后一行而不是所选行...

对于abap来说我们还很陌生,有人会尽快向我们说明。

感谢你。

付费偷看设置
发送
10条回答
一只江湖小虾
1楼-- · 2020-08-31 16:45

嗨,

选中此链接。将帮助您进行选择。

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/table abap.pdf

中进行控制

如果有帮助,请点击回复左侧的星号以奖励积分。

消息的编辑者:Jayanthi Jayaraman

土豆飞人
2楼-- · 2020-08-31 16:59

嗨,

此程序代码可能会为您提供帮助。它的工作方式也与您提到的相同。请尝试通过修改代码来实现您的代码。

控件名称

标志

等等。

在此示例中,查看以下程序中的PBO和PAI以及最后一个模块。其有关标记了哪个元素的信息

输出前的过程。

模块状态_0120。

模块auswahl_ferti_change_tc_attr。

用it_temp_fauf环绕

控制auswahl_ferti

光标auswahl_ferti-current_line。

模块fill_table_control。

ENDLOOP。

呼叫用户区域1,包括sy-repid号1。

*

输入后处理。

在it_temp_fauf处滚动。

FIELD it_temp_fauf-flag

MODULE tabcon_mark开启。

模块read_table_control。

ENDLOOP。

呼叫订阅者:area1。

MODULE user_command_0120。

*&----


*

*&模块STATUS_0120输出

*&----


*

  • 文字

* ----


*

MODULE status_0120 OUTPUT。

将PF状态设置为'120'。

设置标题栏" ENTNAHMEDETAIL1"。

ENDMODULE。 " STATUS_0120输出

* TABLECONTROL'AUSWAHL_FERTI'声明的声明

控件:使用屏幕0120的auswahl_ferti类型表。

* DATA:g_auswahl_ferti_lines像sy-loopc。

----


  • 模块AUSWAHL_FERTI_CHANGE_TC_ATTR输出

----


*

----


模块auswahl_ferti_change_tc_attr输出。

描述表it_temp_fauf行auswahl_ferti行。

ENDMODULE。 " AUSWAHL_FERTI_CHANGE_TC_ATTR输出

----


  • 模块AUSWAHL_FERTI_GET_LINES输出

----


*

----


*

MODULE auswahl_ferti_get_lines输出。

  • g_auswahl_ferti_lines = sy-loopc。

ENDMODULE。 " AUSWAHL_FERTI_GET_LINES输出

*&----


*

*&模块FILL_TABLE_CONTROL输出

*&----


*

  • 文字

* ----


*

MODULE fill_table_control输出。

读取表it_​​temp_fauf INTO/cmd/wa_s_fauf

索引auswahl_ferti-current_line。

ENDMODULE。 " FILL_TABLE_CONTROL输出

*&----


*

*&模块read_table_control INPUT

*&----


*

  • 文字

* ----


*

模块化read_table_control输入。

行= sy-loopc。

从/cmd/wa_s_fauf索引修改it_fauf

auswahl_ferti-current_line。

ENDMODULE。 " read_table_control INPUT

*&----


*

*&模块USER_COMMAND_0120输入

*&----


*

  • 文字

* ----


*

MODULE user_command_0120输入。

save_ok = ok_code。

清除ok_code。

CASE save_ok。

当"返回"时。

呼叫屏幕100。

退出时。

离开计划。

"取消"。

呼叫屏幕100。

当'F5'时。

环聊it_aus_pos。

删除it_aus_pos。

ENDLOOP。

  • 移动选定订单的相应字段。

SELECT * FROM resb WHERE rsnum = afko-rsnum。

将对应移动到it_aus_pos。

SELECT *从MATN处= it_aus_pos-matnr。

将移动对应到it_aus_pos。

ENDSELECT。

APPEND it_aus_pos。

ENDSELECT。

呼叫屏幕120。

结束。

ENDMODULE。 " USER_COMMAND_0120输入

*&----


*

*&模块TABCON_MARK输入

*&----


*

  • 文字

* ----


*

模块tabcon_mark输入。

修改it_temp_fauf

索引auswahl_ferti-current_line

运输标志。

如果it_temp_fauf-flag ='X'。

temp_aufnr = it_temp_fauf-aufnr。

选择单* *从afko中,aufnr = temp_aufnr。

ENDIF。

ENDMODULE。 " TABCON_MARK INPUT

N-Moskvin
3楼-- · 2020-08-31 16:47

你好奈良岛。

这是我们的逻辑...

在输出之前进行处理。

模块状态_0100。

使用控制tc光标tc-current_line在itab上循环。

模块fill_table_control。

模块SET_SELECTED_ROW。

结束循环。

输入后进行处理。

在itab上循环。

模块read_table_control。

字段ITAB标记MODULE GET_SELECTED_ROW。

结束循环。

模块user_command_0100。

小熊yu生菜
4楼-- · 2020-08-31 16:43

输出之前的过程。

步骤1-声明ABAP变量以存储行选择指示器。 数据:标记类型C。
 步骤2-将创建的变量分配给dynpro表控件。


 步骤3-修改对话框屏幕按顺序排列逻辑以捕获用户的线路选择。
 输出之前进行处理。
 * MODULE STATUS_0100。
   模块data_retrieval。
   使用控件TC100在it_ekko循环到wa_ekko。
     模块populate_screen。
   结束循环。
 *

 输入后的过程。
   在it_ekko循环。
        模块update_table。
      结束循环。
 * MODULE USER_COMMAND_0100。
 

 要创建模块update_table,请双击它,然后在下一个弹出窗口中选择yes。 确保创建了一个新的包含项来容纳所有PAI模块(默认),然后按Enter。

 现在,将以下ABAP代码插入此PAI模块!
 *&------------------------------------------------  --------------------- *
 *&模块update_table INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模块update_table输入。

 将表it_ekko读入wa_ekko索引tc100-CURRENT_LINE。
  如果不是,则标记为初始。
    wa_ekko-SEL ='X'。
    从wa_ekko索引tc100-CURRENT_LINE修改it_ekko。
  万一。

 终端模块。
 


 

一周热门 更多>