收藏 分享(赏)

NC技术汇总笔记.doc

上传人:精品资料 文档编号:10287294 上传时间:2019-10-28 格式:DOC 页数:31 大小:305KB
下载 相关 举报
NC技术汇总笔记.doc_第1页
第1页 / 共31页
NC技术汇总笔记.doc_第2页
第2页 / 共31页
NC技术汇总笔记.doc_第3页
第3页 / 共31页
NC技术汇总笔记.doc_第4页
第4页 / 共31页
NC技术汇总笔记.doc_第5页
第5页 / 共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二十九.多页签得到某一页签到的行数 .

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

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

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

6、).getBillTable().getSelectedColumn();/得到当前选中列的索引colIndex=getBillCardPanel().getBillTable().convertColumnIndexToModel(selCol);/得到选中的行号从 0 开始 iSelRow= getBillCardPanel().getBillTable().getSelectedRow();/得到当前选中的行i = getReportBase().getBillTable().getSelectedRow();/得到表体一共有多少行/this.getBillCardPanel().get

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

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

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

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

11、BoCancel() 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();If(colStr.equals(“字段名”)return false;/设置某一个字段不可编辑/

12、 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“) | TabName.equals(“fk_cm_contract2“) /设置标签fk_cm_consub可编辑this.getBillC

13、ardPanel().getBillModel(“fk_cm_consub“).setEnabled(true);/设置当选中fk_cm_contract1这个标签时,子表的第一个标签到选中显示this.getBillCardPanel().getBodyTabbedPane().getModel().setSelectedIndex(0);/设置标签fk_cm_consub不可编辑this.getBillCardPanel().getBillModel(“fk_cm_conisub“).setEnabled(false);* UI 类中行改变事件public void bodyRowChan

14、ge(BillEditEvent ev) / TODO 自动生成方法存根super.bodyRowChange(ev);int a = ev.getRow();/得到当前选中的行int a = this.getBillCardPanel().getBillTable().getSelectedRow();String b = this.getBillCardPanel().getBodyValueAt(行号, “字段值“);四在报表中显示合计行protected void onQuery() throws Exception String pk_corp = this.getCorpPrima

