AVL_全选_取消全选_打印_ZMM1035
*&---------------------------------------------------------------------*
*& Report ZMM1035
*&
*&---------------------------------------------------------------------*
*& 采购凭证打印
*&
*&---------------------------------------------------------------------*
REPORT zmm1035.
TYPE-POOLS: slis.
TABLES: a003,konp,ztemp_vendor,ekko,lfm1,lfa1,t024,ekpa.
DATA: zitcpo LIKE itcpo.
DATA: z TYPE i,
wa_ekpo TYPE ekpo,
wa_eket TYPE eket,
wa_tkomv TYPE komv,
it_ekpo TYPE TABLE OF ekpo.
DATA: zrsnum LIKE eket-rsnum.
DATA: zwaers LIKE ekko-waers,
zekgrp LIKE ekko-ekgrp,
v_werks(10) TYPE c,
t_zg(15) TYPE c,
t_bz(10) TYPE c,
v_bukrs(40) TYPE c,
v_vtext LIKE t052u-text1.
DATA: BEGIN OF i_data OCCURS 0,
ebeln LIKE ekko-ebeln, "Document No. 采购凭证
ebelp LIKE ekpo-ebelp, "Item 行项目号
matnr LIKE ekpo-matnr, "Material
txz01 LIKE ekpo-txz01, "Material description
wrkst LIKE mara-wrkst, "基本物料 2009.06.08
menge LIKE ekpo-menge, "Quantity
netpr LIKE ekpo-netpr, "Price
mwskz LIKE ekpo-mwskz,
kbetr LIKE konp-kbetr, " 2009.10.21 税率转换为数值
v_price TYPE p DECIMALS 6,
v_dj(14) TYPE c,
peinh LIKE ekpo-peinh, "Price unit
meins LIKE ekpo-meins,
werks LIKE ekpo-werks,
eindt LIKE eket-eindt, "Delivery date
bedat LIKE eket-bedat, "Purchase order date
amount(11) TYPE c, "sub.total
flag(1) TYPE c, "Item category
groes LIKE mara-groes, "大小量纲 2012.08.10
ztxz01(21) TYPE c,
ztxz02(21) TYPE c,
zlg1(17) TYPE c,
zlg2(17) TYPE c,
zkbetr LIKE konv-kbetr, "金额
zwaers LIKE konv-waers, "币别
zkpein LIKE konv-kpein, "单位 10000
y_price TYPE p DECIMALS 6,
zycjg(14) TYPE c,
END OF i_data.
DATA: BEGIN OF i_header OCCURS 0 ,
ebeln LIKE ekpo-ebeln,
werks LIKE ekpo-werks,
bedat LIKE ekko-bedat,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
stcd1 LIKE lfa1-stcd1,
addr LIKE lfa1-stras,
telf1 LIKE lfa1-telf1,
telfx LIKE lfa1-telfx,
adrnr LIKE lfa1-adrnr,
email LIKE adr6-smtp_addr,
zsabe LIKE lfb1-zsabe,
verkf LIKE lfm1-verkf,
bankn LIKE lfbk-bankn,
eknam LIKE t024-eknam,
v_vtext LIKE t052u-text1,
mwskz LIKE eine-mwskz,
stext LIKE t007s-text1,
ekorg LIKE ekko-ekorg, "
eikto LIKE lfm1-eikto, "打印采购订单限定格式
ekgrp LIKE ekko-ekgrp,
bsart LIKE ekko-bsart, "订单类型
*采购组的联系方式
v_telfx LIKE t024-telfx,
tel_number LIKE t024-tel_number,
zlifnr LIKE ekko-zlifnr,
zname1 LIKE ekko-zname1,
waers LIKE ekko-waers,
zterm LIKE ekko-zterm,
lifn2 LIKE ekpa-lifn2,
knumv LIKE ekko-knumv, "条件记录号
END OF i_header .
DATA: BEGIN OF i_wrkst OCCURS 0,
matnr LIKE mara-matnr,
wrkst LIKE mara-wrkst,
END OF i_wrkst.
DATA: v_total_c LIKE konv-kawrt,
v_total LIKE konv-kawrt. "total
DATA: BEGIN OF it_konv OCCURS 0 ,
ebeln LIKE ekko-ebeln, "采购凭证
knumv LIKE konv-knumv, "条件记录号
kposn LIKE konv-kposn, "行项目号
kschl LIKE konv-kschl, "条件类型
kbetr LIKE konv-kbetr, "金额
waers LIKE konv-waers, "币别
kpein LIKE konv-kpein, "单位 10000
END OF it_konv.
*&-----------报表输出用itab ------2014.08.13
DATA: BEGIN OF itab OCCURS 0 ,
cbox(1) TYPE c, "选择框
ebeln LIKE ekko-ebeln, "采购凭证
lifn2 LIKE ekpa-lifn2, "原厂供应商
name1 LIKE lfa1-name1, "供应商名称
ekgrp LIKE ekko-ekgrp, "采购组
bedat LIKE ekko-bedat,"凭证日期
dycs(5) TYPE c,
END OF itab.
DATA: itab2 LIKE TABLE OF itab WITH HEADER LINE.
DATA:wa_sort TYPE slis_t_sortinfo_alv,
wa_variant TYPE disvariant,
v_repid TYPE sy-repid VALUE sy-repid.
DATA:i_fieldcat TYPE lvc_t_fcat, "输出的内表字段
zwa_fieldcat TYPE lvc_s_fcat,
i_events TYPE slis_t_event, "事件存储内表
wa_events TYPE slis_alv_event,
i_ddval TYPE lvc_t_drop, "存储下拉列表的数据
th_layout TYPE lvc_s_layo,
wa_ddval TYPE lvc_s_drop.
*CONSTANTS:c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
CONSTANTS cns_pf_status TYPE slis_formname VALUE 'ALV_PF_STATUS'.
*CONSTANTS cns_user_command TYPE slis_formname VALUE 'ALV_USER_COMMAND'.
************************************************************************
*SELECT-SRECCN
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1."选择屏幕块
SELECT-OPTIONS: zebeln FOR ekko-ebeln."采购凭证
SELECT-OPTIONS: zlifn2 FOR ekpa-lifn2."供应商
SELECT-OPTIONS: zekorg FOR ekko-ekorg."采购组织
SELECT-OPTIONS: zekgrp1 FOR ekko-ekgrp."采购组
SELECT-OPTIONS: zbedat FOR ekko-bedat."凭证日期
SELECTION-SCREEN END OF BLOCK bl1.
START-OF-SELECTION.
PERFORM sub_get_opt_date. "获取报表输出的数据
PERFORM f_create_fieldcat.
PERFORM f_display_alv.
* PERFORM sub_get_data. "获取打印输出的数据
* PERFORM sub_process_data . "处理打印输出的数据
* PERFORM sub_print_data . "打印
*&---------------------------------------------------------------------*
*& Form sub_get_opt_date
*&---------------------------------------------------------------------*
* text 获取报表输出的数据
*----------------------------------------------------------------------*
FORM sub_get_opt_date.
SELECT
ekko~ebeln
ekpa~lifn2
ekko~ekgrp
ekko~bedat
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ekko INNER JOIN ekpa ON ekko~ebeln = ekpa~ebeln
WHERE ekko~ebeln IN zebeln
AND ekpa~lifn2 IN zlifn2
AND ekko~ekorg IN zekorg
AND ekko~ekgrp IN zekgrp1
AND ekko~bedat IN zbedat
AND ekpa~parvw = 'WL'.
IF sy-subrc = 0.
LOOP AT itab.
SELECT SINGLE name1 INTO itab-name1 FROM lfa1 WHERE lifnr = i_header-lifn2 .
MODIFY itab.
CLEAR itab.
ENDLOOP.
ENDIF.
ENDFORM. "sub_get_opt_date
*@---------------------------------------------------------------------*
*@ Form f_display_alv
*@---------------------------------------------------------------------*
* 调用 FUNCTION 输出ALV报表
*----------------------------------------------------------------------*
FORM f_display_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = v_repid
it_fieldcat_lvc = i_fieldcat
it_events = i_events[]
i_default = 'X'
i_save = 'A'
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'SET_PF_STATUS' "指定自建的状态栏
is_layout_lvc = th_layout
TABLES
t_outtab = itab. "i_alv.
ENDFORM. " f_display_alv
*& Form set_pf_status
*&--------------------------------------------------------------------*
* 自建状态栏的名称,自定义的GUI状态
*---------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZMM1035_STATUS'."自建状态栏的名称
ENDFORM. "set_pf_status
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->UCOMM text
* -->SELFIELD text
*---------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm "接收用户的命令
selfield TYPE slis_selfield.
READ TABLE itab INDEX selfield-tabindex.
CHECK sy-subrc = 0.
DATA: wl_answer TYPE c.
DATA: zbz TYPE c.
****************************************
***自动刷新alv数据到内表中,省去点击保存之后才刷新数据
***注意 selfield-refresh = 'X'.只做这个是不够的
DATA lr_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lr_grid.
CALL METHOD lr_grid->check_changed_data.
selfield-refresh = 'X'.
selfield-row_stable = 'X'.
selfield-col_stable = 'X'.
****************************************
* IF ucomm = '&JS' OR ucomm = '&WC'.
** ucomm = '&DATA_SAVE'.
* CALL FUNCTION 'POPUP_TO_CONFIRM'
* EXPORTING
* text_question = '您确定要执行该操作吗?'"TEXT-S07 "确定要删除吗?
* icon_button_1 = '是' "TEXT-S08 "是
* icon_button_2 = '否' "TEXT-S09 "否
* default_button = '2'
* display_cancel_button = 'X'
* start_column = 25
* start_row = 6
* IMPORTING
* answer = wl_answer
* EXCEPTIONS
* text_not_found = 1
* OTHERS = 2.
IF ucomm = '&PRINT'. "打印选中
***********判断是否有勾选记录
LOOP AT itab WHERE cbox = 'X'.
zbz = 'X'.
ENDLOOP.
IF zbz = 'X'.
PERFORM print_data.
* selfield-refresh = 'X'.
ELSE.
MESSAGE '请勾选要打印的行项目!' TYPE 'I'.
ENDIF.
ELSEIF ucomm = 'ALL'.
PERFORM select_all.
PERFORM alv_refresh CHANGING selfield-col_stable
selfield-row_stable
selfield-refresh.
ELSEIF ucomm = 'DALL'.
PERFORM cancle_all.
PERFORM alv_refresh CHANGING selfield-col_stable
selfield-row_stable
selfield-refresh.
ENDIF.
* IF wl_answer = '1'.
* CASE ucomm.
* WHEN '&WC'.
* WHEN '&JS'.
***********判断是否有勾选记录
* LOOP AT i_list WHERE cbox = 'X'.
* zbz = 'X'.
* ENDLOOP.
* IF zbz = 'X'.
* PERFORM ggzt_form. "
* selfield-refresh = 'X'. "设置刷新标记 必须
* LOOP AT i_mes.
* MESSAGE i_mes TYPE 'I'.
* ENDLOOP.
*
* ELSE.
* MESSAGE '请勾选更改状态的行项目!' TYPE 'I'.
* ENDIF.
* CLEAR zbz.
* ENDCASE.
* ENDIF.
ENDFORM. "USER_COMMAND
*&---------------------------------------------------------------------*
*& Form cancle_all
*&---------------------------------------------------------------------*
*& 打印数据
*&---------------------------------------------------------------------*
FORM print_data.
PERFORM sub_get_data. "获取打印输出的数据
PERFORM sub_process_data . "处理打印输出的数据
PERFORM sub_print_data . "打印
ENDFORM. "cancle_all
********一下三个子函数为全选和取消全选使用
*&---------------------------------------------------------------------*
*& Form alv_refresh
*&---------------------------------------------------------------------*
* 更改选择的值
*----------------------------------------------------------------------*
FORM alv_refresh CHANGING po_col_stable po_row_stable po_refresh.
po_col_stable = 'X'.
po_row_stable = 'X'.
po_refresh = 'X'.
ENDFORM. " alv_refresh
*&---------------------------------------------------------------------*
*& Form cancle_all
*&---------------------------------------------------------------------*
*& 取消全选
*&---------------------------------------------------------------------*
FORM cancle_all.
LOOP AT itab.
itab-cbox = ''.
MODIFY itab.
ENDLOOP.
ENDFORM. "cancle_all
*&---------------------------------------------------------------------*
*& Form select_all
*& 全选
*&---------------------------------------------------------------------*
FORM select_all.
LOOP AT itab.
itab-cbox = 'X'.
MODIFY itab.
ENDLOOP.
ENDFORM. "select_all
*&---------------------------------------------------------------------*
*& Form init_alv_summary
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->V_I_FIELDCAT text
*----------------------------------------------------------------------*
FORM f_create_fieldcat .
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'CBOX'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '选择' .
IF zwa_fieldcat-fieldname = 'CBOX'.
zwa_fieldcat-key = 'X'.
zwa_fieldcat-edit = 'X'.
zwa_fieldcat-checkbox = 'X'.
ENDIF.
APPEND zwa_fieldcat TO i_fieldcat.
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'EBELN'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '采购凭证' .
APPEND zwa_fieldcat TO i_fieldcat.
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'LIFN2'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '原厂供应商' .
APPEND zwa_fieldcat TO i_fieldcat.
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'NAME1'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '原厂供应商名称' .
APPEND zwa_fieldcat TO i_fieldcat.
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'EKGRP'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '采购组' .
APPEND zwa_fieldcat TO i_fieldcat.
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'BEDAT'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '凭证日期' .
APPEND zwa_fieldcat TO i_fieldcat.
CLEAR zwa_fieldcat.
zwa_fieldcat-fieldname = 'DYCS'.
zwa_fieldcat-tabname = 'ITAB' .
zwa_fieldcat-scrtext_m = '打印次数' .
APPEND zwa_fieldcat TO i_fieldcat.
ENDFORM. " init_alv_summary
*&---------------------------------------------------------------------*
*& Form sub_get_data
*&---------------------------------------------------------------------*
* text 获取打印输出的数据
*----------------------------------------------------------------------*
FORM sub_get_data.
MOVE itab[] TO itab2[].
DELETE itab2 WHERE cbox = ''. "删除未选中的
SELECT *
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE i_header
FOR ALL ENTRIES IN itab2
WHERE ebeln = itab2-ebeln.
* SELECT * INTO CORRESPONDING FIELDS OF TABLE i_header FROM ekko
* WHERE ebeln IN zebeln
** "AND lifnr IN zlifnr
* AND ekorg IN zekorg
* AND ekgrp IN zekgrp1
* AND bedat IN zbedat.
** AND frgke = '02'. "审批通过
IF i_header IS NOT INITIAL.
SELECT *
FROM ekpo
INTO CORRESPONDING FIELDS OF TABLE it_ekpo
FOR ALL ENTRIES IN i_header
WHERE ebeln = i_header-ebeln AND
loekz <> 'X' ."没有删除标记的
*&----------------------从konv里面获取条件价格 原厂价格
SELECT
knumv "条件记录号
kposn "行项目号
kschl "条件类型
kbetr "金额
waers "币别
kpein "单位10000
FROM konv
INTO CORRESPONDING FIELDS OF TABLE it_konv
FOR ALL ENTRIES IN i_header
WHERE knumv = i_header-knumv "条件记录号
AND kschl = 'PB77'. "条件类型
LOOP AT it_konv.
READ TABLE i_header WITH KEY knumv = it_konv-knumv.
it_konv-ebeln = i_header-ebeln.
MODIFY it_konv.
CLEAR it_konv.
ENDLOOP.
* SELECT * INTO CORRESPONDING FIELDS OF TABLE it_ekpo FROM ekpo WHERE ebeln in zebeln and LOEKZ = ''.
LOOP AT it_ekpo INTO wa_ekpo.
READ TABLE it_konv WITH KEY ebeln = wa_ekpo-ebeln kposn = wa_ekpo-ebelp.
i_data-zkbetr = it_konv-kbetr. "原厂价格
i_data-zwaers = it_konv-waers. "原厂币别
i_data-zkpein = it_konv-kpein. "原厂单位
i_data-y_price = it_konv-kbetr / it_konv-kpein. "原厂单价
i_data-zycjg = i_data-y_price .
i_data-ebeln = wa_ekpo-ebeln. "Document No. 采购凭证
i_data-ebelp = wa_ekpo-ebelp. "Item 行项目号
i_data-matnr = wa_ekpo-matnr. "Material No.
i_data-txz01 = wa_ekpo-txz01. "Material Description
i_data-menge = wa_ekpo-menge. "Quantity
i_data-mwskz = wa_ekpo-mwskz.
i_data-meins = wa_ekpo-meins. "单位
i_data-amount = wa_ekpo-netwr. "s ub.total
i_data-netpr = wa_ekpo-netpr. "价格
i_data-peinh = wa_ekpo-peinh. "价格单位
i_data-v_price = wa_ekpo-netpr / wa_ekpo-peinh. "dj
i_data-v_dj = i_data-v_price.
i_data-flag = wa_ekpo-pstyp. "Item category
APPEND i_data.
CLEAR: wa_ekpo, wa_eket,wa_tkomv.
ENDLOOP.
SELECT matnr wrkst FROM mara INTO TABLE i_wrkst FOR ALL ENTRIES IN i_data " 2009.06.08
WHERE matnr = i_data-matnr.
ENDIF.
ENDFORM. "sub_get_data
*&---------------------------------------------------------------------*
*& Form sub_process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub_process_data.
SORT i_data BY ebeln.
LOOP AT i_data.
************************取物料的大小量纲by augus 2012.08.10
DATA: string1(21) TYPE c,
string2(21) TYPE c,
len TYPE i.
SELECT SINGLE groes INTO i_data-groes FROM mara WHERE matnr = i_data-matnr.
len = STRLEN( i_data-groes ).
IF len > 17.
CALL FUNCTION 'STRING_SPLIT_AT_POSITION' "大小量纲拆分
EXPORTING
string = i_data-groes
pos = 17
langu = '1'
IMPORTING
string1 = string1
string2 = string2.
i_data-zlg1 = string1.
i_data-zlg2 = string2.
ELSE.
i_data-zlg1 = i_data-groes.
ENDIF.
CLEAR: string1, string2, len.
len = STRLEN( i_data-txz01 ).
IF len > 27.
CALL FUNCTION 'STRING_SPLIT_AT_POSITION' "物料描述拆分
EXPORTING
string = i_data-txz01
pos = 21
langu = '1'
IMPORTING
string1 = string1
string2 = string2.
i_data-ztxz01 = string1.
i_data-ztxz02 = string2.
ELSE.
i_data-ztxz01 = i_data-txz01 .
ENDIF.
CLEAR: string1, string2, len.
**************************************************
SELECT SINGLE eindt FROM eket INTO i_data-eindt WHERE ebeln = i_data-ebeln AND ebelp = i_data-ebelp.
* IF i_data-ebeln = zebeln.
* v_total = v_total + i_data-amount. "Total amount
* v_total_c = v_total.
* ENDIF.
* zebeln = i_data-ebeln.
SELECT SINGLE * FROM a003
WHERE aland = 'CN' AND mwskz = i_data-mwskz.
IF sy-subrc = 0.
SELECT SINGLE * FROM konp
WHERE knumh = a003-knumh.
IF sy-subrc = 0.
i_data-kbetr = konp-kbetr / 1000.
ELSE.
i_data-kbetr = 0.
ENDIF.
ENDIF.
MODIFY i_data.
ENDLOOP.
LOOP AT i_header.
SELECT SINGLE lifn2 INTO i_header-lifn2 FROM ekpa WHERE ebeln = i_header-ebeln AND parvw = 'WL'.
IF sy-subrc = 0.
SELECT SINGLE eikto FROM lfm1 INTO i_header-eikto WHERE lifnr = i_header-lifn2 " i_header-lifnr " 2014.08.11 改为临时供应商
AND ekorg = i_header-ekorg.
SELECT SINGLE * FROM lfm1 WHERE lifnr = i_header-lifn2. "i_header-lifnr 2014.08.11 改为临时供应商
* IF lfm1-expvz = '2' .
* i_header-lifnr = i_header-zlifnr.
* SELECT SINGLE * FROM ztemp_vendor WHERE lifnr = i_header-zlifnr.
* i_header-name1 = ztemp_vendor-name1.
* i_header-verkf = ztemp_vendor-verkf.
* i_header-telf1 = ztemp_vendor-telf1.
* i_header-addr = ztemp_vendor-ort01.
* i_header-telfx = ztemp_vendor-telfx.
* i_header-telf1 = ztemp_vendor-telf1.
* ELSE.
SELECT SINGLE name1 stcd1 stras telf1 telfx adrnr FROM lfa1
INTO (i_header-name1, i_header-stcd1, i_header-addr,
i_header-telf1, i_header-telfx,lfa1-adrnr)
WHERE lifnr = i_header-lifn2 . "i_header-lifnr. 2014.08.11 改为临时供应商
SELECT SINGLE smtp_addr "get E_mail
FROM adr6 INTO i_header-email
WHERE addrnumber = lfa1-adrnr.
SELECT SINGLE verkf "get contact person
FROM lfm1 INTO i_header-verkf
WHERE lifnr = i_header-lifn2 . "i_header-lifnr. 2014.08.11 改为临时供应商
* ENDIF.
ENDIF.
*********************税率************************
SELECT SINGLE text1 FROM t007s INTO i_header-stext
WHERE mwskz = i_header-mwskz AND spras = '1' AND kalsm = 'TAXCN'.
*************************************************
*******************************************************************************
SELECT SINGLE werks FROM ekpo INTO i_header-werks WHERE ebeln = i_header-ebeln.
SELECT SINGLE ekgrp FROM ekko INTO i_header-ekgrp WHERE ebeln = i_header-ebeln.
SELECT SINGLE bsart FROM ekko INTO i_header-bsart WHERE ebeln = i_header-ebeln. " 2009.06.22
***********************
SELECT SINGLE * "header data
FROM ekko
WHERE ebeln = i_header-ebeln.
SELECT SINGLE * "Contract Person of Customer
FROM t024
WHERE ekgrp = i_header-ekgrp.
**************** 2009.10.20采购组的联系方式
IF sy-subrc = 0.
i_header-eknam = t024-eknam.
i_header-v_telfx = t024-telfx.
i_header-tel_number = t024-tel_number.
ENDIF.
MODIFY i_header.
CLEAR i_header.
ENDLOOP.
ENDFORM. "sub_process_data
*&---------------------------------------------------------------------*
*& Form sub_print_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sub_print_data .
DATA: index TYPE i,
zindex TYPE i.
DESCRIBE TABLE i_header LINES index.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = 'ZMMPRO03'
language = sy-langu
device = 'PRINTER'
dialog = 'X'
OPTIONS = zitcpo
EXCEPTIONS
canceled = 1
device = 2
form = 3
OPTIONS = 4
unclosed = 5
mail_options = 6
archive_error = 7
invalid_fax_number = 8
more_params_needed_in_batch = 9
spool_error = 10
OTHERS = 11.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT i_header.
zindex = sy-tabix.
PERFORM read_data USING i_header.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'HEADER'
window = 'HEADER'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'COMPANY'
window = 'COMPANY'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'HEADER'
window = 'MAIN'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ITEM1'
window = 'MAIN'.
* ***************************************************
LOOP AT i_data WHERE ebeln = i_header-ebeln.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ITEM2'
window = 'MAIN'.
*******************物料描述的拆分modify by 2012.08.10
* IF i_data-ztxz02 IS NOT INITIAL OR i_data-zlg2 IS NOT INITIAL.
* CALL FUNCTION 'WRITE_FORM'
* EXPORTING
* element = 'ITEM4'
* window = 'MAIN'.
* ENDIF.
READ TABLE i_wrkst WITH KEY matnr = i_data-matnr.
IF i_wrkst-wrkst <> ''.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ITEM3'
window = 'MAIN'.
ENDIF.
ENDLOOP.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'FOOTER'
window = 'MAIN'.
IF zindex < index."不是最好一页 sapscript的换页NEW-PAGE
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'NEWPAGE'
window = 'MAIN'.
ENDIF.
CLEAR v_total.
ENDLOOP.
CALL FUNCTION 'CLOSE_FORM'.
ENDFORM. " sub_print_data
*&---------------------------------------------------------------------*
*& Form read_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM read_data USING i_header LIKE i_header.
CLEAR: zwaers,zekgrp,v_bukrs,v_werks,t_zg,t_bz,v_vtext.
SELECT SINGLE * FROM ekko WHERE ebeln = i_header-ebeln.
zwaers = i_header-waers.
zekgrp = i_header-ekgrp.
CASE i_header-werks.
WHEN '1000'.
v_bukrs = '1000工厂'.
v_werks = '制造一部'.
t_zg = '小凡、小诺'.
t_bz = '小米'.
WHEN OTHERS.
v_werks = ''.
t_zg = ''.
t_bz = ''.
ENDCASE.
LOOP AT i_data WHERE ebeln = i_header-ebeln.
v_total = v_total + i_data-amount. "Total amount
v_total_c = v_total.
ENDLOOP.
SELECT text1
FROM t052u INTO v_vtext WHERE zterm = i_header-zterm. "付款方式
ENDSELECT .
ENDFORM. "read_data
AVL_全选_取消全选_打印_ZMM1035相关推荐
- react实现全选、取消全选和个别选择
react里面实现全选和取消全选,个别选择等操作,效果如下 代码: import React, {Component} from 'react' export default class Demo e ...
- 在项目中学习.NET的JQuery CheckBox方法(全选、取消全选、其他)
一.在项目中遇到的CheckBox的全选和取消全选以及其他等解决方案如下: // 对全选和取消全选的事件 $("#CheckAll").click(function () { ...
- axure实现复选框全选_AxureRP8实战手册-案例73(全选与取消全选效果)
案例73. 全选与取消全选效果 案例来源: 百度音乐-音乐盒 案例效果: 初始状态/取消全选时:(图5-117) 全选后取消任一选项时:(图5-118) 全选/单选全部选中时:(图5-119) 案例描 ...
- DataGridView添加一行数据、全选、取消全选、清空数据、删除选中行
.net 2005下的Windows Form Application,一个DataGridView控件和4个Button,界面设置如下: 代码如下,有注解,相信大家都看得明白: using Syst ...
- php 复选框全选和取消,基于JavaScript实现复选框的全选和取消全选
这篇文章主要为大家详细介绍了基于JavaScript实现复选框的全选和取消全选,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了js复选框的全选和取消全选的具体代码,供大家参考, ...
- vue全选和取消全选(无bug)
很简单的使用vue实现全选和取消全选 直接上代码,简单易懂不懂得可以留言. <!DOCTYPE html> <html lang="en"> <hea ...
- 实现全选和取消全选功能
<body> <div class="wrap"> <table> <thead> <tr> <th> &l ...
- 通过js控制layui选择框checkbox的选中、取消选中,以及使用layui实现全选、取消全选的一种方式
js控制选中.取消选中 ,layui实现全选.取消全选 layui版本2.5.x html部分: <form class="layui-form" id="form ...
- react 全选_react实现全选、取消全选和个别选择
react里面实现全选和取消全选,个别选择等操作,效果如下 代码: import React, {Component} from 'react' export default class Demo e ...
最新文章
- 跟老齐学python轻松入门_【英语动词后面跟什么词?】作业帮
- 脑机交互研究及标准化实践
- STM32 单片机启动流程
- javascript 函数 add(1)(2)(3)(4)实现无限极累加 —— 一步一步原理解析
- 上交所行情文件导入数据库
- 利用R、Octave、NumPy和SciPy求解线性方程组
- 新冠疫情,或加速银行数字化服务转型
- Dart入门—开发环境
- uft怎么做app自动化测试_UFT自动化测试实施-VBS编程简要教程
- Redis缓存雪崩,如何解决?
- 利用sitemap提交漏洞劫持其它网站排名
- 为什么比同龄人显老?原来基因变异在作怪
- 物联网实战项目 免费领取!手把手教你如何从0搭建智慧家居中的视频监控系统
- 下列哪种软件不能编辑html语言,强国挑战答题答案:下面哪种语言最适合用来编写网页中嵌入运行的应用程序?()...
- AI人工智能简介和其定义
- html 取消settimeout,JavaScript中停止执行setInterval和setTimeout事件的方法
- 输入日期查星座 php,php根据日期显示所在星座的方法,php日期所在星座_PHP教程...
- Vue2,Webpack的基础配置以及使用脚手架创建工程
- 【物理实验及其数据处理】 集成电路传感器特性测量及其应用
- android程序包不存在,Android应用开发Android studio 错误: 程序包 不存在
热门文章
- 电路原理笔记整理,电路原理知识点总结.doc
- V4L2视频驱动框架---v4l2_device管理模块简述
- 魔兽世界linux客户端,使用Wine在Linux下玩魔兽世界
- 关于Omnipeek遇到“试图执行的操作不受支持”问题
- 指数加权平均(EMA)理解
- 使用ALT+数字小键盘在文本文件中输入特殊字符
- MATLAB绘图合集: 绘制表达式和函数fplot
- 安装mysql5.7防火墙关了为什么远程登录不了呢?
- python编写一个名片_python基础-实现名片功能
- 若依前后端分离版本集成Mybatis-plus