VALUE从文字中构造表行时出现语法错误

时间:2019-04-03 17:32:54

标签: sap abap

这是给你的。

为什么这个不编译

REPORT ZZY.

TYPES: my_int TYPE x LENGTH 4,
  my_int_table TYPE STANDARD TABLE OF my_int WITH EMPTY KEY.

DATA(g_tab_my_int) = VALUE my_int_table( ( 2 ) ).

这是吗?

REPORT ZZY.

TYPES: my_int TYPE x LENGTH 4,
  my_int_table TYPE STANDARD TABLE OF my_int WITH EMPTY KEY.

DATA(g_tab_my_int) = VALUE my_int_table( ( 2 * 1 ) ).

1 个答案:

答案 0 :(得分:7)

const toogleCheckbox = event => { let treeNode = event.target.parentNode.parentNode; let button = document.getElementById('buttonWrap'); if (treeNode) { button.classList.add("show") treeNode.nodeData.isSelected = !treeNode.nodeData.isSelected; toggleChildren(treeNode.childNodes, treeNode.nodeData.isSelected); if (treeNode.pNode) { checkParent(treeNode.pNode); } } }; const checkParent = node => { let checks = node.nodeData.children.length; let intermidiateNode = node.children[0].getElementsByTagName("input")[0]; let checksActive = node.nodeData.children.filter(cNode => { return cNode.isSelected == true; }).length; if (checks == checksActive) { node.nodeData.isSelected = true; intermidiateNode.indeterminate = false; } else if (checksActive > 0) { intermidiateNode.indeterminate = true; } else { node.nodeData.isSelected = false; intermidiateNode.indeterminate = false; } node.querySelector("input.tree-view__checkbox").checked = node.nodeData.isSelected; if (node.pNode) { checkParent(node.pNode); } }; const toggleChildren = (children, state) => { for (let node = 0; node < children.length; node++) { if (children[node].type == "checkbox") { let parent = children[node].parentNode.parentNode; parent.nodeData.isSelected = state; children[node].checked = state; } toggleChildren(children[node].childNodes, state); } }; 内部的ABAP documentation说:

  

如果为VALUE dtype|#( line | {LINES OF itab ...} )指定了数据对象,则该对象必须与行类型兼容

     

如果为line指定了一个表达式(内置函数,函数方法,计算表达式,构造函数表达式或表表达式),则该表达式的结果必须可转换为行类型。

在您的示例中:

  • “ 2”是数字文字,因此是数据对象,仅当它与类型兼容时才有效,即它是完全相同的类型。
  • “ 1 * 2”是一个表达式,它是有效的,因为存在从类型I到类型X的转换规则。

您可以输入一个较短的表达式,例如“ + 2”:line