2008/12/26

ABAP 数量項目 QUAN 小数出力

REPORT  Z_TEST_00.

*ABAP 数量項目QUAN 小数出力
  DATA:
    LW_QUAN_MENGE TYPE BSEG-MENGE. "QUAN  13  3 数量

  DATA:
    LW_C_MENGE(13TYPE C,
    LW_P_MENGE(7TYPE P DECIMALS 3"(13+1)/2 = 7

  SELECT
    MENGE
  INTO LW_QUAN_MENGE
  FROM BSEG
  UP TO 1 ROWS
  WHERE MENGE > 0.
  ENDSELECT.

*出力後 小数がない
  WRITE / LW_QUAN_MENGE UNIT 'PC'.  "UNITがないと、'CURR QUANエラー'になる

*3桁小数で出力
  WRITE LW_QUAN_MENGE TO LW_C_MENGE  NO-GROUPING  UNIT 'PC'.
  WRITE LW_C_MENGE.
  LW_P_MENGE = LW_C_MENGE.

  WRITE / LW_P_MENGE DECIMALS 3.

*データ型QUAN, DEC   の ABAP型 P の 変換
*ルール:(n+1)/2
*例: QUAN,13桁小数3桁の場合、 ABAPのPに変更しようとする (13+1)/2 = 7