第一篇:NC方法总结
修改端口
InvocationInfoProxy.getInstance().get().getUserCode();前台
Nchome F:JAVAProjectsERPEHROAufidaufsoftnchomedomainserverconf F:JAVAProjectsERPEHROAufidaufsoftnchomeconf Truncate Table [表名]menhe ftp命令
service vsftpd start
1.导入oracle数据库需要先建立用户然后在cdm下输入命令; 2.1档案 2.3单据
F5往下走会进入里面的方法里面; F6就在本方法里面走; F7跳出进入的方法;hang F8 直接倒地
公司设置公司目录(集团)就可以在集团下插入数据时集团就自动进来;
public void afterEdit(BillEditEvent e){
// TODO Auto-generated method stub
Object pkvalue = this.getBillCardPanel().getHeadItem(“pk_message”).getValueObject();
String temKey = e.getKey();
if(temKey.equalsIgnoreCase(“")){
Object obj = e.getValue();
IUAPQueryBS iuap =(IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
try {
//Object objvo = iuap.retrieveByPK(ProMessageVO.class, ”“);
MyBillVO mvo =(MyBillVO)this.getChangedVOFromUI();
ProMessageVO hvo =(ProMessageVO)mvo.getParentVO();
mvo.getChildrenVO();
ProMessageVO vo =(ProMessageVO)HYPubBO_Client.queryByPrimaryKey(ProMessageVO.class, pkvalue.toString());
vo.getI_number();
} catch(Exception e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
super.afterEdit(e);}
1.修改时
//通过主键查询所有的vo 放到object里;
Object pkvaluemap = this.getBillCardPanel().getHeadItem(”pk_message“).getValueObject();//从页面通过一个字段 获取那个值 String a = getBillCardPanelWrapper().getBillCardPanel().getHeadItem(”state“).getValue();
2.从页面取值;
3.MyBillVO vo=(MyBillVO)getBufferData().getCurrentVO();//通过下面的方法类的聚合VO;
MyBillVO mvo =(MyBillVO)this.getChangedVOFromUI();
//获得表头
ProMessageVO hvo =(ProMessageVO)mvo.getParentVO();
//获得标体
mvo.getChildrenVO();
//得到表体VO CbGatheringBVO[] bodyBVO =(CbGatheringBVO[])this.getBillCardPanelWrapper().getBillCardPanel().getBillModel(”ps_cb_gathering_b“).getBodyValueVOs(CbGatheringBVO.class.getName());
//用聚合VO得主键;只能在卡片管理下 才能获得主键 super.onBoCard();//卡片状态下
this.getBillUI().getChangedVOFromUI().getParentVO().getPrimaryKey();
3.从数据库里根据一个字段取值; //声明一个接口 IUAPQueryBS iuap =(IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
//根据那个字段查询有没有这条数据
Object objvo = iuap.retrieveByPK(ProMessageVO.class, ”“);
4,保存按钮时提示,验证在MyEventHandler //方法重写
import nc.ui.pub.beans.MessageDialog;protected void onBoSave()throws Exception {
// TODO Auto-generated method stub
this.getBillCardPanelWrapper().getBillCardPanel();
MessageDialog.showWarningDlg(null, ”提示“, ”项目编号已存在!“);
super.onBoSave();}
6.怎么获取一个VO
SuperVO[] allProc = this.getBusiDelegator().queryByCondition(ZxProjectsetVO.class, ”isnull(dr,0)=0“);
HashMap projectMapp = new HashMap();
if(allProc!= null){
int iLen = allProc.length;
for(int i = 0;i < iLen;i++){
projectMapp.put((String)allProc[i].getAttributeValue(”pk_corp“),(SuperVO)allProc[i]);
}
}
for(int i = 0;i < queryVos.length;i++){
AggregatedValueObject aVo =(AggregatedValueObject)Class
.forName(getUIControl().getBillVoName()[0])
.newInstance();
ZxProjectsetVO result =(ZxProjectsetVO)projectMapp.get(queryVos[i].getPrimaryKey());
在前台能获得任何VO的主键方法getPrimaryKey();
c:.xml”;
其中里面的第一个为转义符号;因为这个符号在java里面有特订的意思;要表示路径的话就要在加个转义符号; IX,公司间调拨 7.//通过一个sql语句(根据一个字段)查询一个VO;IUAPQueryBS queryBS =(IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());系统接口----可以查询时使用
CbGatheringVO cbGatheringVO =(CbGatheringVO)queryBS.executeQuery(sql,new BeanProcessor(CbGatheringVO.class));//可以根据sql语句来查询一个vo
queryBS.executeQuery(sql, new BeanListProcessor(UserVO.class));//得到UserVO的list ~~~~~~~~~~~~~~更新数据
nc.itf.uif.pub.IUifService srv=(nc.itf.uif.pub.IUifService)NCLocator.getInstance().lookup(“nc.itf.uif.pub.IUifService”);
//获取增加时的当前VO;
// AggregatedValueObject this.getBillUI().getVOFromUI();// DispatchsBillVO VO = VOS.getParentVO();
// VO.setRelatekey(relatekey);
VOS
=
(DispatchsBillVO)HYPubBO_Client.insert(VO);//把VO插到数据库里面 //给表头页面set赋值
this.getBillCardPanelWrapper().getBillCardPanel().setHeadItem(“relatekey”, relatekey);
给表体赋值
getBillCardPanel().setBodyValueAt(值,行号,列名);//更新数据
getBillUI().getBufferData().refresh();8.光标移开时有验证不为空时;把当前文本清空
this.getBillCardPanel().getHeadItem(“i_number”).setValue(null);
9.命名规范,字符型以V开头 时间以D 数字以n 自定义项:
字符:10个 20位
;5个 200位 ;3个500位 ;2 个2000位; 浮点:10个 整型:10个
10.快速查找页面节点所在的那个类
11.下拉菜单;S第一个,第二个,的三个 SX,自由态=8,审核态=1 1,2 12.在oracle中 isnot不适用; 使用navl
13.Public里面的类都是自动生成的 Private里面的可以写一些动作脚本 Client里面主要是我们写的业务类
Public目录存放 接口和公共代码(比如VO和公共算法)Private目录存放 实现和其它实现细节 Client目录存放 客户端代码 gen 目录存放 工具生成的ejb代码 META-INF目录存放模块配置文件目录,包括module.xml文件和xxx.module接口配置文件。
14.流程的版本谁的高走谁的;用户比角色优先级高; 15.公式
可以放在重写方法里面 ;如:点击添加按钮时执行添加的重写方法; //加载表头的编辑公式
getBillCardPanel().execHeadLoadFormulas();//加载表体的公式
getBillCardPanelWrapper().getBillCardPanel().getBillModel().execLoadFormula();
// 执行模板上的编辑公式
this.getBillCardPanel().getBillModel().execEditFormulasByKey(row, “invnum”);1.2.3.4.5.6.16.系统中的“耗时操作”进度条是如何实现的?
/**
* 启用系统运行提示框 避免造成假死现象
*/
private void onButton_import()
{
// 该操作是耗时操作,所以启用系统运行提示框
Runnable runImpDoc = new Runnable()
{
public void run()
{
BannerDialog dialog = new BannerDialog(getCurrUI());
dialog.start();
try
{
importData();
}
catch(Exception e)
{
dialog.end();
e.printStackTrace();
return;
}
dialog.end();// 销毁系统运行提示框
}
};
new Thread(runImpDoc).start();
}
/**
* 系统运行提示框
*/
private Container getCurrUI()
{
return this.getSelfUI();
}
17.自定义按钮 接口
Public package nc.ui.testkh.mybotton;public interface IButDef { public static final int boExcel = 300;} 2.定义按钮 clientlis package nc.ui.pub.buttonImp;
import nc.ui.pub.button.IButton;import nc.ui.trade.base.IBillOperate;import nc.vo.trade.button.ButtonVO;
public class PorjectButtonDeft {
public ButtonVO getButtonVO(){
ButtonVO btnVo=new ButtonVO();
btnVo.setBtnNo(IButton.POJECTBUTTON);
btnVo.setBtnCode(“boProjectBtn”);btnVo.setBtnName(“项目调整”);
btnVo.setOperateStatus(new
int[]{IBillOperate.OP_INIT,IBillOperate.OP_NOTEDIT}//IBillOperate.OP_NOTEDIT 设置按钮在编辑状态下可用);// 设置那个状态可用
return btnVo;} } 3.注册按钮
.....ClientUICtrl IButton.POJECTBUTTON 4.注册按钮
....ClientUI 重写方法 @Override
protected void initPrivateButton(){
// TODO Auto-generated method stub
super.initPrivateButton();
PorjectButtonDeft pbd = new PorjectButtonDeft();
addPrivateButton(pbd.getButtonVO());} 5写按钮的方法
MyEventHandler类
@Override
protected void onBoElse(int intBtn)throws Exception {
// TODO Auto-generated method stub
super.onBoElse(intBtn);
if(intBtn == IButton.POJECTBUTTON){ //业务方法
System.out.println(“业务方法”);
} }
第二种: @Override
protected void onBoElse(int intBtn)throws Exception {
// TODO Auto-generated method stub
super.onBoElse(intBtn);
switch(intBtn){
case CreateEntryBill.CREATEBUTTON:
creatEntryBill(intBtn);
break;
} } public void creatEntryBill(int intBtn){
} 业务方法在下面写;上面直接调用方法就行‘;
18.建立项目不要在集团下建立; 19.字段类型不匹配; PDM里面看看是否能不为空;
20,权限分配的时候没有你想要的那个节点;就要建立公司帐分配那个节点; 21.获取服务器时间;
getBillCardPanelWrapper().getBillCardPanel().setHeadItem(“",ClientEnvironment.getServerTime().toString());22.获取当前时间
getBillCardPanel().getHeadItem(”dmakedate“).setValue(new UFDate(new Date()));
23.下拉菜单存索引;用IX,集收,分收 24.如果导包出错误;试试把包放在NC/ufjdk/lib下然后在导入;
25、怎样编写代码在待办事务中发送一条消息? 答:可以参考下, 后台代码,就是往数据库插入一条记录
////////////////////////////// PFMessageBO pfm = new PFMessageBO();CommonMessageVO comvo = new CommonMessageVO();UserNameObject usvo = new UserNameObject(”a“);usvo.setUserPK(”0001ZZ100000000000VJ“);usvo.setUserCode(”a“);usvo.setUserName(”a“);
comvo.setSender(”a“);comvo.setReceiver(new UserNameObject[]{usvo});comvo.setMessageContent(”导入数据演示“);comvo.setTitle(”外部平台导入数据“);comvo.setType(MessageTypes.MSG_TYPE_INFO);pfm.insertCommonMessage(comvo);
25.不能修改的参照(时间)就写日期就行 ;不用设置参照;
26.如果PDM和单据建立好了;发现PDM字段不行或类型不行;可以解决;
答:首先把PDM改好;在导入数据字典表里面同时在数据库里面在生成一下
表;
然
后
在找到那个字段 把它删掉 ;然后从右边的字段里面找到在拖过去;就ok;然后在代码里面改改VO;
27.一个节点;从一个系统导入到另一个系统; 答选择命令窗口;点击绿色执行;红色回滚;
有可能出现错误;就是语句里面两个单引号之间要有个空格例如:‘ ’ 把自己创建的节点(文件夹)例如9100 放的nchome下的modules里面;
3.建立公司帐
4.审批流重新配;权限重新配;
28.建立用户;然后分配角色;在分配权限;如果没有这个节点;就建立公司帐;
29.PDM画表小工具的然后选择palette
30.在private里面怎么获得主键 可以通过方法把这个主键传过去;
31.在后台得到VO? //后台得到VO BaseDAO bo = new BaseDAO();bo.executeQuery(”select * from ty_bz where pk_tybz = '“+pk_tybz+”' “, new BeanProcessor(nc.vo.ty.TyBzVO.class));
32.调用接口; Order od =(Order)NCLocator.getInstance().lookup(Order.class.getName());
public List queryFieldSingleSql(String sql)throws BusinessException, SQLException, DbException {
if(sql == null || sql.equals(”“)){
return null;
}
List values = new ArrayList();
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
con = getConnection();
stmt = con.prepareStatement(sql);
rs = stmt.executeQuery();
rsmd = rs.getMetaData();
while(rs.next()){
List value = new ArrayList();
for(int
String columnValue
value.add(columnValue);
}
values.add(value);
}
} finally {
try {
if(rs!= null)
rs.close();
} catch(Exception e){
}
try {
if(stmt!= null)
stmt.close();
} catch(Exception e){
}
try {
if(con!= null)
con.close();
} catch(Exception e){
}
}
return values;}
33.自定义接口时要部署EJB;报错:
= i=1;i<=rsmd.getColumnCount();i++){ rs.getString(i)==null?”“:rs.getString(i);
加个文件件;
dxty.module;然后生成EJB中间34.按钮的动作脚本;要导入到项目的private里面新建包
Nc.bs.pub.action下面 35.要在接口里面写好注释;;;;;; 36.编写参照类时
//这段代码是UI类初始化参照类的,不写 参照就出不来了
BillItem item =(BillItem)getBillCardPanelWrapper().getBillCardPanel().getHeadItem(”relatekey“);
BillStatusRefModel defModel = new BillStatusRefModel();
UIRefPane refPane =(UIRefPane)item
.getComponent();
refPane.setEditable(true);
item.setDataType(BillItem.UFREF);
refPane.setRefModel(defModel);
item.setComponent(refPane);35.表体增行方法getBillCardPanel().getBillModel().addLine()
36.清空缓存: UIRefPane ref = getRefSubject(); ref.getRefModel().clearCacheData();37.查询方法的重写:
交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。
//重写查询按钮 @Override protected void onBoQuery()throws Exception { // TODO Auto-generated method stub // b-------------2009-11-04 荆茂英 修改
String strWherePart = ”“;UIDialog querydialog = getQueryUI();if(querydialog.showModal()!= UIDialog.ID_OK)return;//用户取消查询
INormalQuery query =(INormalQuery)getQueryUI();if(query.getWhereSql()!= null &&!query.getWhereSql().equals(”“)){ strWherePart = query.getWhereSql()+” and “;}else{ strWherePart += ”“;}
String isNegotiations = ”“;//是否洽商
if(getMCode()!= null && getMCode().equals(”工程洽商“)){ isNegotiations = ”Y“;}else{ isNegotiations = ”N“;} strWherePart = strWherePart + ” pm_lm_designchange.vdef1='“+isNegotiations+”'“;
SuperVO[] queryVos = getBusiDelegator().queryHeadAllData(Class.forName(getUIController().getBillVoName()[1]), getUIController().getBillType(), strWherePart.toString());
getBufferData().clear();addDataToBuffer(queryVos);updateBuffer();
// super.onBoQuery();//end------------------} dfa 设置按钮状态 getButtonManager().getButton(nc.ui.trade.button.IBillButton.Add).setEnabled(false);this.getBillUI().updateButtonUI();38.怎么得到下拉菜单的值
int index = getJComboBoxBillType().getSelectedIndex();//得到调拨类型
String typecode = ”“;
if(index == 0){
typecode = ”5C“;}else if(index == 1){ typecode = ”5D“;}else if(index == 2){ typecode = ”5E“;}else if(index == 3){ typecode = ”5I“;} 39.随机生成主键:select substr((sys_guid()),1,20)40.Not in not exists 在oracle中用法;如果not in查询上百条的时候会崩溃。and not exists(select distinct ladings_bill.pk_purchaseordercode from ladings_bill where nvl(dr, 0)= 0 and po_order.corderid =ladings_bill.pk_purchaseordercode)
41.//根据系统先有的规则来生成单据号
nc.vo.pub.billcodemanage.BillCodeObjValueVO vvo =new nc.vo.pub.billcodemanage.BillCodeObjValueVO();String billcode=(new BillcodeGenerater()).getBillCode(headVO.getPk_billtype(),headVO.getPk_corp(),null,vvo);//第一个参数:单据类型,第二个参数:公司主键,第三个参数传null,第四个参数:vvo 42 new SequenceGenerator().generate(pk_corp);生成主键的
43.类型转换异常-解决;在ts那个用String类型;模板和VO要一致。
44.List和hashmap一起连用; String sql = select cinvbasid, cgeneralbid from ic_general_b where cfirstbillhid = '”+pk_relaterkey+“ setEnabled List list =(List)iuap.executeQuery(sql, new MapListProcessor());} HashMap Mapp = new HashMap();
Mapp =(HashMap)list.get(i);如果想取得cinvbasid的值:Mapp.get(”cinvbasid“);45.审核之后其他按钮才能执行;代码放到自定义按钮的类里面;注有按钮名称的那个
btnVo.setBusinessStatus(new
int[] { nc.vo.trade.pub.IBillStatus.CHECKPASS } 46.获得表体字段的值:(下面的是获得多个表体的值)如果只获得一个表体 就把 New HYBillVO().getTableCodes()[5]String
制
空
。pk_afterrecord=getBillCardPanelWrapper().getBillCardPanel().getBillModel(new HYBillVO().getTableCodes()[5]).getValueAt(0,”pk_afterrecord“).toString();47.如果前台报错可以放到后台输出获抛出; try {
super.onBoCommit();
} catch(Exception e){
// TODO: handle exception
}
48.得到表头一共多少行 int rows = getBillCardPanelWrapper().getBillCardPanel().getBillTable().getRowCount();//得到表体一共多少行 49.获取时间戳
String dateline=new SimpleDateFormat(”yyyy-MM-dd HH:mm:ss“).format(Calendar.getInstance().getTime());
50.//选择对话框,点是继续,点否取消
if(MessageDialog.showOkCancelDlg(this.getBillUI(),”确认“,”点击筛选按钮后,会先把现在页面的值保存到数据库,确认执行吗?“)==MessageDialog.ID_OK){ filterSellAndGroup();//点击确定要实现的方法; } else{ return;} 51.// 当前登录人
UserVO coperator ClientEnvironment.getInstance().getUser();
52.弹出一个UI;并设置页面为卡片形式
ToftPanel toft = SFClientUtil.showNode(”H4H2H5“, IFuncWindow.WINDOW_TYPE_DLG);
WarningSetClientUI ui =(WarningSetClientUI)toft;
ui.onButtonClicked(ui.getButtonManager().getButton(IBillButton.Card));
ui.onButtonClicked(ui.getButtonManager().getButton(IBillButton.Add));ui.setCardUIData(vo);53.单据号释放 @Override
protected void onBoDelete()throws Exception {
// TODO Auto-generated method stub super.onBoCard();// 卡片状态下
=
IBillcodeRuleService codeservice =(IBillcodeRuleService)NCLocator.getInstance().lookup(IBillcodeRuleService.class.getName());
BillCodeObjValueVO voBill=new BillCodeObjValueVO();
String vbillno = getBillCardPanelWrapper().getBillCardPanel()
.getHeadItem(”vbillno“).getValueObject().toString();
codeservice.returnBillCodeOnDelete(_getCorp().getPrimaryKey(), ”9103“, vbillno,voBill);
try
{
//申请特定内存区域
SFAppServiceUtil.getBillcodeRuleService().requireNewRegion(vbillno);
//做独立事务业务操作
//释放申请的内存区域
SFAppServiceUtil.getBillcodeRuleService().releaseRegion(vbillno);
}
catch(Exception e)
{ //停止申请的内存区域
SFAppServiceUtil.getBillcodeRuleService().stopRegion(vbillno);//异常处理代码
}
super.onBoDelete();} 54.让文本框表头不可编辑
getBillCardPanel().getHeadItem(”vdef3“).setEnabled(false);表体不可编辑
this.getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, ”totalmoneyzong“, true);
55.//审批未通过
public static final int NOPASS = 0;//审批通过
public static final int CHECKPASS = 1;//审批进行中
public static final int CHECKGOING = 2;//提交状态
public static final int COMMIT = 3;//作废状态
public static final int DELETE = 4;//冲销状态
public static final int CX = 5;//终止(结算)态
public static final int ENDED = 6;//冻结状态
public static final int FREEZE = 7;//自由态
public static final int FREE = 8;56.更新update(sql)IPubBillUpdate BaseDAO baseDAO=new BaseDAO();
baseDAO.executeUpdate(sql);
57.参照显示
那个类 有三个字段设置方法分别表示主键 编码 名称的@Override public String getPkFieldCode(){
return ”billbid“;}
@Override public String getPkValue(){
return(String)getValue(”billbid“);}
@Override public String getRefCodeField(){
return ”def2“;}
@Override public String getRefNameField(){
return ”assetname“;} 58.强制执行公式所有地方都执行
//表头公式默认不执行,初始化的时候把这两行加进去
getBillCardPanel().setAutoExecHeadEditFormula(true),getBillCardPanel().execHeadEditFormulas()/* *实现 切换到 卡片模式 数据为0时 显示为 0 或者为 空 的问题
*/ @Override protected void onBoCard()throws Exception {
// 设置显示零
this.getBillCardPanelWrapper().getBillCardPanel().getBodyPanel()
.getRendererVO().setShowZeroLikeNull(false);
super.onBoCard();} 59.内存益处
-vm F:JAVAProjectsdxtytyfwnchomenchomeufjdkbinjavaw.exe 60.部门档案 nc.ui.bd.ref.busi.DeptdocDefaultRefModel 61.人员档案 nc.ui.bd.ref.busi.getBillListPanel().hideHeadTableCol(”headitem“);PsndocDefaulRefModel 列表隐藏字段
62.控制后台输出sql 语句
在Eclipse中按shift+Ctrl+r 打开后台日志logger-config.properties 把里面的这些代码注释掉,就可以在控制台看到相关信息,如不注释,就是写到日志中;zh anonymous.level=DEBUG(把这里的ERROR改为DEBUG)
#anonymous.file=./nclogs/${server}/anony-log.log #anonymous.size.maxSize=5MB #anonymous.size.maxIndex=20 nclog.level=DEBUG(把这里的ERROR改为DEBUG)#nclog.file=./nclogs/${server}/nc-log.log #nclog.size.maxSize=5MB #nclog.size.maxIndex=5 # iufo logs # iufoRepCalc logs #iufoRepCalcResult logs #SQL监控日志 63.重写增行方法
protected void onAddLine(){ super.onAddLine();
********** 在这里设置表体不可以编辑就可以了 ********** } 63.修改数据库字段长度alter table bd_psnbasdoc modify bp varchar2(1000);
alter
table
your_table
add
(column1
col_ ,clumn2 col_type2...);your_table :表名
column1/column2 :字段名
col_type1/col_type2 :字段类型
64.参照表IBusiType public java.lang.String[] getFieldCode(){ return new String[] {”(select vname from jgpm_cm_contract where jgpm_cm_contract.pk_cont = jgpm_cm_measure.pk_cont)“,”vbillno“,”dmeapprodate“,”nmeaapprorigmny“,”pk_measure“};65.}
66.获取表尾的getBillCardPanel().getTailItem(”dmakedate“).setValue(new UFDate(new Date()));67.刷新this.getBufferData().refresh();68.实现类里面执行提交动作脚本
MyBillVO mbillvo = new MyBillVO();
mbillvo.setM_billField(BillField.getInstance());
mbillvo.setParentVO(ich);
mbillvo.setChildrenVO(icb);
commit(dmaked,mbillvo,userid);
return xmlMessage;
值 }
public void commit(String dmaked,MyBillVO mbillvo,String userid)throws Exception {
UserVO user =(UserVO)getBaseDAO().retrieveByPK((UserVO.class), userid);
IWorkflowMachine bsWorkflow =(IWorkflowMachine)NCLocator.getInstance().lookup(IWorkflowMachine.class.getName());
PfUtilWorkFlowVO wfVo = bsWorkflow.checkWorkFlow(”SAVE“, ”HHSQ“, dmaked, mbillvo);
if(wfVo!= null){
PfUtilBO pf = new PfUtilBO();
pf.processAction(”SAVE“, ”HHSQ“, dmaked, wfVo,(HYBillVO)mbillvo, user);
} 69.Plsql无法识别问题
在orcl的安装目录下:
在oracle的安装路径下product10.2.0client_1NETWORKADMIN有一个tnsnames.ora编辑状态打开,里面有连接的数据库的信息;
天门溪水 10:54:19 然后呢
李鑫 10:56:04 product10.2.0db_1NETWORKADMIN在服务端也有这么个文件,你打开,看一下,应该是这两个文件里有一个文件没有你当前数据库的连接信息 李鑫 10:56:21 然后从那个里面复制过来 李鑫 10:56:34 这两个文件里的内容是一致的
修改自定义不能改名称的问题
this.getBillCardPanel().getHeadItem(”ccustomerid“).setName(”客商名称“);this.getBillListPanel().getHeadItem(”ccustomerid“).setName(”客商名称“);this.getBillCardPanel().getHeadItem(”ccustomerid“).setName(”客商名称“);this.getBillListPanel().getHeadItem(”ccustomerid“).setName(”客商名称“);this.getBillCardPanel().setBillData(getBillCardPanel().getBillData());this.getBillListPanel().setListData(getBillListPanel().getBillListData());69 抛异常
if(listbasdoc == null || listbasdoc.size()<= 0){ throw new Exception(”没有找到客商!“);} 70判断是否卡片
if(this.getBillListPanel().isShowing())查询模板公司默认 Sys_CurrCorp 71.命令
ls 是显示当前文件夹里面的文件; cd 打开文件夹
cd..返回上一个目录
72.通过sql语句查询VO的具体几个字段;
String[] names = {”cfirstid“,”cfirstbid“,”cfirsttypecode“,”vfirstcode“,”vfirstrowno“};
String bodywhere = ” dr = 0 and cbill_bid = '“+bvo.getVsourcebillrowid()+”'“;
BillItemVO[] tobvo = ClientBillHelper.queryBodyBySQL(names, bodywhere);
if(tobvo!=null&&tobvo.length >0){
itemVO.setCfirstbillhid(tobvo[0].getCfirstid());
itemVO.setCfirstbillbid(tobvo[0].getCfirstbid());
itemVO.setCfirsttype(tobvo[0].getCfirsttypecode());
itemVO.setVfirstbillcode(tobvo[0].getVfirstcode());
itemVO.setVfirstrowno(tobvo[0].getVfirstrowno());
} 73.获取配置文件的值;关闭流 74.private BaseDAO dao;
public String getINFO(String flag){ FileInputStream fis = null;try { Properties props = new Properties();fis = new FileInputStream(new File(RuntimeEnv.getInstance().getNCHome()+ System.getProperty(”file.separator“)+ ”resources“ + System.getProperty(”file.separator“)+ ”db-config.properties“));props.load(fis);return props.get(flag).toString();} catch(Exception e){ e.printStackTrace();return ”ERROR“;} finally{ if(fis!=null){ try{ fis.close();}catch(Exception ex){ ex.printStackTrace();} } } } private BaseDAO getBaseDAO(){ if(dao == null){ dao = new BaseDAO(getINFO(”defaultDataSource“));} return dao;} 75.}
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
获取查询框下拉值
// 获取合同类别对应的sql查询条件
String sqlString = event.getFilter().getSqlString();
参照手动输入和参照
nc.ui.pub.beans.UIRefPane getBillCardPanel().getBodyItem(ExAggCpFinalinfoVO.TABLECODE_MATERIAL, ”vcheckpsn“).getComponent();ry_ref.setRefNodeName(”人员档案“);/*-=notranslate=-*/ ry_ref.setButtonVisible(true);
ry_ref
=
(nc.ui.pub.beans.UIRefPane)
List 转化成VO ArrayList
编辑前事件监听
implements BillCardBeforeEditListener 在构造方法里面添加
getBillCardPanel().setBillBeforeEditListenerHeadTail(this);
弹出卡片界面
private void onBoLinkQry()throws UifException { if(getBufferData().getCurrentVO()== null)return;
filterTempletBvosVos
=
new
if(getBufferData().getCurrentVO().getParentVO()== null)return;String pk_singleplan =((SmClarifyVO)getBufferData().getCurrentVO().getParentVO()).getPk_singleplan();
获取查询模板默认值条件 String fixcondition = getBillManageUI().getFixCondition();
if(fixcondition!=null&&fixcondition.length()>0)sb.append(” and “).append(fixcondition).append(” “);
} private class BillLinkData implements ILinkMaintainData {
} private String real_pk_bill = null;public String getBillID(){ } public void setBillID(String billId){ } public Object getUserObject(){
} // TODO Auto-generated method stub return null;real_pk_bill = billId;return real_pk_bill;BillLinkData billLinkData = new BillLinkData();billLinkData.setBillID(pk_singleplan);SFClientUtil.openLinkedMaintainDialog(”H0K10302“, billLinkData);if(pk_singleplan == null || pk_singleplan.equals(”“))return;((ClientUI)getBillUI()).getBillCardPanel(), /** * 调用存储过程
* @param HashMap * @throws Exception */ public MessageVO Callsp(String Partnaccounts,String Sp)throws Exception {
MessageVO msgvo = new MessageVO();
LoginDate = LoginDate.replace(”-“, ”“);
msgvo.setMsgflag(-1);// 调用存储过程
LoginDate,String
Connection con = null;CallableStatement stmt = null;try {
con = getConnection();
stmt = con.prepareCall(”{ call “+Sp+”(?,?,?,?)}“);
stmt.setString(1, LoginDate);
stmt.setString(2, Partnaccounts);stmt.registerOutParameter(3, Types.NUMERIC);stmt.registerOutParameter(4, Types.VARCHAR);
stmt.execute();
int RET_FLAG = stmt.getInt(3);
String msg = stmt.getString(4);
msgvo.setMsg(msg);
msgvo.setMsgflag(RET_FLAG);
} catch(Exception e){
e.getMessage();
} msgvo.setMsg(” 末找到 “+Sp+”,或参数设置错误。“);
} finally { try {
if(stmt!= null){
stmt.close();
} } catch(Exception e){ } try {
if(con!= null){
con.close();
} } catch(Exception e){ } }
return msgvo;鼠标监听
class MyMouseListener implements MouseListener { // // public void mouseClicked(MouseEvent arg0){ //
// TODO Auto-generated method stub // } // // public void mouseEntered(MouseEvent arg0){ //
// TODO Auto-generated method stub // } // // public void mouseExited(MouseEvent arg0){ //
// TODO Auto-generated method stub //
System.out.println(”mouseExited========================“);// } // // /** // // // // // * 鼠标单击事件 */ public void mousePressed(MouseEvent arg0){ // TODO Auto-generated method stub InvbasdocDefaultRefModel inbase
= new InvbasdocDefaultRefModel(”存货基本档案“);//
Object pk_invcl = getRefSubject().getRefPK();//
if(pk_invcl!= null){ //
inbase.setWherePart(”and bd_invbasdoc.pk_invcl '“+pk_invcl+”'“);//
} //
refBas = new UIRefPane();// //new 一个主体账簿参照类
//// refMainAcc.setRefModel(arg0);// // // // refBas.setRefNodeName(”存货基本档案“);//系统参照 refBas.setVisible(true);refBas.setRefModel(inbase);refBas.onButtonClicked();
= //
System.out.println(”参照pk:“ + refSubject.getRefPK());//
getRefBas().setPK(refBas.getRefPK());// } // // public void mouseReleased(MouseEvent arg0){ //
// TODO Auto-generated method stub //
System.out.println(”mouseReleased========================“);// } // }
清除部署的文件
进入ufsoft下的dist、history、temp 夹下的东西都删除,这几个文件夹保留
-Xms500m-Xmx1024m
/** * @方法说明:下载Excel模板 * @author :niuxd * @date :2012-11-30 下午03:55:56 */ protected void downloadExcel(){ String path = ClientEnvironment.getInstance().getServerURL()
+ ”download/metercomptemplate.xls“;URL url = null;try {
url = new URL(path);} catch(MalformedURLException e){
Logger.error(e);} ClientAssistant.showDocument(url, ”_blank“);} 校验非空
需要在单据类型管理里面配置ROLE规则那个类到自定义3里面
try {
}
super.onBoSave();dataNotNullValidate();throw new BusinessException(e.getMessage());} catch(ValidationException e){
protected void dataNotNullValidate()throws ValidationException {
StringBuffer message = null;BillItem[] headtailitems =
.getBillData().getHeadTailItems();getBillCardPanelWrapper().getBillCardPanel()if(headtailitems!= null){ for(int i = 0;i < headtailitems.length;i++){
if(headtailitems[i].isNull())
if(isNULL(headtailitems[i].getValueObject())
&& headtailitems[i].isShow()){ message = new StringBuffer();if(message == null)message.append(”[“);
message.append(headtailitems[i].getName());
}
}
}
message.append(”]“);message.append(”,“);if(message!= null){
} // 增加多子表的循环
String[] tableCodes =
.getBillData().getTableCodes(BillData.BODY);message.deleteCharAt(message.length()1);if(message!= null)break;if(message!= null){ } throw new NullFieldException(message.toString());public void setCardPanelBodyColor()throws Exception { // 卡片状态下 表体颜色控制
String tabcode =....;//如果是多页签的.这里加上页签名称
BillModel bm = getBillCardPanel().getBillModel(tabcode);
int row = bm.getRowCount();
for(int i = 0;i < row;i++){
BillItem[] items_body = getBillCardPanel().getBillModel(tabcode)
.getBodyItems();
if(items_body!= null && items_body.length > 0){
for(int j = 0, len = items_body.length;j < len;j++){
BillItem item = items_body[j];
if(item == null)
continue;
if(!item.isBaseTableCodeShow())
continue;
String name = item.getKey();
if(”2“.equals(bm.getValueAt(i, ”vb2def4"))){//根据行中某个列的值进行判断,其它地方的也可以
getBillCardPanel().getBodyPanel(tabcode)
.setCellBackGround(i, name,new Color(149, 161, 219));
} else {
getBillCardPanel().getBodyPanel(tabcode)
.setCellBackGround(i, name, Color.WHITE);
}
}
}
}
}
第二篇:NC年底结账操作手册
NC年底结账操作手册
1、首先要对上12月账务进行结账
进入财务会计——总账——期末处理——结账
2、进入下期初余额进行结转上年末数据
进入总账——初始设置——期初余额,点击年初重算
选择所有科目
/ 6
选择效果如图所示
结转上余额,点击确定
/ 6
看到年初余额如下图所示3、1)进行新的期初建账
选择本币进行年初余额试算平衡,若不平衡则说明年初余额不对
进入总账——初始设置——期初余额,特别注意要选择本币
/ 6
在试算平衡平衡后则可以进行期初建账,若没有进行期初建账,则当年的凭证不能进行记账 2)进行期初建账
进入总账——初始设置——期初余额,点击期初建账,步骤将以下图显示 图1 4 / 6
图2
图3
/ 6 图44、1)逆向处理 反结账
在结账节点,点击“反结账”,一般是在会计月结账后要对会计月账务进行修改,需要进行反结账。2)反期初建账
在期初建账节点,点击取消建账,一般是要对总账期初余额进行修改时要进行取消建账。1)
/ 6
第三篇:用友NC系统操作培训总结
NC系统操作培训总结
10月24日,工业集团战略企划部在青岛 公司主持召开了NC系统操作培训,对子公司及集团本部采购条线、财务条线、销售条线人员进行培训。集团信息中心张柏新详细讲解了系统的操作方法。对各条线参训人员均做了详细的操作演练。
工业集团推行ERP系统,对整个集团的统一管控,系统操作有一个质的的发展进步,是大多数集团公司大型企业必由之路,我司紧跟时代步伐,积极推进erp系统上线,对各级人员的职业素养均是一个不可错失的提高机会。
本次培训主要针对NC系统的操作实务,为今后的工作打下基础,各子公司现在正在推行该系统上线,操作人员必须对该系统有全面的了解,所以本次培训势在必行。
通过本次培训,各条线人员对系统有了初步的认识,在原有系统的基础上加深了理解,也熟悉了系统的操作。为今后的工作推动打下基础。
第四篇:会计信息系统NC实验报告总结(最终版)
用友NC软件应用实验报告
班级:_________ 姓名:__________ 学号:__________ 指导教师:______________
经济管理学院会计系
2011.5
一、实验目的:
了解掌握用友NC软件的基本操作原理及操作方法,掌握参数设置、基础数据录入等客户化功能的操作原理,熟悉总账、固定资产等模块的基本操作流程。
二、实验内容
1、系统客户化:参数设置及基础数据录入
2、总账模块业务
3、固定资产模块业务
三、实验步骤:
一、参数设置
参数设置:将集团本位币设置为人民币
确定会计期间、币种设置
二、新建公司目录 新建公司帐
公司目录的编码为自己的027、公司目录名称为“nc0027”
建账的模块为:所有模块 币种为:人民币
四 会计主体
启用模块 :启用总账以及各模块(选择2006会计准则账簿新建公司账,总账账簿类型为总账簿,固定资产账簿类型为总账簿)
设置 会计主体
五 录入基础档案
人员类别的设置
快速切换 至公司再能进行人人员信息的录入 在人员信息管理档案
用户权限设置和权限分配 只有分配权限后才能进入公司帐套进行管理操作(除了集团客户化提供了用户管理、权限分配外,在公司客户化中提供了对用户分配科目、部门等数据权限功能。)
人员类别的设置
启用帐簿 启用总账 主账簿
期初余额的录入
六、凭证处理
设置凭证格式的设置
暂存凭证和填制的正确凭证
签字查询
签字
审核凭证(不能由制单人审核)
录入期初余额
期初建账条件记账下余额
凭证整理
往来核销处理
协同业务处理
发送方凭证设置
接收方凭证设置
通过公司系统制单 往来核算 生成协同凭证 并套用协同 确定
七、月末处理
期末处理 结转 定义凭证和分录 注意金额公式的设置
汇兑差额的结转分录 进行结转
结转汇兑损益
试算平衡
八、账薄查询
查询科目明细账
九、固定资产
在会计主体结点中增加集团账簿 并启用固定资产账簿
资产卡片的信息
新增资产类别
账簿信息的设置与查询
帐簿初始化设置
录入员原始卡片
录入新增资产
资产变动 数量变动
资产减值处理 损耗
资产调出
资产调入
资产减少
折旧与摊销
设置凭证模版定义
设置科目编码定义
凭证生成
四、实验体会:
首先,对于会计信息系统这门会计学专业的必修课,在一个学期的学习与操作之后,有了一定的了解和认识,在信息化时代,掌握各种会计信息系统的应用以及操作方法是会计专业学习的重点内容,由于内容更注重操作而不是理论知识,这门课程在刚开始接触书本知识时就会觉得比较形象,但是当实际操作时,就可见这门课程其实是对所学的会计理论知识的一个深化,没有积累的理论知识是难以学好这门课的。
同理,在NC课设中,同样有这样的感受,遇到一个问题,你不会解决,首先是操作的失误,根本还是因为会计原理掌握额不牢靠,有很多表面的问题都是有它产生的会计原理方面的原因的,比如,在凭证的设置方面,必须在总账中设置凭证格式,而格式的设置与相关业务的处理都围绕着有借必有贷借贷必相等的原则,以及各种科目的设置、科目的属性、用途,都要了解清楚,信手拈来。在银行对账以及结算中,如果本月未全部记账或者试算不平衡都是不可以结账的,如果出现不能结账的情况,很多时候是因为会计处理方面的失误,所以,在本学期的课程学习中,把上课和上机安排在一起的方法很受用,把NC课设与用友U8结合的安排也有利于我们对公司软件和集团软件的区别和了解。
其次,关于用友ERP/NC。NC目标客户主要为集团企业和企业集团,它是中国第一个集团级的高端ERP产品;NC的核心管理理念是“协同商务、集中管理”,这是中国集团企业和企业集团在以互联网为核心的电子商务时代,坚持国际化发展所获得的最佳管理与业务实践,也代表着当今世界最先进的管理模式和未来发展趋势。
NC总账系统是会计系统的核心,除了可以完成会计科目维护、会计凭证管理、常用账簿查询等日常基本财务核算工作外,还提供了适应集团性企业、不同行业、不同管理要求的一些特殊功能,主要包括以下几个应用层次:
一、基本的财务核算。满足企业进行基本财务核算以及对外报告的需要:
·支持期初余额录入与上年年末余额自动结转本年年初余额 ·实现凭证录入、审核、记账、出纳签字等会计核算流程 ·提供包括三栏式总账、三栏式明细账等各种账簿的查询
·进行各种结转,自动生成转账凭证,会计期结束时进行试算平衡与结账处理
二、高级的财务核算。通过提供科目辅助核算及多种账表查询功能,支持多维度的专项核算与管理,满足企业对内报告和细化核算的要求。
·提供将基本档案、自定义档案设置为科目辅助核算项的功能 ·提供科目交叉校验规则及辅助核算控制规则,从而使账务核算更为严密、方便,降低差错率。
三、特殊目的财务核算。满足特殊目的与要求的财务核算 ·集团应用:提供集团内部单位之间的凭证协同生成与集团对账功能;实现跨单位制单、跨单位审批、跨单位记账、跨单位查询、多单位查询等集团应用
·国际化应用:支持单主币、主辅币核算;支持多币种核算;支持汇兑损益的自动计算与结转功能
四、数量核算
·现金流量表数据的生成与查询 ·各种往来业务的核销管理与统计查询
最后,提两点对课设的建议;
一、课设的时间很短,总觉得很快就做完了,掌握的并不是很踏实,比如在集团与公司的切换时候只强调了什么时候该切换,没有特别清楚为什么要切换等。
二、课设中各自设的公司在进行其他操作以及设置的时候,有时别的公司已经进行了此项设置,并前同时显示在本公司的帐内,如果可以每个公司都可以单独设置,就能更加方便的看到各自实验的内容,了解实验的程序。
第五篇:用友NC基本介绍
一、概述
用友NC是为集团与行业企业提供的全线管理软件产品,由亚太本土最大的企业管理软件提供商用友公司研发提供,用友NC率先采用J2EE架构和先进开放的集团级开发平台UAP,按照“全球化集团管控、行业化解决方案、平台化应用集成”的设计理念而设计,目前形成了集团管控6大领域,10大行业的38个解决方案。10年来,在中国有2000多家集团型企业客户正在运行着用友NC,在用友NC的全生命周期客户经营服务支持下成功经营着自身的业务,通过用友NC系统的价值发挥促成了企业的高速发展。用友NC目前已成为中国集团大中型企业管理信息化应用系统的首选。用友NC依托用友50多家分子公司,2000多家合作伙伴,2000多人的专业服务团队,5000多人的的营销服务网络,300多家高端产业生态链合作伙伴,为大中型集团企业提供专业解决方案,为客户在构建管理创新力、保持成长活力方面提供专业服务,随着集团和行业企业的扩张和业务强劲增长,用友NC近年来更以超过60%的年增长率取得了飞速的发展。
二、NC总体架构
1、UAP—NC先进体系结构
UAP-NC采用了框架体系结构。以业务单据产品举例来说,如果客户要开发新的业务单据,需要和财务、收付系统做对接,NC可以直接在流程平台中进行配置,还可以利用会计平台,工作流平台、审批流平台等对软件的数据交换进行配置,预警平台可以对某一项事务做个性化的提醒、个性化的预警。而且在系统中实现随时加入插件,不需启动服务器。
2、NC技术架构
UAP-NC作为基于多组织架构的企业应用运行平台、基于模式化的开发平台、开放的系统集成平台及统一的系统管理平台,是建立在Java语言所提供的强大功能的基础上开发的。Java是一种简单的、面向对象的、分布式的、结构中立的、安全的、可移植的、性能优异的、多线程的、动态的开发语言,适合构建基于网络计算的企业应用。由于Java的平台无关性,使得UAP-NC可以运行在不同硬件平台、不同操作系统平台上。基于UAP-NC所开发的应用软件采用Browser/Server(浏览器/服务器)的方式来运行。B/S的运行方式最大限度地方便了用户部署和维护大型软件系统,保证了瘦客户机运行,从而大大降低了用户目标系统的总体拥有成本(TCO)。
三、UAP—NC的核心价值
1、基于总线的应用集成平台:UAP—NC是基于ESB总线来做应用集成,可以成为企业级的应用集成平台。企业信息门户(Enterprise Information Portal)作为一个Web应用,是一个企业信息发布、内部员工办公、供应链协同以及应用集成的平台。企业的内部员工、客户、合作伙伴、供应商可通过单一的门户访问其所需的所有个性化信息、获得个性化服务和进行商务活动,最大程度上共享企业的信息资源,从而更好地协同工作,提高企业的生产力、市场竞争力和把握商机的能力。
2、个性化应用配置:在UAP—NC中,80%的都可以通过个性化配置来解决,而不是提倡完全的个性化开发来解决,在UAP-NC5.5中采用了模板和模型技术的完美结合。在UAP-NC上提供一个开发平台RAD,可以提供产品的个性化开发,但个性化开发跟个性化配置不矛盾,首选应该是个性化配置,其次个性化开发。
3、开发平台:UAP-NC在为复杂企业应用软件系统的开发提供一个基本框架(技术框架层和应用框架层)的同时,提供了与之相应的、方便易用的开发、实施、维护和管理工具集。这个工具集预置了大量的基本功能件、核心功能件和应用组件,支持企业模型的仿真、分析、诊断、优化和调整。通过技术框架和应用框架提供的开发与管理工具集降低开发难度,提高开发效率;提供全新的应用软件开发模式;提供基于跨中间件的开发平台。
4、优良的系统可扩展性、可靠性:UAP-NC提供了服务器集群技术。服务器集群提供了尽可能多的处理能力和数据的透明访问能力,实现高性能和负载均衡(平衡资源的负载,使用资源得以有效利用),并根据需要随时在机群中增加新的硬件,提高系统的伸缩性和和可扩展性(服务更多客户,提高系统吞吐量),保证系统的可靠性及可用性(提供故障恢复机制和容错功能)。同时在服务器的部署上支持最新的技术方向云计算,可以随时节省机器满足企业其它应用,如果繁忙时可以随时增加服务器满足业务的运行需要。
5、可靠的实施管理保障:企业服务架构(ESA)是UAP-NC产品内部模块间的服务总线,它主要解决模块服务版本管理和具体服务技术的隔离,同时提供跨中间件技术的支撑体系,可以化繁为简,保证ERP的顺利实施。在UAP-NC中所有的服务模块之间耦合度降低,任何两个模块之间都是通过ESA总线完成,从而实现ERP实施的分步性。
四、产品特性
1、支持多种费用计划编制方式;
2、支持中间级费用计划的自动汇总,提高编报效率;
3、支持费用计划多版本管理,以便进行比较分析;
4、支持业务的联查,可实时查询计划执行情况;
5、支持审批和工作流的完整整合;
6、支持网上银行付款,提高支付效率;
7、支持费用执行异常情况或重要情况的警示;
8、加强借款报销控制,规范报销借款业务;
9、费用计划直接控制日常业务发生,降低超支风险。