mapping - 如何迭代 string_table 和修改行
问题描述
为了构建动态SELECT
,我正在遍历字段列表并添加别名。
但是,这会清除列表。
REPORT ZITER_TEST.
CONSTANTS lc_alias TYPE string VALUE 'ref'.
DATA lt_field TYPE string_table.
lt_field = VALUE string_table(
( CONV string( 'PERNR' ) )
( CONV string( 'SUBTY' ) )
).
" lt_field: ['PERNR','SUBTY']
lt_field = VALUE string_table( FOR <lv_tmp> IN lt_field
( lc_alias && `~` && <lv_tmp> )
).
" lt_field: [] instead of: ['ref~PERNR','ref~SUBTY']
解决方案
VALUE的ABAP 文档说:
在对数据对象的赋值中,直接使用目标变量并且不创建临时数据对象。在分配括号中指定的值之前,该变量被完全初始化或覆盖。但是,它的原始值在可选的 LET 表达式中仍然可用。
所以,而不是:
lt_field = VALUE string_table( FOR <lv_tmp> IN lt_field
( lc_alias && `~` && <lv_tmp> )
).
采用:
lt_field = VALUE string_table( LET lt_field_temp = lt_field IN
FOR <lv_tmp> IN lt_field_temp
( lc_alias && `~` && <lv_tmp> )
).
推荐阅读
- sql - 在日期范围之间按日期名称查找员工班次
- android - 在导航工具栏下方切换 Google Admob 横幅
- html - CSS 位置未按预期工作。如何解决?
- javascript - 如何根据 'DD-MM-YYYY HH:mm:ss' 格式的日期时间以降序对数组进行排序?
- php - 如何获取所有记录并按 create_at 分组(仅限日期)
- error-handling - Rust Arc/Mutex 尝试宏借用内容
- python - 从熊猫数据框中的列中提取字符串中的数字
- visual-studio - Visual 2017 表单设计器因“找不到类错误”而失败 - 但是,该类存在
- swift - 将图像从集合快速传递到视图控制器
- java - 在for循环java中测试字符串数组