1 ************************************************************************ 2 * Program Name : 3 * Descriptions : 4 * T-Code : 5 * Updates Tables : 6 * Input Parameters : 7 * Output Parameters : 8 * Return Codes : 9 * Special Logic : 10 * Includes : 11 "表:TABLES:MSEG,LFA1,MARA,EKPO,EKKO,MARD,EKBE,EKET. 12 ************************************************************************ 13 * Modification Log 14 ************************************************************************ 15 * Date Ver. Programmer Descriptions 16 * -------- ---- ------------ ------------------------------------------- 17 * 201 1.0 Original Create 18 * 19 ************************************************************************ 20 REPORT ZMMR501 NO STANDARD PAGE HEADING 21 MESSAGE-ID 00 LINE-SIZE 177 LINE-COUNT 200. 22 *********************************************************************** 23 * Tables Definitions 24 ************************************************************************ 25 *TABLES:. 26 27 TABLES: eina,eine,konp,a017,lfa1,makt,marc. 28 ************************************************************************ 29 * Data Definitions 30 ************************************************************************ 31 DATA: BEGIN OF alv_data occurs 0, 32 lifnr LIKE a017-lifnr, "供應商帳戶號碼 33 name1 LIKE lfa1-name1," 供应商简称 34 lfa1_sortl LIKE lfa1-sortl," 供应商搜索条件 35 matnr LIKE a017-matnr, "物料號碼 36 maktx LIKE makt-maktx,"物料说明 37 ekorg LIKE eine-ekorg, "採購組織 38 werks LIKE eine-werks, "工廠 39 esokz LIKE a017-esokz, "採購資訊記錄種類 40 txz01 LIKE eina-txz01,"短文 41 sortl LIKE eina-sortl,"排序条件 42 datbi LIKE a017-datbi, "條件記錄的有效期限 43 datab LIKE a017-datab, "條件記錄的生效日期 44 kschl LIKE konp-kschl, "條件類型 45 knumh LIKE konp-knumh, "條件記錄號碼 46 kopos LIKE konp-kopos, "條件的序號 47 kbetr LIKE konp-kbetr, "條件金額或百分比 48 konwa LIKE konp-konwa, "條件單位 49 kpein LIKE konp-kpein, "條件定價單位 50 mwsk1 LIKE konp-mwsk1, "進項稅/銷項稅碼 51 loevm_ko LIKE konp-loevm_ko, "條件項目的刪除指示碼 52 infnr LIKE eina-infnr, "採購資訊記錄的號碼 53 matkl LIKE eina-matkl, "物料群組 54 loekz LIKE eina-loekz, "完整采购资讯记录 55 loekz1 LIKE eine-loekz, "完整采购资讯记录 56 erdat LIKE eina-erdat, "記錄建立日期 57 ernam LIKE eina-ernam, "物件建立者的姓名 58 mahn1 LIKE eina-mahn1, "第一次催單天數 59 mahn2 LIKE eina-mahn2, "第二次催單天數 60 mahn3 LIKE eina-mahn3, "第三次催單天數 61 urzla LIKE eina-urzla, "原產地證明的發貨國家 62 lmein LIKE eina-lmein, "基礎計量單位 63 ekgrp LIKE eine-ekgrp, "採購群組 64 waers LIKE eine-waers, "幣別碼 65 minbm LIKE eine-minbm, "最小採購單數量 66 norbm LIKE eine-norbm, "標準採購單數量 67 aplfz LIKE eine-aplfz, "計劃交貨時間 68 bstyp LIKE eine-bstyp, "採購文件種類 69 ebeln LIKE eine-ebeln, "採購文件號碼 70 ebelp LIKE eine-ebelp, "採購文件的項目號碼 71 datlb LIKE eine-datlb, "文件的日期 72 netpr LIKE eine-netpr, "採購資訊記錄中的淨價 73 peinh LIKE eine-peinh, "價格單位 74 bprme LIKE eine-bprme, "採購單的計價單位 75 prdat LIKE eine-prdat, "價格有效期限 76 mwskz LIKE eine-mwskz, "進項稅/銷項稅碼 77 aut_source LIKE eine-aut_source, "與自動採購相關 78 lvorm LIKE marc-lvorm,"为物料加注删除旗标 79 dismm LIKE marc-dismm,"MRP 类型 80 dispo LIKE marc-dispo,"MRP 控制员 81 plifz LIKE marc-plifz,"MRP 计划交货天数 82 beskz LIKE marc-beskz," 采购类型 83 sobsl LIKE marc-sobsl," 特殊采购类型 84 END OF alv_data. 85 86 DATA:pro_data LIKE alv_data occurs 0 WITH HEADER LINE. 87 DATA:alv_data2 LIKE alv_data occurs 0 WITH HEADER LINE. 88 89 DATA: gs_layout TYPE slis_layout_alv, 90 gt_fieldcat TYPE slis_t_fieldcat_alv ,"with header line. 91 wa_fieldcat TYPE slis_fieldcat_alv. 92 ************************************************************************ 93 * Includes Module 94 ************************************************************************ 95 96 ************************************************************************ 97 * Selection Screen 98 ************************************************************************ 99 SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-b01. 100 101 PARAMETERS:c_pro AS CHECKBOX DEFAULT 'X'," 包含制程委外 102 c_weight AS CHECKBOX DEFAULT 'X'." 查看有效资料 103 104 PARAMETERS:p_ekorg LIKE eine-ekorg DEFAULT '2000' OBLIGATORY."采购组织 105 106 107 SELECT-OPTIONS: 108 s_werks FOR eine-werks, 109 s_loev_k FOR konp-loevm_ko DEFAULT '' ," 条件是否删除 110 s_loekz FOR eina-loekz DEFAULT '',"完整采购资讯记录 111 s_loekz1 FOR eine-loekz DEFAULT ''," 采购组织上删除旗标 112 s_esokz FOR a017-esokz,"采购资讯记录种类 113 s_infnr FOR eina-infnr, 114 s_matnr FOR a017-matnr, 115 s_lifnr FOR a017-lifnr, 116 s_datbi FOR a017-datbi, 117 s_datab FOR a017-datab, 118 s_kschl FOR a017-kschl, 119 s_matkl FOR eina-matkl. "物料群組 120 121 SELECTION-SCREEN END OF BLOCK b1. 122 123 ************************************************************************ 124 * Initialization 125 ************************************************************************ 126 INITIALIZATION. 127 128 ************************************************************************ 129 * At Selection Screen 130 ************************************************************************ 131 AT SELECTION-SCREEN. 132 133 ************************************************************************ 134 * At Selection Screen Output 135 ************************************************************************ 136 AT SELECTION-SCREEN OUTPUT. 137 138 ************************************************************************ 139 * Report Format 140 ************************************************************************ 141 TOP-OF-PAGE. 142 143 END-OF-PAGE. 144 ************************************************************************ 145 * Main Process 146 ************************************************************************ 147 START-OF-SELECTION. 148 PERFORM get_data. 149 PERFORM get_col. 150 PERFORM alv_show. 151 END-OF-SELECTION. 152 153 *&---------------------------------------------------------------------* 154 *& Form GET_DATA 155 *&---------------------------------------------------------------------* 156 *& text 157 *&---------------------------------------------------------------------* 158 *& --> p1 text 159 *& <-- p2 text 160 *&---------------------------------------------------------------------* 161 FORM GET_DATA . 162 DATA: l_index LIKE sy-tabix, 163 l_infnr LIKE eine-infnr, 164 l_datab LIKE a017-datab. 165 gs_layout-colwidth_optimize = 'X'. 166 167 CLEAR:alv_data[],alv_data,alv_data2[],alv_data,pro_data[],pro_data. 168 SELECT a017~lifnr,a017~matnr,eine~ekorg, 169 lfa1~name1,lfa1~sortl as lfa1_sortl, 170 a017~esokz,a017~datbi, 171 a017~datab,konp~kschl, 172 konp~knumh,konp~kopos, 173 konp~kbetr,konp~konwa, 174 konp~kpein,konp~mwsk1, 175 konp~loevm_ko, 176 eina~infnr,eina~matkl,eina~loekz, 177 eina~urzla,eina~lmein,eina~mahn1, 178 eina~mahn2,eina~mahn3, 179 eine~erdat, 180 eine~ekgrp,eine~waers,eine~minbm, 181 eine~bstyp,eine~ebeln,eine~ernam, 182 eine~ebelp,eine~datlb,eine~netpr, 183 eine~peinh, eine~bprme,eine~prdat, 184 eine~mwskz,eine~aut_source, 185 eine~norbm,eine~werks,eine~loekz AS loekz1 186 FROM a017 187 LEFT JOIN konp ON konp~knumh EQ a017~knumh 188 INNER JOIN eina ON eina~matnr EQ a017~matnr AND 189 eina~lifnr EQ a017~lifnr 190 INNER JOIN eine ON eine~infnr EQ eina~infnr AND 191 eine~ekorg EQ a017~ekorg AND 192 eine~esokz EQ a017~esokz AND 193 eine~werks EQ a017~werks 194 INNER JOIN lfa1 ON lfa1~lifnr EQ a017~lifnr 195 INTO CORRESPONDING FIELDS OF TABLE @alv_data 196 WHERE a017~ekorg EQ @p_ekorg AND 197 a017~werks IN @s_werks AND 198 a017~lifnr IN @s_lifnr AND 199 a017~matnr IN @s_matnr AND 200 a017~esokz IN @s_esokz AND 201 a017~datbi IN @s_datbi AND 202 a017~datab IN @s_datab AND 203 konp~kschl IN @s_kschl AND 204 konp~loevm_ko IN @s_loev_k AND 205 eina~infnr IN @s_infnr AND 206 eina~matnr IN @s_matnr AND 207 eina~loekz IN @s_loekz AND 208 eine~loekz IN @s_loekz1 AND 209 eine~esokz IN @s_esokz AND 210 eina~matkl IN @s_matkl. 211 * makt~spras = @sy-langu. 212 213 "工厂为空的采购咨询记录 214 SELECT a018~lifnr,a018~matnr,eine~ekorg, 215 lfa1~name1,lfa1~sortl as lfa1_sortl, 216 a018~esokz,a018~datbi, 217 a018~datab,konp~kschl, 218 konp~knumh,konp~kopos, 219 konp~kbetr,konp~konwa, 220 konp~kpein,konp~mwsk1, 221 konp~loevm_ko, 222 eina~infnr,eina~matkl,eina~loekz, 223 eina~urzla,eina~lmein,eina~mahn1, 224 eina~mahn2,eina~mahn3, 225 eine~erdat, 226 eine~ekgrp,eine~waers,eine~minbm, 227 eine~bstyp,eine~ebeln,eine~ernam, 228 eine~ebelp,eine~datlb,eine~netpr, 229 eine~peinh, eine~bprme,eine~prdat, 230 eine~mwskz,eine~aut_source, 231 eine~norbm,eine~werks,eine~loekz AS loekz1 232 FROM a018 233 LEFT JOIN konp ON konp~knumh EQ a018~knumh 234 INNER JOIN eina ON eina~matnr EQ a018~matnr AND 235 eina~lifnr EQ a018~lifnr 236 INNER JOIN eine ON eine~infnr EQ eina~infnr AND 237 eine~ekorg EQ a018~ekorg AND 238 eine~esokz EQ a018~esokz "AND 239 * eine~werks EQ a018~werks 240 INNER JOIN lfa1 ON lfa1~lifnr EQ a018~lifnr 241 INTO CORRESPONDING FIELDS OF TABLE @alv_data2 242 WHERE a018~ekorg EQ @p_ekorg AND 243 * a018~werks IN @s_werks AND 244 a018~lifnr IN @s_lifnr AND 245 a018~matnr IN @s_matnr AND 246 a018~esokz IN @s_esokz AND 247 a018~datbi IN @s_datbi AND 248 a018~datab IN @s_datab AND 249 konp~kschl IN @s_kschl AND 250 konp~loevm_ko IN @s_loev_k AND 251 eina~infnr IN @s_infnr AND 252 eina~matnr IN @s_matnr AND 253 eina~loekz IN @s_loekz AND 254 eine~loekz IN @s_loekz1 AND 255 eine~esokz IN @s_esokz AND 256 eina~matkl IN @s_matkl. 257 258 APPEND LINES OF alv_data2[] TO alv_data[]. 259 260 "-->制程委外采购资讯记录查询 261 IF c_pro EQ 'X'. 262 SELECT a025~lifnr,eine~ekorg, 263 lfa1~name1,lfa1~sortl as lfa1_sortl, 264 a025~esokz,a025~datbi, 265 a025~datab,konp~kschl, 266 konp~knumh,konp~kopos, 267 konp~kbetr,konp~konwa, 268 konp~kpein,konp~mwsk1, 269 konp~loevm_ko, 270 eina~infnr,eina~matkl,eina~loekz, 271 eina~urzla,eina~lmein,eina~mahn1, 272 eina~mahn2,eina~mahn3, 273 eina~erdat,eina~txz01,eina~sortl, 274 eine~ekgrp,eine~waers,eine~minbm, 275 eine~bstyp,eine~ebeln,eine~ernam,"eine~aplfz, 276 eine~ebelp,eine~datlb,eine~netpr, 277 eine~peinh, eine~bprme,eine~prdat, 278 eine~mwskz,eine~aut_source, 279 eine~norbm,eine~werks,eine~loekz AS loekz1 280 FROM a025 281 LEFT JOIN konp ON konp~knumh EQ a025~knumh 282 INNER JOIN eina ON eina~infnr EQ a025~infnr AND 283 eina~lifnr EQ a025~lifnr 284 INNER JOIN eine ON eine~infnr EQ eina~infnr AND 285 eine~ekorg EQ a025~ekorg AND 286 eine~werks EQ a025~werks AND 287 eine~esokz EQ a025~esokz 288 INNER JOIN lfa1 ON lfa1~lifnr EQ a025~lifnr 289 INTO CORRESPONDING FIELDS OF TABLE @pro_data 290 WHERE a025~ekorg EQ @p_ekorg AND 291 a025~werks IN @s_werks AND 292 a025~lifnr IN @s_lifnr AND 293 a025~esokz IN @s_esokz AND 294 a025~datbi IN @s_datbi AND 295 a025~datab IN @s_datab AND 296 konp~kschl IN @s_kschl AND 297 konp~loevm_ko IN @s_loev_k AND 298 eina~infnr IN @s_infnr AND 299 eina~matnr IN @s_matnr AND 300 eina~loekz IN @s_loekz AND 301 eine~loekz IN @s_loekz1 AND 302 eine~esokz IN @s_esokz AND 303 eina~matkl IN @s_matkl. 304 305 APPEND LINES OF pro_data[] TO alv_data[]. 306 ENDIF. 307 SORT alv_data by infnr datbi DESCENDING. 308 CLEAR:l_datab,l_infnr. 309 LOOP AT alv_data. 310 l_index = sy-tabix. 311 312 SELECT SINGLE eine~aplfz FROM eine 313 INTO alv_data-aplfz 314 WHERE ekorg EQ alv_data-ekorg AND 315 werks EQ alv_data-werks AND 316 infnr EQ alv_data-infnr AND 317 esokz EQ alv_data-esokz. 318 319 IF c_weight EQ 'X' AND ( 320 ( alv_data-infnr EQ l_infnr AND 321 alv_data-datbi < l_datab ) OR 322 ( alv_data-loevm_ko EQ 'X') OR 323 alv_data-datab > sy-datum ). 324 325 DELETE alv_data INDEX l_index. 326 CONTINUE. 327 ENDIF. 328 l_datab = alv_data-datab.l_infnr = alv_data-infnr. 329 330 IF alv_data-matnr NE ''. 331 SELECT SINGLE lvorm,dismm,dispo,plifz,beskz,sobsl 332 FROM marc 333 INTO (@alv_data-lvorm,@alv_data-dismm,@alv_data-dispo, 334 @alv_data-plifz,@alv_data-beskz,@alv_data-sobsl) 335 WHERE matnr EQ @alv_data-matnr AND 336 werks EQ @alv_data-werks. 337 338 IF sy-subrc <> 0. 339 SELECT SINGLE lvorm,dismm,dispo,plifz,beskz,sobsl 340 FROM marc 341 INTO (@alv_data-lvorm,@alv_data-dismm,@alv_data-dispo, 342 @alv_data-plifz,@alv_data-beskz,@alv_data-sobsl) 343 WHERE matnr EQ @alv_data-matnr AND 344 werks EQ @p_ekorg. 345 ENDIF. 346 347 348 SELECT SINGLE maktx 349 FROM makt INTO alv_data-maktx 350 WHERE matnr EQ alv_data-matnr AND 351 makt~spras = sy-langu. 352 353 ENDIF. 354 355 IF alv_data-kschl EQ 'ZZD1' OR alv_data-kschl EQ 'ZZD2'. 356 alv_data-kbetr = alv_data-kbetr / 10. 357 ENDIF. 358 359 MODIFY alv_data INDEX l_index. 360 ENDLOOP. 361 ENDFORM. 362 363 FORM GET_COL. 364 DATA: L_REPID TYPE SY-REPID, 365 L_INCLNAME TYPE TRDIR-NAME, 366 L_IDX LIKE SY-TABIX. 367 CLEAR: GT_FIELDCAT[], WA_FIELDCAT. 368 369 L_REPID = L_INCLNAME = SY-CPROG. 370 371 CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' 372 EXPORTING 373 I_PROGRAM_NAME = L_REPID 374 I_INTERNAL_TABNAME = 'ALV_DATA' 375 I_INCLNAME = L_INCLNAME 376 CHANGING 377 CT_FIELDCAT = GT_FIELDCAT 378 EXCEPTIONS 379 INCONSISTENT_INTERFACE = 1 380 PROGRAM_ERROR = 2 381 OTHERS = 3. 382 LOOP AT gt_fieldcat INTO wa_fieldcat. 383 l_idx = sy-tabix. 384 CASE wa_fieldcat-fieldname. 385 WHEN 'ESOKZ'. 386 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 387 wa_fieldcat-seltext_l = '资讯种类'. 388 wa_fieldcat-ddictxt = 'S'. 389 WHEN 'LOEVM_KO'. 390 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 391 wa_fieldcat-seltext_l = '条件删除指示码'. 392 wa_fieldcat-ddictxt = 'S'. 393 WHEN 'LOEKZ'. 394 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 395 wa_fieldcat-seltext_l = '完整采购资讯记录'. 396 wa_fieldcat-ddictxt = 'S'. 397 WHEN 'LOEKZ1'. 398 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 399 wa_fieldcat-seltext_l = '采购组织是否删除'. 400 wa_fieldcat-ddictxt = 'S'. 401 WHEN 'EKGRP'. 402 WHEN 'ALIFZ'. 403 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 404 wa_fieldcat-seltext_l = '采购群组'. 405 wa_fieldcat-ddictxt = 'S'. 406 WHEN 'LVORM'. 407 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 408 wa_fieldcat-seltext_l = '料号已删除'. 409 wa_fieldcat-ddictxt = 'S'. 410 WHEN 'DISMM'. 411 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 412 wa_fieldcat-seltext_l = 'MRP类型'. 413 wa_fieldcat-ddictxt = 'S'. 414 WHEN 'PLIFZ'. 415 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 416 wa_fieldcat-seltext_l = 'MRP计划交货天数'. 417 wa_fieldcat-ddictxt = 'S'. 418 WHEN 'SOBSL'. 419 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 420 wa_fieldcat-seltext_l = '特殊采购类型'. 421 wa_fieldcat-ddictxt = 'S'. 422 WHEN 'LFA1_SORTL'. 423 wa_fieldcat-seltext_s = wa_fieldcat-seltext_m = 424 wa_fieldcat-seltext_l = '供应商简称'. 425 wa_fieldcat-ddictxt = 'S'. 426 ENDCASE. 427 * CLEAR wa_fieldcat-key. 428 MODIFY gt_fieldcat FROM wa_fieldcat INDEX l_idx. 429 ENDLOOP. 430 ENDFORM. 431 432 FORM ALV_SHOW. 433 DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV. 434 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 435 EXPORTING 436 I_CALLBACK_PROGRAM = SY-REPID 437 IS_LAYOUT = GS_LAYOUT 438 IT_FIELDCAT = GT_FIELDCAT[] 439 I_SAVE = 'A' 440 TABLES 441 T_OUTTAB = ALV_DATA 442 EXCEPTIONS 443 PROGRAM_ERROR = 1 444 OTHERS = 2. 445 ENDFORM.
IN
************************************************************************
* Program Name :
* Descriptions :
* T-Code :
* Updates Tables :
* Input Parameters :
* Output Parameters :
* Return Codes :
* Special Logic :
* Includes :
"表:TABLES:MSEG,LFA1,MARA,EKPO,EKKO,MARD,EKBE,EKET.
************************************************************************
* Modification Log
************************************************************************
* Date Ver. Programmer Descriptions
* -------- ---- ------------ -------------------------------------------
* 201 1.0 Original Create
*
************************************************************************
REPORT ZMMR501 NO STANDARD PAGE HEADING
MESSAGE-ID 00 LINE-SIZE 177 LINE-COUNT 200.
***********************************************************************
* Tables Definitions
************************************************************************
*TABLES:.
TABLES: eina,eine,konp,a017,lfa1,makt,marc.
************************************************************************
* Data Definitions
************************************************************************
DATA: BEGIN OF alv_data occurs 0,
lifnr LIKE a017-lifnr, "供應商帳戶號碼
name1 LIKE lfa1-name1," 供应商简称
lfa1_sortl LIKE lfa1-sortl," 供应商搜索条件
matnr LIKE a017-matnr, "物料號碼
maktx LIKE makt-maktx,"物料说明
ekorg LIKE eine-ekorg, "採購組織
werks LIKE eine-werks, "工廠
esokz LIKE a017-esokz, "採購資訊記錄種類
txz01 LIKE eina-txz01,"短文
sortl LIKE eina-sortl,"排序条件
datbi LIKE a017-datbi, "條件記錄的有效期限
datab LIKE a017-datab, "條件記錄的生效日期
kschl LIKE konp-kschl, "條件類型
knumh LIKE konp-knumh, "條件記錄號碼
kopos LIKE konp-kopos, "條件的序號
kbetr LIKE konp-kbetr, "條件金額或百分比
konwa LIKE konp-konwa, "條件單位
kpein LIKE konp-kpein, "條件定價單位
mwsk1 LIKE konp-mwsk1, "進項稅/銷項稅碼
loevm_ko LIKE konp-loevm_ko, "條件項目的刪除指示碼
infnr LIKE eina-infnr, "採購資訊記錄的號碼
matkl LIKE eina-matkl, "物料群組
loekz LIKE eina-loekz, "完整采购资讯记录
loekz1 LIKE eine-loekz, "完整采购资讯记录
erdat LIKE eina-erdat, "記錄建立日期
ernam LIKE eina-ernam, "物件建立者的姓名
mahn1 LIKE eina-mahn1, "第一次催單天數
mahn2 LIKE eina-mahn2, "第二次催單天數
mahn3 LIKE eina-mahn3, "第三次催單天數
urzla LIKE eina-urzla, "原產地證明的發貨國家
lmein LIKE eina-lmein, "基礎計量單位
ekgrp LIKE eine-ekgrp, "採購群組
waers LIKE eine-waers, "幣別碼
minbm LIKE eine-minbm, "最小採購單數量
norbm LIKE eine-norbm, "標準採購單數量
aplfz LIKE eine-aplfz, "計劃交貨時間
bstyp LIKE eine-bstyp, "採購文件種類
ebeln LIKE eine-ebeln, "採購文件號碼
ebelp LIKE eine-ebelp, "採購文件的項目號碼
datlb LIKE eine-datlb, "文件的日期
netpr LIKE eine-netpr, "採購資訊記錄中的淨價
peinh LIKE eine-peinh, "價格單位
bprme LIKE eine-bprme, "採購單的計價單位
prdat LIKE eine-prdat, "價格有效期限
mwskz LIKE eine-mwskz, "進項稅/銷項稅碼
aut_source LIKE eine-aut_source, "與自動採購相關
lvorm LIKE marc-lvorm,"为物料加注删除旗标
dismm LIKE marc-dismm,"MRP 类型
dispo LIKE marc-dispo,"MRP 控制员
plifz LIKE marc-plifz,"MRP 计划交货天数
beskz LIKE marc-beskz," 采购类型
sobsl LIKE marc-sobsl," 特殊采购类型
END OF alv_data.
DATA:pro_data LIKE alv_data occurs 0 WITH HEADER LINE.
DATA:alv_data2 LIKE alv_data occurs 0 WITH HEADER LINE.
DATA: gs_layout TYPE slis_layout_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv ,"with header line.
wa_fieldcat TYPE slis_fieldcat_alv.
************************************************************************
* Includes Module
************************************************************************
************************************************************************
* Selection Screen
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-b01.
PARAMETERS:c_pro AS CHECKBOX DEFAULT 'X'," 包含制程委外
c_weight AS CHECKBOX DEFAULT 'X'." 查看有效资料
PARAMETERS:p_ekorg LIKE eine-ekorg DEFAULT '2000' OBLIGATORY."采购组织
SELECT-OPTIONS:
s_werks FOR eine-werks,
s_loev_k FOR konp-loevm_ko DEFAULT '' ," 条件是否删除
s_loekz FOR eina-loekz DEFAULT '',"完整采购资讯记录
s_loekz1 FOR eine-loekz DEFAULT ''," 采购组织上删除旗标
s_esokz FOR a017-esokz,"采购资讯记录种类
s_infnr FOR eina-infnr,
s_matnr FOR a017-matnr,
s_lifnr FOR a017-lifnr,
s_datbi FOR a017-datbi,
s_datab FOR a017-datab,
s_kschl FOR a017-kschl,
s_matkl FOR eina-matkl. "物料群組
SELECTION-SCREEN END OF BLOCK b1.
************************************************************************
* Initialization
************************************************************************
INITIALIZATION.
************************************************************************
* At Selection Screen
************************************************************************
AT SELECTION-SCREEN.
************************************************************************
* At Selection Screen Output
************************************************************************
AT SELECTION-SCREEN OUTPUT.
************************************************************************
* Report Format
************************************************************************
TOP-OF-PAGE.
END-OF-PAGE.
************************************************************************
* Main Process
************************************************************************
START-OF-SELECTION.
PERFORM get_data.
PERFORM get_col.
PERFORM alv_show.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM GET_DATA .
DATA: l_index LIKE sy-tabix,
l_infnr LIKE eine-infnr,
l_datab LIKE a017-datab.
gs_layout-colwidth_optimize = 'X'.
CLEAR:alv_data[],alv_data,alv_data2[],alv_data,pro_data[],pro_data.
SELECT a017~lifnr,a017~matnr,eine~ekorg,
lfa1~name1,lfa1~sortl as lfa1_sortl,
a017~esokz,a017~datbi,
a017~datab,konp~kschl,
konp~knumh,konp~kopos,
konp~kbetr,konp~konwa,
konp~kpein,konp~mwsk1,
konp~loevm_ko,
eina~infnr,eina~matkl,eina~loekz,
eina~urzla,eina~lmein,eina~mahn1,
eina~mahn2,eina~mahn3,
eine~erdat,
eine~ekgrp,eine~waers,eine~minbm,
eine~bstyp,eine~ebeln,eine~ernam,
eine~ebelp,eine~datlb,eine~netpr,
eine~peinh, eine~bprme,eine~prdat,
eine~mwskz,eine~aut_source,
eine~norbm,eine~werks,eine~loekz AS loekz1
FROM a017
LEFT JOIN konp ON konp~knumh EQ a017~knumh
INNER JOIN eina ON eina~matnr EQ a017~matnr AND
eina~lifnr EQ a017~lifnr
INNER JOIN eine ON eine~infnr EQ eina~infnr AND
eine~ekorg EQ a017~ekorg AND
eine~esokz EQ a017~esokz AND
eine~werks EQ a017~werks
INNER JOIN lfa1 ON lfa1~lifnr EQ a017~lifnr
INTO CORRESPONDING FIELDS OF TABLE @alv_data
WHERE a017~ekorg EQ @p_ekorg AND
a017~werks IN @s_werks AND
a017~lifnr IN @s_lifnr AND
a017~matnr IN @s_matnr AND
a017~esokz IN @s_esokz AND
a017~datbi IN @s_datbi AND
a017~datab IN @s_datab AND
konp~kschl IN @s_kschl AND
konp~loevm_ko IN @s_loev_k AND
eina~infnr IN @s_infnr AND
eina~matnr IN @s_matnr AND
eina~loekz IN @s_loekz AND
eine~loekz IN @s_loekz1 AND
eine~esokz IN @s_esokz AND
eina~matkl IN @s_matkl.
* makt~spras = @sy-langu.
"工厂为空的采购咨询记录
SELECT a018~lifnr,a018~matnr,eine~ekorg,
lfa1~name1,lfa1~sortl as lfa1_sortl,
a018~esokz,a018~datbi,
a018~datab,konp~kschl,
konp~knumh,konp~kopos,
konp~kbetr,konp~konwa,
konp~kpein,konp~mwsk1,
konp~loevm_ko,
eina~infnr,eina~matkl,eina~loekz,
eina~urzla,eina~lmein,eina~mahn1,
eina~mahn2,eina~mahn3,
eine~erdat,
eine~ekgrp,eine~waers,eine~minbm,
eine~bstyp,eine~ebeln,eine~ernam,
eine~ebelp,eine~datlb,eine~netpr,
eine~peinh, eine~bprme,eine~prdat,
eine~mwskz,eine~aut_source,
eine~norbm,eine~werks,eine~loekz AS loekz1
FROM a018
LEFT JOIN konp ON konp~knumh EQ a018~knumh
INNER JOIN eina ON eina~matnr EQ a018~matnr AND
eina~lifnr EQ a018~lifnr
INNER JOIN eine ON eine~infnr EQ eina~infnr AND
eine~ekorg EQ a018~ekorg AND
eine~esokz EQ a018~esokz "AND
* eine~werks EQ a018~werks
INNER JOIN lfa1 ON lfa1~lifnr EQ a018~lifnr
INTO CORRESPONDING FIELDS OF TABLE @alv_data2
WHERE a018~ekorg EQ @p_ekorg AND
* a018~werks IN @s_werks AND
a018~lifnr IN @s_lifnr AND
a018~matnr IN @s_matnr AND
a018~esokz IN @s_esokz AND
a018~datbi IN @s_datbi AND
a018~datab IN @s_datab AND
konp~kschl IN @s_kschl AND
konp~loevm_ko IN @s_loev_k AND
eina~infnr IN @s_infnr AND
eina~matnr IN @s_matnr AND
eina~loekz IN @s_loekz AND
eine~loekz IN @s_loekz1 AND
eine~esokz IN @s_esokz AND
eina~matkl IN @s_matkl.
APPEND LINES OF alv_data2[] TO alv_data[].
"-->制程委外采购资讯记录查询
IF c_pro EQ 'X'.
SELECT a025~lifnr,eine~ekorg,
lfa1~name1,lfa1~sortl as lfa1_sortl,
a025~esokz,a025~datbi,
a025~datab,konp~kschl,
konp~knumh,konp~kopos,
konp~kbetr,konp~konwa,
konp~kpein,konp~mwsk1,
konp~loevm_ko,
eina~infnr,eina~matkl,eina~loekz,
eina~urzla,eina~lmein,eina~mahn1,
eina~mahn2,eina~mahn3,
eina~erdat,eina~txz01,eina~sortl,
eine~ekgrp,eine~waers,eine~minbm,
eine~bstyp,eine~ebeln,eine~ernam,"eine~aplfz,
eine~ebelp,eine~datlb,eine~netpr,
eine~peinh, eine~bprme,eine~prdat,
eine~mwskz,eine~aut_source,
eine~norbm,eine~werks,eine~loekz AS loekz1
FROM a025
LEFT JOIN konp ON konp~knumh EQ a025~knumh
INNER JOIN eina ON eina~infnr EQ a025~infnr AND
eina~lifnr EQ a025~lifnr
INNER JOIN eine ON eine~infnr EQ eina~infnr AND
eine~ekorg EQ a025~ekorg AND
eine~werks EQ a025~werks AND
eine~esokz EQ a025~esokz
INNER JOIN lfa1 ON lfa1~lifnr EQ a025~lifnr
INTO CORRESPONDING FIELDS OF TABLE @pro_data
WHERE a025~ekorg EQ @p_ekorg AND
a025~werks IN @s_werks AND
a025~lifnr IN @s_lifnr AND
a025~esokz IN @s_esokz AND
a025~datbi IN @s_datbi AND
a025~datab IN @s_datab AND
konp~kschl IN @s_kschl AND
konp~loevm_ko IN @s_loev_k AND
eina~infnr IN @s_infnr AND
eina~matnr IN @s_matnr AND
eina~loekz IN @s_loekz AND
eine~loekz IN @s_loekz1 AND
eine~esokz IN @s_esokz AND
eina~matkl IN @s_matkl.
APPEND LINES OF pro_data[] TO alv_data[].
ENDIF.
SORT alv_data by infnr datbi DESCENDING.
CLEAR:l_datab,l_infnr.
LOOP AT alv_data.
l_index = sy-tabix.
SELECT SINGLE eine~aplfz FROM eine
INTO alv_data-aplfz
WHERE ekorg EQ alv_data-ekorg AND
werks EQ alv_data-werks AND
infnr EQ alv_data-infnr AND
esokz EQ alv_data-esokz.
IF c_weight EQ 'X' AND (
( alv_data-infnr EQ l_infnr AND
alv_data-datbi < l_datab ) OR
( alv_data-loevm_ko EQ 'X') OR
alv_data-datab > sy-datum ).
DELETE alv_data INDEX l_index.
CONTINUE.
ENDIF.
l_datab = alv_data-datab.l_infnr = alv_data-infnr.
IF alv_data-matnr NE ''.
SELECT SINGLE lvorm,dismm,dispo,plifz,beskz,sobsl
FROM marc
INTO (@alv_data-lvorm,@alv_data-dismm,@alv_data-dispo,
@alv_data-plifz,@alv_data-beskz,@alv_data-sobsl)
WHERE matnr EQ @alv_data-matnr AND
werks EQ @alv_data-werks.
IF sy-subrc <> 0.
SELECT SINGLE lvorm,dismm,dispo,plifz,beskz,sobsl
FROM marc
INTO (@alv_data-lvorm,@alv_data-dismm,@alv_data-dispo,
@alv_data-plifz,@alv_data-beskz,@alv_data-sobsl)
WHERE matnr EQ @alv_data-matnr AND
werks EQ @p_ekorg.
ENDIF.
SELECT SINGLE maktx
FROM makt INTO alv_data-maktx
WHERE matnr EQ alv_data-matnr AND
makt~spras = sy-langu.
ENDIF.
IF alv_data-kschl EQ 'ZZD1' OR alv_data-kschl EQ 'ZZD2'.
alv_data-kbetr = alv_data-kbetr / 10.
ENDIF.
MODIFY alv_data INDEX l_index.
ENDLOOP.
ENDFORM.
FORM GET_COL.
DATA: L_REPID TYPE SY-REPID,
L_INCLNAME TYPE TRDIR-NAME,
L_IDX LIKE SY-TABIX.
CLEAR: GT_FIELDCAT[], WA_FIELDCAT.
L_REPID = L_INCLNAME = SY-CPROG.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = L_REPID
I_INTERNAL_TABNAME = 'ALV_DATA'
I_INCLNAME = L_INCLNAME
CHANGING
CT_FIELDCAT = GT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
LOOP AT gt_fieldcat INTO wa_fieldcat.
l_idx = sy-tabix.
CASE wa_fieldcat-fieldname.
WHEN 'ESOKZ'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '资讯种类'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'LOEVM_KO'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '条件删除指示码'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'LOEKZ'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '完整采购资讯记录'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'LOEKZ1'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '采购组织是否删除'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'EKGRP'.
WHEN 'ALIFZ'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '采购群组'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'LVORM'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '料号已删除'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'DISMM'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = 'MRP类型'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'PLIFZ'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = 'MRP计划交货天数'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'SOBSL'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '特殊采购类型'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'LFA1_SORTL'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '供应商简称'.
wa_fieldcat-ddictxt = 'S'.
ENDCASE.
* CLEAR wa_fieldcat-key.
MODIFY gt_fieldcat FROM wa_fieldcat INDEX l_idx.
ENDLOOP.
ENDFORM.
FORM ALV_SHOW.
DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
I_SAVE = 'A'
TABLES
T_OUTTAB = ALV_DATA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.