前后台通用环境变量

nc.vo.pubapp.AppContext

如:AppContext.getInstance.getServerTime()

对VO进行排序的工具类

nc.vo.pubapp.util.VOSortUtils

数学运算工具类

nc.vo.pubapp.pattern.pub.MathTool

获得当前单据类型或交易类型

String transtypecode = TrantypeFuncUtils.getTrantype(this.getModel().getContext());

从数据缓存中根据交易类型编码获取交易类型主键

PfDataCache.getBillTypeInfo(header.getPk_group(), header.getPk_tradetype()).getPk_billtypeid()

查询可用量的服务类,按计划日期查询Atp完整信息 ,若计划日期为空,则与查询可用量报表返回信息一致

nc.itf.pu.reference.ic.AtpQueryServices.queryAtpVOs(String[] pk_calbodyoids, String[] cmaterialoids, UFDate[] ddates)

单据操作工具类,根据单据主键获取单据vo

String[] hids=new String[]{"1123123adasd","2342321"};

BillQuery<SaleInvoiceVO> srv =new BillQuery<SaleInvoiceVO>(SaleInvoiceVO.class);

SaleInvoiceVO[] vos = srv.query(hids);

//或者

NCLocator.getInstance().lookup(IMDPersistenceQueryService.class).queryBillOfNCObjectByPK(aggvo.class,billid)

调用动作脚本

IPFBusiAction busiAction = NCLocator.getInstance().lookup(IPFBusiAction.class);

AggregatedValueObject[] retVOs = (AggregatedValueObject[]) busiAction.processBatch("SAVE","F2", AggGatheringBillVOs, null, null, null);

加上动态锁,控制并发,判断存在时不能并发

if(PKLock.getInstance().addDynamicLock(con.getDocID()+ con.getBilltype())){
isExists(vo, con);
}else{
throw new GLBusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("20021005","UPT2002100573-900071")/*系统繁忙,不能并发导入相同凭证!*/);
}

生成NC主键的方法

new nc.jdbc.framework.generator.SequenceGenerator().generate(pkcorp, num);
//或者调用接口
NCLocator.getInstance().lookup(IdGenerator.class).generate()

单据卡片常用操作工具类

CardPanelValueUtils util = new CardPanelValueUtils(this.getEditor().getBillCardPanel());
util.delBodyLine();

单据列表常用操作工具类

ListPanelValueUtils

数量单价金额计算工具类

// 创建数据映射实例 获得数据项之间的映射关系
IRelationForItems item = new RelationItemForCal();
item.setnumKey("number");
// 创建数据集实例 初始化数据关系计算用的数据集
IDataSetForCal data = new BillCardPanelDataSet(new BillCardPanel(), row,item);
// 如果是基于vo的金额计算,用下面的dataset
//VODataSetForCal voData=new VODataSetForCal(vos,item);
ScaleUtils scale = UIScaleUtils.getScaleUtils();
Calculator tool = new Calculator(data, scale);//
// 创建参数实例,在计算的时候用来获得参数条件:是否含税优先等
Condition cond = new Condition();// 创建参数实例
// 设置是否进行本币换算
cond.setIsCalLocalCurr(false);
// 设置调单价方式调折扣
cond.setIsChgPriceOrDiscount(false);
// 设置是否固定单位换算率
cond.setIsFixNchangerate(false);
// 是否固定报价单位换算率
cond.setIsFixNqtunitrate(false);
// 设置含税优先还是无税优先
cond.setIsTaxOrNet(false);
// 是否报价单位优先
Cond.setUnitPriorType(type);
// 是否计算集团本位币金额
Cond. setGroupLocalCurrencyEnable (true);
//是否计算全局本位币金额
Cond. setGlobalLocalCurrencyEnable(true);
//是否折算本位币
Cond. setIsCalLocalCurr(true);
// 两个参数 cond 为计算时的参数条件
// item.getTaxPriceKey()发生变化的key的映射
tool.calculate(cond, item.getNorigtaxpriceKey());

获取系统参数的接口

nc.itf.uap.busibean.ISysInitQry
#queryByCode(pk_corp,para_code)
nc.itf.uap.busibean.SysinitAccessor 带缓存的查询,可在前后台调用,查询效率更高
SysinitAccessor.getInstance().getSysInitVO(pk_org, initCode);

获取NCHOME下的文件

获取NCHOME所在路径properties文件:
String path=RuntimeEnv.getInstance().getNCHome()+"\\aa.properties";
//RuntimeEnv.getInstance().getProperty(RuntimeEnv.SERVER_LOCATION_PROPERTY);
account=InitConfigFile.readValue(path,"account");

弹出提示框参考

//弹出一个是否对话框
if(MessageDialog.showYesNoDlg(this,"车客流量统计","表体存在数据,调整表头会清空表体,是否继续?")==UIDialog.ID_NO){
return;
}


//弹出正在运行对话框
//线程
Runnable checkRun = new Runnable(){
public void run()
{
//线程对话框:系统运行提示框
BannerDialog dialog = new BannerDialog(ui);
dialog.start();
try{
/**
将查询方法写在其中
*/
} catch(Exception e) {
e.printStackTrace();
ui.showErrorMessage(e.getMessage());
} finally {
//销毁系统运行提示框
dialog.end();
}
}
};

//启动线程
new Thread(checkRun).start();

常用数据访问类

DataAccessUtils tool = new DataAccessUtils();
SqlBuilder sqlWhere = new SqlBuilder();
sqlWhere.append("select csettlepathid from to_settlepath where dr=0 and blatestflag='Y' and vPathName=",csettlepathname);
IRowSet rowset = tool.query(sqlWhere.toString());
String[] csettlepathids = rowset.toOneDimensionStringArray();
if ((csettlepathids == null) || (csettlepathids.length == 0)) {
}
/////////////////////////////////////////////////
//通过建立的数据源的方式连接数据库(不建议)
BaseDAO basedao=new BaseDAO("design");
//获得数据源类型,判断数据源是Oracle、SQL Server
if(getDao().getDBType() == DBConsts.SQLSERVER){
}
else if (getDao().getDBType() == DBConsts.ORACLE) {
}
else if (getDao().getDBType() == DBConsts.DB2) {
}
///////////////////////////////////////
//根据sql语句或查询条件查询VO
ArrayList list = (ArrayList)NCLocator.getInstance().lookup(IUAPQueryBS.class)
.executeQuery(strSql.toString(),
new BeanListProcessor(MarBasClassVO.class));

ArrayList matVosOld = (ArrayList) NCLocator.getInstance().lookup(IUAPQueryBS.class).retrieveByClause(
MarBasClassVO.class,
" dr=0 and pk_group='" + swapContext.getPk_group()
+ "' and pk_org='" + swapContext.getPk_group()
+ "' and code='" + materClassCode + "' ");


实现定时任务

实现IBackgroundWorkPlugin接口

public class PoSunSys implements IBackgroundWorkPlugin {
public String executeTask(BgWorkingContext bgwc) throws BusinessException {
}
}