2008年12月27日 星期六

SE11 Dictionary

1.T-CODESE11
2.可建立 資料庫表格 資料類型 範圍 搜尋輔助說明 加鎖物件
3.建立結構 在資料類型 輸入結構名稱後 選建立
4.建立結構或資料庫表格時 自設非標準欄位元件以Z開頭為主
5.自設元件無參考元件類型 選擇 固定類型 維護字典類型與長度
6.輸入短文 說明該元件的意義
7.在幣別CURR或是數量QUAN必需有參考單位(例如TWKG)
8.如該欄位在選擇畫面有下拉式選單功能 則要建立搜尋輔助說明

2008年12月10日 星期三

文字至中

編寫一般的ABAP報表通常都會有表頭的產生
在計算時常會使用到一個系統參數「SY-LINSZ」
在希望文字至中時可以利用 ( 畫面寬度 - 文字長度 ) / 2 來達到至中的效果
以下範例為 FI 查看 製造工費成本比較表的表頭範例

*---------------------------------------------------------------------*
*    FORM TOP_OF_PAGE   *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
  DATA: L_NUM TYPE SY-PAGNO.
  DATA: L_SIZE TYPE SY-LINSZ.    "畫面的寬度
  DATA: L_PAGE(3) TYPE N.
  L_SIZE = ( SY-LINSZ - 18 ) / 2.
  WRITE AT L_SIZE(18) '製造工費成本比較表'(H01) CENTERED.   "SY-TITLE
  L_SIZE =  SY-LINSZ - 8 .
  WRITE AT L_SIZE(4) 'Page'(H02).
  L_SIZE =  SY-LINSZ - 3.
  WRITE AT L_SIZE SY-PAGNO.
*  ULINE.
  L_SIZE = ( SY-LINSZ - 10 ) / 2.
  READ TABLE I_DES WITH KEY SETNAME = GT_RPT-KSGRU.
  CONCATENATE '年度:' G_YEAR INTO G_GJAHR.
  WRITE: / I_DES-DESCRIPT .
  WRITE AT L_SIZE(10) G_GJAHR CENTERED.    "SY-DATUM
*  ULINE.
ENDFORM.   "TOP_OF_PAGE

2008年12月3日 星期三

Call Transaction

希望依這筆結果點擊二下可以呼叫某個程式把值帶入
這時可以用Call Transaction來達成這個目的
以下的例子是呼叫VA03來查詢SO單資料

*---------------------------------------------------------------------*
*    FORM USER_COMMAND     *
*---------------------------------------------------------------------*
FORM USER_COMMAND5 USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
  L_SELFIELD = RS_SELFIELD.
  CASE R_UCOMM.
    WHEN '&SO2'.
  READ TABLE GT_QRY10 INDEX L_SELFIELD-TABINDEX.
  IF SY-SUBRC EQ 0.
    IF GT_QRY10-VBELN IS NOT INITIAL.
  SET PARAMETER ID 'AUN' FIELD GT_QRY10-VBELN.
  CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
    ENDIF.
  ENDIF.
  ENDCASE.
ENDFORM.     "USER_COMMAND