NC技术汇总笔记_第1页
NC技术汇总笔记_第2页
NC技术汇总笔记_第3页
NC技术汇总笔记_第4页
NC技术汇总笔记_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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四十五.取得某一

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

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

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

7、eUI().getBillCardPanel().getBillTable().getSelectedRow() = -1) getSetInBalPriceUI().showErrorMessage("请选择表体数据行! ");return;/ 判断选中的某一行的某一列是否为空if (getSetInBalPriceUI().getBillCardPanel().getBodyValueAt(selectRow"sys_shipper_id") = null) getSetInBalPriceUI().showErrorMessage("请录

8、入发货单位! ");/ 得到某一行某一列指定的值sys_shipper_id=getSetInBalPriceUI().getBillCardPanel().getBodyValueAt(selectRow, "sys_shipper_id").toString();/ 得到当前选中行的指定的某一列(String)getReportBase().getBodyValueAt(i,"sendunitID");this.getBillCardPanel().setBodyValueAt(值,行,列 );this.getBillCardWrapper

9、().getBillCardPanel();/ 获取表体第i 行字段值getBillCardPanel().getBodyValueAt(i."字段 ")二设置初始化界面时的默认值/* 初始化卡片界面时加载的默认属性在 UI 中*/public void setDefaultData() throws Exception / 单据类型 87getBillCardPanel().setHeadItem("pk_billtype", IBillType.CY_DYAPPLYPLAN);/ 制单日期默认值getBillCardPanel().setTailIt

10、em("doperatordate", _getDate();三表单默认执行方法以及常用的操作/ 自定义按钮处理事件,在自定义按钮的时候会定义一个值,根据传过来的值判断处理哪个事件执行哪个方法,在MyEventHandler 类protected void onBoElse(int intBtn) throws Exception * 表单编辑protected void onBoEdit() throws Exception * 表单删除protected void onBoDelete() throws Exception * 表单保存protected void on

11、BoSave() throws Exception * 表单取消protected void onBoCancel() throws Exception * 表单编辑后事件UI 类中public void afterEdit(BillEditEvent evt) super.afterEdit(evt);String colStr = evt.getKey(); int rowCount = evt.getRow();* 表单编辑前事件UI 类中public boolean beforeEdit(BillEditEvent evt) String colStr = evt.getKey();I

12、f(colStr.equals( “字段名 ”)return false; / 设置某一个字段不可编辑/ TODO自动生成方法存根 return super .beforeEdit(arg0);* 表单标签改变事件UIpublic void afterTabChanged(BillTabbedPaneTabChangeEvent arg0) String TabName = arg0.getBtvo().getTabcode();System.out.println(TabName);if (TabName.equals("fk_cm_contract1") | TabNa

13、me.equals("fk_cm_contract2")/ 设置标签 fk_cm_consub 可编辑this.getBillCardPanel().getBillModel("fk_cm_consub").setEnabled(true);/ 设置当选中 fk_cm_contract1 这个标签时,子表的第一个标签到选中显示this.getBillCardPanel().getBodyTabbedPane().getModel().setSelectedIndex(0);/ 设置标签 fk_cm_consub 不可编辑this.getBillCardP

14、anel().getBillModel("fk_cm_conisub").setEnabled(false); * UI 类中行改变事件public void bodyRowChange(BillEditEvent ev) / TODO 自动生成方法存根super.bodyRowChange(ev);int a = ev.getRow();/ 得到当前选中的行int a = this.getBillCardPanel().getBillTable().getSelectedRow();String b = this.getBillCardPanel().getBodyVal

15、ueAt(行号 , " 字段值 ") ;四在报表中显示合计行protected void onQuery() throws ExceptionString pk_corp = this.getCorpPrimaryKey();/ 设置表头面板显示表头查询条件和打印时表头显示信息createConditionAndHeadPrintInfo();/ 显示查询结果CircularlyAccessibleValueObjectresults= getQueryResult(port);ReportBaseVO tvo = new ReportBaseVO();tvo.setAtt

16、ributeValue("port","合计 ");/ 添加合计 if(results != null && results.length>0)CircularlyAccessibleValueObjectnvos=newCircularlyAccessibleValueObjectresults.length+1;UFDouble totalnum = new UFDouble(0);for(int i=0;i<results.length;i+)totalnum= totalnum.add(UFDouble)results

17、i.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)getReport

18、Base().setBodyDataVO(results);showHintMessage(" 没有可显示数据") ;五在 UI 类中设置小数位数public ArrearsComStaUI() super .setTitleText( " 欠款单位表");/ 设置小数位数:this.setColumnDecimal(newString"carnum","tonnum","jsmoney","yingkuids","yunfei","qitafy

19、","amount",new int0,0,0,0,0,0,0);或是:this.getReportBase().getBody_Item("quan").setDecimalDigits(0);六将表体数据清空this.getBillCardPanel().getBillModel().clearBodyData();七设置字段是否可编辑的状态/* 发运开始日期 结束日期 编辑控制 在运输方式是地销时可编辑 其他不可编辑if(colStr.equals("conveytype")String str = this.getB

20、illCardPanel().getHeadItem("conveytype").getValue();if(str != null && !str.trim().equals("")if(ITargetPrimaryID.CARCONVEYANCE_CONVEY.equals(str)this.getBillCardPanel().getHeadItem("startdate").setEnabled(true);this.getBillCardPanel().getHeadItem("enddate&qu

21、ot;).setEnabled(true);elsethis.getBillCardPanel().setHeadItem("startdate",null);this.getBillCardPanel().setHeadItem("enddate",null);this.getBillCardPanel().getHeadItem("startdate").setEnabled(false);this.getBillCardPanel().getHeadItem("enddate").setEnabled(fal

22、se);八在 UI 类中编写方法打印查询条件protected void createConditionAndHeadPrintInfo() this .showCondition( this .createConditionsFromConditionVO( this .getQryDlg().getConditionVO();this .updateUI();九弹出提示框MessageDialog.showOkCancelDlg(getDyApplyPlanUI()," 提示 ", " 你确定要下发该单据吗? ") / 弹出对话框nc.ui.pub.

23、beans.MessageDialog.showHintDlg(getBillUI()," 提示 ", " 客户基本档案更新成功! ");十在报表中得到查询面板的值protected void onQuery() throws Exception getQryDlg().showModal();if (getQryDlg().getResult() = QueryDLG.ID_OK) / 取得查询日期String port = null;/港口ConditionVO cndvos = getQryDlg().getConditionVO();for(in

24、t i=0;i<cndvos.length;i+)if("port".equals(cndvosi.getFieldCode()port = cndvosi.getValue().trim();.比较时间的开始与结束时间if(pareTo(enddate) > 0)getSetInBalPriceUI().showErrorMessage(" 【起始日期】 不能超过 【结束日期】 ! "); return; 十二.设置编辑公式/ 表体显示公式StringbodyForm=newString"sys_shipper_id->ge

25、tColValue(zk_sys_organ,sys_organ_id,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"

26、;);/ 执行表体公式getSetInBalPriceUI().getBillCardPanel().getBillModel().execFormulas(i, bodyForm);/ 十三.清空缓冲数数据getBufferData().clear();十四 . 在 UI 类中设置查询对话框的默认值格式: 2009-01protected QueryDLG createQueryDLG() ZBReportBaseDLG dlg = new ZBReportBaseDLG();dlg.setTempletID(getUIControl()._getPk_corp(), getUIContro

27、l()._getModuleCode(), getUIControl()._getOperator(), null);dlg.setValueRef("sdate", getQueryYearMonth();dlg.setValueRef("edate", getQueryYearMonth(); / 设置默认的选择当前年QueryConditionVO qryvos = dlg.getConditionDatas();for (int i = 0; i < qryvos.length; i+) if (qryvosi.getFieldCode()

28、.equals("sdate") qryvosi.setValue(this.getClientEnvironment().getDate().toString().substring(0,7);if (qryvosi.getFieldCode().equals("edate") qryvosi.setValue(this.getClientEnvironment().getDate().toString().substring(0,7);return dlg;十五 . 管理型界面单据各个类的继承关系前台界面类: ClientUI extends BIl

29、lManageUI1. 重写父类方法protected BusinessDelegator createBusinessDelegator()返回前台界面业务委托类的具体实现。2. 重写父类方法protectedManageEventHandler createEventHandler()返回前台事件处理(按钮处理器)类的具体实现。3. 重写父类方法protectedAbstractManageController createController()返回前台控制类的具体实现。4. 重写父类方法protectedvoid initPrivateButton()添加私有按钮addPrivateB

30、utton( new DeleteAllbutnVO().getButtonVO()5. 重写父类方法protected void initSelfData()6. 重写父类方法public void setDefaultData() throws Exception设置默认数据事件处理类: TestEventHandler extends ManageEventHandler重写父类各种单据按钮事件,完成具体的事件动作实现。如:1. 重写查询类protected void onBoQuery() throws Exception super .onBoQuery();2. 重写其他按钮动作事

31、件处理,比如(导入等)protected void onBoElse( int intBtn) throws Exception super .onBoQuery();十六.是否显示行号,合计行,数组按钮,隐藏列1. 列表状态下是否显示行号public boolean isShowListRowNo() return false ;2. 卡片状态下是否显示行号public boolean isShowCardRowNo() return false ;3. 卡片状态下是否显示合计public boolean isShowCardTotal() return false ;4. 列表状态下是否显

32、示合计public boolean isShowListTotal() return false ;5. 返回卡片状态下按钮数组public int getCardButtonAry() return new int IBillButton.Add, IBillButton.Query,IBillButton.Save, IBillButton.Edit , IBillButton. Del,IBillButton. Line , IBillButton. Cancel, IBillButton. Print , IBillButton.Return ,;6. 返回列表状态下按钮数组publi

33、c int getListButtonAry() return new int IBillButton.Add, IBillButton.Query,IBillButton.Save, IBillButton. Edit , IBillButton. Del,IBillButton.Card, IBillButton. Cancel, IBillButton. Print ,ISHTestButton. DeleteAllButton ,;7. 返回卡片状态表体隐藏列public String getCardBodyHideCol() return null ;8. 返回列表状态表头隐藏列pu

34、blic String getListHeadHideCol() return null ;十七 . 根据单据的不同状态来控制按钮的可用性。在 UI 工厂中,系统预置的按钮事件是在onButtonClicked() 方法中处理,自定义的按钮在onBoElse() 方法中处理。protected void onBoElse(int intBtn)switch (intBtn)case ITestButton.DeleteAll:onDeleteAll();break ;十八 . UI 工厂开发单据模式下如何自定义按钮?1. 建立一个自定义按钮的接口: ITestButton定义按钮的ID值,自定

35、义按钮的ID必须大于100public interface ITestButtonint DeleteAll = 101;2. 创建一个按钮的V展public class DeleteAllVOpublic nc.vo.trade.button.ButtonVO getButtonVO()ButtonVO btnVo = new ButtonVO();btnVo.setBtnNo(ITestButton.DeleteAll);btnVo.setBtnName("删除全部 ");btnVo.setHintStr("删除本单据全部数据");btnVo.set

36、OperateStatus(new int IBillOperate.OP_ADD);btnVo.setBusinessStatus(new int IBillStatus.FREE); return btnVo;3. 在控制类中将自定义按钮添加到界面上public int getCardButtonAry()return new int IBillButton.ADD,ITestButton.DeleteAll;4. 在UI类里面实例化自定义按钮并实例化protected void initPrivateButton()ButtonVO deleteAll = (new DeleteAllV

37、O).getButtonVO();addPrivateButton(deleteAll);5. 在控制类中响应按钮事件并实现自定义按钮的事件处理protected void onBoElse(int intBtn)switch (intBtn)case ITestButton.DeleteAll:onDeleteAll();break ;protected void onDeleteAll()/ 具体实现十九.需要设置动作脚本的六个按钮动作脚本保存(WRITB 修改(EDIT)作废(DELETE 提交(SAVE 审批(APPROVE 弃审(UNAPPROVE二十 . 单据界面设置某些字段的显示

38、与隐藏( 1 )在单据模板上可以设置每一个字段的显示与隐藏(2)在单据UI类的initSelfData()方法中设置protected void initSelfData() / 设置字段的不可编辑和隐藏getBillListPanel().hideBodyTableCol("字段 ");getBillCardPanel().getBodyItem("字段 ").setEdit(false);二十一 . 单据开发的一般步骤:1. 数据建模,生成数据库表2. 利用平台工具或手工生成VO3. 平台注册系统类型注册(可选)功能注册单据类型VO 对照注册单据动作

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

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

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

42、"colName");二十三.导出与导入数据库导出数据库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(Iterat

43、or it = i.iterator();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的值或F

44、or(iterator it = map.entrySet().iterator();it.hasnext();)Map.Entry entry = (Map.Entry)it.next();Object key = entry.getkey() ;/ 这是 KEY 的值Object value = entry.getValue();/ / 这是 VALUE的值二十五 . 改变焦点自动显示表头金额的值/* 改变焦点自动显示表头金额的值*/public void afterEdit(BillEditEvent a) super .afterEdit(a);String str = a.getKe

45、y().trim();UFDouble dprice = new UFDouble(0);String subjectcode1 ="" ; / 一级科目编码/ 编辑表体 " 金额 " 后 , 自动计算表头的“金额”if (str.equals( "dprice" ) int rowCount = this .getBillCardPanel().getRowCount(); / 获取总行数for ( int i = 0; i < rowCount; i+)subjectcode1 = this .getBillCardPane

46、l().getBodyValueAt(i, "subjectcode1" ).toString().trim();if (subjectcode1.equals( "1122" )dprice = dprice.add( new UFDouble( this .getBillCardPanel().getBodyValueAt(i,"dprice" ).toString();this .getBillCardPanel().setHeadItem( "dprice" ,dprice);二十六 .设置行选中的状态pu

47、blic void valueChanged(ListSelectionEvent e) if (e.getValueIsAdjusting() = true ) return ; / 将所有行状态置为未选中int iCount = getBillListPanel().getHeadTable().getRowCount();for ( int i = 0; i < iCount; i+)getBillListPanel().getHeadBillModel().setRowState(i,BillModel.NORMA);L/ 得到被选中的行int iaSelectedRow = g

48、etBillListPanel().getHeadTable().getSelectedRows();if (iaSelectedRow != null )iCount = iaSelectedRow. length ;/选中的行表示为打*号for ( int i = 0; i < iCount; i+)getBillListPanel().getHeadBillModel().setRowState(iaSelectedRowi,BillModel.SELECTEDif (getBillListPanel().getHeadTable().getSelectedRowCount() =

49、 0) getBufferData().setCurrentRow(-1);return ;if (getBillListPanel().getHeadTable().getSelectedRowCount() > 1) getBufferData().setCurrentRow(iaSelectedRow0);/ 显示第一行表体数据 else /显示当前选中行的表体数据;int row = getBillListPanel().getHeadTable().getSelectedRow();int 口 indexs = getBillListPanel().getHeadBillMod

50、el().getSortIndex();if (indexs != null ) row = indexsgetBillListPanel().getHeadTable().getSelectedRow(); getBufferData().setCurrentRow(row);二十七,初始进入时默认显示卡片界面或列表界面/初始化自己UI单据模版数据protected void initSelfData() setCurrentPanel( "CARDPANEL" /初始进入时默认显示卡片界面 setMonUIComboBox(this .getBillCardPanel(

51、), "cdodepartment_id" ); / 初始化"制单部门"下拉菜单setCurrentPanel("LISTPANEL");/查询后显示列表界面二十八,在MyEventHandler类中,在onBoSave()中验证必输项if (checkIsNull_Body() return ;private booleancheckIsNull Body() /获取表体行数/ int rowCount =/ getContractMonthMngUI().getBillCardPanel().getRowCount();/获取表体

52、行数int rowCount =getContractMonthMngUI().getBillCardPanel().getBillModel( "fk_cm_mconsub" ).getRowCount();if (rowCount <= 0) getContractMonthMngUI().showErrorMessage("表体无数据");returntrueBillModel bm =getContractMonthMngUI().getB川CardPanel().getBillModel( "fk_cm_mconsub"

53、; );for ( int i = 0; i < rowCount; i+) if (bm.getValueAt(i,"csclient_id" ) = null ) getContractMonthMngUI().showErrorMessage("小合同子表表体第"+ (i + 1) +”行,收货单位不能为空");return true ; return false ;二十九.多页签得到某一页签到的行数/获取表体行数int rowCount =getContractMonthMngUI().getBillCardPanel().get

54、BillModel("fk_cm_mconsub" ).getRowCount();三十,判断日期的前后private boolean checkDate() / TODO自动生成方法存根 UFDate begindate = new UFDate(getContractMonthMngUI() .getBillCardPanel().getHeadItem("cdatebegin").getValue();UFDate enddate = newUFDate(getContractMonthMngUI().getBillCardPanel() .get

55、HeadItem( "cdateend").getValue();if (begindate.after(enddate) getContractMonthMngUI().showErrorMessage("有效期(截止期)必须大于有效期(起始期)"); return true ; if (begindate.getYear() != enddate.getYear() getContractMonthMngUI().showErrorMessage("起始有效期与截至有效期不能跨年份”); return true ; return false

56、 ; 三H一 .验证表头的必输项不能为空首先写一个方法:/获取表头数据public String getHeadInfo(String info) returngetContractMonthMngUI().getB川CardPanel().getHeadItem(info).getValue();/在onbosave()方法中调用方法if (checkIsNull_Head() return ;private boolean checkIsNull_Head() if (getHeadInfo( "vcompanycode" ) = null ) getContractM

57、onthMngUI().showErrorMessage("出卖人不能为空");return true ; else if (getHeadInfo( "csigndate" ).trim().length() = 0) getContractMonthMngUI().showErrorMessage("签订时间不能为空 ");return true ;return false ;三十二,执行表体编辑公式在UI 类的 public void afterEdit(BillEditEvent a) super .afterEdit(a);String str = a.getKey().trim();if(str.equals("chexing")点击车型 String口bodyform="ccartype_id->getColValue(fk_ba_cartype,ccartype_id

温馨提示

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

评论

0/150

提交评论