T001_UT001_0020

本文介绍了一个简单的Java程序,该程序可以接收用户输入的一行字符串,并将其转换为大写的十六进制形式,每16个字符换行显示。

编写一个程序,从标准输入设备上输入一行字符串,将这行字符串的每个字符以十六进制的格式打印在标准输出设备上。每16个字符换一次行,其输出中都是uppercase(大写)。

举例一:

输入:

1
This is a very simple problem. This is also easy for me.
输出:

1
2
3
4
54686973206973206120766572792073
696D706C652070726F626C656D2E2054
68697320697320616C736F2065617379
20666F72206D652E

import java.util.Scanner;
public class T001_UT001_0020
{
	public static void main(String[] args) 
	{
		Scanner njp_input=new Scanner(System.in);
		String njp_str=njp_input.nextLine();
		String njp_Str=""; 
		for (int i=0;i<njp_str.length();i++) 
		{ 
			int njp_temp = (int)njp_str.charAt(i); 
			String njp_s = Integer.toHexString(njp_temp); 
			njp_Str = njp_Str + njp_s; 
			if(((i+1)%16==0&&i!=0)||i==njp_str.length()-1)
			{
				if(i==njp_str.length()-1)
				{
					System.out.println(njp_Str.toUpperCase());
					return;
				}
				System.out.println(njp_Str.toUpperCase());
				njp_Str="";
			}
		} 	
	}
}


