2013-05-16 78 views
1

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

我解决了它这样的:

  1. 我宣布类似TCURR表结构和更换GDATU_INV域与简单DATUM
  2. 我转换倒日期,常使用的
  3. 我填充我的表与所述转换后的日期
  4. 根据TCURR结构写到

CONVEXIT,
REF_TABLE通过FM LVC_FIELDCATALOG_MERGE生成字段目录后,
DATATYPE,
DOMNAME

所述GDATU线的字段的值

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

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

回答

2

您应该可以在LVC_FIELDCATALOG_MERGE中使用您的新结构,而不是使用TCURR,这意味着事实之后您不必覆盖字段目录中的设置。但这是一件很小的事情。

我不认为你有任何选择,只能使用一个数据元素的行为,你需要它的方式。尽管如此,请仔细研究简单的ALV类。 (CL_SALV*)它们有很好的文档记录,比现在过时的ALV功能模块更容易使用。 (特别是生成字段目录的麻烦少很多)。