se11创建的普通检索帮助无法满足需求时,可以通过se37给检索帮助创建検索ヘルプExit来进行一些高级操作。
参考:F4IF_SHLP_EXIT_EXAMPLE
比如:
画面扩张字段因domain值产生的检索帮助附带入力检查。
想要将这些字段的domain值放入一个addon 标准表中。然后用这个表作为選択メソッド,创建检索帮助。
用项目id(zname region...)(非表示)、值(zvalue 13...)、文本(ztext 东京都...)作为parameter
此时,出现一个问题就是所有项目id 以及它的值和文本都会被当作对象在画面摁下F4时被出力出来。
这时就需要建Exit进行对象数据的筛选。CHANGING的两个parameter十分重要。SHLP、CALLCONTROL。
CALLCONTROL-STEP控制F4 process 进行的阶段。一般有四种情况“SELONE”(複合検索ヘルプから基本検索ヘルプを呼び出すタイミング)、“PRESEL”(数据抽出前进行画面入力值检查等)、“SELECT”(抽数据时,想对一部分值进行变更)、“DISP”(数据显示,可以做权限检查,决定出力不出力)
SHLP。从DDSHIFACE-SHLPFIELD取VALFIELD。(取出当前的ZNAME:REGION)→RECORD_TAB-STRING截取字符串 = 'REGION' (不满足条件的数据删除)。最终检索帮助是REGION对应的所有值。*DISP step
注意点:
给标准的检索帮助 ➕Exit属于改标准的东西
version up之后,连接的Exit 会消失
这个登陆了所有字段domain值的表类似于一个固定值表。
tips:LPos SPos设置为0,项目在检索帮助画面非表示