按倒置日期排序ALV网格

时间:2013-05-16 08:07:53

标签: sorting grid sap abap invert

我需要将TCURR表输出到ALV网格中。一切都很顺利但是当用户通过“有效期”日期(GDATU)对表格进行排序时,发生了奇怪的事情。 按升序排序表现为按降序排序,反之亦然。之所以如此,是因为字段GDATU包含倒置格式的日期,并且域GDATU_INV具有转换例程INVDT,可以即时转换日期。 ALV网格正确显示日期,但排序是通过倒置日期完成的。

我解决了这个问题:

  1. 我宣布表格结构与TCURR类似,并将GDATU_INV域替换为简单DATUM
  2. 我将倒置的日期转换为通常的日期
  3. 我在表格中填写了转换后的日期
  4. 根据我写给
  5. LVC_FIELDCATALOG_MERGE结构,通过FM TCURR生成字段目录

    CONVEXIT,
    REF_TABLE,
    DATATYPE,
    DOMNAME

    GDATU行值的字段

    '',
    '',
    'DATS',
    'DATUM'分别。

    这个问题是否有更有效和简单的解决方案?

1 个答案:

答案 0 :(得分:2)

您应该能够在LVC_FIELDCATALOG_MERGE中使用新结构,而不是使用TCURR,这意味着您不必在事后覆盖字段目录中的设置。但那是一件非常小的事情。

我认为你没有别的选择,只能使用一个数据元素的结构,行为方式与你需要的一样。

不过,请查看Simple ALV类。 (CL_SALV*)它们有很好的文档记录,比现在已经过时的ALV功能模块更容易使用。 (特别是生成现场目录的麻烦要少得多)。