2020-08-19 02:20发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我已将s_field声明为selection -option。
我需要将s_field转换为内部表。
例如。
如果我将值作为1到5(低= 1高= 5)传递给s_field
然后内部表应包含1 2 3 4 5
有人可以建议我如何在abap 7.40中将选择选项更改为内部表吗?
据我所知,尚无一般解决方案。
在大多数情况下,范围的数据类型/域具有固定值或包含有效值的定制表。 您可以使用自己的范围来选择它们。 这样,您会得到一个适合您范围的所有现有值的简单列表。
一般的解决方案不仅必须适合整数值,还必须适合每种数据类型。 另外,范围可以包含多个值或上限和下限,还可以包括和排除规则,模式等。 在大多数情况下,我上面试图描述的选择为我解决了这些问题。
如果选择选项为空,应该返回所有整数的无穷列表吗?
由于您对要求的了解并不十分清楚,因此我必须基于 描述和示例:
下面的代码将为您提供内部表INT_TAB中从INT_FROM到INT_TO的整数列表,仅包括那些 由选择选项S_FIELD定义:
REPORT ZSELECT OPT2INTEGERTAB。 数据间隔类型i。 SELECT-OPTIONS s_field FOR间隔。 选择屏幕跳过1。 参数int_from TYPE i默认值1。 参数int_to TYPE I默认10。 数据int_range TYPE i。 DATA int_current TYPE i。 i的数据int_tab类型已排序表,带有唯一键table_line。 检查int_from <= int_to。 int_range = int_to-int_from + 1。 int_current = int_from。 做int_range TIMES。 IF int_current IN s_field。 插入int_current INTO TABLE int_tab。 万一。 将1加到int_current。 ENDDO。 DATA(out)= cl_demo_output => new()。 out-> write(s_field [])。 out-> write(int_tab)。 out-> display()
也许,在看到此"解决方案"之后,您可以在 如果它还不能解决您的问题,那我一定会怀疑。
Muthupandi M ,
您能证明需要内部表的理由吗?
使用Select选项中的值,您可以直接在选择查询中使用它们,为什么需要内部表? 表格解释选择选项? 背后有任何业务原因吗?
致谢!
您可以使用以下选项-将Selecting选项转换为范围
APPEND LINES OF:s_field到r_field
,其中s_field是您的选择选项-r_field是您的范围。
Muthupandi M ,请继续回答您的公开问题。
最多设置5个标签!
据我所知,尚无一般解决方案。
在大多数情况下,范围的数据类型/域具有固定值或包含有效值的定制表。 您可以使用自己的范围来选择它们。 这样,您会得到一个适合您范围的所有现有值的简单列表。
一般的解决方案不仅必须适合整数值,还必须适合每种数据类型。 另外,范围可以包含多个值或上限和下限,还可以包括和排除规则,模式等。 在大多数情况下,我上面试图描述的选择为我解决了这些问题。
如果选择选项为空,应该返回所有整数的无穷列表吗?
< p>或者如果它不是" 3",它是否应该返回除3以外的无穷整数列表?由于您对要求的了解并不十分清楚,因此我必须基于 描述和示例:
FROM最有可能为1,TO可能为10(或100,或....)。
FROM和TO是整数,可以为负或正,并且FROM小于/等于TO
下面的代码将为您提供内部表INT_TAB中从INT_FROM到INT_TO的整数列表,仅包括那些 由选择选项S_FIELD定义:
也许,在看到此"解决方案"之后,您可以在 如果它还不能解决您的问题,那我一定会怀疑。
Muthupandi M ,
您能证明需要内部表的理由吗?
使用Select选项中的值,您可以直接在选择查询中使用它们,为什么需要内部表? 表格解释选择选项? 背后有任何业务原因吗?
致谢!
您可以使用以下选项-将Selecting选项转换为范围
,其中s_field是您的选择选项-r_field是您的范围。
Muthupandi M ,请继续回答您的公开问题。
一周热门 更多>