您的位置:首页 > 其它

存储过程生成XML文件的报表

2011-10-28 16:49 253 查看
例一:
CREATE OR REPLACE PROCEDURE WST_CST_CHECK_REPORT

(ERRBUF OUT VARCHAR2,

RETCODE OUT NUMBER,

P_ORG_ID IN NUMBER,

P_SO_EXP IN VARCHAR2,

P_SO_DATE_F IN VARCHAR2,--YYYY/MM/DD

P_SO_DATE_T IN VARCHAR2,--YYYY/MM/DD

P_CST_TYPE_ID IN NUMBER,

P_ITEM_F IN VARCHAR2,

P_ITEM_T IN VARCHAR2,

P_ITEM_DATE_F IN VARCHAR2,--YYYY/MM/DD

P_ITEM_DATE_T IN VARCHAR2,--YYYY/MM/DD

P_CATEGORY_SET_ID IN NUMBER,

P_CATEGORY_STRUCTURE IN NUMBER,

P_CATEGORY_F IN VARCHAR2,

P_CATEGORY_T IN VARCHAR2)

IS

BEGIN

fnd_file.put_line(Fnd_File.OUTPUT,rpad('<?xml version="1.0" encoding="UTF-8"?>',100, ' '));

fnd_file.put_line(Fnd_File.OUTPUT,rpad('<ALLCONTENT>', 30, ' '));

fnd_file.put_line(Fnd_File.OUTPUT,

rpad('<TITLE>', 20, ' ')||

rpad('<ORG_CODE>'||ORG_CODE||'</ORG_CODE>', 100, ' ')||

rpad('<ITEM_F>'||P_ITEM_F||'</ITEM_F>', 100, ' ')||

rpad('<ITEM_T>'||P_ITEM_T||'</ITEM_T>', 100, ' ')||

rpad('<SO_EXP>'||P_SO_EXP||'</SO_EXP>', 100, ' ')||

rpad('<ITEM_DATE_F>'||P_ITEM_DATE_F||'</ITEM_DATE_F>', 100, ' ')||

rpad('<ITEM_DATE_T>'||P_ITEM_DATE_T||'</ITEM_DATE_T>', 100, ' ')||

rpad('<SO_DATE_F>'||P_SO_DATE_F||'</SO_DATE_F>', 100, ' ')||

rpad('<SO_DATE_T>'||P_SO_DATE_T||'</SO_DATE_T>', 100, ' ')||

rpad('<CATEGORY_SET>'||CATEGORY_SET||'</CATEGORY_SET>', 100, ' ')||

rpad('<CST_TYPE>'||CST_TYPE||'</CST_TYPE>', 100, ' ')||

rpad('<CATEGORY_F>'||P_CATEGORY_F||'</CATEGORY_F>', 100, ' ')||

rpad('<CATEGORY_T>'||P_CATEGORY_T||'</CATEGORY_T>', 100, ' ')||

rpad('</TITLE>', 20, ' ')

);

for k in

select msi.SEGMENT1,

msi.DESCRIPTION,

msi.PRIMARY_UOM_CODE uom,

nvl(cic.ITEM_COST,0)ITEM_COST,

mic.CATEGORY_SET_NAME CATEGORY_SET,

mic.CATEGORY_CONCAT_SEGS CATEGORYS,

decode(msi.PLANNING_MAKE_BUY_CODE,1,'Make',2,'Buy','Others')MAKE_BUY_CODE,

decode(cic.BASED_ON_ROLLUP_FLAG,1,'Yes',2,'No','Null')BASED_ON_ROLLUP,

msi.CREATION_DATE,

(select max(USER_NAME) from FND_USER where USER_ID=msi.CREATED_BY)CREATED_BY,

msi.ORGANIZATION_ID,

msi.INVENTORY_ITEM_ID,

msi.PLANNING_MAKE_BUY_CODE

from MTL_SYSTEM_ITEMS msi,

(select * from CST_ITEM_COSTS where ORGANIZATION_ID=P_ORG_ID and COST_TYPE_ID=P_CST_TYPE_ID) cic,

MTL_ITEM_CATEGORIES_V mic

where 1=1

and msi.ORGANIZATION_ID=cic.ORGANIZATION_ID(+)

and msi.ORGANIZATION_ID=mic.ORGANIZATION_ID

loop

fnd_file.put_line(Fnd_File.OUTPUT,

rpad('<H1>', 20, ' ')||

rpad('<SEGMENT1>'||k.SEGMENT1||'</SEGMENT1>', 100, ' ')||

rpad('<DESCRIPTION>'||wst_common_func_pkg.replacespecialchar(k.DESCRIPTION)||'</DESCRIPTION>', 300, ' ')||

rpad('<COST_TYPE>'||CST_TYPE||'</COST_TYPE>', 100, ' ')||

rpad('<UOM>'||k.UOM||'</UOM>', 100, ' ')||

rpad('<ITEM_COST>'||k.ITEM_COST||'</ITEM_COST>', 100, ' ')||

rpad('<CATEGORY_SET>'||k.CATEGORY_SET||'</CATEGORY_SET>', 100, ' ')||

rpad('<CATEGORYS>'||k.CATEGORYS||'</CATEGORYS>', 100, ' ')||

rpad('<MAKE_BUY_CODE>'||k.MAKE_BUY_CODE||'</MAKE_BUY_CODE>', 100, ' ')||

rpad('<BASED_ON_ROLLUP>'||k.BASED_ON_ROLLUP||'</BASED_ON_ROLLUP>', 100, ' ')||

rpad('<CREATION_DATE>'||k.CREATION_DATE||'</CREATION_DATE>', 100, ' ')||

rpad('<CREATED_BY>'||k.CREATED_BY||'</CREATED_BY>', 100, ' ')||

rpad('<BPA_FLAG>'||V_BPA_FLAG||'</BPA_FLAG>', 100, ' ')||

rpad('<PO_FLAG>'||V_PO_FLAG||'</PO_FLAG>', 100, ' ')||

rpad('<BOM_FLAG>'||V_BOM_FLAG||'</BOM_FLAG>', 100, ' ')||

rpad('<ROUT_FLAG>'||V_ROUT_FLAG||'</ROUT_FLAG>', 100, ' ')||

rpad('<MMT_FLAG>'||V_MMT_FLAG||'</MMT_FLAG>', 100, ' ')||

rpad('<JOB_FLAG>'||V_JOB_FLAG||'</JOB_FLAG>', 100, ' ')||

rpad('</H1>', 20, ' ')

);

