NC技术汇总笔记总结

上传人:RUN****yf 文档编号:61277045 上传时间:2022-03-11 格式:DOC 页数:31 大小:403KB
收藏 版权申诉 举报 下载
NC技术汇总笔记总结_第1页
第1页 / 共31页
NC技术汇总笔记总结_第2页
第2页 / 共31页
NC技术汇总笔记总结_第3页
第3页 / 共31页
资源描述:

《NC技术汇总笔记总结》由会员分享,可在线阅读,更多相关《NC技术汇总笔记总结(31页珍藏版)》请在装配图网上搜索。

1、一得到选中的表体行数,列数等内容(总行数和当前选中的行数)2二设置初始化界面时的默认值3三表单默认执行方法以及常用的操作3四在报表中显示合计行4五在 UI 类中设置小数位数5六将表体数据清空5七设置字段是否可编辑的状态5八在 UI 类中编写方法打印查询条件6九弹出提示框6十在报表中得到查询面板的值6十一 .比较时间的开始与结束时间7十二 .设置编辑公式7十三 .清空缓冲数数据getBufferData().clear();7十四 . 在 UI 类中设置查询对话框的默认值7十五 . 管理型界面单据各个类的继承关系8十六 .是否显示行号,合计行,数组按钮,隐藏列8十七 . 根据单据的不同状态来控制

2、按钮的可用性。9十八 . UI 工厂开发单据模式下如何自定义按钮?10十九 .需要设置动作脚本的六个按钮11二十 . 单据界面设置某些字段的显示与隐藏11二十一 . 单据开发的一般步骤:11二十二 . 界面数据访问12二十三 .导出与导入数据库12二十四 .list map set 的操作12二十五 . 改变焦点自动显示表头金额的值13二十六 .设置行选中的状态13二十七,初始进入时默认显示卡片界面或列表界面14二十八 ,在 MyEventHandler 类中,在onBoSave()中验证必输项14二十九 .多页签得到某一页签到的行数15三十,判断日期的前后15三十一 .验证表头的必输项不能为

3、空16三十二,执行表体编辑公式16三十三, ECLIPSE 中代码不显示行号17三十四,在ECLIPSE 中添加反编译17三十五,编辑后事件的处理17三十六 ,编辑前事件的处理17三十七。编辑事件设某一个字段不能编辑18三十八 .在保存的时候 ,验证表体不能为空/18三十九 .删除表体某一行触发的事件18四十, UI 类中初始化设置18四十一, YES OR NO对话框19四十二 .得到选中的行数与得到选中行数的行号的数组,数组以0 开头19四十三 .对 VO 的操作,聚合VO,得到表体,表体某一个页签的VO19四十四 .添加一个自定义的按钮20四十五 .取得某一个页签下的记录的行数21四十六

4、 . 修改的时候,清空批号想要保存到数据库必须设置行的状态21四十七 .执行表头的公式21四十八 .根据不同的条件,过滤不同的参照记录21四十九,获取表体当前操作页签22五十,输入开始和结束日期,从开始到结束日期每天都列出来22五十一,在列表状态下,根据单据的状态,确定按钮是否可用23五十二,不管在是列表还是卡片面下取得表头或表体的值23五十三, UFDouble 型的数据变成两位小数的字符型,或零位小数24五十四 ,系统按钮的操作24五十五, SQL 查询时将字符转换成小数型24五十六,删除单页签表体删除行,以及增行24五十七,多页签表体删除行,增行25五十八,得到月份,年份25五十九,如何

5、得到多页签到指定的子VO25六十 :删除表体行25六十一 .传过一个主键的数组,如何组装成主键,主键的形式25六十二 .导出 TXT 文本26六十三,删除表体的记录行29六十四 .确定某一列在模板上位置29六十五 .单据添加复选,判断选中的记录行29六十六 ,判断按钮的状态是否可用30一得到选中的表体行数,列数等内容(总行数和当前选中的行数)/ 得到选中的列数selCol=getBillCardPanelWrapper().getBillCardPanel().getBillTable().getSelectedColumn();/ 得到当前选中列的索引colIndex=getBillCard

