abap中,利用write進行表單列印示例
*& Report Z_PRINT_LEND *
*& *
*&---------------------------------------------------------------------*
*&developer : liuxy
*&date : 2015.04.23
*& *
*&---------------------------------------------------------------------*
REPORT Z_PRINT_LEND NO STANDARD PAGE HEADING."借還物臺帳
TABLES : ZLEND_MAIN,ZLEND_DETAIL,ZRETURN_INFOR,ZRENEW_INFOR,ZLEND_LL.
TABLES
DATA : FLAG TYPE C.
DATA : LEND_MAIN LIKE ZLEND_MAIN OCCURS 0 WITH HEADER LINE.
DATA : LEND_DETAIL LIKE ZLEND_DETAIL OCCURS 0 WITH HEADER LINE.
DATA : RETURN_DATA LIKE ZRETURN_INFOR OCCURS 0 WITH HEADER LINE.
DATA : LEND_LL LIKE ZLEND_LL OCCURS 0 WITH HEADER LINE.
DATA
DATA : ITAB(72) OCCURS 0 WITH HEADER LINE.
DATA : P_PRO(10) ,LLD_NO(10) , HLD_NO(10) ,TT TYPE C,P_PRY(10).
DATA : NUM,NUM2(20),P_NUM ,NUM3(20) TYPE I.
DATA : APPLY_NUM , GET_NUM ,RET_NUM LIKE ZLEND_DETAIL-APPLY_NUM .
DATA : P_NO LIKE ZRETURN_INFOR-RETURN_NO ."用於記錄還物單號
DATA : S_STORE(10) ,NAME(20) ,NAME2(20) TYPE C.
TYPE-POOLS: SLIS.
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: BEGIN OF INFOR_ALL OCCURS 0,"用於記錄所有資訊
* MANDT like zlend_detail-mandt,"集團
* line_no like zlend_detail-line_no ,"行號
LEND_NO LIKE ZLEND_DETAIL-LEND_NO ,"借料單號碼
MATNR LIKE ZLEND_DETAIL-MATNR,"物料號
STORE_TYPE LIKE ZLEND_DETAIL-STORE_TYPE,"庫類別
PROPERTY LIKE ZLEND_DETAIL-PROPERTY,"屬性
MEINS LIKE ZLEND_DETAIL-MEINS,"計量單位
APPLY_NUM LIKE ZLEND_DETAIL-APPLY_NUM,"申請數量
PRICE LIKE ZLEND_DETAIL-PRICE,"單價
* total like zlend_detail-price,"總金額
TOTAL TYPE I,"總計顯示
APPLY_NO LIKE ZLEND_DETAIL-APPLY_NO,"申請單號
NUM LIKE ZLEND_DETAIL-APPLY_NUM,"拖欠數量
GET_NUM LIKE ZLEND_DETAIL-GET_NUM,"得到數量
SENDER LIKE ZLEND_DETAIL-SENDER,"發貨人
STORER LIKE ZLEND_DETAIL-SOTRER,"庫管人員 輸入用
MACHI_SERIES LIKE ZLEND_DETAIL-MACHI_SERIES ,"機器序列號
RETURN_NUM LIKE ZLEND_DETAIL-RETURN_NUM,"歸還數量
LAST_DATE LIKE ZLEND_DETAIL-LAST_DATE,"最後一次的操作日期
STATUS LIKE ZLEND_DETAIL-STATUS,"狀態
MAKTX LIKE ZLEND_DETAIL-MAKTX,"物料描述
SERIES LIKE ZLEND_DETAIL-SERIES,"規格型號
ZTBS LIKE ZLEND_DETAIL-ZTBS,"在途標示
CHECKS TYPE C,"detail information
LEND_DEPART LIKE ZLEND_MAIN-LEND_DEPART,"nomber
LEND_DEP LIKE ZLEND_MAIN-DEP_DETAIL,
DEP_DETAIL LIKE ZLEND_MAIN-DEP_DETAIL,"部門詳述
LEND_DATE LIKE ZLEND_MAIN-LEND_DATE,
RETURN_DATE LIKE ZLEND_MAIN-RETURN_DATE,
PURPOSE LIKE ZLEND_MAIN-PURPOSE,
PUR_DETAIL LIKE ZLEND_MAIN-PUR_DETAIL,
MANAGER1 LIKE ZLEND_MAIN-MANAGER1,
* manager2 like zlend_main-manager2,
* storer like zlend_main-storer,
OPERATOR LIKE ZLEND_MAIN-OPERATOR,
LENDER LIKE ZLEND_MAIN-LENDER,
OVER_DAY TYPE I,
RETURN_NO LIKE ZLEND_DETAIL-LEND_NO,
* have_date like zreturn_infor-return_date,
" 用於記錄超期天數
END OF INFOR_ALL.
DATA : RETURN_DAT LIKE ZRETURN_INFOR OCCURS 0 WITH HEADER LINE.
DATA : LEND_NUM(16) TYPE I .
DATA:S TYPE I,
S2 TYPE I.
SELECTION-SCREEN BEGIN OF BLOCK RAD1 WITH FRAME TITLE T1."ADD group
SELECTION-SCREEN BEGIN OF LINE."新增選項 借物臺帳
SELECTION-SCREEN COMMENT 1(20) T11.
PARAMETERS LEND RADIOBUTTON GROUP RAD1 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."還物臺帳
SELECTION-SCREEN COMMENT 1(20) T12.
PARAMETERS RETURN RADIOBUTTON GROUP RAD1 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK RAD1. " end of group
*selection-screen begin of block che1 with frame title T7." add checbox
SELECTION-SCREEN BEGIN OF BLOCK RAD2 WITH FRAME TITLE T5."ADD GROUP 2
SELECTION-SCREEN BEGIN OF LINE."逾期未還借物的用途分類統計表
SELECTION-SCREEN COMMENT 1(20) T52."已還借物資訊lend_main,
"lend_detail
PARAMETERS OVER_PUR RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."已還物庫資訊統計
SELECTION-SCREEN COMMENT 1(20) T54."
PARAMETERS RETU_DAT RADIOBUTTON GROUP RAD2 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."按照歸還日期統計
SELECTION-SCREEN COMMENT 1(20) T55."
PARAMETERS P_DATE RADIOBUTTON GROUP RAD2 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."各月借物統計表
SELECTION-SCREEN COMMENT 1(20) T53."未還資訊
PARAMETERS MON_DAT RADIOBUTTON GROUP RAD2 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK RAD2." END OF GROUP 2
SELECTION-SCREEN BEGIN OF BLOCK RAD3 WITH FRAME TITLE T7.
" begin of print
SELECTION-SCREEN BEGIN OF LINE."借物單列印
SELECTION-SCREEN COMMENT 1(20) T14.
* parameters c_lend as checkbox.
PARAMETERS C_LEND RADIOBUTTON GROUP RAD3.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."還料單列印
SELECTION-SCREEN COMMENT 1(20) T15.
* parameters c_retu as checkbox .
PARAMETERS C_RETU RADIOBUTTON GROUP RAD3.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."領料單列印
SELECTION-SCREEN COMMENT 1(20) T16.
PARAMETERS C_LLD RADIOBUTTON GROUP RAD3.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK RAD3.
SELECTION-SCREEN BEGIN OF LINE."借物日期選項
SELECTION-SCREEN COMMENT 1(20) T2.
SELECT-OPTIONS L_DATE FOR ZLEND_MAIN-LEND_DATE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."歸還日期選項
SELECTION-SCREEN COMMENT 1(20) T6.
SELECT-OPTIONS R_DATE FOR ZLEND_MAIN-RETURN_DATE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE."部門選項
SELECTION-SCREEN COMMENT 1(20) T3.
* PARAMETERS DEPART(20) TYPE C.
* PARAMETERS : DEPART LIKE T016T-BRSCH .
SELECT-OPTIONS DEPART FOR ZT016T-BRSCH .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(23) T4.
PARAMETERS PERMIT(8) ."審批人
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) T8.
* PARAMETERS NO(10) ."借料單號
SELECT-OPTIONS NO FOR ZLEND_DETAIL-LEND_NO .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) T9.
* PARAMETERS R_NO(10) ."還料單好
SELECT-OPTIONS R_NO FOR ZRETURN_INFOR-RETURN_NO.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
T1 = '臺帳選項'.
T11 = '借物臺帳'.
T12 = '單據列印'.
T14 = '借料單列印'.
T15 = '還料單列印'.
T16 = '領料單列印'.
T2 = '請選擇借料日期:'.
T3 = '部門選項:'.
T4 = '審批人:'.
T5 = '具體分類資訊'.
T52 = '已還借物統計表'.
T54 = '已還批次統計表'.
T55 = '按歸還日期統計'.
T53 = '未還借物統計表'.
T6 = '請選擇還物日期:'.
T7 = '單據種類選項:'.
T8 = '借料單號:'.
T9 = '還料單號:'.
AT SELECTION-SCREEN.
CLEAR ITAB[].
IF PERMIT <> ''.
IF ITAB IS INITIAL.
CONCATENATE 'manager1 = ' ' permit ' INTO ITAB.
ELSE.
CONCATENATE ' and manager1 = ' ' permit ' INTO ITAB.
ENDIF.
APPEND ITAB.
ENDIF.
* if NO <> '' .
* if itab is initial.
* concatenate 'lend_no = ' ' NO ' into itab .
* else.
* concatenate ' and lend_no = ' ' NO ' into itab.
* endif.
* append itab.
* endif.
* if SY-UNAME = 'LIUSHENG' .
* if itab is initial.
* concatenate 'operator = ' ' sy-uname ' into itab.
* else.
* concatenate ' and operator = ' ' sy-uname ' into itab.
* endif.
* append itab.
* endif.
* if SY-UNAME = 'NIEJIAN' .
* if itab is initial.
* concatenate 'operator = ' ' sy-uname ' into itab.
* else.
* concatenate ' and operator = ' ' sy-uname ' into itab.
* endif.
* append itab.
* endif.
IF SY-UNAME = 'LIUQJ'.
IF ITAB IS INITIAL.
CONCATENATE 'operator = ' ' sy-uname ' INTO ITAB.
ELSE.
CONCATENATE ' and operator = ' ' sy-uname ' INTO ITAB.
ENDIF.
APPEND ITAB.
ENDIF.
START-OF-SELECTION.
* set pf-status 'LEND01'.
END-OF-SELECTION.
IF LEND = 'X'.
IF MON_DAT = 'X'.
PERFORM LEND_DATA."未還資訊
ELSEIF RETU_DAT = 'X'.
PERFORM RETURN_DATA."已還批次
ELSEIF P_DATE = 'X'."按歸還時間統計
PERFORM TIME_DATA.
ELSEIF OVER_PUR = 'X'.
PERFORM PUR_DATA."已還資訊
ENDIF.
ENDIF.
IF RETURN = 'X'.
PERFORM RETU_DAT.
ENDIF.
*&--------------------------------------------------------------------*
*& Form LEND_DATA
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM LEND_DATA."借物臺帳未還資訊
IF SY-UNAME = 'YINGZHAO' OR SY-UNAME = 'ZHANGSHP' OR SY-UNAME =
'YAOLJ'.
NAME = '2000'.
IF ITAB IS INITIAL.
CONCATENATE 'LEND_DEPART = ' ' NAME 'INTO ITAB.
ELSE.
CONCATENATE ' AND LEND_DEPART = ' ' NAME 'INTO ITAB.
ENDIF.
APPEND ITAB.
CLEAR DEPART.
ENDIF.
* if depart <> '' .
* if itab is initial.
* concatenate 'lend_depart = ' ' depart ' into itab.
* else.
* concatenate ' and lend_depart = ' ' depart ' into itab.
* endif.
* append itab.
* endif.
CLEAR LEND_MAIN[].
CLEAR LEND_DETAIL[].
CLEAR INFOR_ALL[].
SELECT * INTO TABLE LEND_MAIN FROM ZLEND_MAIN WHERE LEND_DEPART
IN DEPART AND LEND_NO IN NO AND LEND_DATE IN L_DATE AND
RETURN_DATE IN R_DATE AND (ITAB).
LOOP AT LEND_MAIN.
CLEAR INFOR_ALL.
INFOR_ALL-LEND_NO = LEND_MAIN-LEND_NO.
INFOR_ALL-LEND_DEPART = LEND_MAIN-LEND_DEPART.
CLEAR INFOR_ALL-LEND_DEP.
SELECT BRTXT INTO INFOR_ALL-LEND_DEP FROM ZT016T WHERE BRSCH =
INFOR_ALL-LEND_DEPART AND SPRAS = '1' .
ENDSELECT.
INFOR_ALL-DEP_DETAIL = LEND_MAIN-DEP_DETAIL.
INFOR_ALL-LEND_DATE = LEND_MAIN-LEND_DATE.
INFOR_ALL-RETURN_DATE = LEND_MAIN-RETURN_DATE.
* infor_all-purpose = lend_main-purpose.
CASE LEND_MAIN-PURPOSE.
WHEN '1'.
INFOR_ALL-PURPOSE = '專案測試'.
WHEN '2'.
INFOR_ALL-PURPOSE = '專案備機'.
WHEN '3'.
INFOR_ALL-PURPOSE = '缺貨使用'.
WHEN '4'.
INFOR_ALL-PURPOSE = '開發測試'.
WHEN '5'.
INFOR_ALL-PURPOSE = '例行試驗'.
WHEN '6'.
INFOR_ALL-PURPOSE = '新品測試'.
WHEN '7'.
INFOR_ALL-PURPOSE = '各類認證'.
WHEN '8'.
INFOR_ALL-PURPOSE = '媒體評測'.
WHEN '9'.
INFOR_ALL-PURPOSE = '辦公暫借'.
WHEN '10'.
INFOR_ALL-PURPOSE = '銷售'.
WHEN '11'.
INFOR_ALL-PURPOSE = '展覽'.
WHEN '12'.
INFOR_ALL-PURPOSE = '更換'.
WHEN '13'.
INFOR_ALL-PURPOSE = '培訓'.
WHEN '14'.
INFOR_ALL-PURPOSE = 'DOA'.
ENDCASE.
INFOR_ALL-PUR_DETAIL = LEND_MAIN-PUR_DETAIL.
INFOR_ALL-MANAGER1 = LEND_MAIN-MANAGER1.
INFOR_ALL-LENDER = LEND_MAIN-LENDER.
INFOR_ALL-OPERATOR = LEND_MAIN-OPERATOR.
* infor_all-over_day = sy-datum - lend_main-return_date.
SELECT * INTO TABLE LEND_DETAIL FROM ZLEND_DETAIL WHERE
LEND_NO = LEND_MAIN-LEND_NO .
LOOP AT LEND_DETAIL .
"加入if 判斷已還物資訊
IF LEND_DETAIL-GET_NUM <> LEND_DETAIL-RETURN_NUM.
INFOR_ALL-MATNR = LEND_DETAIL-MATNR.
INFOR_ALL-MAKTX = LEND_DETAIL-MAKTX.
INFOR_ALL-ZTBS = LEND_DETAIL-ZTBS.
* infor_all-store_type = lend_detail-store_type.
CASE LEND_DETAIL-STORE_TYPE.
WHEN '1'.
INFOR_ALL-STORE_TYPE = 'SER整機庫'.
WHEN '2'.
INFOR_ALL-STORE_TYPE = 'SER散件庫'.
WHEN '3'.
INFOR_ALL-STORE_TYPE = 'PC整機庫'.
WHEN '4'.
INFOR_ALL-STORE_TYPE = 'PC散件庫'.
WHEN '5'.
INFOR_ALL-STORE_TYPE = 'PC顯示器'.
WHEN '6'.
INFOR_ALL-STORE_TYPE = 'SER顯示器'.
ENDCASE.
CASE LEND_DETAIL-PROPERTY.
WHEN '1'.
INFOR_ALL-PROPERTY = 'A'.
WHEN '2'.
INFOR_ALL-PROPERTY = 'C'.
WHEN '3'.
INFOR_ALL-PROPERTY = 'D'.
WHEN '4'.
INFOR_ALL-PROPERTY = 'B'.
WHEN '5'.
INFOR_ALL-PROPERTY = 'E'.
WHEN '6'.
INFOR_ALL-PROPERTY = '過保'.
ENDCASE.
CASE LEND_DETAIL-STATUS.
WHEN '1'.
INFOR_ALL-STATUS = '未發貨'.
WHEN '2'.
INFOR_ALL-STATUS = '部分發貨'.
WHEN '3'.
INFOR_ALL-STATUS = '全部發貨'.
ENDCASE.
INFOR_ALL-APPLY_NUM = LEND_DETAIL-APPLY_NUM.
INFOR_ALL-GET_NUM = LEND_DETAIL-GET_NUM.
INFOR_ALL-RETURN_NUM = LEND_DETAIL-RETURN_NUM.
INFOR_ALL-OVER_DAY = SY-DATUM - LEND_DETAIL-LAST_DATE.
INFOR_ALL-LAST_DATE = LEND_DETAIL-LAST_DATE.
INFOR_ALL-NUM = INFOR_ALL-GET_NUM - INFOR_ALL-RETURN_NUM .
INFOR_ALL-APPLY_NO = LEND_DETAIL-APPLY_NO.
INFOR_ALL-MEINS = LEND_DETAIL-MEINS.
INFOR_ALL-PRICE = LEND_DETAIL-PRICE.
INFOR_ALL-TOTAL = INFOR_ALL-PRICE * INFOR_ALL-APPLY_NUM .
INFOR_ALL-SENDER = LEND_DETAIL-SENDER.
INFOR_ALL-STORER = LEND_DETAIL-SOTRER.
INFOR_ALL-MACHI_SERIES = LEND_DETAIL-MACHI_SERIES.
APPEND INFOR_ALL.
CLEAR LEND_DETAIL.
ENDIF.
ENDLOOP.
ENDLOOP.
SORT INFOR_ALL BY PURPOSE.
CLEAR FIELDCAT[].
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'LEND_NO'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '借料單號'.
FIELDCAT-SELTEXT_M = '借料單號'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'LEND_DEPART'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '部門編號'.
FIELDCAT-SELTEXT_M = '部門編號'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'LEND_DEP'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '借料部門'.
FIELDCAT-SELTEXT_M = '借料部門'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'DEP_DETAIL'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '部門詳述'.
FIELDCAT-SELTEXT_M = '部門詳述'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'ZTBS'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '在途數量'.
FIELDCAT-SELTEXT_M = '在途數量'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'LEND_DATE'.
FIELDCAT-TABNAME = 'LEND_MAIN'.
FIELDCAT-SELTEXT_S = '借料日期'.
FIELDCAT-SELTEXT_M = '借料日期'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'RETURN_DATE'.
FIELDCAT-TABNAME = 'LEND_MAIN'.
FIELDCAT-SELTEXT_S = '預計歸還日期'.
FIELDCAT-SELTEXT_M = '預計歸還日期'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'LAST_DATE'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '續借日期'.
FIELDCAT-SELTEXT_M = '續借日期'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'STATUS'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '發貨狀態'.
FIELDCAT-SELTEXT_M = '發貨狀態'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'PURPOSE'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '用途'.
FIELDCAT-SELTEXT_M = '用途'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'PUR_DETAIL'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '用途詳細'.
FIELDCAT-SELTEXT_M = '用途詳細'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'MANAGER1'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '審批經理'.
FIELDCAT-SELTEXT_M = '審批經理'.
APPEND FIELDCAT.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = 'OPERATOR'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '操作人'.
FIELDCAT-SELTEXT_M = '操作人'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'MATNR'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '物料號'.
FIELDCAT-SELTEXT_M = '物料號'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'MAKTX'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '物料描述'.
FIELDCAT-SELTEXT_M = '物料描述'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'MEINS'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '單位'.
FIELDCAT-SELTEXT_M = '單位'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'STORE_TYPE'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '庫類別'.
FIELDCAT-SELTEXT_M = '庫類別'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'PROPERTY'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '物料屬性'.
FIELDCAT-SELTEXT_M = '物料屬性'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'APPLY_NUM'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '申請數量'.
FIELDCAT-SELTEXT_M = '申請數量'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'GET_NUM'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '發貨數量'.
FIELDCAT-SELTEXT_M = '發貨數量'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'RETURN_NUM'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '歸還數量'.
FIELDCAT-SELTEXT_M = '歸還數量'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'NUM'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '餘額'.
FIELDCAT-SELTEXT_M = '餘額'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'LENDER'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '借物人'.
FIELDCAT-SELTEXT_M = '借物人'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'PRICE'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '單價'.
FIELDCAT-SELTEXT_M = '單價'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'TOTAL'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '金額'.
FIELDCAT-SELTEXT_M = '金額'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'APPLY_NO'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '申請單號'.
FIELDCAT-SELTEXT_M = '申請單號'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'MACHI_SERIES'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '機器序列號'.
FIELDCAT-SELTEXT_M = '機器序列號'.
APPEND FIELDCAT.
FIELDCAT-FIELDNAME = 'OVER_DAY'.
FIELDCAT-TABNAME = 'INFOR_ALL'.
FIELDCAT-SELTEXT_S = '超期天數'.
FIELDCAT-SELTEXT_M = '超期天數'.
APPEND FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IT_FIELDCAT = FIELDCAT[]
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = INFOR_ALL
EXCEPTIONS
OTHERS = 2.
ENDFORM. "LEND_DATA
*&--------------------------------------------------------------------*
*& Form RETU_dat
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM RETU_DAT."單據列印
IF C_LEND = 'X'."借料單列印
PERFORM PRINT_LEND.
ENDIF.
IF C_RETU = 'X'.
PERFORM PRINT_RETURN."還料單列印
ENDIF.
IF C_LLD = 'X'."領料單列印
PERFORM PRINT_LLD.
ENDIF.
ENDFORM. "RETU_dat
*&--------------------------------------------------------------------*
*& Form print_lend
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM PRINT_LEND."
CLEAR LEND_MAIN[]."借物單據列印
CLEAR LEND_DETAIL[].
CLEAR NUM3 .
NUM2 = 0 .
NUM = 1 .
SELECT * INTO TABLE LEND_MAIN FROM ZLEND_MAIN WHERE LEND_DEPART IN
DEPART AND LEND_NO IN NO AND LEND_DATE IN L_DATE AND RETURN_DATE IN
R_DATE AND (ITAB).
LOOP AT LEND_MAIN.
SELECT * INTO TABLE LEND_DETAIL FROM ZLEND_DETAIL WHERE LEND_NO =
LEND_MAIN-LEND_NO.
NUM3 = SY-DBCNT.
LOOP AT LEND_DETAIL."查詢所有的發貨數量不等於申請數量的資料
IF LEND_DETAIL-APPLY_NUM > LEND_DETAIL-GET_NUM.
IF NUM2 = 0 .
WRITE / .
WRITE / .
WRITE / .
WRITE 30 '浪潮資訊公司借物單'.
WRITE : 60 '單號:' , LEND_MAIN-LEND_NO.
* write 58 num."用於輸出單子樹木
WRITE /26(30) SY-ULINE .
CLEAR INFOR_ALL-LEND_DEP.
SELECT BRTXT INTO INFOR_ALL-LEND_DEP FROM ZT016T WHERE BRSCH =
LEND_MAIN-LEND_DEPART AND SPRAS = '1' .
ENDSELECT.
* write : /2 '借料部門:' , lend_main-lend_depart.
WRITE : /2 '借料部門:' , INFOR_ALL-LEND_DEP.
WRITE : '借料日期:' , LEND_MAIN-LEND_DATE.
WRITE : '應還日期:' , LEND_MAIN-RETURN_DATE.
* write : '單號:' , lend_main-lend_no.
WRITE /0(80) SY-ULINE.
WRITE /0 SY-VLINE.
WRITE 80 SY-VLINE.
WRITE : 5 '產品編碼'.
WRITE 19 SY-VLINE.
WRITE : 30 '物料描述 ' .
* write 59 sy-vline.
* write : 60 'SN/QN' .
* write : 60 '單位' .
WRITE 64 SY-VLINE.
WRITE : 65 '單位'.
WRITE 80 SY-VLINE.
WRITE 69 SY-VLINE.
WRITE : 74 '數量'.
WRITE : /0(80) SY-ULINE.
ENDIF.
NUM2 = NUM2 + 1 .
"add lend_detial infromation
WRITE /0 SY-VLINE.
WRITE : LEND_DETAIL-MATNR.
WRITE 19 SY-VLINE.
WRITE : 20 LEND_DETAIL-MAKTX.
* write 59 sy-vline.
* write : 74 lend_detail-apply_num .
* write 64 lend_detail-apply_num .
CLEAR S.
S = LEND_DETAIL-APPLY_NUM.
WRITE 71(10) S .
WRITE 64 SY-VLINE.
WRITE : 65 LEND_DETAIL-MEINS.
WRITE SY-VLINE.
WRITE 80 SY-VLINE.
WRITE /0(80) SY-ULINE.
WRITE /0 SY-VLINE.
WRITE 2 'SN/QN'.
WRITE 19 SY-VLINE.
WRITE 80 SY-VLINE.
WRITE /0(80) SY-ULINE.
CASE LEND_DETAIL-STORE_TYPE.
WHEN '1'.
S_STORE = 'SER整機庫'.
WHEN '2'.
S_STORE = 'SER散件庫'.
WHEN '3'.
S_STORE = 'PC整機庫'.
WHEN '4'.
S_STORE = 'PC散件庫'.
WHEN '5'.
S_STORE = 'PC顯示器'.
WHEN '6'.
S_STORE = 'SER顯示器'.
WHEN '7'.
S_STORE = '儲存整機'.
WHEN '8'.
S_STORE = '儲存散件'.
WHEN '9'.
S_STORE = '高效能整機'.
WHEN '10'.
S_STORE = '高效能散件'.
WHEN '11'.
S_STORE = 'VIT整機'.
WHEN '12'.
S_STORE = 'VIT散件'.
WHEN '13'.
S_STORE = '高階整機'.
WHEN '14'.
S_STORE = '高階散件'.
ENDCASE.
CASE LEND_DETAIL-PROPERTY.
WHEN '1'.
P_PRO = 'A'.
WHEN '2'.
P_PRO = 'C'.
WHEN '3'.
P_PRO = 'D'.
WHEN '4'.
P_PRO = 'B'.
WHEN '5'.
P_PRO = 'E'.
WHEN '6'.
P_PRO = '過保'.
WHEN '7'.
P_PRO = 'C1'.
ENDCASE.
* if num2 = sy-dbcnt ."列印完詳細
IF NUM2 = NUM3 ."列印完詳細
WRITE /0 SY-VLINE .
WRITE 2 '用途說明:'.
WRITE LEND_MAIN-PUR_DETAIL.
WRITE 59 SY-VLINE.
WRITE 80 SY-VLINE.
WRITE /0 SY-VLINE.
WRITE 59 SY-VLINE.
WRITE 80 SY-VLINE.
WRITE /0 SY-VLINE.
WRITE '備註:'.
WRITE 59 SY-VLINE.
WRITE 80 SY-VLINE .
**********************************add by dingyang 091217**********************************
* 使輸出欄位拐彎,判斷最後一個字元是否正常顯示
DATA : B1(55),B2(55) TYPE C.
IF STRLEN( LEND_MAIN-BZ ) > 56.
CLEAR B1.
CLEAR B2.
PERFORM WRITE_STRING USING LEND_MAIN-BZ B1 B2 .
WRITE /0 SY-VLINE .
WRITE B1.
WRITE 59 SY-VLINE.
WRITE 80 SY-VLINE .
相關推薦
abap中,利用write進行表單列印示例
*&---------------------------------------------------------------------* *& Report Z_PRINT_LEND *
ABAP中,利用函式WS_DELIVERY_UPDATE進行VL02N發貨過賬時獲取憑證號(mblnr)
某專案中,做wms介面時,根據wms傳過來的引數,利用函式WS_DELIVERY_UPDATE進行發貨過賬(vl02n發貨過賬),而函式本身是不返回憑證號的,但客戶需求要在介面中返回過賬成功的憑證號,可以下幾種方式獲取到憑證號: 方法一:這種方法是最原始的方法,判斷函式執行
PowerCLI腳本,利用哈希表對參數進行轉換
存儲 HERE 創建虛擬機 哈希 滿足 fir 主機 centos7 shell腳本 在使用PowerCLI的編寫powershell腳本的過程中,有這樣一個需求:例如需要重啟一個指定的虛擬機,運行腳本時輸入的參數,參數為虛擬機的名字,但是虛擬機的名字在建立的時候可能是千奇
OutSystems 中,利用聚合對結果進行排序
大多數情況下,記錄會按照某些順序列在螢幕上,以便於閱讀或幫助更快地查詢資訊。 在 OutSystems 中,聚合允許對返回的記錄進行排序,排序可以是固定的或動態的。 對結果進行固定排序: 在聚合中,開啟要排序的屬性選單; 選擇A-Z作為升序或Z-A作為降序;
在Excel表格中插入函式,利用公式進行計算
在這個工資表中需要用到加法(基礎工資+績效工資)和減法(工資總數-病/事假所扣工資)兩個公式。滑鼠點選實際工資得數的表格,鍵盤按=鍵,得數的表格會顯示出一個=號,然後滑鼠點選相加的兩個數,中間按一次鍵盤上的+號,(表示是加法),在得數格會依次顯示出相加的兩個數所在位置程式碼。(如B3和E3)。再按下鍵盤上
mysql 獲取一張表中, 另一張表不存在的資料
編寫sql語句中,經常需要編寫獲取一張資料表中不存在與另一張表的資料,相關編寫方法如下: 方法1: 使用not in ,效率低下,在資料較小的情況下可以採用如下編寫 SELECT * FROM a WHERE 1=1 AND a.Id NOT IN( SELECT
同一個伺服器繫結多個域名,利用Nginx進行域名重定向
背景:同一個伺服器繫結多個域名,利用Nginx進行域名重定向。 首先:tomcat進行部署網站後臺介面,進行重設9090埠(可根據需要自定義,但是注意外網訪問埠,需在阿里雲上配置開放埠)。 Tomcat版本8.044,Nginx版本nginx-1.14.1 Tomcat
資料庫事務的四大特性、隔離級別以及Spring中如何利用AOP進行事務管理
首先,什麼是事務? 事務就是業務上的一個邏輯單元,它能夠保證其中對資料所有的操作,要麼成功,要麼失敗。 其次,事務的特性有哪些? 1.原子性。 例如,轉賬,A賬戶減少,B賬戶增加。雖然是兩條 DML語句,但是被當做是一個整體,一次事務。兩條語句只能同時成功或者同時失敗。 2
在Mac pro上如何將Android SDK的adb命令新增到環境變數中,這裡將進行說明!
此時文字編輯器會開啟一個文字,編輯內容如下: export PATH=${PATH}:/Users/apple/Library/Android/sdk/platform-tools export PATH=${PATH}:/Users/apple/Library/Android/sdk/tools
Java註解:自定義註解示例,利用反射進行解析
Java註解能夠提供程式碼的相關資訊,同時對於所註解的程式碼結構又沒有直接影響。在這篇教程中,我們將學習Java註解,如何編寫自定義註解,註解的使用,以及如何使用反射解析註解。 註解是Java 1.5引入的,目前已被廣泛應用於各種Java框
oracle中,建立其他使用者表的對應檢視
需求是這樣:在A使用者下,需要批量生成B使用者的所有表對應的檢視。在網上找了很多例子,最後用比較容易的方法解決了。 注意,不能簡單的賦予A使用者DBA許可權,有些操作也是無效的;另外不能授權所有許可權給A使用者,否則A使用者可以刪除B使用者中的表。 方法如下: 1.授權B使
abap中,ftp上傳檔案demo
*&---------------------------------------------------------------------**& Form frm_trans_file_to_ftp*&----------------
Latext批量新增參考文獻,利用bibtex進行參考文獻排版
Latex批量新增參考文獻,利用bibtex進行參考文獻排版 在寫論文的時候需要引用大量的參考文獻,如果一個個按照格式手碼,會耗費大量的時間和精力。Latex提供了Bibtex可用於批量的新增參考文獻。 前期工作: 準備需要引用的參考文獻。(個人覺得這一步
在springnvc/springboot中, 利用jason 的Map引數實現多個引數傳遞
在在springnvc/springboot中,我們知道如用HTTP POST方法來寫REST 呼叫,則@RequestBody是不允許有多個的,比如下面的宣告是無效的。 @RequestMapping(value = "/updateInsert", method =
Vuejs在v-for中,利用index來對第一項新增class
<aclass="list-group-item":class="{'active':!index}"v-for="(i,index) in announcement"> index來源於v-for,i表示遍歷的陣列的元素,index表示索引。 由於index從0開始,因此如果要
python mysql中不能在同一個sql語句中,先select同一個表的某些值,然後再update這個表。
例: 首先新建表,插入值: DROP TABLE IF EXISTS table_score_one; CREATE TABLE table_score_one ( id INT (10) NOT NULL PRIMARY KEY auto_i
C++程式設計中,利用WINDOWS API獲得系統狀態資訊[CPU佔用率,硬碟使用情況,記憶體使用情況]
#include <Ice/Ice.h> #include <iostream> #include <GetWinSysState.h> #include <Winbase.h> #include <conio.h>
Oracle資料庫中,知道一張表,查詢與其有主外來鍵關係的表
--查外來鍵表NC56.CSCI有無對應的主鍵表 SELECT a.owner, A.TABLE_NAME pr
Vuejs(14)——在v-for中,利用index來對第一項新增class
<aclass="list-group-item":class="{'active':!index}"v-for="(i,index) in announcement"> index來源於v-for,i表示遍歷的陣列的元素,index表示索引。 由於index從0開始,因此如果要
vue 父子元件通訊,利用物件進行通訊
大家都知道vue父子元件間通訊用到了props,$emit。 通過props可以實現父向子通訊,通過$emit可以實現子向父通訊,現在我要介紹另外一種方式,通過props傳物件的形式通訊。 首先寫一個簡單的例子 //父元件 <parent>