问题标签 [internal-tables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
abap - 没有循环计算总计和小计?
我开始学习新的abap。但我有问题。我想在不使用“LOOP”和“AT”语句的情况下进行如下结果输出。
我有内部表,如:
我需要将输出显示为:
有人能帮忙吗?
abap - 标准内部表上没有 BY 的 SORT 行为?安全吗?
SORT
在标准内部表上运行时,没有密钥规范的语句究竟做了什么?根据文档:
如果没有使用加法 BY 输入显式排序键,则内部表 itab 按主表键排序。排序的优先级基于在表定义中指定关键字段的顺序。在标准键中,按照表的行类型中键字段的顺序进行排序。如果标准表的主表键为空,则不进行排序。如果这是静态已知的,则语法检查会产生警告。
主表键定义为:
每个内部表都有一个主表键,它可以是自定义键或标准键。对于散列表,主键是散列键,对于排序表,主键是排序键。这两种表类型都是优化了键访问的键表,因此主键有自己的管理。当您访问单个行时,这些表的键字段受到写保护。标准表也有一个主键,但相应的访问没有优化,没有单独的键管理,键字段没有写保护。
为了更好地衡量,标准密钥定义为:
内部表的主表键,其在结构化行类型中的键字段均为类字符数据类型和类字节数据类型的表字段。如果行类型包含子结构,则将这些子结构分解为基本组件。如果行类型本身不是表类型,则非结构化行类型的标准键是整个表行。如果没有对应的表字段,或者行类型本身是表类型,则标准表的标准键为空或不包含键字段。
所有这些主要只是让我感到困惑,因为我不确定我是否真的可以依靠基本SORT
陈述来提供可靠或安全的结果。我真的应该在所有情况下都避免它,还是如果使用得当,它是否有目的?
通过扩展,如果我想运行 a DELETE ADJACENT DUPLICATES FROM itab COMPARING ALL FIELDS
,在简单之后什么时候这样做是安全的SORT itab.
?仅当我在所有字段上都添加了一个键?只有当我有一个带有clike
和xsequence
列的内部表时才没有显式键?如果我想执行那个 DELETE 语句,在内部表上运行的最佳 SORT 语句是什么?
abap - 使用“带键读取表”查找最后一个匹配结果
我需要在内部表中找到与 v_key = x 匹配的最后一个条目的 sy-tabix。我正在尝试这样做:
但是由于表中有多个匹配 v_key = x 的条目,我如何确保获得最后一个匹配条目的 sy-tabix?不幸的是,我无法用另一个键搜索。
abap - 从 itab 中获取其他字段中每个不同值的最高值
我需要从每个不同的 VKONT的内部表中获取具有最高 EXBEL 寄存器的行。
如果源表中有几行具有相同的最高 EXBEL 值,则结果表可能包含相同 VKONT 值的多行。
实际来源表:
预期结果表:
我尝试了不同的解决方案,但没有奏效。
任何帮助将不胜感激。
劳尔。
aggregate - 使用表推导对 itab 进行分组 + 聚合
相当典型的任务,但我坚持以一种漂亮的方式完成它。
例如,我需要找到每个供应商的最后一批货物,即找到每个供应商的最大日期交货
要填充的结果表
我通过 DESCENDING 以下列方式实现了这一点,我觉得这很丑陋
有没有更优雅的方法来做到这一点?
我也试过REDUCE
但从REDUCE
整个表中选择最大日期,它只选择平面结构,这不是我想要的。但是,在 ABAP 示例中,我看到了也可以进行表到表缩减的示例。我错了吗?
我尝试的另一件事是找到唯一性,WITHOUT MEMBERS
但这种语法不起作用:
任何关于这里有什么问题或自己优雅的解决方案的建议都值得赞赏。
abap - 如何替换 ABAP 7.5 中的附加行?
我有以下代码片段,我想以功能样式编写:
如何在新的 ABAP 7.5 中重写上面的代码?
grouping - SQL中的条件itab分组类似HAVING子句
这是这个问题的后续问题,但不是聚合,我想根据某些条件处理组并且无法找出正确的语法。如果至少有一个组成员具有此状态,我需要排除包含状态为“已删除”的文档的组。
到目前为止我试过了,GROUP...WITHOUT MEMBERS
这就是我最终得到的解决方案LOOP...FOR GROUPS
REDUCE
但是,这个解决方案对我来说似乎是多余的(I1040
过滤器指示了两次)。是否有任何语法允许在一个语句(或其他)中执行此操作REDUCE
,GROUP
而无需像我现在一样即时构建嵌套表并对其进行过滤?
如果我WHERE
对上述所有语句(和)使用条件GROUP...WITHOUT MEMBERS
,它只会过滤用于分组的基线,而不是组本身。我需要在 SQL 中有点类似。LOOP...FOR GROUPS
REDUCE
HAVING
更新好的,这是基于 BSEG 表的真实可编译示例。任务是仅查找未验证的文档,即排除所有具有反向 (XNEGP = true) 行的文档。
输入线
Doc 0100000004 有反转线,所以结果应该是
string - 在字符串表中搜索子字符串?
- 我有一个包含以下数据(
<fs_content>
)的内部表:
- 我必须重复搜索这样的值(
V1
):
- 我希望识别出以下值,它们与内部表 ( ) 中的一行匹配
itab_v1_result
:
但正如您所见,在直到符号之后<fs_content>
有相同的代码。005056B467AE1ED9B1962F12360477E9
OFFER/
-
现在,我想通过将值与中的每一行进行比较来将行从<fs_content>
字段分配给符号,但问题是值与行不完全相同。<fs_my_content>
V1
<fs_content>
V1
<fs_content>
我试图做这样的事情,但它不工作,<fs_my_content>
总是空的:
我怎样才能itab_v1_result
控制我的期望?
我最小的可重现示例:
abap - 新的 ABAP 语法而不是 COLLECT
目前,我有这个编码,它工作得很好:
我想对新语法做同样的事情,有可能吗?
如果是,如何?
abap - 合并两个相同结构的嵌套表?
是否可以使用 ABAP 中的一条指令将 2 个结构与嵌套表字段合并?我尝试使用 MOVE-CORRESPONDING,但没有成功。
下面我写了一个我需要做的简化版本,我的真实结构有更多的表和一些单独的字段,但现在我只要求简化下面的代码
我知道这可以为完整的 nested3 变量分组在一个 VALUE 中,但我想简化的部分是需要指定 table1 和 table2 当它们的名称和类型与目标相同时