6、Panel().getBillTable().convertColumnIndexToModel(selCol);/ 得到选中的行号从 0 开始iSelRow= getBillCardPanel().getBillTable().getSelectedRow();/ 得到当前选中的行i = getReportBase().getBillTable().getSelectedRow();/ 得到表体一共有多少行 / this.getBillCardPanel().getRowCount();/ 判断是否选中行if(getSetInBalPriceUI().getBillCardPanel().g

7、etBillTable().getSelected Row() = -1) getSetInBalPriceUI().showErrorMessage(请选择表体数据行! );return;/ 判断选中的某一行的某一列是否为空if(getSetInBalPriceUI().getBillCardPanel().getBodyValueAt(selectRow,sys_shipper_id) = null) getSetInBalPriceUI().showErrorMessage(请录入发货单位!);/ 得到某一行某一列指定的值sys_shipper_id=getSetInBalPriceUI

8、().getBillCardPanel().getBodyValueAt(selectRow,sys_shipper_id).toString();/ 得到当前选中行的指定的某一列(String)getReportBase().getBodyValueAt(i,sendunitID);this.getBillCardPanel().setBodyValueAt(值,行,列 );this.getBillCardWrapper().getBillCardPanel();/ 获取表体第 i 行字段值getBillCardPanel().getBodyValueAt(i.字段 )二设置初始化界面时的默

