2013-05-16 128 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功能模塊更容易使用。 (特別是生成字段目錄的麻煩少很多)。