第一篇: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软件应用实验报告
班级:_________ 姓名:__________ 学号:__________ 指导教师:______________
经济管理学院会计系
2011.5
一、实验目的:
了解掌握用友NC软件的基本操作原理及操作方法,掌握参数设置、基础数据录入等客户化功能的操作原理,熟悉总账、固定资产等模块的基本操作流程。
二、实验内容
1、系统客户化:参数设置及基础数据录入
2、总账模块业务
3、固定资产模块业务
三、实验步骤:
一、参数设置
参数设置:将集团本位币设置为人民币
确定会计期间、币种设置
二、新建公司目录 新建公司帐
公司目录的编码为自己的027、公司目录名称为“nc0027”
建账的模块为:所有模块 币种为:人民币
四 会计主体
启用模块 :启用总账以及各模块(选择2006会计准则账簿新建公司账,总账账簿类型为总账簿,固定资产账簿类型为总账簿)
设置 会计主体
五 录入基础档案
人员类别的设置
快速切换 至公司再能进行人人员信息的录入 在人员信息管理档案
用户权限设置和权限分配 只有分配权限后才能进入公司帐套进行管理操作(除了集团客户化提供了用户管理、权限分配外,在公司客户化中提供了对用户分配科目、部门等数据权限功能。)
人员类别的设置
启用帐簿 启用总账 主账簿
期初余额的录入
六、凭证处理
设置凭证格式的设置
暂存凭证和填制的正确凭证
签字查询
签字
审核凭证(不能由制单人审核)
录入期初余额
期初建账条件记账下余额
凭证整理
往来核销处理
协同业务处理
发送方凭证设置
接收方凭证设置
通过公司系统制单 往来核算 生成协同凭证 并套用协同 确定
七、月末处理
期末处理 结转 定义凭证和分录 注意金额公式的设置
汇兑差额的结转分录 进行结转
结转汇兑损益
试算平衡
八、账薄查询
查询科目明细账
九、固定资产
在会计主体结点中增加集团账簿 并启用固定资产账簿
资产卡片的信息
新增资产类别
账簿信息的设置与查询
帐簿初始化设置
录入员原始卡片
录入新增资产
资产变动 数量变动
资产减值处理 损耗
资产调出
资产调入
资产减少
折旧与摊销
设置凭证模版定义
设置科目编码定义
凭证生成
四、实验体会:
首先,对于会计信息系统这门会计学专业的必修课,在一个学期的学习与操作之后,有了一定的了解和认识,在信息化时代,掌握各种会计信息系统的应用以及操作方法是会计专业学习的重点内容,由于内容更注重操作而不是理论知识,这门课程在刚开始接触书本知识时就会觉得比较形象,但是当实际操作时,就可见这门课程其实是对所学的会计理论知识的一个深化,没有积累的理论知识是难以学好这门课的。
同理,在NC课设中,同样有这样的感受,遇到一个问题,你不会解决,首先是操作的失误,根本还是因为会计原理掌握额不牢靠,有很多表面的问题都是有它产生的会计原理方面的原因的,比如,在凭证的设置方面,必须在总账中设置凭证格式,而格式的设置与相关业务的处理都围绕着有借必有贷借贷必相等的原则,以及各种科目的设置、科目的属性、用途,都要了解清楚,信手拈来。在银行对账以及结算中,如果本月未全部记账或者试算不平衡都是不可以结账的,如果出现不能结账的情况,很多时候是因为会计处理方面的失误,所以,在本学期的课程学习中,把上课和上机安排在一起的方法很受用,把NC课设与用友U8结合的安排也有利于我们对公司软件和集团软件的区别和了解。
其次,关于用友ERP/NC。NC目标客户主要为集团企业和企业集团,它是中国第一个集团级的高端ERP产品;NC的核心管理理念是“协同商务、集中管理”,这是中国集团企业和企业集团在以互联网为核心的电子商务时代,坚持国际化发展所获得的最佳管理与业务实践,也代表着当今世界最先进的管理模式和未来发展趋势。
NC总账系统是会计系统的核心,除了可以完成会计科目维护、会计凭证管理、常用账簿查询等日常基本财务核算工作外,还提供了适应集团性企业、不同行业、不同管理要求的一些特殊功能,主要包括以下几个应用层次:
一、基本的财务核算。满足企业进行基本财务核算以及对外报告的需要:
·支持期初余额录入与上年年末余额自动结转本年年初余额 ·实现凭证录入、审核、记账、出纳签字等会计核算流程 ·提供包括三栏式总账、三栏式明细账等各种账簿的查询
·进行各种结转,自动生成转账凭证,会计期结束时进行试算平衡与结账处理
二、高级的财务核算。通过提供科目辅助核算及多种账表查询功能,支持多维度的专项核算与管理,满足企业对内报告和细化核算的要求。
·提供将基本档案、自定义档案设置为科目辅助核算项的功能 ·提供科目交叉校验规则及辅助核算控制规则,从而使账务核算更为严密、方便,降低差错率。
三、特殊目的财务核算。满足特殊目的与要求的财务核算 ·集团应用:提供集团内部单位之间的凭证协同生成与集团对账功能;实现跨单位制单、跨单位审批、跨单位记账、跨单位查询、多单位查询等集团应用
·国际化应用:支持单主币、主辅币核算;支持多币种核算;支持汇兑损益的自动计算与结转功能
四、数量核算
·现金流量表数据的生成与查询 ·各种往来业务的核销管理与统计查询
最后,提两点对课设的建议;
一、课设的时间很短,总觉得很快就做完了,掌握的并不是很踏实,比如在集团与公司的切换时候只强调了什么时候该切换,没有特别清楚为什么要切换等。
二、课设中各自设的公司在进行其他操作以及设置的时候,有时别的公司已经进行了此项设置,并前同时显示在本公司的帐内,如果可以每个公司都可以单独设置,就能更加方便的看到各自实验的内容,了解实验的程序。
第三篇:用友NC系统操作培训总结
NC系统操作培训总结
10月24日,工业集团战略企划部在青岛 公司主持召开了NC系统操作培训,对子公司及集团本部采购条线、财务条线、销售条线人员进行培训。集团信息中心张柏新详细讲解了系统的操作方法。对各条线参训人员均做了详细的操作演练。
工业集团推行ERP系统,对整个集团的统一管控,系统操作有一个质的的发展进步,是大多数集团公司大型企业必由之路,我司紧跟时代步伐,积极推进erp系统上线,对各级人员的职业素养均是一个不可错失的提高机会。
本次培训主要针对NC系统的操作实务,为今后的工作打下基础,各子公司现在正在推行该系统上线,操作人员必须对该系统有全面的了解,所以本次培训势在必行。
通过本次培训,各条线人员对系统有了初步的认识,在原有系统的基础上加深了理解,也熟悉了系统的操作。为今后的工作推动打下基础。
第四篇:NC财务业务培训心得
NC财务培训心得
为提高财务人员的业务水平,尽快适应企业财务业务要求。我有幸参加了集团公司组织的NC业务培训,这次学习时间虽短,但给我的学习轨迹留下了非常难忘的印象。接下来我将我这几天学到的业务知识做以下总结。
一、基础设置:
进入存续VPN地址:https://1.85.4.82,然后在IE设置中安装客户端插件,并将VPN地址设置成为受信任的站点,对标记为安全执行脚本activeX控件执行脚本设置启用。完成初始设置。然后使用人力中心给的员工编号如:01060045,密码默认123456,其余保持默认,进行登录。
二、企业建模平台:
1、组织管理:成本中心设置名称选择陈家山矿经营(存续),所属业务单元选择陈家山矿经营(存续),所属财务组织选择陈家山矿经营(存续),上级成本中心属于上级单位选择,成本中心类型选择费用,2、基础数据:①、参数设置选择组织单元陕西煤业化工集团有限责任公司+业务单元陈家山经营(存续)。然后参照本单位的各项数据参数具体根据自己的详细情况设置。
②、公共信息属于集团公司设置。③、人员信息根据人力中心给的人员信
息进行查询、添加。④、客户业务单元根据本单位具体业务客户信息进行上报添加维护。⑤、供应商业务单元根据本单位具体供应商信息进行上报添加维护。⑥、会计科目财务组织设置可根据本单位具体情况进行科目增加设置维护。注:自己增加的科目显示灰色字体,系统自带科目显示蓝色字体。⑦、自定义档案维护选择需要维护的档案信息如常用的改制长期挂账,在其下添加本单位内部部门及以前与本单位发生业务单位名称。
3、客户化配置:在模版管理中设置相应的凭证、账簿的打印模版。
三、固定资产
1、基础设置可添加变动原因、减少原因、减值原因、参数设置等信息自行维护设置。
2、固定资产卡片导入、导出:在卡片导入工具中选择相应的财务组织级资产账簿,在选择EXCLE导出,在导出的相应模版基础上录入相应的资产相关信息,然后在在这个界面中选择EXCLE导入即可。或者不想导入的话在起初数据中选择录入原始卡片信息逐条录入即可。
3、日常业务处理:①、新增资产录入当月增加的固定资产,录入原始卡片录入需补提折旧的、安全费用、维简一次提完折旧的资产。②、每月在期末处理中选择折旧与摊销进行折旧计提。③、在资产变动中选择原值、累计折旧、净残值率使用月限、折旧方法等日常增减调整处理。
四、总账管理:
①、起初余额录入进行起初建账、试算平衡等管理,②、制单进行日常凭证录入业务操作。③、月末对账,总账与明细帐、与固定资产帐对帐等业务操作。
五、主数据中心维护
登录主数据中心页面进行注册登录,选择内部单位新增或外部单位新增,并添加客户货供应商银行、单位名称,地址等信息。等主数据审核通过后可进行日常业务操作。
以上就是我在这次培训学习中学到的知识,我会在尽快熟悉业务知识,并将其应用在今后的工作中。
第五篇:学习NC读取心得
打开和查看NC数据
ncid = netcdf.open(‘example.nc’,'nc_write’);% 打开文件,放入内存,记录文件的指针ncid;
[ndims,nvars,ngatts,unlimdimid] = netcdf.inq(ncid);% 返回nc和cdf文件的信息,其中ndims为维度信息,nvars为变量个数信息,ngatts和unlimdimid为整体特征;
[dimname, dimlen] = netcdf.inqDim(ncid,0);% 查询ndims中维度的名称和资料长度,包含0~ndims-1的维度特征;
[varname,xtype,dimids,natts] = netcdf.inqVar(ncid,0);%查询nvars中名称和资料维度,包含0~nvars-1个变量特征;
varid = netcdf.inqVarID(ncid,’varname’);% 返回查询变量varname 在nc和cdf文件中的nvars的位置,是变量的代号;
var= netcdf.getVar(ncid,varid);% 获取变量;返回具体变量的具体内容(开始度。。结尾度)
2操作
1.Create Dimensions函数: dimid = netcdf.defDim(ncid,dimname,dimlen)
2.用ID返回Dimensions的名和长度的函数: [dimname, dimlen] = netcdf.inqDim(ncid,dimid)
3.用名字返回Dimensions的ID号: dimid = netcdf.inqDimID(ncid,dimname)
4.重命名Dimensions: netcdf.renameDim(ncid,dimid,newName);
f=netcdf(‘c: wrfout_d01_2006-05-06_03’,‘now-
rite’);
lon_start=f{‘LON_LL_D’}(:);
lon_end=f{‘LON_LR_D’}(:);
lat_start=f{‘LAT_LL_D’}(:);
lat_end=f{‘LAT_UR_D’}(:);
nc_rainc=f{‘RAINC’}(:);%取RAINC值
[ny nx nt]=size(nc_rainc);%取南北格点数、东西
向格点数、时间个数
dx=(lon_end-lon_start)/nx;%东西向格距
dy=(lat_end-lat_start)/ny;%南北向格距
使用函数m_contourf()绘制填色等值线图,结果见
图4。代码如下:
m_contourf(lon, lat, nc_rainc);
图4 使用NetCDF数据绘制的填色等值线图