WITH result_list AS (SELECT a.id, a.user_id, c.arch_no, c.user_name, c.user_address, c.user_state, c.main_arch_id, c.user_type, c.costtype as cost_type, b.area_id, a.tab_id, b.tab_type, a.this_month_read, a.last_month_read, a.agreement_water, COALESCE(a.really_use, 0) really_use, COALESCE(a.read_meter_month, null) read_meter_month, a.read_meter_time, a.read_meter_count, a.tenant_id, COALESCE(b.step_quota_water, 0) step_quota_water, wm.year_excess_use as year_excess_use, COALESCE(c.population_sum, 0) population_sum, COALESCE( (SELECT SUM(CASE WHEN f.acct_item_type_code = '0050001' THEN f.final_num ELSE 0 END) as basic_year_bill_use FROM ueccp.rs_acct_item f where f.tenant_id = 'T001' and f.acct_item_type_code = '0050001' and a.tab_id = f.tab_id and f.read_meter_month >= 202501 and f.read_meter_month <= 202512 and e.water_properties_id = f.water_properties_id), 0) basic_year_bill_use, COALESCE( (SELECT SUM(CASE WHEN acct_item_type_code = '0060001' THEN final_num ELSE 0 END) sewage_year_bill_use FROM ueccp.rs_acct_item f where f.tenant_id = 'T001' and a.tab_id = f.tab_id and f.acct_item_type_code = '0060001' and f.read_meter_month >= 202501 and f.read_meter_month <= 202512 and e.water_properties_id = f.water_properties_id), 0) sewage_year_bill_use, COALESCE( (SELECT SUM(CASE WHEN acct_item_type_code = '0050001' THEN final_num ELSE 0 END) basic_month_bill_use FROM ueccp.rs_acct_item i where tab_id IS NOT NULL AND final_num > 0 AND tenant_id = 'T001' and i.acct_item_type_code = '0050001' AND a.tab_id = i.tab_id and i.read_meter_month = 202509 and e.water_properties_id = i.water_properties_id), 0) basic_month_bill_use, COALESCE( (SELECT SUM(CASE WHEN acct_item_type_code = '0060001' THEN final_num ELSE 0 END) sewage_month_bill_use FROM ueccp.rs_acct_item i where tab_id IS NOT NULL AND final_num > 0 AND tenant_id = 'T001' AND a.tab_id = i.tab_id and i.acct_item_type_code = '0060001' and i.read_meter_month = 202509 and e.water_properties_id = i.water_properties_id), 0) sewage_month_bill_use, g.pay_type, h.node_code pay_type_node_code, e.water_properties_id, COALESCE(e.use_rate, 0) as use_rate, COALESCE(polluters_rate, 0) as polluters_rate, coalesce(e.mixed_method, 0) as mixed_method, e.min_amount, e.max_amount, coalesce(e.seq, 1) as seq, j.other_fee_price, j.is_cycle, j.is_collect, j.calculate_month, j.other_fee_mana_id, k.trash_type, k.billing_type, k.is_collect_trash, k.start_month, k.delay_month, k.true_start_month, k.receive_state, k.receive_money, coalesce((select sum(amount) from ueccp.rs_acct_item ai where ai.tab_id = A.tab_id and acct_item_type_code = '0030001' and ai.read_meter_month = 202509), 0) as garbage_fee FROM ueccp.rs_meter_read a INNER JOIN ueccp.rs_tab_arch b on a.tab_id = b.id INNER JOIN ueccp.rs_user_arch c on a.user_id = c.id LEFT JOIN ueccp.rs_account g on c.id = g.user_id LEFT JOIN ueccp.rs_dictionary h on g.pay_type = h.node INNER JOIN ueccp.rs_feearea d on b.area_id = d.area_id LEFT JOIN ueccp.rs_user_wa_proper e on c.id = e.user_id and b.id = e.tab_id LEFT JOIN (select of.other_fee_price, of.is_cycle, of.is_collect, of.calculate_month, uof.user_id, uof.other_fee_mana_id from ueccp.rs_user_other_fee uof, ueccp.rs_other_fee of where uof.other_fee_mana_id = of.id and of.tenant_id = 'T001') j on j.user_id = c.id LEFT JOIN (select ut.user_id, ut.trash_type, ut.billing_type, ut.is_collect_trash, ut.start_month, ut.delay_month, ut.true_start_month, ut.receive_state, ut.receive_money from ueccp.rs_user_trash ut, ueccp.rs_water_garbage wg where ut.trash_type = wg.id and wg.tenant_id = 'T001') k on k.user_id = c.id left join (SELECT coalesce(sum(wl.excess_use), 0) as year_excess_use, wm.user_id, wm.tab_id, wm.data_year FROM ueccp.rs_super_plan_water_mana wm INNER JOIN ueccp.rs_super_plan_water_list wl ON wm.ID = wl.super_plan_water_mana_id INNER JOIN ueccp.rs_dictionary d ON d.node = wm.date_state AND d.node_code = 'SYS_SUPER_PLAN_STATE_PASS' group by wm.user_id, wm.tab_id, wm.data_year) as wm on wm.user_id = a.user_id and wm.tab_id = a.tab_id and wm.data_year = LEFT(a.read_meter_month, 4) WHERE b.IS_CHECK_TAB = 0 AND a.really_use IS NOT NULL AND a.read_meter_month IS NOT NULL and e.water_properties_id is not null AND a.tenant_id = 'T001' AND a.read_meter_state = (SELECT NODE FROM ueccp.rs_DICTIONARY WHERE NODE_CODE = 'SYS_READ_STATE_HASREAD') AND (a.agreement_verify_state = 1 OR ((a.agreement_verify_state = 0 OR a.agreement_verify_state IS NULL) AND (a.agreement_water IS NULL OR (a.agreement_water < to_number((SELECT param_final_value FROM ueccp.rs_system_param WHERE PARAM_CODE = 'NEED_VERIFY_AGREE_WATER_PLUS_VALUE'), '9999999999999999999') AND a.agreement_water > to_number((SELECT param_final_value FROM ueccp.rs_system_param WHERE PARAM_CODE = 'NEED_VERIFY_AGREE_WATER_NEGATIVE_VALUE'), '9999999999999999999'))))) AND (a.check_state = 1 OR (a.check_state = 0 AND (a.ESTIMATE_READ = 0 OR a.ESTIMATE_READ IS NULL) AND a.IS_EXCEPTION IN (SELECT NODE FROM ueccp.rs_DICTIONARY WHERE NODE_CODE IN ('SYS_METERREAD_TABSTATE_26', 'SYS_METERREAD_EXCEPTION_NORMAL')) AND a.READ_METER_SITUATION = (SELECT NODE FROM ueccp.rs_DICTIONARY WHERE NODE_CODE = 'SYS_METERREAD_TABSTATE_NORMAL') AND a.meter_turn_type = (SELECT NODE FROM ueccp.rs_DICTIONARY WHERE NODE_CODE = 'SYS_METERREAD_TURNTYPE_NORMAL'))) AND a.read_meter_month = REPLACE('2025-09', '-', '') AND a.area_id IN (1214009, 1214026, 1214027, 1214221, 1214222, 1214223, 1214224, 1214225, 1214226, 1214227, 1214028, 1214228, 1214229, 1214230, 1214231, 1214232, 1214233, 1214234, 1214235, 1214236, 1214237, 1214238, 1214239, 1214240, 1214241, 1214242, 1214243, 1214244, 1214245, 1214246, 1214247, 1214248, 1214249, 1214250, 1214251, 1214252, 1214253, 1214254, 1214255, 1214256, 1214257, 1214258, 1214259, 1214260, 1214261, 1214262, 1214263, 1214264, 1214265, 1214266, 1214267, 1214268, 1214269, 1214270, 1214271, 1214272, 1214273, 1214029, 1214274, 1214275, 1214276, 1214277, 1214030, 1214278, 1214011, 1214050, 1214051, 1214052, 1214053, 1214054, 1214055, 1214056, 1214057, 1214058, 1214059, 1214060, 1214061, 1214062, 1214063, 1214064, 1214065, 1214066, 1214067, 1214068, 1214069, 1214070, 1214071, 1214072, 1214073, 1214279, 1214280, 1214281, 1214031, 1214282, 1214283, 1214284, 1214285, 1214286, 1214287, 1214032, 1214288, 1214033, 1214289, 1214034, 1214290, 1214291, 1214013, 1214086, 1214087, 1214088, 1214089, 1214090, 1214091, 1214092, 1214093, 1214094, 1214095, 1214096, 1214097, 1214098, 1214099, 1214292, 1214293, 1214294, 1214015, 1214295, 1214296, 1214297, 1214298, 1214299, 1214300, 1214301, 1214302, 1214303, 1214304, 1214305, 1214306, 1214307, 1214308, 1214309, 1214310, 1214311, 1214035, 1214312, 1214364, 1214374, 1214384, 1215354, 1215364) AND NOT EXISTS (select 1 from ueccp.rs_feearea rf where rf.area_id = a.area_id and (rf.parent_area_id in (select DISTINCT regexp_split_to_table('1212690,1212673', ',')::int8) or rf.area_id in (select DISTINCT regexp_split_to_table('1212690,1212673', ',')::int8)))) SELECT ss.*, s.plan_use, s.excess_use, s.plan_list_id FROM result_list ss left join (select w.water_id from ueccp.rs_water_management w INNER JOIN ueccp.rs_water_management_item wi ON w.water_id = wi.water_properties_id INNER JOIN ueccp.rs_water_step_name s ON wi.rule_id = s.ID INNER JOIN ueccp.rs_dictionary d ON s.quota_step_type = d.node :: VARCHAR WHERE d.node_code = 'SYS_LADDER_TYPE_QUOTA' group by w.water_id) w on ss.water_properties_id = w.water_id inner join (SELECT wm.user_id, wm.tab_id, wm.ID as plan_mana_id, wm.data_year || lpad(wl.use_month, 2, '0') as read_meter_month, wl.ID as plan_list_id, coalesce(wl.excess_use, 0) as excess_use, wl.plan_use FROM ueccp.rs_super_plan_water_mana wm INNER JOIN ueccp.rs_super_plan_water_list wl ON wm.ID = wl.super_plan_water_mana_id INNER JOIN ueccp.rs_dictionary d ON d.node = wm.date_state AND d.node_code = 'SYS_SUPER_PLAN_STATE_PASS') s ON s.user_id = ss.user_id AND s.tab_id = ss.tab_id AND s.read_meter_month = ss.read_meter_month where w.water_id is not null union all SELECT ss.*, null, null, null FROM result_list ss LEFT JOIN (select w.water_id from ueccp.rs_water_management w INNER JOIN ueccp.rs_water_management_item wi ON w.water_id = wi.water_properties_id INNER JOIN ueccp.rs_water_step_name s ON wi.rule_id = s.ID INNER JOIN ueccp.rs_dictionary d ON s.quota_step_type = d.node :: VARCHAR WHERE d.node_code = 'SYS_LADDER_TYPE_QUOTA' GROUP BY w.water_id) w on ss.water_properties_id = w.water_id where w.water_id is null ORDER BY water_properties_id, seq, read_meter_count 这段SQL 在pgsql上执行太慢了 如何优化
10-24
*&---------------------------------------------------------------------* *& REPORT ZCS_PM_PM002N1 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zcs_pm_pm002n NO STANDARD PAGE HEADING MESSAGE-ID zccp LINE-COUNT 90 LINE-SIZE 120. *测试预留单打印 *&------------------------------------------------------------------* *& TABLES: *&------------------------------------------------------------------* TABLES:t001, "公司代码数据 marm, makt, mara, zmal, "物料长文本 resb, "预留单项目 rkpf, "预留单抬头 afko, "订单表头数据 PP 订单 mseg, ""凭证段:物料 afih, equz, eqkt. *&------------------------------------------------------------------- * DATA DECLARATION *&------------------------------------------------------------------* DATA itab TYPE TABLE OF zlld_str01n WITH HEADER LINE. "2021.3.3 WC DATA jtab TYPE TABLE OF zlld_str02n_new WITH HEADER LINE. DATA jtab_mt TYPE TABLE OF zlld_str02n_new WITH HEADER LINE. *-----ECCUpgradeS4--------SMY--------202241231--------START "新增仪电 DATA jtab_el TYPE TABLE OF zlld_str02n_new WITH HEADER LINE. "新增物料仓 DATA jtab_wl TYPE TABLE OF zlld_str02n_new WITH HEADER LINE. *-----ECCUpgradeS4--------SMY--------202241231--------END DATA p(2) TYPE c. DATA q(2) TYPE c. DATA: fm_name TYPE rs38l_fnam. DATA: BEGIN OF ilist OCCURS 0, aufnr LIKE afko-aufnr, rsnum LIKE afko-rsnum, END OF ilist. SELECTION-SCREEN BEGIN OF BLOCK block1. PARAMETERS: p_group(20) TYPE c OBLIGATORY, p_aufnr LIKE afko-aufnr OBLIGATORY. SELECTION-SCREEN END OF BLOCK block1. SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001. PARAMETERS : p01 TYPE c RADIOBUTTON GROUP r1, " P_EMODE TYPE C RADIOBUTTON GROUP R1 DEFAULT 'X',"MODE E p02 TYPE c RADIOBUTTON GROUP r1. "MODE N " P03 TYPE C RADIOBUTTON GR SELECTION-SCREEN: END OF BLOCK b1. START-OF-SELECTION. PERFORM main. *&------------------------------------------------------------------* *& FORM MAIN *&------------------------------------------------------------------* FORM main. PERFORM select_data. PERFORM check_stat. PERFORM output. * PERFORM WRITE_FORM. ENDFORM. FORM check_stat. IF p01 = 'X'. q = '0'. ELSEIF p02 = 'X'. q = '1'. ENDIF. ENDFORM. FORM select_data. *判断工厂 DATA: ls_werks LIKE aufk-werks. SELECT SINGLE aufk~werks INTO ls_werks FROM aufk WHERE aufk~aufnr = p_aufnr. IF ls_werks <> '1011'. MESSAGE '订单输入错误' TYPE 'E'. STOP.. ENDIF. SELECT aufnr rsnum INTO CORRESPONDING FIELDS OF TABLE ilist FROM afko WHERE afko~aufnr = p_aufnr. * 取抬头数据 LOOP AT ilist. SELECT rkpf~rsnum rkpf~usnam rkpf~rsdat rkpf~bwart rkpf~parbu rkpf~aufnr rkpf~anln1 aufk~kostl *-----ECCUpgradeS4--------SMY--------202241218--------START afko~gstrs afko~gltrs INTO (itab-rsnum, itab-usnam, itab-rsdat, itab-bwart, itab-parbu, itab-aufnr, itab-anln1, itab-kostl, itab-gstrs, itab-gltrs) FROM rkpf INNER JOIN afko ON afko~aufnr = rkpf~aufnr INNER JOIN aufk ON aufk~aufnr = ilist-aufnr WHERE rkpf~rsnum = ilist-rsnum. APPEND itab. ENDSELECT. * 取设备代号 LOOP AT itab. IF itab-equnr = ''. SELECT afih~equnr INTO (itab-equnr) FROM afih WHERE afih~aufnr = itab-aufnr. MODIFY itab. ENDSELECT. ENDIF. ENDLOOP. * 取设备名称 LOOP AT itab. IF itab-eqktu = ''. SELECT eqkt~eqktu INTO (itab-eqktu) FROM eqkt WHERE eqkt~equnr = itab-equnr. MODIFY itab. ENDSELECT. ENDIF. ENDLOOP. " 取技术标识号 TIDNR DATA: lt_equz TYPE TABLE OF equz, ls_equz TYPE equz. DATA: lt_equnr TYPE TABLE OF afih-equnr. LOOP AT itab. IF itab-equnr IS NOT INITIAL. APPEND itab-equnr TO lt_equnr. ENDIF. ENDLOOP. IF lt_equnr IS NOT INITIAL. SELECT equz~equnr equz~tidnr equz~datbi INTO CORRESPONDING FIELDS OF TABLE lt_equz FROM equz FOR ALL ENTRIES IN lt_equnr WHERE equz~equnr = lt_equnr-table_line. ENDIF. LOOP AT itab. IF itab-equnr IS NOT INITIAL. DELETE lt_equz WHERE equnr = itab-equnr AND datbi < sy-datum. SORT lt_equz BY datbi DESCENDING. READ TABLE lt_equz INTO ls_equz WITH KEY equnr = itab-equnr BINARY SEARCH. IF sy-subrc = 0. itab-tidnr = ls_equz-tidnr. ENDIF. MODIFY itab. ENDIF. ENDLOOP. LOOP AT itab. IF itab-ebeln IS INITIAL OR itab-ebeln = ''. " 从 ebkn 表中获取 BANFN 和 BNFPO SELECT ebkn~banfn ebkn~bnfpo INTO CORRESPONDING FIELDS OF itab FROM ebkn WHERE ebkn~aufnr = itab-aufnr. MODIFY itab. ENDSELECT. IF sy-subrc = 0. * " 根据 BANFN 和 BNFPO 获取ebeln\bedat\lifnr SELECT eban~ebeln ekko~bedat ekko~lifnr INTO CORRESPONDING FIELDS OF itab FROM eban INNER JOIN ekko ON ekko~ebeln = eban~ebeln WHERE eban~banfn = itab-banfn AND eban~bnfpo = itab-bnfpo. MODIFY itab. ENDSELECT. " 根据 ebeln 在 ekko 里找到 lifnr,再用 lifnr 去 lfa1 里找 NAME1 和 NAME2 并拼接 IF itab-lifnr IS NOT INITIAL. DATA: lv_name1 TYPE lfa1-name1, lv_name2 TYPE lfa1-name2. " 从 lfa1 表中查询 name1 SELECT SINGLE lfa1~name1 INTO lv_name1 FROM lfa1 WHERE lfa1~lifnr = itab-lifnr. IF sy-subrc = 0. itab-name1 = lv_name1. ELSE. itab-name1 = ''. ENDIF. " 从 lfa1 表中查询 name2 SELECT SINGLE lfa1~name2 INTO lv_name2 FROM lfa1 WHERE lfa1~lifnr = itab-lifnr. IF sy-subrc = 0. itab-name2 = lv_name2. ELSE. itab-name2 = ''. ENDIF. " 拼接 name1 和 name2 为 name IF itab-name1 IS NOT INITIAL AND itab-name2 IS NOT INITIAL. CONCATENATE itab-name1 itab-name2 INTO itab-name. ELSEIF itab-name1 IS NOT INITIAL. itab-name = itab-name1. ELSEIF itab-name2 IS NOT INITIAL. itab-name = itab-name2. ENDIF. MODIFY itab. ENDIF. ELSE. " 如果在 ebkn 表中没有获取到 BANFN 和 BNFPO,设置默认值 itab-ebeln = 'NA'. itab-bedat = 'NA'. itab-name = 'NA'. MODIFY itab. ENDIF. ENDIF. ENDLOOP. *-----ECCUpgradeS4--------SMY--------20241218--------END * 取公司代码的描述 LOOP AT itab. IF itab-butxt = ''. SELECT t001~butxt INTO (itab-butxt) FROM t001 WHERE t001~bukrs = itab-parbu. itab-datum = sy-datum. itab-group = p_group. MODIFY itab. ENDSELECT. ENDIF. ENDLOOP. * 取成本中心的描述 LOOP AT itab. IF itab-ltext = ''. SELECT cskt~ltext INTO (itab-ltext) FROM cskt WHERE cskt~kostl = itab-kostl AND cskt~kokrs = '1000'. MODIFY itab. ENDSELECT. ENDIF. ENDLOOP. ENDLOOP. * 取行项目数据 LOOP AT ilist. IF p01 = 'X'. SELECT resb~rsnum resb~rspos resb~xwaok resb~matnr resb~werks resb~erfme resb~erfmg resb~sgtxt resb~bdter resb~xloek resb~bwart resb~saknr resb~lgort resb~shkzg INTO (jtab-rsnum , jtab-rspos , jtab-xwaok , jtab-matnr , jtab-plant , jtab-meins , jtab-bdmng , jtab-sgtxt , jtab-bdter, jtab-xloek, jtab-bwart, jtab-saknr , jtab-lgort, jtab-shkzg ) FROM resb WHERE resb~rsnum = ilist-rsnum AND resb~xloek <> 'X' AND resb~kzear <> 'X' AND resb~shkzg = 'H'. APPEND jtab. ENDSELECT. ELSEIF p02 = 'X'. SELECT resb~rsnum resb~rspos resb~xwaok resb~matnr resb~werks resb~erfme resb~erfmg resb~sgtxt resb~bdter resb~xloek resb~bwart resb~saknr resb~lgort resb~shkzg INTO (jtab-rsnum , jtab-rspos , jtab-xwaok , jtab-matnr , jtab-plant , jtab-meins , jtab-bdmng , jtab-sgtxt , jtab-bdter, jtab-xloek, jtab-bwart, jtab-saknr , jtab-lgort, jtab-shkzg ) FROM resb WHERE resb~rsnum = ilist-rsnum AND resb~xloek <> 'X' AND resb~kzear <> 'X' AND resb~shkzg = 'S'. APPEND jtab. ENDSELECT. ENDIF. ENDLOOP. * 取剩于发货数量 LOOP AT jtab. DATA: ls_bdmng LIKE resb-bdmng, ls_enmng LIKE resb-enmng. * L_BDMNG LIKE RESB-BDMNG. *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------START * select single resb~erfmg into ls_bdmng from resb where resb~rsnum = jtab-rsnum and resb~rspos = jtab-rspos. "duman160 SELECT resb~erfmg INTO ls_bdmng FROM resb UP TO 1 ROWS WHERE resb~rsnum = jtab-rsnum AND resb~rspos = jtab-rspos ORDER BY rsnum rspos rsart. ENDSELECT. "duman160 *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------END *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------START * select single resb~enmng into ls_enmng from resb where resb~rsnum = jtab-rsnum and resb~rspos = jtab-rspos. "duman161 SELECT resb~enmng INTO ls_enmng FROM resb UP TO 1 ROWS WHERE resb~rsnum = jtab-rsnum AND resb~rspos = jtab-rspos ORDER BY rsnum rspos rsart. ENDSELECT. "duman161 *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------END IF jtab-lgort = 'MT01'. *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------START * select single * from marm where matnr = jtab-matnr and meinh <> 'EA'. "duman163 SELECT * FROM marm UP TO 1 ROWS WHERE matnr = jtab-matnr AND meinh <> 'EA' ORDER BY matnr meinh. ENDSELECT. "duman163 *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------END IF sy-subrc = 0. ls_enmng = ls_enmng * marm-umren. ENDIF. ENDIF. jtab-bdmng = ls_bdmng - ls_enmng. MODIFY jtab. CLEAR:ls_bdmng,ls_enmng. ENDLOOP. "取单价后得到价值 LOOP AT jtab. *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------START * select single verpr into jtab-verpr from mbew where matnr = jtab-matnr and bwkey = '1011'. "duman176 SELECT verpr INTO jtab-verpr FROM mbew UP TO 1 ROWS WHERE matnr = jtab-matnr AND bwkey = '1011' ORDER BY matnr bwkey bwtar. ENDSELECT. "duman176 *-----ECCUpgradeS4--------AB_DUMAN--------20221025--------END jtab-verpr_s = jtab-verpr * jtab-bdmng . MODIFY jtab. ENDLOOP. LOOP AT jtab. SELECT makt~maktx INTO (jtab-makxt) FROM makt WHERE makt~matnr = jtab-matnr. CONCATENATE jtab-bdter+0(4) '.' jtab-bdter+4(2) '.' jtab-bdter+6(2) INTO jtab-date. MODIFY jtab. ENDSELECT. SELECT zmal~tlines INTO (jtab-tlines) FROM zmal WHERE zmal~matnr = jtab-matnr. jtab-makxt = jtab-tlines+0(8). MODIFY jtab. * APPEND JTAB. ENDSELECT. SELECT mara~bismt INTO (jtab-bismt) FROM mara WHERE mara~matnr = jtab-matnr. MODIFY jtab. ENDSELECT. IF jtab-plant = '1011'. SELECT SINGLE tlines INTO jtab-tlines FROM zpm_yz_mal WHERE matnr = jtab-matnr. *-----ECCUpgradeS4--------ZHOUYAN--------20225/8/26--------START SELECT SINGLE bismt INTO jtab-bismt FROM zmm_bismt WHERE matnr = jtab-matnr AND werks = '1011' AND lgort = jtab-lgort. IF jtab-bismt IS INITIAL. SELECT SINGLE bismt INTO jtab-bismt FROM zpm_yz_mal WHERE matnr = jtab-matnr. ENDIF. *-----ECCUpgradeS4--------ZHOUYAN--------2025/8/26--------END MODIFY jtab. ENDIF. ENDLOOP. * 2021.3.3 WC LOOP AT jtab. SELECT SINGLE yt jcjz INTO ( jtab-yt,jtab-jcjz ) FROM zcspm_resb_bz WHERE rsnum = jtab-rsnum AND rspos = jtab-rspos. MODIFY jtab. ENDLOOP. LOOP AT jtab. CASE jtab-lgort. WHEN 'MT01'. jtab_mt-rsnum = jtab-rsnum . jtab_mt-rspos = jtab-rspos . jtab_mt-xwaok = jtab-xwaok . jtab_mt-matnr = jtab-matnr . jtab_mt-bismt = jtab-bismt . jtab_mt-meins = jtab-meins . jtab_mt-sgtxt = jtab-sgtxt . jtab_mt-bdmng = jtab-bdmng . jtab_mt-plant = jtab-plant . jtab_mt-makxt = jtab-makxt . jtab_mt-datum = jtab-datum . jtab_mt-bdter = jtab-bdter . jtab_mt-date = jtab-date . jtab_mt-tlines = jtab-tlines . jtab_mt-xloek = jtab-xloek . jtab_mt-bwart = jtab-bwart . jtab_mt-saknr = jtab-saknr . jtab_mt-lgort = jtab-lgort . jtab_mt-shkzg = jtab-shkzg . jtab_mt-verpr_s = jtab-verpr_s. jtab_mt-verpr = jtab-verpr . jtab_mt-yt = jtab-yt . jtab_mt-jcjz = jtab-jcjz . APPEND jtab_mt. *-----ECCUpgradeS4--------SMY--------20241231--------START "根据库位识别数据 WHEN 'WL01'. jtab_wl-rsnum = jtab-rsnum . jtab_wl-rspos = jtab-rspos . jtab_wl-xwaok = jtab-xwaok . jtab_wl-matnr = jtab-matnr . jtab_wl-bismt = jtab-bismt . jtab_wl-meins = jtab-meins . jtab_wl-sgtxt = jtab-sgtxt . jtab_wl-bdmng = jtab-bdmng . jtab_wl-plant = jtab-plant . jtab_wl-makxt = jtab-makxt . jtab_wl-datum = jtab-datum . jtab_wl-bdter = jtab-bdter . jtab_wl-date = jtab-date . jtab_wl-tlines = jtab-tlines . jtab_wl-xloek = jtab-xloek . jtab_wl-bwart = jtab-bwart . jtab_wl-saknr = jtab-saknr . jtab_wl-lgort = jtab-lgort . jtab_wl-shkzg = jtab-shkzg . jtab_wl-verpr_s = jtab-verpr_s. jtab_wl-verpr = jtab-verpr . jtab_wl-yt = jtab-yt . jtab_wl-jcjz = jtab-jcjz . APPEND jtab_wl. ************************** CCPADM_ZF 20250414 *************************** START * WHEN 'EL01' OR 'LE61'. WHEN 'EL01' OR 'LE61' OR 'DF61' OR 'BP61' OR 'AM61' OR 'CF61' OR 'PA61' OR 'CP61' OR 'EP61' OR 'PAE' OR 'EH61' OR 'UT61' OR 'HM' OR 'SE61' OR 'AFCC' OR 'CCOK' OR 'CCFU' OR 'EME' OR 'JMCH' OR 'PN61'.. ************************** CCPADM_ZF 20250414 *************************** END jtab_el-rsnum = jtab-rsnum . jtab_el-rspos = jtab-rspos . jtab_el-xwaok = jtab-xwaok . jtab_el-matnr = jtab-matnr . jtab_el-bismt = jtab-bismt . jtab_el-meins = jtab-meins . jtab_el-sgtxt = jtab-sgtxt . jtab_el-bdmng = jtab-bdmng . jtab_el-plant = jtab-plant . jtab_el-makxt = jtab-makxt . jtab_el-datum = jtab-datum . jtab_el-bdter = jtab-bdter . jtab_el-date = jtab-date . jtab_el-tlines = jtab-tlines . jtab_el-xloek = jtab-xloek . jtab_el-bwart = jtab-bwart . jtab_el-saknr = jtab-saknr . jtab_el-lgort = jtab-lgort . jtab_el-shkzg = jtab-shkzg . jtab_el-verpr_s = jtab-verpr_s. jtab_el-verpr = jtab-verpr . jtab_el-yt = jtab-yt . jtab_el-jcjz = jtab-jcjz . APPEND jtab_el. ENDCASE. * DELETE jtab.'不清空原表,用于使用一个格式来打印领料单 ENDLOOP. ENDFORM. FORM output. IF q = '0'. READ TABLE itab. * "2021.3.3 WC * IF jtab[] IS NOT INITIAL. * ** IF ITAB-USNAM = SY-UNAME. * CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' * EXPORTING * formname = 'ZCS_PM_LLDN' ** VARIANT = ' ' ** DIRECT_CALL = ' ' * IMPORTING * fm_name = fm_name ** EXCEPTIONS ** NO_FORM = 1 ** NO_FUNCTION_MODULE = 2 ** OTHERS = 3 * . * IF sy-subrc <> 0. * ENDIF. * CALL FUNCTION fm_name ** EXPORTING ** ARCHIVE_INDEX = ** ARCHIVE_PARAMETERS = ** CONTROL_PARAMETERS = ** MAIL_APPL_OBJ = ** MAIL_RECIPIENT = ** MAIL_SENDER = ** OUTPUT_OPTIONS = ** USER_SETTINGS = 'X' ** IMPORTING ** DOCUMENT_OUTPUT_INFO = ** JOB_OUTPUT_INFO = ** JOB_OUTPUT_OPTIONS = * TABLES * ztab = itab * ytab = jtab * EXCEPTIONS * formatting_error = 1 * internal_error = 2 * send_error = 3 * user_canceled = 4 * OTHERS = 5. ** ************************************** * ENDIF. *-----ECCUpgradeS4--------ZHOUYAN--------2025/9/1--------START IF jtab[] IS NOT INITIAL. * IF ITAB-USNAM = SY-UNAME. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZCS_PM_LLDN_PUB' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING fm_name = fm_name * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3 . IF sy-subrc <> 0. ENDIF. DATA: lt_temp_pub LIKE TABLE OF jtab, ls_lgort TYPE STRiNG. " 先按库位排序 SORT jtab BY lgort. " 循环处理每个不同的库位 LOOP AT jtab INTO DATA(ls_pub). IF ls_lgort IS NOT INITIAL AND ls_lgort <> ls_pub-lgort. " 遇到新的库位,如果临时表有数据,则打印上一库位的单子 IF lt_temp_pub IS NOT INITIAL. IF ls_lgort = 'MT01'. ls_lgort = '机械' && 'MT01'. ELSEIF ls_lgort = 'EL01'. ls_lgort = '仪电' && 'EL01'. ELSEIF ls_lgort = 'WL01'. ls_lgort = '物料仓' && 'WL01'. ENDIF. CALL FUNCTION fm_name EXPORTING * ARCHIVE_INDEX = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = ls_lgort = ls_lgort TABLES ztab = itab ytab = lt_temp_pub EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. CLEAR lt_temp_pub. ENDIF. ENDIF. APPEND ls_pub TO lt_temp_pub. ls_lgort = ls_pub-lgort. ENDLOOP. " 打印最后一个库位的单子 IF lt_temp_pub IS NOT INITIAL. IF ls_lgort = 'MT01'. ls_lgort = '机械' && 'MT01'. ELSEIF ls_lgort = 'EL01'. ls_lgort = '仪电' && 'EL01'. ELSEIF ls_lgort = 'WL01'. ls_lgort = '物料仓' && 'WL01'. ENDIF. CALL FUNCTION fm_name EXPORTING * ARCHIVE_INDEX = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = ls_lgort = ls_lgort TABLES ztab = itab ytab = lt_temp_pub EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. * ************************************** ENDIF. ENDIF. *-----ECCUpgradeS4--------ZHOUYAN--------2025/9/1--------END * IF jtab_mt[] IS NOT INITIAL. * ** IF ITAB-USNAM = SY-UNAME. * CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' * EXPORTING * formname = 'ZCS_PM_LLDN_MT01' ** VARIANT = ' ' ** DIRECT_CALL = ' ' * IMPORTING * fm_name = fm_name ** EXCEPTIONS ** NO_FORM = 1 ** NO_FUNCTION_MODULE = 2 ** OTHERS = 3 * . * IF sy-subrc <> 0. * ENDIF. * CALL FUNCTION fm_name ** EXPORTING ** ARCHIVE_INDEX = ** ARCHIVE_PARAMETERS = ** CONTROL_PARAMETERS = ** MAIL_APPL_OBJ = ** MAIL_RECIPIENT = ** MAIL_SENDER = ** OUTPUT_OPTIONS = ** USER_SETTINGS = 'X' ** IMPORTING ** DOCUMENT_OUTPUT_INFO = ** JOB_OUTPUT_INFO = ** JOB_OUTPUT_OPTIONS = * TABLES * ztab = itab * ytab = jtab_mt * EXCEPTIONS * formatting_error = 1 * internal_error = 2 * send_error = 3 * user_canceled = 4 * OTHERS = 5. ** ************************************** * ENDIF. * IF jtab_el[] IS NOT INITIAL. * ** IF ITAB-USNAM = SY-UNAME. * CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' * EXPORTING * formname = 'ZCS_PM_LLDN_EL01' ** VARIANT = ' ' ** DIRECT_CALL = ' ' * IMPORTING * fm_name = fm_name ** EXCEPTIONS ** NO_FORM = 1 ** NO_FUNCTION_MODULE = 2 ** OTHERS = 3 * . * IF sy-subrc <> 0. * ENDIF. * CALL FUNCTION fm_name ** EXPORTING ** ARCHIVE_INDEX = ** ARCHIVE_PARAMETERS = ** CONTROL_PARAMETERS = ** MAIL_APPL_OBJ = ** MAIL_RECIPIENT = ** MAIL_SENDER = ** OUTPUT_OPTIONS = ** USER_SETTINGS = 'X' ** IMPORTING ** DOCUMENT_OUTPUT_INFO = ** JOB_OUTPUT_INFO = ** JOB_OUTPUT_OPTIONS = * TABLES * ztab = itab * ytab = jtab_el * EXCEPTIONS * formatting_error = 1 * internal_error = 2 * send_error = 3 * user_canceled = 4 * OTHERS = 5. ** ************************************** * ENDIF. * IF jtab_wl[] IS NOT INITIAL. * ** IF ITAB-USNAM = SY-UNAME. * CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' * EXPORTING * formname = 'ZCS_PM_LLDN_WL01' ** VARIANT = ' ' ** DIRECT_CALL = ' ' * IMPORTING * fm_name = fm_name ** EXCEPTIONS ** NO_FORM = 1 ** NO_FUNCTION_MODULE = 2 ** OTHERS = 3 * . * IF sy-subrc <> 0. * ENDIF. * CALL FUNCTION fm_name ** EXPORTING ** ARCHIVE_INDEX = ** ARCHIVE_PARAMETERS = ** CONTROL_PARAMETERS = ** MAIL_APPL_OBJ = ** MAIL_RECIPIENT = ** MAIL_SENDER = ** OUTPUT_OPTIONS = ** USER_SETTINGS = 'X' ** IMPORTING ** DOCUMENT_OUTPUT_INFO = ** JOB_OUTPUT_INFO = ** JOB_OUTPUT_OPTIONS = * TABLES * ztab = itab * ytab = jtab_wl * 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. * ENDIF. ELSEIF q = '1'. READ TABLE itab. "2021.3.3 WC IF jtab[] IS NOT INITIAL. * IF ITAB-USNAM = SY-UNAME. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZCS_PM_LLDT' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING fm_name = fm_name. * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. RETURN. ENDIF. CALL FUNCTION fm_name * EXPORTING * ARCHIVE_INDEX = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES ztab = itab ytab = jtab EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. * ************************************** ENDIF. IF jtab_mt[] IS NOT INITIAL. * IF ITAB-USNAM = SY-UNAME. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZCS_PM_LLDT_MT' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING fm_name = fm_name * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CALL FUNCTION fm_name * EXPORTING * ARCHIVE_INDEX = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES ztab = itab ytab = jtab_mt EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. * ************************************** ENDIF. IF jtab_wl[] IS NOT INITIAL. * IF ITAB-USNAM = SY-UNAME. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZCS_PM_LLDT_WL' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING fm_name = fm_name * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CALL FUNCTION fm_name * EXPORTING * ARCHIVE_INDEX = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES ztab = itab ytab = jtab_wl EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. * ************************************** ENDIF. IF jtab_el[] IS NOT INITIAL. * IF ITAB-USNAM = SY-UNAME. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZCS_PM_LLDT_EL' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING fm_name = fm_name * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CALL FUNCTION fm_name * EXPORTING * ARCHIVE_INDEX = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES ztab = itab ytab = jtab_el EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. * ************************************** ENDIF. ENDIF. ENDFORM. 分析代码,查看打印单预览时部分物料的物料描述缺失的原因
09-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gabanon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值