9、认值/*初始化卡片界面时加载的默认属性在UI中*/public void setDefaultData() throws Exception / 单据类型 87getBillCardPanel().setHeadItem(pk_billtype,IBillType.CY_DYAPPLYPLAN);/ 制单日期默认值getBillCardPanel().setTailItem(doperatordate, _getDate();三表单默认执行方法以及常用的操作/ 自定义按钮处理事件,在自定义按钮的时候会定义一个值,根据传过来的值判断处理哪个事件执行哪个方法,在 MyEventHandler类pr

10、otected void onBoElse(int intBtn) throws Exception * 表单编辑protected void onBoEdit() throws Exception * 表单删除protected void onBoDelete() throws Exception * 表单保存protected void onBoSave() throws Exception * 表单取消protected void onBoCancel() throws Exception * 表单编辑后事件 UI 类中public void afterEdit(BillEditEven

11、t evt) super.afterEdit(evt);String colStr = evt.getKey();int rowCount = evt.getRow();* 表单编辑前事件 UI 类中publicbooleanbeforeEdit(BillEditEvent evt) String colStr = evt.getKey();If(colStr.equals(“字段名 ”)return false;/设置某一个字段不可编辑/ TODO自动生成方法存根returnsuper .beforeEdit(arg0);*表单标签改变事件UIpublicvoidafterTabChange

12、d(BillTabbedPaneTabChangeEvent arg0) String TabName = arg0.getBtvo().getTabcode();if (TabName.equals(fk_cm_contract1) | TabName.equals(fk_cm_contract2)/设置标签fk_cm_consub可编辑this.getBillCardPanel().getBillModel(fk_cm_consub).setEnabled(true);/ 设置当选中 fk_cm_contract1 这个标签时,子表的第一个标签到选中显示 this.getBillCardP

13、anel().getBodyTabbedPane().getModel().setSelectedIndex(0);/设置标签 fk_cm_consub不可编辑this.getBillCardPanel().getBillModel(fk_cm_conisub).setEnabled(false);* UI类中行改变事件public void bodyRowChange(BillEditEvent ev) / TODO自动生成方法存根super.bodyRowChange(ev);int a = ev.getRow();/得到当前选中的行int a = this.getBillCardPane

14、l().getBillTable().getSelectedRow();String b = this.getBillCardPanel().getBodyValueAt(行号, 字段值);四在报表中显示合计行protectedvoid onQuery()throwsExceptionString pk_corp = this.getCorpPrimaryKey();/ 设置表头面板显示表头查询条件和打印时表头显示信息createConditionAndHeadPrintInfo();/ 显示查询结果CircularlyAccessibleValueObjectresults= getQuer

15、yResult(port);ReportBaseVO tvo = new ReportBaseVO();tvo.setAttributeValue(port,合计 );/ 添加合计if(results != null & results.length0)CircularlyAccessibleValueObjectnvos=newCircularlyAccessibleValueObjectresults.length+1;UFDouble totalnum = new UFDouble(0);for(int i=0;iresults.length;i+)totalnum= totalnum.

16、add(UFDouble)resultsi.getAttributeValue(shuliang); nvosi=resultsi;tvo.setAttributeValue(shuliang,totalnum);nvosresults.length=tvo;getReportBase().setBodyDataVO(nvos);this.getReportBase().setBodyValueAt(合计 ,results.length,port);if(results=null|results.length=0)getReportBase().setBodyDataVO(results);s

17、howHintMessage(没有可显示数据) ;五在 UI 类中设置小数位数publicArrearsComStaUI()super .setTitleText( 欠款单位表 );/ 设置小数位数:this.setColumnDecimal(newStringcarnum,tonnum,jsmoney,yingkuids,yunfei,qitafy,amount, new int0,0,0,0,0,0,0);或是:this.getReportBase().getBody_Item(quan).setDecimalDigits(0);六将表体数据清空this.getBillCardPanel(

18、).getBillModel().clearBodyData();七设置字段是否可编辑的状态/*发运开始日期结束日期编辑控制在运输方式是地销时可编辑其他不可编辑if(colStr.equals(conveytype)String str = this.getBillCardPanel().getHeadItem(conveytype).getValue();this.getBillCardPanel().getHeadItem(startdate).setEnabled(true);this.getBillCardPanel().getHeadItem(enddate).setEnabled(

19、true);elsethis.getBillCardPanel().setHeadItem(startdate,null); this.getBillCardPanel().setHeadItem(enddate,null); this.getBillCardPanel().getHeadItem(startdate).setEnabled(false); this.getBillCardPanel().getHeadItem(enddate).setEnabled(false);八在 UI 类中编写方法打印查询条件protectedvoid createConditionAndHeadPri

20、ntInfo() this .showCondition(this.createConditionsFromConditionVO(this.getQryDlg().getConditionVO();this .updateUI();九弹出提示框MessageDialog.showOkCancelDlg(getDyApplyPlanUI(), 提示 , 你确定要下发该单据吗? ) /弹出对话框提示, 客户基本档案更新成功!);十在报表中得到查询面板的值protected void onQuery() throws Exception getQryDlg().showModal();if (ge

21、tQryDlg().getResult() = QueryDLG.ID_OK) / 取得查询日期String port = null;/港口ConditionVO cndvos = getQryDlg().getConditionVO();for(int i=0;i 0)getSetInBalPriceUI().showErrorMessage( 【起始日期】 不能超过 【结束日期】 !); return;十二 .设置编辑公式/ 表体显示公式StringbodyForm=newStringsys_shipper_id-getColValue(zk_sys_organ,sys_organ_id,

22、sys_organ_id,sys_shipper_id ) ;for (int i = 0; i assayInfo.length; i+) super.onBoLineAdd();/ 增行/ 为表体某一行赋值getSetInBalPriceUI().getBillCardPanel().setBodyValueAt(String)assayInfoi.getAttr ibuteValue(laiyangdanwei), i, sys_shipper_id);/ 执行表体公式getSetInBalPriceUI().getBillCardPanel().getBillModel().execF

23、ormulas(i, bodyForm);/十三 .清空缓冲数数据getBufferData().clear();十四 . 在 UI 类中设置查询对话框的默认值格式: 2009-01protected QueryDLG createQueryDLG() ZBReportBaseDLG dlg = new ZBReportBaseDLG();dlg.setTempletID(getUIControl()._getPk_corp(), getUIControl()._getModuleCode(), getUIControl()._getOperator(), null); dlg.setValu

24、eRef(sdate, getQueryYearMonth(); dlg.setValueRef(edate, getQueryYearMonth();/ 设置默认的选择当前年QueryConditionVO qryvos = dlg.getConditionDatas();for (int i = 0; i qryvos.length; i+) if (qryvosi.getFieldCode().equals(sdate) qryvosi.setValue(this.getClientEnvironment().getDate().toString().substring(0,7);if

25、(qryvosi.getFieldCode().equals(edate) qryvosi.setValue(this.getClientEnvironment().getDate().toString().substring(0,7);return dlg;十五 . 管理型界面单据各个类的继承关系前台界面类:ClientUIextendsBIllManageUI1.重写父类方法protectedBusinessDelegator createBusinessDelegator()返回前台界面业务委托类的具体实现。2.重写父类方法protectedManageEventHandler crea

26、teEventHandler()返回前台事件处理(按钮处理器)类的具体实现。3.重写父类方法protectedAbstractManageController createController()返回前台控制类的具体实现。4.重写父类方法protectedvoid initPrivateButton()添加私有按钮addPrivateButton(new DeleteAllbutnVO().getButtonVO()5.重写父类方法protectedvoid initSelfData()6.重写父类方法 public void setDefaultData() throws Exception

27、 设置默认数据事件处理类:TestEventHandlerextendsManageEventHandler重写父类各种单据按钮事件,完成具体的事件动作实现。如:1. 重写查询类protectedvoid onBoQuery()throwsException super .onBoQuery();2. 重写其他按钮动作事件处理,比如(导入等)protectedvoid onBoElse(intintBtn)throwsException super.onBoQuery();十六 .是否显示行号,合计行,数组按钮,隐藏列1. 列表状态下是否显示行号publicbooleanisShowListR

28、owNo() returnfalse ;2. 卡片状态下是否显示行号publicbooleanisShowCardRowNo() returnfalse ;3. 卡片状态下是否显示合计publicbooleanisShowCardTotal() returnfalse ;4. 列表状态下是否显示合计publicbooleanisShowListTotal() returnfalse ;5. 返回卡片状态下按钮数组public int getCardButtonAry() returnnew int IBillButton.Add, IBillButton.Query,IBillButton.,

29、 IBillButton.Edit, IBillButton.Del,SaveIBillButton.Line , IBillButton.Cancel, IBillButton.Print ,IBillButton.Return ,;6. 返回列表状态下按钮数组public int getListButtonAry() returnnew int IBillButton.Add, IBillButton.Query,IBillButton., IBillButton.Edit, IBillButton.Del,SaveIBillButton.Card, IBillButton.Cancel,

30、 IBillButton.Print ,ISHTestButton.DeleteAllButton,;7. 返回卡片状态表体隐藏列publicString getCardBodyHideCol() returnnull;8. 返回列表状态表头隐藏列publicString getListHeadHideCol() returnnull;十七 . 根据单据的不同状态来控制按钮的可用性。在UI 工厂中,系统预置的按钮事件是在onButtonClicked()方法中处理,自定义的按钮在onBoElse()方法中处理。protected voidonBoElse(int intBtn)switch (

31、intBtn)case ITestButton.DeleteAll:onDeleteAll();break ;十八 . UI 工厂开发单据模式下如何自定义按钮?1.建立一个自定义按钮的接口:ITestButton定义按钮的ID 值,自定义按钮的ID 必须大于100public interfaceITestButtonint DeleteAll = 101;2. 创建一个按钮的 VO类public classDeleteAllVOpublicButtonVO btnVo = new ButtonVO();btnVo.setBtnNo(ITestButton.DeleteAll);btnVo.se

32、tBtnName(删除全部 );btnVo.setHintStr(删除本单据全部数据);btnVo.setOperateStatus(new int IBillOperate.OP_ADD);btnVo.setBusinessStatus(new int IBillStatus.FREE);returnbtnVo;3. 在控制类中将自定义按钮添加到界面上public int getCardButtonAry()return new intIBillButton.ADD,ITestButton.DeleteAll;4. 在 UI 类里面实例化自定义按钮并实例化protected voidinit

33、PrivateButton()ButtonVO deleteAll = (new DeleteAllVO).getButtonVO();addPrivateButton(deleteAll);5. 在控制类中响应按钮事件并实现自定义按钮的事件处理protected voidonBoElse(int intBtn)switch (intBtn)case ITestButton.DeleteAll:onDeleteAll();break ;protected voidonDeleteAll()/ 具体实现十九 .需要设置动作脚本的六个按钮动作脚本保存( WRITE)修改( EDIT)作废( DEL

34、ETE)提交( SAVE)审批( APPROVE)弃审( UNAPPROVE)二十 . 单据界面设置某些字段的显示与隐藏(1)在单据模板上可以设置每一个字段的显示与隐藏( 2)在单据 UI 类的 initSelfData()方法中设置protected void initSelfData() / 设置字段的不可编辑和隐藏getBillListPanel().hideBodyTableCol(字段 );getBillCardPanel().getBodyItem(字段 ).setEdit(false);二十一 . 单据开发的一般步骤:1. 数据建模,生成数据库表2. 利用平台工具或手工生成 VO

35、3. 平台注册系统类型注册(可选)功能注册单据类型VO对照注册单据动作注册单据动作组注册单据动作执行脚本(注册完将生成的代码拷贝到开发环境)4. 导入数据字典5. 生成单据模板、查询模板6. 模板注册(功能节点默认模板设置)7. 建立界面类、控制类、事件处理类等代码框架进行开发定制界面控制类1) 创建控制类,实现ICardController接口2) 重载 getBillType(),返回单据类型。3 ) 重载 getBillVoName() 方法,关联 VO类,控制单据数据的获取。4) 重载 getBusinessActionType()方法,设置单据是否走流程平台。public int g

36、etBusinessActionType() return IBusinessActionType.BD; /IBusinessActionType为接口常量,BD表示单据不走流程平台。二十二 . 界面数据访问一、卡片界面1. 表头数据得到表头 item 值: getBillCaedPanel().getHeadItem(pk_corp).getValue();2. 表体数据得到列表行数: int rowCornt = getBillCardPanel().getBillModel().getRowCount();得到选中的行: int curRow = getBillCardPanel().

37、getBillTable().getSelectedRow();得到表体某行某列值: getBillCardPanel().getBodyValueAt(curRow,colName);二、列表界面1. 表头数据得到行数: getBillListPanel().getHeadBillModel().getRowCount();取得数据 : getBillListPanel().getHeadBillModel().getValueAt(row,colName);2. 表体数据取得数据: getBillListPanel().getBodyBillModel().getValueAt(row,c

38、olName);二十三 .导出与导入数据库导出数据库Exp用户名 /密码 QID_数据库IP 地址文件名.dmp full =y(ower=用户名)导入数据库Imp 用户名/密码 QID_数据库IP地址fromuser=用户名touser=用户文件名.dmp二十四 .list map set的操作/ 遍历 listIterator it = list 型变量 .iterator();While(it.hasNext()Map map = it.next()List list = new ArrayList();i.add(“add”);for(Iterator it= i.iterator()

39、;it.hasNext();)String str = (String) it.next();/Set里面没有重复值,无序/List按索引, Map 按键值对Set set =new HashSet();Set.add(“java”);/Map 中If(map!=null & !map.isEmpty()Set keys = map.keySet();For(Iterator it = key.iterator;it.hasNext();)String key = (String) it.next() ;/这样就取出了KEY的值或For(iterator it= map.entrySet().

40、iterator();it.hasnext();)Map.Entry entry = (Map.Entry)it.next();Object key = entry.getkey() ;/这是 KEY的值Object value = entry.getValue();/ / 这是 VALUE的值 二十五 . 改变焦点自动显示表头金额的值/* 改变焦点自动显示表头金额的值*/publicvoidafterEdit(BillEditEvent a) super .afterEdit(a);UFDouble dprice =new UFDouble(0);String subjectcode1 =

41、; / 一级科目编码/ 编辑表体 金额 后 , 自动计算表头的“金额”if(str.equals(dprice) introwCount =this.getBillCardPanel().getRowCount();/获取总行数for( inti = 0; i rowCount; i+)subjectcode1 =this .getBillCardPanel().getBodyValueAt(i,subjectcode1).toString().trim();if (subjectcode1.equals(1122 )dprice = dprice.add(newUFDouble( this

42、.getBillCardPanel().getBodyValueAt(i,dprice).toString();this .getBillCardPanel().setHeadItem(dprice,dprice);二十六 .设置行选中的状态publicvoidvalueChanged(ListSelectionEvent e) if(e.getValueIsAdjusting() =true ) return ; / 将所有行状态置为未选中intiCount = getBillListPanel().getHeadTable().getRowCount();for( inti = 0; i

43、iCount; i+)getBillListPanel().getHeadBillModel().setRowState(i,BillModel.NORMAL);/ 得到被选中的行int iaSelectedRow = getBillListPanel().getHeadTable().getSelectedRows();if(iaSelectedRow !=null)iCount = iaSelectedRow.length;/ 选中的行表示为打号for( inti = 0; i 1) getBufferData().setCurrentRow(iaSelectedRow0);/ 显示第一行

44、表体数据else / 显示当前选中行的表体数据;introw = getBillListPanel().getHeadTable().getSelectedRow();int indexs = getBillListPanel().getHeadBillModel().getSortIndex();if(indexs !=null ) row = indexsgetBillListPanel().getHeadTable().getSelectedRow(); getBufferData().setCurrentRow(row);二十七,初始进入时默认显示卡片界面或列表界面/ 初始化自己 UI

45、 单据模版数据protectedvoid initSelfData() setCurrentPanel(CARDPANEL); /初始进入时默认显示卡片界面setMonUIComboBox( this .getBillCardPanel(),cdodepartment_id); /初始化 制单部门 下拉菜单setCurrentPanel(LISTPANEL);/查询后显示列表界面二十八 ,在 MyEventHandler 类中,在 onBoSave()中验证必输项if(checkIsNull_Body() return;privatebooleancheckIsNull_Body() / 获取

46、表体行数/ int rowCount =/ getContractMonthMngUI().getBillCardPanel().getRowCount();/ 获取表体行数introwCount =getContractMonthMngUI().getBillCardPanel().getBillModel(fk_cm_mconsub).getRowCount();if(rowCount = 0) getContractMonthMngUI().showErrorMessage( 表体无数据 );returntrue;BillModel bm =getContractMonthMngUI()

47、.getBillCardPanel().getBillModel(for( intfk_cm_mconsub);i = 0; i rowCount; i+) if(bm.getValueAt(i,csclient_id) =null) getContractMonthMngUI().showErrorMessage( 小合同子表表体第 + (i + 1) + 行 ,收货单位不能为空 );returntrue;returnfalse;二十九 .多页签得到某一页签到的行数/ 获取表体行数introwCount =getContractMonthMngUI().getBillCardPanel().

48、getBillModel(fk_cm_mconsub).getRowCount();三十,判断日期的前后privatebooleancheckDate() / TODO 自动生成方法存根UFDate begindate =new UFDate(getContractMonthMngUI().getBillCardPanel().getHeadItem(cdatebegin).getValue();UFDate enddate =newUFDate(getContractMonthMngUI().getBillCardPanel().getHeadItem(cdateend).getValue(

49、);if(begindate.after(enddate) getContractMonthMngUI().showErrorMessage( 有效期 ( 截止期)必须大于有效期( 起始期 ) );returntrue;if期不能跨年份(begindate.getYear() != enddate.getYear() getContractMonthMngUI().showErrorMessage( );returntrue; 起始有效期与截至有效returnfalse;三十一 .验证表头的必输项不能为空首先写一个方法:/ 获取表头数据publicString getHeadInfo(String info) returngetContractMonthMngUI().getBillCardPanel().getHeadItem(info).getValue();/在onbosave()方法中调用方法if(checkIsNull_Head() return;privatebooleancheckIsNull_Head() if(getHeadInfo(vcompanycode) =getContractMonthMngUI().showErrorMessage(returntrue;elseif(getHeadInfo(c

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!