点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
交易代码:CV04N
转到"对象链接"标签>供应商>按F4
它将显示搜索帮助KRED_C(然后显示KRED_T)。 基本搜索帮助KREDI(按国家(地区)/公司代码分类的供应商)仅允许一个选择。 我的要求是启用多个选择。
我所做的事情被复制到ZKREDI中,并在搜索帮助出口中启用了多项选择功能(callcontrol-multisel ='X')。 现在出现复选框以选择多个值。 现在,RECORD_TAB将显示选中的记录,具体取决于选中了多少框。 但是,仅显示最后一条记录。
在屏幕截图中,我选择了5条记录。 但是,只有最后一条记录将显示在左侧表格控件"供应商"中
搜索帮助退出伪代码
检查系统代码EQ'CV04N'。
*如果您不想执行此步骤,请立即退出
IF callcontrol-step <>'SELONE'AND
callcontrol-step <>"选择"并
callcontrol-step <>'RETURN'AND
callcontrol-step <>'DISP'。
退出。
ENDIF。
"启用多项选择
callcontrol-multisel ='X'。
IF callcontrol-step ='RETURN'。
ENDIF。
问题:
如何在屏幕上返回多个选择的值?
cvo4n-zkredi.jpg (107.1 kB)
callcontrol-multisel的值由搜索帮助的调用者提供,而不是由搜索帮助提供。 现在,准备一份小报告,进行价值一千字的测试
您应该能够将SAP交付的KREDI用于select-options,并使用多选,但不能用于参数。 你能得出什么结论?
...
在您的情况下,搜索帮助将无法填充其他字段,因此您必须在PROCESS ON VALUE REQUEST块中进行显式处理。 使用FM F4_FIELD_ON_VALUE_REQUEST通过参数SEARCHHELP和MULTIPLE_CHOICE调用搜索帮助,使用返回的RETURN_TAB记录更新dynpro字段。
NB:别忘了处理DYPN_GET_STEPL返回的值来处理STEPL字段以填充表控件。
请参见下面的示例代码
DDSHRETVAL的DATA:LT_DDSHRETVAL类型标准表,
类型DYNPREAD。
双 > STEPL_NOT_FOUND = 10
。
-FIELDVALUE是INITIAL。
- FIELDVALUE = LS_DDSHRETVAL-FIELDVAL。
LVSH_IN TYPE I的LS_DDSHRETVAL类型DDSHRETVAL,
DATA_LTNPDYDYREAD类型的标准表DYNPREAD,
LS_DYNPREAD类型的标准表。 >
字段符号:
呼叫功能'F4IF_FIELD_VALUE_REQUEST'
导出
TABNAME ='MAKT'
FIELDNAME ='MAKTX'
SEARCHHELP ='ZDEMO_MSH'
表
RETURN_TAB = LT_DDSHRETVAL
例外情况
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
其他=5。
将LT_DDSHRETVAL循环到LS_DDSHRETVAL。
清除GS_MAKT。
GS_MAKT-MAKTX = LS_DDSHRETVAL-FIELDVAL。
>追加GS_MAKT到GT_MAKT。
ENDLOOP。
做20次。
清除LS_DYNPREAD。
LS_DYNPREAD-FIELDNAME ='GS_MAKT-MAKTX'。< br> LS_DYNPREAD-STEPL = SY-INDEX。
将LS_DYNPREAD附加到LT_DYNPREAD。
ENDDO。
调用函数'DYNP_VALUES_READ '
导出
DYNAME ='ZDEMO2'
DYNUMB ='0100'
* DETERMINE_LOOP_INDEX ='X'
桌子
DYNPFIELDS = LT_DYNPREAD
例外情况
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
其他=11。
清除LV_IN。
LT_DYNPREAD分配时循环
检查
LV_IN = LV_IN +1。
清除LS_DDSHRETVAL。
将LT_DDSHRETVAL表读入LS_DDSHRETVAL索引LV_IN。
ENDLOOP。
通话功能'DYNP_VALUES_UPDATE'
导出
DYNAME ='ZDEMO2'
DYNUMB ='0100 '
表格
DYNPFIELDS = LT_DYNPREAD
例外情况
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
无效 D_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
UNDEFIND_ERROR = 7
其他= 8。
hi,
要在表控件中填充搜索帮助的选定数据,应编写代码。
使用fm调用搜索帮助
F4IF_FIELD_VALUE_REQUEST
一周热门 更多>