NC开发常见问题记录Word文档格式.docx
- 文档编号:20371459
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:23
- 大小:54.33KB
NC开发常见问题记录Word文档格式.docx
《NC开发常见问题记录Word文档格式.docx》由会员分享,可在线阅读,更多相关《NC开发常见问题记录Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
}finally{
//销毁系统运行提示框
dialog.end();
}
};
//启用线程
newThread(checkRun).start();
4.发送邮件
MailTool.sendHtmlEmail(smtpHost,fromAddr,senderName,userName,password,receivers,subject,sb,fileName);
5.列表表体加afterEdit监听方法
getBillListPanel().getBodyScrollPane("
页签表名"
).addEditListener(this);
触发afterEdit(BillEditEvente)方法
6.表体按照recordnum倒序排列,类似定调资表体
getBillListPanel().getBodyBillModel().setSortColumn("
recordnum"
);
getBillListPanel().getBodyBillModel().getSortColumns().get(0).setAscending(false);
7.表头最大化设置方法
getBillListPanel().getUISplitPane().getRightComponent().setVisible(false);
8.登陆界面的日期设置不可修改
有个配置文件可以直接修改的。
nchome\ierp\bin\clientui.xml
9.在UI中得到的变化VO方法
getBillCardPanel().getBillValueChangeVO
是从页面得到的VO,如果修改查询出来的数据,当查询出来的数据如果没有主键的话,那得到得VO主键就是null的。
10.在修改的方法中,如果是根据主键为条件进行修改,主键不能通过
key=getOID(storeadmin.getPk_corp());
得到主键,因为这是新生成的,要使用以前的主键,key=storeadmin.getPrimarykey();
11.生成单据号的方法:
Stringbillcode=HYPubBO_Client.getBillNo(getUIControl().getBillType(),
getClientEnvironment().getCorporation().getPrimaryKey(),null,null);
另一种是:
得到某个定义的单据号:
BillcodeRuleBO_Client.
getBillCode(“biltype”,pk_corp,null,null);
//取得单据号(从NC取,服务器端)
StringbillNo=newnc.bs.trade.business.HYPubBO().
getBillNo(ISYYSBilltype.CTRLDDEPT_BGT_BILL,parentVo.getPk_corp(),null,null);
//设置单据号
//取得单据号(从NC取,客户端)
returnHYPubBO_Client.getBillNo(getUIControl().getBillType(),_getCorp().getPrimaryKey(),null,null);
12.验证非空
@Override
protectedvoidonBoSave()throwsException{
this.getBillCardPanelWrapper().getBillCardPanel().getBillData().dataNotNullValidate();
super.onBoSave();
}
13.实现多选
getBillListPanel().getHeadTable().setSelectionMode(
javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
遇到几次列表界面可多选,但取值难的问题,现总结如下:
设置列表多选框
getBillListPanel().setMultiSelect(true);
//设置列表Ctrl、Shift多选
getBillListWrapper().getBillListPanel().getHeadTable().
setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
获取列表多条记录的方法
1、int[]selectRows=((BillManageUI)getBillUI()).getBillListPanel().getHeadTable().getSelectedRows();
2、((BillManageUI)getBillUI()).getBillListPanel().getHeadBillModel().getBodySelectedVOs(DemoYsHVO.class.getName());
其中,方法1只在Ctrl、Shift多选时能取到多条记录的行号。
方法2都能取到多选记录的VO。
14.实现选择框全选全消小按钮
import
nc.ui.hr.frame.util.table.TableMultiSelHelper;
headTableMultiSelectorheadTableMultiSelector
=
new
TableMultiSelHelper();
headTableMultiSelector.addMultiSeletor(getBillListPanel().getHeadTable());
15.分别从卡片、列表中取得表头、表体VO数组的方法
//列表界面
if(getSelfUI().isListPanelSelected()){
introwCount=getSelfUI().getBillListPanel().getHeadBillModel().getRowCount();
if(rowCount==0){
getSelfUI().showWarningMessage("
没有可以确认的数据!
return;
//取得选中的行
selectRow=getSelfUI().getBillListPanel().getHeadTable().getSelectedRow();
//在列表界面取得表头VO
hvo=(Df1BmsqHVO)getBufferData().getVOByRowNo(selectRow).getParentVO();
//在列表界面取得表体VO
bvos=(Df1BmsqBVO[])getBufferData().getVOByRowNo(selectRow).getChildrenVO();
//卡片界面
else{
introwCount=getSelfUI().getBillCardPanel().getBillTable().getRowCount();
try{
//在卡片界面取得表头VO
hvo=(Df1BmsqHVO)getBufferData().getCurrentVO().getParentVO();
//在卡片界面取得表体VO
bvos=(Df1BmsqBVO[])getBufferData().getCurrentVO().getChildrenVO();
}catch(Exceptione){
16.得到行号数组
Int[]rows=ui.getBillListWrapper().getBillListPanel().getHeadTable().getSelectedRows();
17.得到当前行的聚合VO
AggRequirepubVOaggRequirepubVO=(AggRequirepubVO)ui.getBillListWrapper().getBillListPanel().getBillValueVO(iCurRow,AggRequirepubVO.class.getName(),
HeadVO.class.getName(),BodyVO.class.getName());
18.得到行号,得覆盖这个方法
publicvoidbodyRowChange(BillEditEvente){
//TODOAuto-generatedmethodstub
iCurrRow=e.getRow();
19.自定义按钮的使用
需要在ui中覆盖这个方法
protectedvoidinitPrivateButton(){
PublicVOpublicVO=newPublicVO();
addPrivateButton(publicVO.getPublicButtonVO());
addPrivateButton(publicVO.getUnpublicButtonVO());
PublicVO是自己创建的按钮VO
packagenc.vo.zygb;
importnc.itf.zygb.IMyButton;
importnc.ui.trade.base.IBillOperate;
importnc.vo.trade.button.ButtonVO;
importnc.vo.trade.pub.IBillStatus;
publicclassPublicVO{
publicButtonVOgetPublicButtonVO(){
ButtonVObtnVo=null;
if(btnVo==null){
btnVo=newButtonVO();
btnVo.setBtnNo(IMyButton.publicBtn);
btnVo.setBtnName("
发布"
btnVo.setHintStr("
btnVo.setOperateStatus(newint[]{IBillOperate.OP_EDIT,IBillOperate.OP_NOTEDIT});
btnVo.setBusinessStatus(newint[]{IBillStatus.FREE});
returnbtnVo;
publicButtonVOgetUnpublicButtonVO(){
ButtonVObtnVO=null;
if(btnVO==null){
btnVO=newButtonVO();
btnVO.setBtnNo(IMyButton.unpulicBtn);
btnVO.setBtnName("
取消发布"
btnVO.setHintStr("
btnVO.setOperateStatus(newint[]{IBillOperate.OP_EDIT,IBillOperate.OP_NOTEDIT});
btnVO.setBusinessStatus(newint[]{IBillStatus.FREE});
}
returnbtnVO;
IMyButton是定义按钮的接口:
publicinterfaceIMyButton{
//发布按钮
publicfinalstaticintpublicBtn=185;
//取消发布按钮
publicfinalstaticintunpulicBtn=186;
下拉框的定义,在initSelfData()方法中
protectedvoidinitSelfData(){
//发布状态
IConstEnum[]require_status=newDefaultConstEnum[]{newDefaultConstEnum(0,"
未发布"
),
newDefaultConstEnum(1,"
已发布"
)};
BillPanelUtils.initComboBox(getBillListPanel(),IBillItem.HEAD,null,RequirepubVO.PUBLICSTATUS,require_status,false);
BillPanelUtils.initComboBox(getBillCardPanel(),IBillItem.HEAD,null,RequirepubVO.PUBLICSTATUS,require_status,false);
20.向页面回写数据
((MainBillMgrPanel)getMainPanel()).getMainBillCardPanel().setHeadData(m_emptyJobVO);
((MainBillMgrPanel)getMainPanel()).getMainBillListPanel().setHeadSelectedData(m_emptyJobVO);
21.比较日期的先后方法
ValidityChecker.validateDate(date1,date2,1,"
给出校验的警告语句"
);
22.初始化下拉列
getBillCardWrapper().initHeadComboBox("
vbillstatus"
ISYYSBillStatus.strStateRemark,true);
getBillListWrapper().initHeadComboBox("
23.执行表头公式
getBillCardPanel().execHeadFormula("
getBillCardPanel().execHeadEditFormulas();
执行表体公式
//列表状态
getBillListPanel().getBodyBillModel().execEditFormulaByKey(i,"
vdef2"
//卡片状态
getBillCardWrapper().getBillCardPanel().execBodyFormula(i,"
24.为参照增加约束
AbstractRefModelarm=UIUtilTools.getRefPane(item).getRefModel();
arm.addWherePart("
anddr=0"
arm.reloadData();
25.自定义按钮添加至界面
ButtonVOeditedplan=ButtonFactory.createButtonVO(ISHSHButton.LINK_KY_DETAIL,"
修订计划"
"
editedplan.setOperateStatus(newint[]{IBillOperate.OP_NOTEDIT});
addPrivateButton(editedplan);
26.当前单据的操作状态
设置是否可以编辑getBillUI().getBillOperate()
//表体所有行
introwsNum=getBillCardPanel().getBillModel().getRowCount();
introwcount=getBillCardPanel().getBillModel("
).getRowCount();
getBillCardPanelWrapper().getBillCardPanel().getHeadItem("
high"
).setEnabled(false);
8.初始上下游得单据状态(在DLG的构造方法里面加入)
BillItembillItem=getbillListPanel().getBillListData().getHeadItem("
initComboBox(billItem,ISHSHBillStatus.strStateRemark,true);
27.设置是否合计和得到合计值
设置是否合计:
在initSelfData()方法中加入getBillCardWrapper().getBillCardPanel().setTatolRowShow(true);
得到合计值:
首先设置显示合计行
getBillCardPanel().setTatolRowShow(true);
然后获取获取合计行的值
getBillCardPanel().getTotalTableModel().getValueAt("
行号"
列字段"
28.隐藏表体某列
getBillCardPanel().hideBodyTableCol("
bodyitem"
29.表体带出表头
/*
*在表头增加三个字段
*通过vccode带出
*麻杰2011-03-04
*/
Stringpk_customer=(String)getBillCardPanel().getBillModel("
ps_so_sign_customer"
).getValueAt(0,"
pk_customer"
if(null!
=pk_customer){
Stringccpostalcode=QueryUtil.queryByPk("
ccpostalcode"
pk_customer);
getBillCardPanel().setHeadItem("
ccpostalcode);
}
30.行不可编辑方法
只有选中行可编辑的解决方法,当行可编辑
@Override
//修改的时候不能选中其他行,如果选择,则自动跳回编辑行
intcurrow=getBillCardPanel().getBillTable().getSelectedRow();
inteditRow=getBillCardPanel().getBillTable().getEditingRow();
if(getBillOperate()==IBillOperate.OP_EDIT&
&
editRow>
-1&
currow!
=editRow){
getBillCardPanel().getBillTable().setRowSelectionInterval(editRow,editRow);
return;
31.非空校验方法:
/**
*数据非空监测hashFilter(billitem,int[rowindex])创建日期:
(01-2-2110:
08:
48)
publicstaticvoiddataNotNullValidate(BillDatabilldata,Hashtable<
BillItem,int[]>
hashFilter)throwsValidationException{
StringBuffermessage=null;
BillItem[]headtailitems=billdata.getHeadTailItems();
if(headtailitems!
=null){
for(inti=0;
i<
headtailitems.length;
i++){
if(headtailitems[i].isNull()){
if(PubUtils.isNull(headtailitems[i].getValueObject())){
if(message==null){
message=newStringBuffer();
}
message.append("
["
message.append(headtailitems[i].getName());
]"
}
}
if(message!
=null&
message.length()>
0){
mes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NC 开发 常见问题 记录