15、ryKey();/设置表头面板显示表头查询条件和打印时表头显示信息createConditionAndHeadPrintInfo();/显示查询结果CircularlyAccessibleValueObjectresults= getQueryResult(port);ReportBaseVO tvo = new ReportBaseVO();tvo.setAttributeValue(“port“,“合计“);/添加合计if(results != null UFDouble totalnum = new UFDouble(0);for(int i=0;i 0)getSetInBalPrice

16、UI().showErrorMessage(“【起始日期】不能超过【结束日期】!“);return;十二.设置编辑公式/ 表体显示公式StringbodyForm=newString “sys_shipper_id-getColValue(zk_sys_organ,sys_organ_id,sys_organ_id,sys_shipper_id)“ ;for (int i = 0; i 1) getBufferData().setCurrentRow(iaSelectedRow0);/显示第一行表体数据 else /显示当前选中行的表体数据;int row = getBillListPanel

17、().getHeadTable().getSelectedRow();int indexs = getBillListPanel().getHeadBillModel().getSortIndex();if (indexs != null) row = indexsgetBillListPanel().getHeadTable().getSelectedRow(); getBufferData().setCurrentRow(row);二十七,初始进入时默认显示卡片界面或列表界面/ 初始化自己UI单据模版数据protected void initSelfData() setCurrentPan

18、el(“CARDPANEL“);/ 初始进入时默认显示卡片界面setMonUIComboBox(this.getBillCardPanel(),“cdodepartment_id“);/ 初始化“制单部门“下拉菜单setCurrentPanel(“LISTPANEL“);/查询后显示列表界面二十八,在 MyEventHandler 类中,在 onBoSave()中验证必输项if (checkIsNull_Body() return;private boolean checkIsNull_Body() / 获取表体行数/ int rowCount =/ getContractMonthMngUI

19、().getBillCardPanel().getRowCount();/ 获取表体行数int rowCount = getContractMonthMngUI().getBillCardPanel().getBillModel(“fk_cm_mconsub“).getRowCount();if (rowCount getColValue(fk_ba_cartype,ccartype_id ,ccartype_id, ccartype_id);“,“chexing-getColValue(fk_ba_cartype,vtype ,ccartype_id, ccartype_id);“,“dst

20、anweight-getColValue(fk_ba_cartype,dmark_load ,ccartype_id, ccartype_id);“;for(int i= 1 ;i preferences = general = editors = text editors = 右边 show line numbers 打上勾确定即可三十四,在 ECLIPSE 中添加反编译添加反编译Window = Preferences = java = JadClipse = 右边 path to decompiler: (路径为:elcipse 工具所在文件夹下的 jadjad.exe)例如 D:btv

21、toolseclipsejadjad.exe (eclipse 工具在) D:btvtools 文件夹下三十五,编辑后事件的处理public void afterEdit(BillEditEvent evt) super.afterEdit(evt);String colStr = evt.getKey();int rowCount = evt.getRow();三十六,编辑前事件的处理public boolean beforeEdit(BillEditEvent et) String head = this.getBillCardPanel().getHeadItem(“conveytype

22、“).getValue();/运输方式if(ITargetPrimaryID.SEA_CONVEY.equals(head) if(ITargetPrimaryID.SEA_CONVEY.equals(head) if(ITargetPrimaryID.SEA_CONVEY.equals(head) return true;三十七。编辑事件设某一个字段不能编辑public void onBoEdit() throws Exceptionsuper.onBoEdit();getMonApplyPlanMngUI().getBillCardPanel().getHeadItem(“vapplymo

23、nth“).setEnabled(false);getMonApplyPlanMngUI().getBillCardPanel().initPanelByPos(0);三十八.在保存的时候,验证表体不能为空/public void onBoSave() throws Exception if(getMonApplyPlanMngUI().getBillCardPanel().getHeadItem(“vapplymonth“).getValue()=null|getMonApplyPlanMngUI().getBillCardPanel().getHeadItem(“vapplymonth“)

24、.getValue().equals(“)getMonApplyPlanMngUI().showWarningMessage(“表头请车月份不能为空!“);return;/ 保存时更新最后修改人getMonApplyPlanMngUI().getBillCardPanel().setTailItem(“vrevisorid“,_getOperator();/ 保存时更新最后修改时间getMonApplyPlanMngUI().getBillCardPanel().setTailItem(“drevisedate“,_getDate();super.onBoSave();三十九.删除表体某一行触

25、发的事件protected void onBoLineDel() throws Exception 四十,UI 类中初始化设置/* 初始化设置*/protected void init() /设置是否显示小数列的千分位getReportBase().setShowThMark(true);/设置是否显示合计列getReportBase().setTatolRowShow(false);/设置不显示零getReportBase().getBodyPanel().getRendererVO().setShowZeroLikeNull(true);/设置是否显示行号getReportBase().s

26、etRowNOShow(true);/设置是否隐藏条件面板getConditionPanel().setVisible(true);四十一,YES OR NO 对话框int ok = getGatheringMngUI().showYesNoCancelMessage(“是否确认余额查询操作?“);/ 是 :4/ 否:8/ 取消:2if (ok = 4) IGatheringMng item = (IGatheringMng) NCLocator.getInstance().lookup(IGatheringMng.class.getName();if(getBillManageUI().is

27、ListPanelSelected()getBillManageUI().setCurrentPanel(“CARDPANEL“);getBufferData().updateView();四十二.得到选中的行数与得到选中行数的行号的数组,数组以 0 开头int iaSelectedRow = getBalanceMngUI().getBillListPanel().getHeadTable().getSelectedRows();int row = getBalanceMngUI().getBillListPanel().getHeadTable().getSelectedRowCount(

28、);四十三.对 VO 的操作,聚合 VO,得到表体,表体某一个页签的 VO/结算调整单管理,聚合voMultiBillVO multiBillVO= (MultiBillVO)getBufferData().getCurrentVO(); /结算调整单管理,表头voFkSbmBalchVO fkSbmBalchVO = (FkSbmBalchVO)multiBillVO.getParentVO();/结算调整单管理,表体明细页签voFkSbmBalchbVO fkSbmBalchbVOs = (FkSbmBalchbVO)multiBillVO.getTableVO(“fk_sbm_balch

29、b“);/结算调整单管理,表体汇总页签voFkSbmBalchb2VO fkSbmBalchb2VOs = (FkSbmBalchb2VO)multiBillVO.getTableVO(“fk_sbm_balchb2“); 四十四.添加一个自定义的按钮1 在nc.ui.fk.pub.button.PubPrivateButton 接口里面定义一个/自定义按钮:表体批号清空int btnClear = 241;2 在nc.ui.fk.pub.button.PubPrivateButtonVO中定义/* 批号清空* return*/ getBtnClearVO名字自己随便取public Butto

30、nVO getBtnClearVO()ButtonVO btnCancelAssignVO = new ButtonVO();btnCancelAssignVO.setBtnNo(PubPrivateButton.btnClear);btnCancelAssignVO.setBtnCode(“批号清空“);btnCancelAssignVO.setBtnName(“批号清空“);btnCancelAssignVO.setHintStr(“批号清空“);btnCancelAssignVO.setBtnChinaName(“批号清空“);btnCancelAssignVO.setOperateSt

31、atus(new intIBillOperate.OP_ADD,IBillOperate.OP_EDIT);btnCancelAssignVO.setExtendStatus(new intnc.vo.trade.pub.IBillStatus.ALL );return btnCancelAssignVO;3 在想要加入该按钮的包下的nc.ui.fk.cy.mapm.MonApplyPlanMngUICtrl中getCardButtonAry()或getListButtonAry()方法中加入按钮PubPrivateButton.btnClear4 在UI类中初始化该按钮/* LMJ 2009

32、0921批号清空*/Overrideprotected void initPrivateButton() ButtonVO clear = (new PubPrivateButtonVO().getBtnClearVO();addPrivateButton(clear);5 在EV类里面实现按钮的方法protected void onBoElse(int intBtn) throws Exception if (intBtn = PubPrivateButton.btnClear) /批号清空onClearPihao();6 在EV类中实现onClearPihao()/* 清空表体的所有批号*

33、/public void onClearPihao()int rowCount = getMonApplyPlanMngUI().getBillCardPanel().getRowCount();for (int i = 0; igetColValue(fk_bd_clientinfo,vaccountcode,cclientinfo_id,cbalcompany_id)“ /账号 ;getBillCardPanel().execHeadFormulas(headform);四十八.根据不同的条件,过滤不同的参照记录if (str.equals(“chezhong“) UIRefPane nR

34、efPanel = (UIRefPane) getBillCardPanel().getBodyItem(“fk_cm_consub“, “fazhan1“).getComponent();nRefPanel.setIsCustomDefined(true); FaZhanRefModel model = new FaZhanRefModel(); int iRow=0;iRow=getBillCardPanel().getBillTable(“fk_cm_consub“).getSelectedRow()model.setTemp_pk(getBillCardPanel().getBillM

35、odel(“fk_cm_consub“).getValueAt(iRow, “chezhong“).toString(); nRefPanel.setRefModel(model);参照类:FaZhanRefModelpublic String getWherePart() String strWherePart = super.getWherePart();String strSql = “ ctargetfile_id = 1001AA1000000002Q91J and dr = 0 and (isclose is null or isclose=N) “;if (this.getTem

36、p_pk() != null if(strWherePart = null | “.equals(strWherePart.trim()strWherePart = strSql;elsestrWherePart = strWherePart + strSql;return strWherePart;/自已有一个变量getTemp_pk/设置参照默认选中第一个元素if(getBillCardPanel().getBillModel(“fk_cm_consub“).getValueAt(iRow, “chezhong“).toString().equals(“路车“) Vector aa = (

37、Vector)(nRefPanel.getRefModel().getRefData().firstElement();String pk = (String)aa.get(aa.size()-1);this.getBillCardPanel().setBodyValueAt(pk, iRow, “fazhan“);this.getBillCardPanel().getBillModel().execLoadFormula();四十九,获取表体当前操作页签/获取表体当前操作页签,0 为汇总页签,1 为明细页签int flag = getBalanceMngUI().getBillCardPan

38、el().getBodyTabbedPane().getModel().getSelectedIndex(); 五十,输入开始和结束日期,从开始到结束日期每天都列出来UFDate doperatordate1 = new UFDate(startdate);UFDate doperatordate2 = new UFDate();UFDouble tl_xcoal = new UFDouble(0); /铁路合计_西露天矿UFDouble tl_lcoal = new UFDouble(0); /铁路合计_老虎台矿while (rs.next() countrow = countrow + 1

39、;doperatordate2 = new UFDate(rs.getString(“doperatordate“); /制单日期int countday = UFDate.getDaysBetween(doperatordate1, doperatordate2); /统计相差天数if(countrow = 1)for(int i = 0; i 0)int i = 0;for (i = 0; i = selectRows.length)this.getButtonManager().getButton(PubPrivateButton.btnSoTax).setEnabled(true);

40、/导出金税this.getButtonManager().getButton(PubPrivateButton.btnSoTax2).setEnabled(true); /合并导出金税elsethis.getButtonManager().getButton(PubPrivateButton.btnSoTax).setEnabled(false); /导出金税this.getButtonManager().getButton(PubPrivateButton.btnSoTax2).setEnabled(false); /合并导出金税super.updateButtons();五十二,不管在是列

41、表还是卡片面下取得表头或表体的值/得到表头的金额UFDouble headmoney =(FkSbmGatherVO)this.getBufferData().getCurrentVO().getParentVO().getDprice();/结算单位String cbalance_id = (FkSbmGatherVO)this.getBufferData().getCurrentVO().getParentVO().getCbalance_id();五十三,UFDouble 型的数据变成两位小数的字符型 ,或零位小数money_tax.setScale(-2, UFDouble.ROUND

42、_HALF_UP).toString()money_tax.setScale(0, UFDouble.ROUND_HALF_UP).toString()五十四,系统按钮的操作public void onbutton(buttonobject b)public void onbutton(buttonobject b) super.onbutton(b); if(“21“.equals(b.gettag() | “22“.equals(b.gettag() | “23“.equals(b.gettag() | “24“.equals(b.gettag() setcolumnvalue2(); 五

43、十五,SQL 查询时将字符转换成小数型Select sum(cast(fk_sbm_balb2.vuserdef2 as decimal(19,2) vuserdef2五十六,删除单页签表体删除行,以及增行/ 删除表体所有行int row = getCarriageMngUI().getBillCardPanel().getRowCount();if (row 0) int r = new introw;for (int i = 0; i 0)for (int i = 0; i 0) /如果表体有记录行进行删除int row = new introwCount;for(int i = 0;i 0)int i = 0;for (i = 0; i = selectRows.length)this.getButtonManager().getButton(PubPrivateButton.btnSoTax).setEnabled(true); /导出金税this.getButtonManager().getButton(PubPrivateButton.btnSoTax2).set

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报