END IF;

end loop;

fnd_file.put_line(Fnd_File.OUTPUT,rpad('</ALLCONTENT>', 30, ' '));

END;

例二:

create or replace procedure wst_pdd_vender_waste_p( ov_errbuf OUT VARCHAR2,

ov_retcode OUT VARCHAR2,

p_org_id in number,

p_vender_code_f in varchar2,

p_vender_code_t in varchar2,

p_date_year in number,

p_item_no_f in varchar2,

p_item_no_t in varchar2)

as

v_waste_rate number;

CURSOR cur_1 IS

select wps.attribute20 org_id,

wps.wip_entity_no,

pv.segment1 vender_code,

wps.item_no,

wps.wip_entity_name job_num,

sum(wps.req_qty) req_qty,

wps.item_uom,

sum(wps.issued_qty) issued_qty,

sum(wps.pick_qty) pick_qty

from wst_pick_slip_t wps,

po_lines_all pla,

po_headers_all pha,

po_vendors pv

where pla.po_header_id = pha.po_header_id

and pla.cancel_flag<>'Y'

and pha.cancel_flag<>'Y'

and pla.ATTRIBUTE4 = wps.WIP_ENTITY_NAME

and pv.VENDOR_ID = pha.VENDOR_ID

and wps.pick_type = 'SC'

and wps.ATTRIBUTE8 is null

and wps.ATTRIBUTE5='YES'

and wps.wip_entity_name like '%PDD%'

and wps.attribute20=nvl(p_org_id,wps.attribute20)

and (pv.segment1>=p_vender_code_f or p_vender_code_f is null)

and (pv.segment1<=p_vender_code_t or p_vender_code_t is null)

and (wps.wip_entity_no>=p_item_no_f or p_item_no_f is null)

and (wps.wip_entity_no<=p_item_no_t or p_item_no_t is null)

and substr(wps.wip_entity_name,6,2) =nvl(p_date_year,to_char(sysdate,'yy'))

group by wps.attribute20,

wps.wip_entity_no,

pv.segment1,

wps.item_no,

wps.wip_entity_name,

wps.item_uom

order by vender_code,wps.item_no,wps.wip_entity_name;

begin

fnd_file.put_line(fnd_file.output,

'<?xml version="1.0" encoding="UTF-8"?>');

fnd_file.put_line(fnd_file.output, '<WST_PDD_VENDER_WASTE>');

fnd_file.put_line(fnd_file.output,'<p_org_id>' || p_org_id ||'</p_org_id>');

fnd_file.put_line(fnd_file.output,'<p_vender_code_f>' || p_vender_code_f ||'</p_vender_code_f>');

fnd_file.put_line(fnd_file.output,'<p_vender_code_t>' || p_vender_code_t ||'</p_vender_code_t>');

fnd_file.put_line(fnd_file.output,'<p_date_year>' || p_date_year ||'</p_date_year>');

fnd_file.put_line(fnd_file.output,'<p_item_no_f>' || p_item_no_f ||'</p_item_no_f>');

fnd_file.put_line(fnd_file.output,'<p_item_no_t>' || p_item_no_t ||'</p_item_no_t>');

FOR V_CUR IN CUR_1 LOOP

if V_CUR.req_qty=0 then

v_waste_rate:=0;

else

v_waste_rate:=V_CUR.pick_qty/V_CUR.req_qty;

end if;

fnd_file.put_line(fnd_file.output, '<PDD_VENDER_WASTE_LINE>');

fnd_file.put_line(fnd_file.output,'<org_id>' || V_CUR.org_id ||'</org_id>');

fnd_file.put_line(fnd_file.output,'<wip_entity_no>' || V_CUR.wip_entity_no ||'</wip_entity_no>');

fnd_file.put_line(fnd_file.output,'<vender_code>' || V_CUR.vender_code ||'</vender_code>');

fnd_file.put_line(fnd_file.output,'<item_no>' || V_CUR.item_no ||'</item_no>');

fnd_file.put_line(fnd_file.output,'<job_num>' || V_CUR.job_num ||'</job_num>');

fnd_file.put_line(fnd_file.output,'<req_qty>' || V_CUR.req_qty ||'</req_qty>');

fnd_file.put_line(fnd_file.output,'<item_uom>' || V_CUR.item_uom ||'</item_uom>');

fnd_file.put_line(fnd_file.output,'<issued_qty>' || V_CUR.issued_qty ||'</issued_qty>');

fnd_file.put_line(fnd_file.output,'<pick_qty>' || V_CUR.pick_qty ||'</pick_qty>');

fnd_file.put_line(fnd_file.output,'<waste_rate>' || v_waste_rate||'</waste_rate>');

fnd_file.put_line(fnd_file.output, '</PDD_VENDER_WASTE_LINE>');

END LOOP;

fnd_file.put_line(fnd_file.output, '</WST_PDD_VENDER_WASTE>');

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: