范例NC单据导出XML文件.docx
- 文档编号:9598214
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:83
- 大小:37.23KB
范例NC单据导出XML文件.docx
《范例NC单据导出XML文件.docx》由会员分享,可在线阅读,更多相关《范例NC单据导出XML文件.docx(83页珍藏版)》请在冰豆网上搜索。
范例NC单据导出XML文件
packagenc.ui.shjt.report.pub;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.util.Date;
importnc.bs.gl.pfxx.XmlUtils;
importnc.bs.logging.Logger;
importnc.bs.pfxx.manualload.BusinessProcessException;
importnc.ui.pub.ClientEnvironment;
importnc.vo.pfxx.util.FileUtils;
importnc.vo.pub.lang.UFDate;
importnc.vo.pub.lang.UFDouble;
importnc.vo.sh.report.cb.FinisAllVO;
importorg.w3c.dom.Document;
importorg.w3c.dom.Element;
/**
*XML文件转换工具类
*@authorjieely
*@date2010-3-29
*
*/
publicclassXMLChangeUtil
{
privatestaticStringexpDate=null;//凭证导出日期
publicstaticStringgetExpDate()
{
returnexpDate;
}
publicstaticvoidsetExpDate(StringexpDate)
{
XMLChangeUtil.expDate=expDate;
}
/**
*根据报表VO组织XML数据
*@paramfinisAllVOs
*@paramdocid
*@return
*@throwsBusinessProcessException
*/
privatestaticDocumentgetDocument(FinisAllVO[]finisAllVOs,Stringdocid)throwsBusinessProcessException
{
if(finisAllVOs[0].getYf()==null)
setExpDate(newDate().toString());
setExpDate(finisAllVOs[0].getYf()+"-28");//设置凭证导出日期:
默认为28日
Documentdoc=XmlUtils.getDocumentBuilder().newDocument();
Elementroot=doc.createElement("ufinterface");
setRootElementAttribute(root);//设置XML头参数
Elementvoucher=doc.createElement("voucher");
voucher.setAttribute("id",docid);
Elementhead=getHeadElement(doc);//设置head标签项
Elementbody=getBodyElement(doc,finisAllVOs);//设置body标签项
root.appendChild(voucher);
voucher.appendChild(head);
voucher.appendChild(body);
doc.appendChild(root);
returndoc;
}
/**
*根据报表数据生成XML文件
*@paramfinisAllVOs
*@paramdocid
*@return
*/
publicstaticStringmakeReturnDoc(FinisAllVO[]finisAllVOs,Stringdocid)
{
FileInputStreamin=null;
FileOutputStreamout=null;
try
{
Documentdoc=getDocument(finisAllVOs,docid);
//StringuserHome=System.getProperty("user.home")+"\\";//用户路径:
我的文档
StringuserHome="C:
\\TEMP\\";
Filefolder=newFile(userHome);
if(!
folder.exists())//如果不存在则建该文件夹
folder.mkdir();
StringfileName=newUFDate(newDate()).toString()+"转成本.xml";
Filefile=FileUtils.writeDocToXMLFile(doc,userHome+fileName);
in=newFileInputStream(file);
byte[]bs=newbyte[in.available()];
in.read(bs);
out=newFileOutputStream(file);
out.write(bs);
returnuserHome;
}
catch(BusinessProcessExceptione)
{
e.printStackTrace();
Logger.error(e);
}
catch(IOExceptione)
{
e.printStackTrace();
Logger.error(e);
}
finally
{
try
{
in.close();
out.flush();
out.close();
}
catch(IOExceptione)
{
Logger.error(e);
e.printStackTrace();
}
}
return"";
}
/**
*设置文件头参数信息
*@paramroot
*/
privatestaticvoidsetRootElementAttribute(Elementroot)
{
root.setAttribute("roottag","voucher");
root.setAttribute("billtype","gl");
root.setAttribute("docid","989898989898");
root.setAttribute("receiver","2000");
root.setAttribute("sender","1000");
root.setAttribute("proc","add");
root.setAttribute("codeexchanged","y");
}
/**
*设置XML_Head数据项
*@paramdoc
*@return
*/
privatestaticElementgetHeadElement(Documentdoc)
{
Elementhead=doc.createElement("voucher_head");
StringaccountYear=expDate.substring(0,4);//会计年
StringaccountMonth=expDate.substring(5,7);//会计月
StringunitCode=ClientEnvironment.getInstance().getCorporation().getUnitcode();
Stringoperator=ClientEnvironment.getInstance().getUser().getUserCode();
Elementcompany=doc.createElement("company");//公司编码
company.appendChild(doc.createTextNode(unitCode));
head.appendChild(company);
Elementvoucher_type=doc.createElement("voucher_type");//类型
voucher_type.appendChild(doc.createTextNode("转帐凭证"));
head.appendChild(voucher_type);
Elementfiscal_year=doc.createElement("fiscal_year");//会计年
fiscal_year.appendChild(doc.createTextNode(accountYear));
head.appendChild(fiscal_year);
Elementaccounting_period=doc.createElement("accounting_period");//会计月
accounting_period.appendChild(doc.createTextNode(accountMonth));
head.appendChild(accounting_period);
Elementvoucher_id=doc.createElement("voucher_id");//凭证号:
默认0
voucher_id.appendChild(doc.createTextNode("0"));
head.appendChild(voucher_id);
Elementattachment_number=doc.createElement("attachment_number");//附单据数:
0
attachment_number.appendChild(doc.createTextNode("0"));
head.appendChild(attachment_number);
Elementprepareddate=doc.createElement("prepareddate");//
prepareddate.appendChild(doc.createTextNode(expDate));
head.appendChild(prepareddate);
Elementdate=doc.createElement("date");//制单日期
date.appendChild(doc.createTextNode(expDate));
head.appendChild(date);
Elemententer=doc.createElement("enter");//制单人
enter.appendChild(doc.createTextNode(operator));
head.appendChild(enter);
Elementcashier=doc.createElement("cashier");//审核人
cashier.appendChild(doc.createTextNode(""));
head.appendChild(cashier);
Elementsignature=doc.createElement("signature");//签字标志
signature.appendChild(doc.createTextNode(""));
head.appendChild(signature);
Elementchecker=doc.createElement("checker");//审核人
checker.appendChild(doc.createTextNode(""));
head.appendChild(checker);
Elementposting_date=doc.createElement("posting_date");//记帐日期
posting_date.appendChild(doc.createTextNode(""));
head.appendChild(posting_date);
Elementposting_person=doc.createElement("posting_person");//记账人
posting_person.appendChild(doc.createTextNode(""));
head.appendChild(posting_person);
Elementvoucher_making_system=doc.createElement("voucher_making_system");//制单系统主键
voucher_making_system.appendChild(doc.createTextNode("GL"));
head.appendChild(voucher_making_system);
Elementmemo1=doc.createElement("memo1");//free9
memo1.appendChild(doc.createTextNode(""));
head.appendChild(memo1);
Elementmemo2=doc.createElement("memo2");//freevalue2
memo2.appendChild(doc.createTextNode(""));
head.appendChild(memo2);
Elementreserve1=doc.createElement("reserve1");//freevalue3
reserve1.appendChild(doc.createTextNode(""));
head.appendChild(reserve1);
Elementreserve2=doc.createElement("reserve2");//freevalue4
reserve2.appendChild(doc.createTextNode(""));
head.appendChild(reserve2);
head.appendChild(company);
head.appendChild(voucher_type);
head.appendChild(fiscal_year);
head.appendChild(accounting_period);
head.appendChild(voucher_id);
head.appendChild(attachment_number);
head.appendChild(prepareddate);
head.appendChild(date);
head.appendChild(enter);
head.appendChild(cashier);
head.appendChild(signature);
head.appendChild(checker);
head.appendChild(posting_date);
head.appendChild(posting_person);
head.appendChild(voucher_making_system);
head.appendChild(memo1);
head.appendChild(memo2);
head.appendChild(reserve1);
head.appendChild(reserve2);
returnhead;
}
/**
*设置XML_Body数据项
*@paramdoc
*@paramfinisAllVOs
*@return
*/
privatestaticElementgetBodyElement(Documentdoc,FinisAllVO[]finisAllVOs)
{
Elementbody=doc.createElement("voucher_body");
intdetailindex=1;
for(inti=0;i { UFDoublegtzje=finisAllVOs[i].getGtzje(); if(pareTo(newUFDouble(0))! =0)//过滤金额为0的数据 { Elemententry1=getBodyElementForGT_D(doc,finisAllVOs[i],detailindex++); Elemententry2=getBodyElementForGT_C(doc,finisAllVOs[i],detailindex++); body.appendChild(entry1); body.appendChild(entry2); } UFDoublebszje=finisAllVOs[i].getBszje(); if(pareTo(newUFDouble(0))! =0) { Elemententry3=getBodyElementForBS_D(doc,finisAllVOs[i],detailindex++); Elemententry4=getBodyElementForBS_C(doc,finisAllVOs[i],detailindex++); body.appendChild(entry3); body.appendChild(entry4); } UFDoublesszje=finisAllVOs[i].getSszje(); if(pareTo(newUFDouble(0))! =0) { Elemententry5=getBodyElementForSS_D(doc,finisAllVOs[i],detailindex++); Elemententry6=getBodyElementForSS_C(doc,finisAllVOs[i],detailindex++); body.appendChild(entry5); body.appendChild(entry6); } UFDoubleshzje=finisAllVOs[i].getShzje(); if(pareTo(newUFDouble(0))! =0) { Elemententry7=getBodyElementForSH_D(doc,finisAllVOs[i],detailindex++); Elemententry8=getBodyElementForSH_C(doc,finisAllVOs[i],detailindex++); body.appendChild(entry7); body.appendChild(entry8); } UFDoubledzzje=finisAllVOs[i].getDzzje(); if(pareTo(newUFDouble(0))! =0) { Elemententry9=getBodyElementForDZ_D(doc,finisAllVOs[i],detailindex++); Elemententry10=getBodyElementForDZ_C(doc,finisAllVOs[i],detailindex++); body.appendChild(entry9); body.appendChild(entry10); } UFDoublehkzje=finisAllVOs[i].getHkzje(); if(pareTo(newUFDouble(0))! =0) { Elemententry11=getBodyElementForHK_D(doc,finisAllVOs[i],detailindex++); Elemententry12=getBodyElementForHK_C(doc,finisAllVOs[i],detailindex++); body.appendChild(entry11); body.appendChild(entry12); } } returnbody; } //=======================================国铁 /** *国铁: 煤炭销售成本--国铁运费 *@parambody *@paramfinisAllVOs *@return */ privatestaticElementgetBodyElementForGT_D(Documentdoc,FinisAllVOfinisAllVO,intdetailindex) { Elemententry=doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 范例 NC 单据 导出 XML 文件