2020-08-23 14:03发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我创建了一个表控件,其中所有字段都是可编辑的。 我创建了一个复选框,以便可以仅选择要编辑或删除的那些记录。 现在,我的要求是,当我选择一个记录并单击取消激活按钮(我已经创建了用于删除,编辑和取消激活的按钮)时,应取消激活整个记录或以显示模式显示整个记录,以便不能再选择同一记录来 编辑或删除。
我尝试在论坛中搜索,但无法解决相同的问题。
预先感谢
您好,
您正在将内部表中的记录填充到表控件中,在屏幕的PBO中。
在,您需要在此处编写逻辑以考虑复选框的值。
您需要像下面的代码一样修改屏幕:
环视屏幕。 "检查条件以停用 屏幕输入='0'。 结局。
您也可以在此搜索sdn。
希望这对您有所帮助。
处理流程为:
屏幕的PBO,由于未单击复选框,因此此时不会停用任何东西。
然后是PAI,您需要在内部表中保存复选框的值。
现在再次执行PBO,现在此复选框值将决定是否激活记录。
您错过了将复选框值保存在PAI的内部表中的功能。
希望这个帮助您。
我希望此链接能为您提供帮助
[停用表控件中的单行;
http://wiki.sdn.sap.com/wiki/display/ABAP/Module Pool basics
"停用"时
按钮,将表行索引读入tabcon-cols。
使用索引读取该行并使其不可见。
示例代码隐藏到第3行。
隐藏列
要隐藏列,我们将使用结构CXTABA_CONTROL的INVISIBLE字段并将其值设置为" X"。
例如 隐藏第3列。
类似于tab-con-COLS的数据行。
读取表tab_con-COLS INTO col WHERE索引=3。" tab_con是名称
"的表格控件。
col-INVISIBLE = 3。
从col索引3修改tab-con-COLS。
禁用输入
要禁用/启用列的字段,我们将使用
结构CXTAB_COLUMN并将其值设置为0或1。
例如 禁用表控件第3列的输入。
数据行类似于tab_con-COLS。
读取表tab_con-COLS INTO col索引3。
col-SCREEN-INPUT = 0。
从col索引3修改tab_con-COLS。
致谢
sarath
Hi Priti,
使用Table Control获得所需的输出有点困难,可以使用OO ALV来实现。 如果可能的话,请使用OOALV代替TC。
请注意,
Kumar M
嗨,
用控制tc在itab上循环。 模块Modify_screen。 "如果将循环放在此模块的屏幕上,则该行将可编辑/更改为禁用模式 尽头。 在程序中。 模块Modify_screen。 好的 当" MOD"。 "您的修改确定代码 环视屏幕。 如果jtab-mark ='X'。 如果屏幕名称='JTAB-MATNR'。 "您可以将屏幕组用于要编辑的字段 "为所有关键字段分配一个GRP1,为其他字段分配GRP2 "如果screen-group2 ='GRP2'。"属于GRP2的所有屏幕将在此处修改 屏幕输入= 0。 修改屏幕。 万一。 其他。 如果SCREEN-NAME ='JTAB-MATNR'。 屏幕输入= 1。 修改屏幕。 万一。 结局。 清除jtab-mark。 修改jtab索引sy-tabix。 "这将清除表控件的行选择器 "如果您不想删除它。 结束。 终端模块。 在PAI中 在itab循环播放。 模块Modify_tab。 "在顶部包括 数据:jtab的开头出现0, 标记类型c, matnr类型matnr, maktx类型maktx, jtab的结尾。 "不要忘记在W/SelColumn控件的screenpainter中输入JTAB-MARK 在节目中 模块modify_tab。 描述表jtab行tc行。 修改jtab索引tc-current_line。 "这会将选定的行传送回程序的内部表 ENDMODULE。 结束循环。 " 祝你们所有人新年快乐 "这是一个经过测试的程序,可以在我的系统中正常工作
Cheerz
Ram
您可以使用语句LOOP AT spfli_tab INTO spfli WITH CONTROL flight_tab来做到这一点。
示例:
在输出之前进行处理。模块化prepare_tab。将spfli_tab放到带有控制flight_tab的spfli中。
模块disable_row。 "您可以在屏幕上的语句循环和screen-input = 0的情况下,在模块disable_row中编写逻辑。
ENDLOOP。输入后处理。在spfli_tab上循环。 MODULE Modify_tab。 ENDLOOP。
最多设置5个标签!
您好,
您正在将内部表中的记录填充到表控件中,在屏幕的PBO中。
在,您需要在此处编写逻辑以考虑复选框的值。
您需要像下面的代码一样修改屏幕:
您也可以在此搜索sdn。
希望这对您有所帮助。
处理流程为:
屏幕的PBO,由于未单击复选框,因此此时不会停用任何东西。
然后是PAI,您需要在内部表中保存复选框的值。
现在再次执行PBO,现在此复选框值将决定是否激活记录。
您错过了将复选框值保存在PAI的内部表中的功能。
希望这个帮助您。
我希望此链接能为您提供帮助
[停用表控件中的单行;
http://wiki.sdn.sap.com/wiki/display/ABAP/Module Pool basics
"停用"时
点击按钮,将表行索引读入tabcon-cols。
使用索引读取该行并使其不可见。
示例代码隐藏到第3行。
隐藏列
要隐藏列,我们将使用结构CXTABA_CONTROL的INVISIBLE字段并将其值设置为" X"。
例如 隐藏第3列。
类似于tab-con-COLS的数据行。
读取表tab_con-COLS INTO col WHERE索引=3。" tab_con是名称
"的表格控件。
col-INVISIBLE = 3。
从col索引3修改tab-con-COLS。
禁用输入
要禁用/启用列的字段,我们将使用
的字段SCREEN-INPUT结构CXTAB_COLUMN并将其值设置为0或1。
例如 禁用表控件第3列的输入。
数据行类似于tab_con-COLS。
读取表tab_con-COLS INTO col索引3。
col-SCREEN-INPUT = 0。
从col索引3修改tab_con-COLS。
致谢
sarath
Hi Priti,
使用Table Control获得所需的输出有点困难,可以使用OO ALV来实现。 如果可能的话,请使用OOALV代替TC。
请注意,
Kumar M
嗨,
在PBO中Cheerz
Ram
您可以使用语句LOOP AT spfli_tab INTO spfli WITH CONTROL flight_tab来做到这一点。
示例:
在输出之前进行处理。
模块化prepare_tab。
将spfli_tab放到带有控制flight_tab的spfli中。
模块disable_row。 "您可以在屏幕上的语句循环和screen-input = 0的情况下,在模块disable_row中编写逻辑。
ENDLOOP。
输入后处理。
在spfli_tab上循环。
MODULE Modify_tab。
ENDLOOP。
一周热门 更多>