根据需求打印
来源:互联网 发布:华为ec6108v9安装软件 编辑:程序博客网 时间:2024/06/11 16:25
TYPE-POOLs:slis,icon.
TABLES:kna1,knvv,knb5,zyyzb011,t171,t151,t151t,knb1.
TYPES:BEGIN OF ty_itab,
kunnr TYPE kna1-kunnr,"编码
name1 TYPE kna1-name1,"客户名称
bzirk TYPE t171-bzirk,"销售地区
bztxt TYPE t171t-bztxt,"销售地区文本
kdgrp TYPE t151-kdgrp,"客户组
ktext TYPE t151t-ktext,"客户组文本
konda TYPE t188-konda,"定价组
vtext TYPE t188t-vtext,"定价组文本
vrsnr TYPE knb1-vrsnr,"客户有效期
zyxqz TYPE i,
END OF ty_itab.
TYPES:BEGIN OF ty_data,
vrsnr TYPE knb1-vrsnr,
END OF ty_data.
TYPES:BEGIN OF ty_data1,
zsj TYPE zyyzb011-zsj,
END OF ty_data1.
*
DATA:lt_knb1 TYPE TABLE OF ty_data WITH HEADER LINE.
DATA:gs_knb1 TYPE ty_data.
*DATA:gt_itab TYPE TABLE OF ty_data WITH HEADER LINE.
data:lt_data TYPE TABLE OF ty_itab WITH HEADER LINE.
DATA:ls_data TYPE ty_itab.
*DATA:gs_itab TYPE ty_itab.
*DATA:gs_data TYPE ty_itab.
DATA l_index TYPE i.
DATA lt_item TYPE TABLE OF zwj001 WITH HEADER LINE.
DATA ls_item TYPE zwj001.
DATA:gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo.
DATA: ok_code TYPE sy-ucomm.
DATA: save_ok LIKE ok_code.
*************************************************************
*
*选择屏幕
*************************************************************
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:
p_vkorg LIKE knvv-vkorg DEFAULT '1000',"工厂
* p_kdgrp LIKE t151-kdgrp , "客户组
p_vtweg LIKE knvv-vtweg NO-DISPLAY DEFAULT '00',"分销渠道
p_spart LIKE knvv-spart NO-DISPLAY DEFAULT '00',"部门
p_vrsnr LIKE knb1-vrsnr NO-DISPLAY."
SELECT-OPTIONS:s_vrsnr FOR knb1-vrsnr NO-DISPLAY,
s_kdgrp FOR t151-kdgrp NO INTERVALS NO-EXTENSION,"客户组
s_bzirk FOR t171-bzirk NO-EXTENSION,"销售地区
s_kunnr FOR kna1-kunnr NO-EXTENSION."客户编码
SELECTION-SCREEN:END OF BLOCK b1.
********************************************************
*
*取数
********************************************************
INITIALIZATION.
START-OF-SELECTION.
PERFORM frm_get_data.
**********************************************************
FORM FRM_GET_DATA .
CLEAR:lt_data[],lt_data.
DATA:
lt_knb5 TYPE TABLE OF knb5 WITH HEADER LINE,
lt_data1 TYPE TABLE OF KNB1 WITH HEADER LINE,
lt_zyyzb011 TYPE TABLE OF ty_data1 WITH HEADER LINE,
gs_zyyzb011 TYPE ty_data1.
SELECT zsj FROM zyyzb011 INTO TABLE lt_zyyzb011.
LOOP AT lt_zyyzb011.
IF sy-subrc = 0.
gs_zyyzb011-zsj = lt_zyyzb011-zsj.
ENDIF.
ENDLOOP.
SELECT vrsnr FROM knb1 INTO CORRESPONDING FIELDS OF TABLE lt_knb1 WHERE knb1~vrsnr <> ''.
*
SELECT
t05~kunnr
t05~name1
t01~bztxt
t03~ktext
t04~vtext
t06~vrsnr
FROM knvv AS t02
INNER JOIN kna1 AS t05 ON t02~kunnr = t05~kunnr
INNER JOIN t171t AS t01 ON t02~bzirk = t01~bzirk
INNER JOIN t151t AS t03 ON t02~kdgrp = t03~kdgrp
INNER JOIN t188t AS t04 ON t02~konda = t04~konda
INNER JOIN knb1 AS T06 ON T02~kunnr = t06~kunnr
INTO CORRESPONDING FIELDS OF TABLE
lt_data
WHERE t02~kunnr IN s_kunnr "客户编码
AND t02~kdgrp IN s_kdgrp "定价组
AND t02~vkorg = p_vkorg "工厂
AND t02~bzirk IN s_bzirk "销售地区
AND t02~vtweg = '00'
AND t02~spart = '00'
AND t03~spras = sy-langu
AND t01~spras = sy-langu
AND t04~spras = sy-langu
AND t06~vrsnr <> ''.
DATA:a(10) TYPE c,
b(8) TYPE d,
c(8) TYPE d,
d(8) TYPE i,
e(8) TYPE d,
f(8) TYPE c,
h(8) TYPE i.
f = gs_zyyzb011-zsj.
h = f.
LOOP AT lt_data.
* LOOP AT lt_knb1.
* IF sy-subrc = 0.
* gs_knb1-vrsnr = lt_knb1-vrsnr.
* ENDIF.
a = lt_data-vrsnr.
CONCATENATE a+0(4) a+5(2) a+8(2) INTO c.
b = sy-datum.
e = c - b.
d = e.
* ENDLOOP.
lt_data-zyxqz = d.
MODIFY lt_data." INDEX sy-tabix.
ENDLOOP.
PERFORM frm_show_data.
* PERFORM display_data.
ENDFORM. " FRM_GET_DATA
*&---------------------------------------------------------------------*
*& Form FRM_SHOW_DATA
*&---------------------------------------------------------------------*
* 展示数据
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_SHOW_DATA .
DATA: ws_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
ws_fieldgroups_tab TYPE slis_t_sp_group_alv,
ws_layout TYPE slis_layout_alv,
ws_sortfields_tab TYPE slis_t_sortinfo_alv WITH HEADER LINE,
ws_events TYPE slis_t_event.
DATA: nn TYPE i VALUE 0.
DATA: title TYPE lvc_title.
DATA: color TYPE slis_t_specialcol_alv WITH HEADER LINE.
DATA:gs_settings TYPE lvc_s_glay.
DEFINE hout.
nn = nn + 1.
ws_fieldcat-col_pos = nn.
ws_fieldcat-tabname = 'GT_ITAB'.
ws_fieldcat-hotspot = &1.
ws_fieldcat-fieldname = &2.
ws_fieldcat-seltext_m = &3.
ws_fieldcat-edit = &4.
ws_fieldcat-quantity = &5.
ws_fieldcat-ref_tabname = &6.
ws_fieldcat-ref_fieldname = &7.
ws_fieldcat-no_zero = &8.
ws_fieldcat-do_sum = &9.
append ws_fieldcat.
clear ws_fieldcat.
END-OF-DEFINITION.
ws_layout-zebra = 'X'.
ws_layout-get_selinfos = 'X'.
ws_layout-colwidth_optimize = 'X'.
ws_layout-detail_popup = 'X'.
* ws_layout-box_fieldname = 'X'.
* ws_layout-box_tabname = 'GT_ITAB'.
gs_settings-edt_cll_cb = 'X'.
hout:
'' 'KUNNR' '客户编码' '' '' '' '' '' '',
'' 'NAME1' '客户名称' '' '' '' '' '' '',
'' 'BZTXT' '销售地区' '' '' '' '' '' '',
'' 'KTEXT' '客户组' '' '' '' '' '' '',
'' 'VTEXT' '定价组' '' '' '' '' '' '',
'' 'VRSNR' '客户有效期' '' '' '' '' '' '',
'' 'ZYXQZ' '有效期值' '' '' '' '' '' ''.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE1'
i_html_height_top = 15 "HTML框的高度
is_layout = ws_layout
it_fieldcat = ws_fieldcat[]
it_special_groups = ws_fieldgroups_tab[]
it_sort = ws_sortfields_tab[]
* i_callback_html_top_of_page = 'ALV_TOP_OF_PAGE'
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'STATUS9000'
i_grid_settings = gs_settings
* I_GRID_TITLE = TITLE
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = lt_data[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " FRM_SHOW_DATA
FORM user_command USING i_ucomm LIKE sy-ucomm
is_selfield TYPE slis_selfield."USING r_ucomm LIKE sy-ucomm " rs_selfield TYPE slis_selfield.
CASE i_ucomm.
WHEN '&F15' OR '&F03'.
LEAVE TO SCREEN 0.
WHEN 'PRINT'.
PERFORM PING_SMART.
ENDCASE.
ENDFORM.
FORM STATUS9000 USING rt_extab TYPE slis_t_extab."rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS9000'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PING_SMART
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PING_SMART .
* DATA:lt_output LIKE lt_data.
* DATA:ls_output LIKE ls_data.
* DATA:lt_output TYPE TABLE OF ty_itab WITH HEADER LINE.
* DATA:ls_output TYPE ty_itab.
*
* DATA:lt_output1 TYPE TABLE OF ty_itab WITH HEADER LINE.
* DATA:ls_output1 LIKE ls_data.
CLEAR:lt_item.
*编写行项目
LOOP AT lt_data INTO ls_data.
IF sy-subrc = 0.
lt_data-zyxqz = ls_data-zyxqz.
ENDIF.
MOVE-CORRESPONDING ls_data TO ls_item.
APPEND ls_item TO lt_item.
CLEAR ls_item.
ENDLOOP.
DATA: p_formname TYPE tdsfname.
DATA: l_fm_name TYPE rs38l_fnam.
p_formname = '&&&&&'.
IF p_formname IS INITIAL.
EXIT.
ENDIF.
* determine smartform function module for delivery note
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = p_formname
IMPORTING
fm_name = l_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CALL FUNCTION l_fm_name
EXPORTING
ls_data = lt_data
TABLES
lt_item = lt_item
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " PING_SMART
FORM FRM_FIELDCAT USING p_field p_text p_edit .
DATA lw_fcat TYPE lvc_s_fcat.
lw_fcat-fieldname = p_field.
lw_fcat-coltext = p_text.
lw_fcat-edit = p_edit.
APPEND lw_fcat TO gt_fieldcat.
ENDFORM.
- 根据需求打印
- 打印和显示特殊需求
- java,根据对角线打印矩阵
- 根据需求设计测试用例
- 如何根据需求设计测试用例
- 如何根据需求设计测试用例
- 如何根据需求设计测试用例
- 根据需求随机生成一段话
- Excel VBA 根据实际需求合并单元格
- 可根据需求定制的jquery分页
- Expandlistview2级菜单显示(根据项目需求)
- iOS根据需求修改UIWebView的UA
- 根据性能需求评估并发用户数
- 根据文字需求得到具体查询sql
- iOS根据不同需求截取图片
- 怎样根据需求来划分子网
- 根据项目需求Dialog简单封装
- 学习前辈系列:根据需求找代码
- Android学习之——自己搭建Http框架(2)——框架扩展
- 图片本地预览 flash html5
- 如何写出更好的Java代码
- android下spinner值的修改以及alertDialog值的获取
- dom 编程(html和xml)
- 根据需求打印
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- Unity3D yield的总结
- PAT A 1062. Talent and Virtue (25)
- JS----等价表格
- spring——控制反转
- Android学习之——自己搭建Http框架(2)——框架扩展
- 经典智力分析题
- Android 4.0 Launcher2源码分析——导入eclipse进行调试