2014年5月29日 星期四

AP、AR未結項目顯示剩餘未結金額

需求:AP、AR未結項目顯示剩餘未結金額
方法:
如果AP、AR部份收付款
在標準的未結介面中,沒有顯示已收付的金額和剩餘的金額


使用T-CODE:FB00 OR 未結處理的T-CODE:F-53 F-06 F-07….
啟用Indicator: Include invoice reference
標示:包括互相參照之發票項目
增加欄位


結果


PS
總帳的科目類型並不適用互相參照之發票項目
故總帳部分結清要特別以指派欄位作關聯
且最後餘額結清時要全部都選取

FI文件概觀使用ALV

需求:傳票模擬或文件概觀時要查看其他欄位資訊
方法:
標準的FI文件概觀
有些欄位,使用者想要看到,此時可改ALV模式,即可加入其他欄位

可使用T-CODE:FB00,或傳票功能的設定中更改



BTE使用的模組查詢

需求:查詢BTE使用的SAMPLE模組
方法:
T-CODE:FIBF
                                   
查詢
 找到所需的介面,點選樣本功能模組
 即跳到SE37,可查看或複制使用

FBL*N增加廠商、客戶、科目名稱

需求:FBL1N、FBL3N、FBL5N要顯示廠商、客名、科目名稱
方法:
參考來源:http://scn.sap.com/thread/1407915

使用BTE(Business Transaction Events) EXIT

1、T-CODE:FIBF
建立新的產品(名稱要Z開頭)
設定→產品→客戶

建立新的功能模組
設定→P/S模組→客戶

2、如果結構RFPOSX有異動,需執行RFPOSXEXTEND
SE38→RFPOSXEXTEND

3、FM CODING
TABLES kna1lfa1,SKAT.
 DATA tNAME LIKE SKAT-TXT20.
 DATA tNAME1 LIKE SKAT-TXT20.
*T-CODE FBL3N總帳 FBL1N供應商 FBL5N客戶
IF sy-tcode 'FBL3N' OR sy-tcode 'FBL1N' OR sy-tcode 'FBL5N'.
*CASE KOART
 CASE E_POSTAB-KOART.
*S總帳科目
   WHEN 'S'.
*SELECT NAME FROM SKB1
         SELECT SINGLE TXT20 INTO TNAME FROM SKAT
           WHERE SAKNR E_POSTAB-KONTO
           AND SPRAS 'M'
           AND KTOPL 'NTV'.
*K供應商
   WHEN 'K'.
**SELECT NAME FORM LFA1
          SELECT SINGLE NAME1 INTO TNAME FROM lfa1
           WHERE LIFNR E_POSTAB-KONTO.

          SELECT SINGLE TXT20 INTO TNAME1 FROM SKAT
           WHERE SAKNR E_POSTAB-HKONT
           AND SPRAS 'M'
           AND KTOPL 'NTV'.

*D客戶
  WHEN 'D'.
*SELECT NAME FORM KNA1
         SELECT SINGLE NAME1 INTO TNAME FROM kna1
           WHERE KUNNR E_POSTAB-KONTO.

         SELECT SINGLE TXT20 INTO TNAME1 FROM SKAT
           WHERE SAKNR E_POSTAB-HKONT
           AND SPRAS 'M'
           AND KTOPL 'NTV'.

   WHEN OTHERS.
*ENDCASE
 ENDCASE.
*NAME INTO E_POSTAB-PRIORITY_TEXT
     WRITE TNAME TO E_POSTAB-PRIORITY_TEXT.
     WRITE TNAME1 TO E_POSTAB-STAT_ORDERNO_TEXT.

ENDIF.
*}   INSERT

2014年5月28日 星期三

輸出數值時無負號、千分號、小數位

需求:下載成檔案時無負號,台幣無小數位,不顯示千分號
方法:
"消.00 負號,千分號
DATA TYPE CHAR20.
DATA BA TYPE DECIMALS VALUE -123456.
WRITE:/,'原值:',BA.
WRITE '123456' TO no-SIGN NO-GROUPING DECIMALS 0.
WRITE:/,'轉換:',B.

輸出:
原值:       123,456.00-
轉換: 123456
輸出:

前補0和去0的方法

需求:下載成檔案時,各欄位資料前補齊0
方法:

"前補0
'6000'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'"只適用純數值
  EXPORTING
    INPUT         A
 IMPORTING
   OUTPUT        A
          .
WRITE:/,'CONVERSION_EXIT_ALPHA_INPUT'A.

輸出:
CONVERSION_EXIT_ALPHA_INPUT 0000006000
輸出:

'6000A'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'"只適用純數值
  EXPORTING
    INPUT         A
 IMPORTING
   OUTPUT        A
          .
WRITE:/,'有文字時,CONVERSION_EXIT_ALPHA_INPUT'A.

輸出:
有文字時,CONVERSION_EXIT_ALPHA_INPUT 6000A
輸出:

'6000'.
SHIFT A RIGHT DELETING TRAILING space.
OVERLAY WITH '0000000000'"“要知道長度

WRITE/,'shift RIGHT DELETING TRAILING space',A.

輸出:
shift RIGHT DELETING TRAILING space 0000006000
輸出:

"前去0
'0000006000'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "只適用純數值
EXPORTING
input A
IMPORTING
OUTPUT A.

write:/,'CONVERSION_EXIT_ALPHA_OUTPUT'A.

輸出:
CONVERSION_EXIT_ALPHA_OUTPUT 6000
輸出:

'0000006D00'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "只適用純數值
EXPORTING
input A
IMPORTING
OUTPUT A.

write:/,'有文字時,CONVERSION_EXIT_ALPHA_OUTPUT'A.

輸出:
有文字時,CONVERSION_EXIT_ALPHA_OUTPUT 0000006D00
輸出:

'0000006000'.
SHIFT LEFT DELETING LEADING '0'.
WRITE:/,'SHIFT LEFT DELETING LEADING'A.

輸出:
SHIFT LEFT DELETING LEADING 6000
輸出:

FM GUI_DOWNLOAD Trailing Space

需求:下載的檔案內容,後面要保留空白,不能截掉
方法:
1、
建立下載的ITAB
加入
DATABEGIN OF t_file,
            dline(200),
            cr_lf TYPE value '0D'," 'zero D for EOL
            END OF t_file.
DATAit_file LIKE t_file OCCURS WITH HEADER LINE.

0D=Carriage Return (CR),參考下列網址
http://www.sapdb.org/7.4/htmhelp/07/a16384a57411d2a97100a0c9449261/content.htm

2、
GUI_DOWNLOAD參數設定
FILETYPE                      = 'ASC'
TRUNC_TRAILING_BLANKS = ' ' 


或使用method在結尾處直接插入換行
 CL_ABAP_CHAR_UTILITIES=>CR_LF

V_USR_NAME:使用者帳號、姓、名、完整姓名

需求:依登入帳號,查出姓、名
方法:使用V_USR_NAME