QHBANK-日志汇总(二)

来源:互联网 发布:淘宝达人推荐 编辑:程序博客网 时间:2024/06/16 23:32

---------------------------------------------------------------------20091201-------------------------------------------------------------------

1.客户管理
  客户临时开户(已完成)
  修改开户页面元素及JS控制
  onblur
 当控件失去焦点时触发
onfocus
 当控件接收焦点时触发
onclick
 当控件被单击时触发
onchange
 当控件的值发生修改时触发
onkeydown
 当用户按键时触发
onkeypress
 当用户按文字或数字键时触发
onkeyup
 当用户松开键时触发
onmouseover
 当鼠标指针移动到控件上时触发
onserverclick
 当控件被单击时抛出一个ServerClick事件

  修改cus_id的生成规则

 设置断点 以debug模式启动,一般在连接的KCOLL(包含页面传来的值)处设置断点,
 emp.trd查看emp元素属性

  设置CUS_ID的规则
  a.建立一个1~999循环的sequence
    create sequence cus_com_tmp
    increment by 1
    start with 1
    maxvalue 999
    cycle
    cache 10;
   insert into qhxd.s_autocode values ('CusComTmp','ALL','9','cus_com_tmp','4');
    create sequence cus_indiv_tmp
    increment by 1
    start with 1
    maxvalue 999
    cycle
    cache 10;
   insert into qhxd.s_autocode values ('CusIndivTmp','ALL','9','cus_indiv_tmp','4');
  b.添加service.xml定义,
  c.增加CusComTmpSequenceTemplate.java,其中包括getCusTmpSequence方法,format_tmp方法
       aa.CMISSequenceServive.java ,添加getCusKeyTmp方法
                ab.LmtKeyFactory.java,添加getCusKeyTmp方法
       ac.AddCusBaseRecordOp.java,修改addCusBaseRecord()方法参数,LmtKeyNoFactory.getInstance().getCusKeyTmp(context,connection,cusBase.getCusType())  添加获取当前日期的context    date = cbl.getCurDate();
   context.addDataField("CurDate", date);
  
  d..组织CUS_ID:L+部门+日期+sequence
     获取当前日期 TimeUtil.getCurDate()
    获取开户机构 context.getValue(S_organno);

  e.重置按钮
 
2.临时客户开户CUS_ID生成规则
  addCusBaseRecordOp.java: addCusBaseRecord()方法中有个参数是cusBase.setCusId(LmtKeyNoFactory.getInstance().getCusKey(context,connection,cusBase.getCusType());
    getCusKey()方法中调用template.querySequenceFromDB(context,cusType);方法,此方法根据其参数查找s_autocode中的数据

 如何实现自加一
 两种方法:
     1.数据库sequence方法,s_autocode.initcycle='9',s_autocode.sur_sernum='squence_id',s_autocode.atype='name'
     2.s_autocode.initcycle=1~8 s_autocode.sur_sernum=startnum, s_autocode.atype='name'
 几个文件:
     说明   service.xml
     定义CusSequenceTemplate.java
     使用CMISSequenceService.java

---------------------------------------------------------------------20091202-------------------------------------------------------------------

1.临时开户的具体检查,需要增加黑名单的检查


2.客户管理-对公客户-客户共享(已完成)
  a.修改客户共享查询表为cus_loan_rel
  b.修改查询客户共享及登陆客户共享页面的查询条件
  c.增加菜单:他人共享客户
  d.异步调用实现本人共享客户和他人共享客户之间的切换
  e.修改条件查询
  f.修改增加共享客户时查询的结果
  g.新增共享客户
    设计:默认读出来的应该是CUS_LOAN_REL中主办客户经理是自己的客户
    要输入参数共享给谁?
   i.收回功能


3.客户管理-对公客户-客户合并

3.客户管理-对公客户-客户移交

4.权限控制和流程控制

5.在js中使用context的值
  <%@taglib uri="/WEB-INF/ctp.tld" prefix="ctp" %>
   var userid='<ctp:text dataName="currentuserid" />';
6.在js中获取选中行的某个元素的值
  CusShareList._obj.getParamValue("main_cus_mgr");
7.<emp:pop >的使用
  写java文件去读取数据,如querySUserPopOp.java
  写jsp选取数据页面,如querySUserPop.jsp注意点"选则返回"的按钮类型及其方法
                    <emp:returnButton id="s2" label="Ñ¡Ôñ·µ»Ø"/>
        function doReturnMethod(methodName){
  var data = SUserList._obj.getSelectedData();
  if (data != null && data.length !=0) {
   if (methodName) {
   
    var parentWin = EMPTools.getWindowOpener();
    eval("parentWin."+methodName+"(data[0])");
    window.close();
   }else{
    alert("䶨Òå·µ»ØµÄº¯Êý£¬Çë¼ì²éµ¯³ö°´Å¥µÄÉèÖÃ!");
   }
  } else {
   alert('ÇëÏÈÑ¡ÔñÒ»Ìõ¼Ç¼£¡');
  }
 };

 

---------------------------------------------------------------------20091203-------------------------------------------------------------------

1.客户管理-客户共享(已完成)
  a.新增时需要修改条件
  b.收回是需要修改条件

2.客户管理-客户移交()
 

3.客户管理-主办行变更()

4.客户管理-同业客户(已完成)
  a. 无开户交易,如何跟核心关联起来(机构号,天地对接号,清算号?)
     在信贷自己定义一个规则生成一个唯一客户号,方便管理
     T+日期+9位序列号(前补零;超过9位,截取后面的9位)
     查看所有seqences
     select * from user_sequences ;
     建立
create sequence cus_same_qh
increment by 1
start with 1
nomaxvalue
nocycle
cache 10;
insert into qhxd.s_autocode values ('CusSame','ALL','9','cus_same_qh','4');

5.同业客户信息相关数据JS的验证

6.流程

7.显示用户及机构名称
  在查询的java程序中添加(main_br_id 和 main_mgr字段名称是可以变的 )

   list.add("main_br_id");
   list.add("main_mgr");

     SInfoUtils.addSOrgName(iColl, new String[] { "main_br_id" });
   SInfoUtils.addUSerName(iColl, new String[] { "main_mgr" });
   jsp页面上用
   <emp:text id="main_br_id_displayname" label="Ö÷¹Ü»ú¹¹"/>
   <emp:text id="main_mgr_displayname" label="Ö÷¹Ü¿Í»§¾­Àí" />

---------------------------------------------------------------------20091204-------------------------------------------------------------------

1.客户管理-客户移交
  申请:
     查询
     界面的资源queryCusHandoverAppList.do?CusHandoverApp.status=00带有参数
     queryCusHandoverAppOp.java
     if(status.equals("00")){
       queryData.remove("status");
          // 审批重组查询条件
     }
     and status in('00', '10', '20', '21', '22') and  handover_id=currentid
status说明:
 00-登记
10-提交
20-同意
21-撤销
22-否决
30-成功
新增申请时,状态为"00-登记"
提交申请时,状态为"10-提交"
监交人审批后,状态为20、21、22
     新增:
        getCusHandoverAppAddPage.do调用getCusHandoverAppPageOp.java 生成业务流水号 移出人机构等
    之后跳转到addCusHandoverAppRecord.jsp页面doOnLoad()函数先执行doQuery()函数即pageCusHandoverLstQuery.do调用QueryCusHandoverLstListOp.java查询移交明细(查询条件竟然是刚生成的serno,怎么可能查的出来!!);
     之后填写必要的申请信息,然后点添加移交明细或保存新增移交申请addCusHandoverLstRecordMany.do先异步调用AddCusHandoverLstRecordOp.java处理:首先在cus_handover_app表里插一条status=00的数据 ,然后按不同的移交范围(0-按客户,1-按客户经理,2-按区域)做不同的处理.然后根据移交范围调用getCusLoanRelList.do调用getCusLoanRelListOp .java查询该客户经理的信贷关系或直接返回成功,在调出的信贷关系页面(根据要共享单个one还是多个many返回不同的页面queryCusLoanRelListForHandOver.jsp或queryCusLoanRelListForHandOverMany.jsp)中选取要移交的客户,点击选中,提示是否移交,选是,异步执行addCusHandoverLstRecord.do再次调用AddCusHandoverLstRecordOp.java在获取移交客户码重新组织数据(加入客户码到business_detail中),插入移交明细(插入移交明细的前提是信贷关系返回的iColl.size>0在for循环里面,所以再第一次调用AddCusHandoverLstRecordOp.java时信贷关系的iColl=(IndexedCollection) context.getDataElement("CusLoanRelList");是空的没有查明细).
    其中的cusBaseComponent是用来判断改客户是不是有正在审批中的业务.
     其中只有按客户移交的时候客户码才来自页面,按区域和按客户经理的客户信息都是次程序中从信贷关系表中获取
     如果是业务移交就可以移交共享的客户,否则只能移交自己所属的客户,opt_cus_mgr=mainCusMgr and main_cus_mgr=mainCusMgr;
         只能查为主办机构的数据(cus_loan_rel.bank_flg=1)
         如果有业务移交的特殊处理:
    1.申请信息里面必须填写监交人
    2.移交的客户范围包括了共享客户
     提交:
    
  审批:
     仅资料移交无需审批
 cus_handover_app
  移交:
  日志:
eclipse 反编译插件
Jodeclipse 是Jode的Eclipse插件,JadClipse是Jad的Eclipse插件,它们都是非常好的反编译插件。
eclipse3.2 下载jadclipse_3.2.4插件
2.Eval 函数
功能:先解释Javascript代码,然后在执行它
用法:Eval(codeString)

 

 
3.YAHOO的Ajax工具包
Yahoo在前段时间推出了yui的ajax工具包,同时yahoo发表了一系列的ajax设计模式.
yui分为两个大类,一个是ajax组件,里面包括对底层javascript包装后的几个工具包,分别是connection,event, dom,animation,dnd.还包括一组高级的javascript控件,目前包括autocomplete,calendar, container,menu,slider,treeview.
另一类是几个很有用的几个css文件,一个是css page grids,用它可以很方便的布局你的网页。另外两个是standard css fonts和standard css reset,利用这两个css可以对字体等在不同浏览器中获得一致的效果.
yui utilities(connection manager)
Yahoo的javascript文件都有一个注释的很好的,格式化很好的版本和一个去掉注释和空格的版本,学习看源代码当然用前者,而最后在网页上使用的时候就可以选用后者。

1. connection manager
这个工具包用来管理xmlhttprequest,通过这个工具包可以查询正在执行的请求的状态,可以注册正确返回的回调函数,错误处理的回调函数,还可以根据提供的表单id方便的收集和发送表单字段。下面给出的代码是基本调用形式
var callback =
{
success: function(res) {/*success handler code*/}, //正常返回处理函数
failure: function(res) {/*failure handler code*/}, //出错返回处理函数
argument: [argument1, argument2, argument3] //可以在success函数和failure函数中访问的变量
}
var transaction = yahoo.util.connect.asyncrequest('get', surl, callback, null);
下面的表给出的是通过正确返回时res参数可以获得的属性值。
属性明 描述 tid 该http请求的事务表示 status 返回的http状态码 statustext 对应状态码的字符串表示 getresponseheader[label] 返回label名称标识的http头的值 getallresponseheader 所有的http头的字符串表示,用"/n"分隔 responsetext 返回内容的字符串表示 responsexml 返回内容的xml表示 argument 回调函数中传入的变量
错误返回时可以通过res返回的属性
属性明 描述 tid 该http请求的事务表示 status 0 statustext "communication failure" argument 回调函数中传入的变量
如果想发送的是表单数据,那么使用下面的代码就可以了:
yahoo.util.connect.setform(formid);
var cobj = yahoo.util.connect.asyncrequest('post', 'http://www.yahoo.com', callback);
查看请求是否已经处理完
var cobj = yahoo.util.connect.asyncrequest('get','http://www.yahoo.com',callback);
var callstatus = yahoo.util.connect.iscallinprogress(cobj);
超时取消请求
var cobj = yahoo.util.connect.asyncrequest('get', surl, callback);
settimeout("yahoo.util.connect.abort(cobj)",10000);
yui utilities(event)
使用event工具包可以简化浏览器端的事件驱动程序的开发,通过使用简单的接口就可以订制响应dom事件的代码,同时获得浏览器event对象的各种属性也很方便。通过event工具包我们还可以订制自己的事件,这样页面组件可以接收这些事件并做出响应。
基本的事件代码
var oelement = document.getelementbyid("elementid");//获得事件源
function fncallback(e) { alert("click"); }//定义回调函数
yahoo.util.event.addlistener(oelement, "click", fncallback);//注册回调函数,当oelement的click事件发生的时候,fncallback函数将被调用。
//或者更简单的直接传递id yahoo.util.event.addlistener("elementid", "click", fncallback);
注册响应多个页面元素的事件
var ids = ["el1′, "el2′, "el3′];//该数组中可以包括元素id,元素的引用,或者两者混合的情况。
function fncallback(e) { alert(this.id); }
yahoo.util.event.addlistener(ids, "click", fncallback);
yui的event包解决了一些比较实际的问题,第一页面元素通常在javacript注册事件代码后载入,这个时候yui会正确延迟注册,直到指 定id的元素可以访问。第二微软的ie浏览器在事件处理函数中的this指向的是window对象,而不是发生事件的那个元素,yui也会正确的传递事件 发生的源元素。第三可以把任意的对象传递给事件处理函数。
创建和使用自定义的事件
1.使用customerevent对象创建自己的事件
function testobj(name) {
this.name = name;
this.event1 = new yahoo.util.customevent("event1′, this);
}
yahoo.util.customevent = function(type, oscope);
type表示事件类型的字符串
2。注册对自定义事件的响应函数
function consumer(name, testobj) {
this.name = name;
this.testobj = testobj;
this.testobj.event1.subscribe(this.onevent1, this);
}
3。响应函数
consumer.prototype.onevent1 = function(type, args, me) {
alert(" this: " + this +
"/n this.name: " + this.name +
"/n type: " + type +
"/n args[0].data: " + args[0].data +
"/n me.name: " + me.name);
}
4。触发自定义事件
function testdata(data) {
this.data = data;
}
var t1 = new testobj("mytestobj1′);
var c1 = new consumer("mytestconsumer1′, t1);
var d1 = new testdata("mydata1′);
t1.event1.fire(d1);
yui(dom collection)
yui的dom工具包屏蔽了各种浏览器的差别,使用dom工具包可以方便的的操作页面元素,包括控制元素的坐标,以及改变元素的css风格。
获得和设置元素坐标
var pos = yahoo.util.dom.getxy('test');
yahoo.util.dom.setxy('target', pos);
设置元素的css属性
yahoo.util.dom.setstyle(['test', 'test2′], 'opacity', 0.5);
var opacity = yahoo.util.dom.getstyle('test2′, 'opacity');
获得显示当前文档的窗口的大小。
var viewport = [
yahoo.util.dom.getviewportwidth(),
yahoo.util.dom.getviewportheight()
];
获取和设置与css相关的属性
getelementbyclassname(classname,tagname,rootnode)
hasclass(element,classname)
addclass(element,classname)
removeclass(element,classname)
replaceclass(element,oldclassname,newclassname)

---------------------------------------------------------------------20091205-------------------------------------------------------------------

1.了解现有系统的工作机制及实现原理,能高质量高效率的完成自己现下工作
2.精通通用的技术及开发工具,这个必须做到,要不三年以后即使找到新工作也是个零。
  目前用到的
  oracle
  c
  java
  jsp
  js
  css
  eclipse
  unix(linux)
  English
  Jap
  Gar
3.技术以外的经验需及时总结慢慢积累,养成良好习惯,打造自己的特色。
4.坚持自己原则及风格的前提下,向外界学习,去粗取精。

5.把客户移交现有系统的处理看明白了
 

6.看客户评级的相关内容

7.emp dao 是如何取数据模型的?
  例如:
  kColl = (KeyedCollection)context.getDataElement(cusHandoverApp);
  dao.insert(kColl,connection);
  在insert方法里
  String modelId = kColl.getName();

8.客户管理-财务信息分析

9.客户开户和认定
  核心开户后经批处理插入cus_base和cus_com或cus_indiv 且状态为'99'未认定
  新增一个菜单:客户管理->客户信息维护->核心开户客户 queryCusCoreList.jsp 默认的登陆界面是查询出状态为'99'的客户码 客户名称 证件类型 证件号码
             增加:查看现有客户 客户认定 合并至客户 三个功能按钮
             查看现有客户:选中一条记录,根据该客户的证件类型和证件号码查询系统中是否已存在该客户,如果存在则给出提示
             客户认定:异步调用查询该证件类型和证件号码是否已在系统开户,如果已开户则提示做合并,若不存在,输入认定事由,指定客户经理和主办机构,把状态修改为'00',并录入客户经理,主办机构,最近修改日期等信息,并记录认定日志。
             合并至客户:选择一条记录,弹出框选择一条合并至客户,以新录的客户信息为主,插入合并申请并更新状态为成功,插入合并日志,插入合并明细信息

10.临时各户转正
   将客户状态为'00'和'10'的客户转成正式客户即'20'状态 (此种有两种情况,一种是真正意义上的临时客户(即管理新开的客户),还有一种是核心开户后认定后的草稿客户)

11.锻炼如何在逆境中成长

---------------------------------------------------------------------20091207-------------------------------------------------------------------

1.多表数据查询设想
  写sql(用UNION把几个表的结果都查出来)把数据查出来放到kColl中(每条数据一个kColl),然后把kColl放到iColl里面,然后返回给页面.
  理解kColl iColl 页面数据传输 分业机制的工作原理并运用自如
  尽量少用系统生成的类,自己写类和方法(连接数据库 执行数据库语句 返回结果 )
  胆大心细 有决断
2.继续核心开户客户的开发
  queryCusCoreList.jsp
  queryCusCoreListOp.java

3.music.aol.com
  listen.grooveshark.com
  www.1ting.com

4.使用流程

5.request对象的常用方法
(1) getParameter(String name) 一般用它读取表单中参数
(2) getProtocol() 获取客户端向服务器端传送数据所依据的协议名称。
(3)getRemoteAddr() 获取客户端的IP地址。
(4)getRemoteHost() 获取客户端的名字。
(5)getServerName() 获取服务器的名字。
(6)getServerPort() 获取服务器的端口号。
(7)getHeader()获取客户端的浏览器类型。

6.人这一辈子 不拼不知道自己有多大实力
要想活的好的话  就不能只顾着埋头干活儿 要思考 经常思考

---------------------------------------------------------------------20091208-------------------------------------------------------------------

1.歌舞青春女主角VANESSA HUDGENS的歌曲,有GOTTA GO MY OWN WAY和WHEN THERE WAS ME AND YOU
JOJO的TOO LITTLE TOO LATE
TAYLOR SWIFT的OUR SONG
SWEETBOX的歌曲(相信听团名就能知道很甜美了,所有歌曲)
ALIZEE的歌曲也很甜美MOI LOLITA
ALISON的歌曲WHEN YOU SAY NOTHING AT ALL甜到心里
MANDY MOORE的歌曲也超甜美
还有MICHELLE BRANCH的EVERYWHERE
AVRIL LAVIGNE的WHEN YOU'RE GONE
LENE MARLIN的UNFORGIVABLE SINNER
1 chocolate ice相信你第一遍听就会爱上这个声音,是那种活泼干净的女声,心情瞬间很阳光~
2 30 minutes tatu的声音算是甜吧,我非常喜欢这首歌,很另类很诡异,尤其是MV,这个组合的all the thing she said,stars都不错~
3 headstrong 当今美国超人气玉女ashley,声音真是甜美之外还带着一种别的东西,她的歌都是公主系列一样的,听听去吧~
4 come clean Hilary Duff的一首歌,她的歌都是很舒服的那种,还有fly,someone's watching over me都很不错
5 devided 我刚听完就被甜倒了,aqua的歌好像是,绝对够甜美了~
6.培养自己的气质和魅力
<object width="250" height="400"> <param name="movie" value="http://listen.grooveshark.com/widget.swf"></param> <param name="wmode" value="window"></param> <param name="allowScriptAccess" value="always"></param> <param name="flashvars" value="hostname=cowbell.grooveshark.com&widgetID=18245563&style=metal&bbg=000000&bfg=666666&bt=FFFFFF&bth=000000&pbg=FFFFFF&pbgh=666666&pfg=000000&pfgh=FFFFFF&si=FFFFFF&lbg=FFFFFF&lbgh=666666&lfg=000000&lfgh=FFFFFF&sb=FFFFFF&sbh=666666&p=0"></param> <embed src="http://listen.grooveshark.com/widget.swf" type="application/x-shockwave-flash" width="250" height="400" flashvars="hostname=cowbell.grooveshark.com&widgetID=18245563&style=metal&bbg=000000&bfg=666666&bt=FFFFFF&bth=000000&pbg=FFFFFF&pbgh=666666&pfg=000000&pfgh=FFFFFF&si=FFFFFF&lbg=FFFFFF&lbgh=666666&lfg=000000&lfgh=FFFFFF&sb=FFFFFF&sbh=666666&p=0" allowScriptAccess="always" wmode="window"></embed></object>

对项目的理解 项目架构 项目管理

认定/合并客户的日志还没有添加
临时客户转正
移植福建版本财务分析

使用流程
1.根据需求确定流程节点,岗位,流向等信息
2.绘制流程图

---------------------------------------------------------------------20091209-------------------------------------------------------------------

1.业务受理-对公部分
  涉及的表模型
      申请基础表 IQP_LOAN_APP
      申请特有表
      合同基础表
      合同特有表
  先定义好对应的表模型及申请表单和合同表单
  定义好流程
  定义好信贷产品资料
  定义好利率等信息
  产品定义
  修改申请页面
  联合查询语句

2.银团贷款
  业务受理->贷款业务->对公贷款申请->(业务品种 银团贷款 )
  银团的特殊情况:银团贷款对应的业务品种有多个 需要做的就是增加一个银团信息的维护功能
  申请特有表:IQP_SYNDCTD_INFO(银团信息表)
  建立表模型
  业务配置->配置相关信息
      产品定义:注意 申请流程  放款流程 申请对应表单  合同对应表单
  选择新增银团贷款后进入页面 再次选择贷款的业务品种
  银团的tab  queryIqpSyndctdInfoList.jsp


贷款申请基础信息IQP_LOAN_APP

3.委托贷款
  业务受理->贷款业务->对公贷款申请
  申请特有表:IQP_COM_LOAN_ENTR(委托贷款表) IqpLoanAppIqpComLoanEntr
             IQP_ENTRUST_PARTY(委托方信息表)
             IQP_PRINCIPAL_INFO(委托人信息表 对私用)
  合同对应表单:CTR_COM_LOAN_ENTR

4.法人按揭贷款
  申请特有表:IQP_COM_LOAN_MRT    IqpLoanAppIqpComLoanMrt
  合同对应表单:CTR_COM_LOAN_MRT CtrComLoanMrt
法人按揭贷款申请
serno;prd_name;cus_id;cus_name;
serno;prd_name;cus_id;cus_name;loan_form;loan_nature;apply_amount;reality_ir_y;ir_adjust_mode;repayment_mode;assure_means_main;cus_manager;apply_date;
5.房地产开发贷款
  申请特有表:IQP_COM_LOAN_RE  IqpLoanAppIqpComLoanRe
  合同对应表单:CTR_COM_LOAN_RE CtrComLoanRe

6.项目贷款
  申请特有表:IQP_COM_LOAN_PRJ  
  合同对应表单:CTR_COM_LOAN_PRJ  CtrComLoanPrj

exp:流动资金贷款
  申请特有表:IQP_COM_LOAN_WCL
  合同对应表单:CTR_COM_LOAN_WCL

6.新增业务申请流程
  queryIqpLoanAppList.do->queryIqpLoanAppList.jsp
   点击新增getIqpLoanAppAddPage.do->addComIqpLoanAppRecord.jsp--onLoad()-->poppagePrdBasicinfoQuery.do(获取产品的pop列表 prd_type=01 对公)
  点击确定addIqpLoanAppRecord.do会先保存基础信息(iqp_loan_app,里面有app_form字段,对应了该产品定义中的申请表单),并在app_form表里增加一条记录,字段只有刚生成的serno->resultTemp.jsp?---onLoad()-->getIqpLoanAppUpdatePage.do--->QueryIqpLoanAppDetailOp.java(获取app_form等详细信息,并组装联合表查询IqpLoanApp+app_form)->iqpLoanAppComLoanWclSTab.jsp(根据不同的参数载入不同的jsp如iqpLoanAppIqpComLoanEntrDetail.jsp,选取不同的标签页),在贷款基本信息页点击保存,先执行iqpCheckDetail.do然后执行updateIqpLoanAppAppFormRecord.do

 

---------------------------------------------------------------------20091210-------------------------------------------------------------------

1.愛しています
2.贷款起始日和贷款到期日的校验有问题tableModel没有取到值
  按揭还款的还款计划生成queryIqpRepayPlanList.do
    按揭贷款房地产开发项目的市场合作标志
  项目贷款的授信额度使用标志
------------------------------------------------------
Oracle分两大块,一块是开发,一块是管理。

开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭;管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。因为数据库管理的责任重大,很少公司愿意请一个刚刚接触Oracle的人去管理数据库。

对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。

二、学习方法

我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记。看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。

学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了。很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。

由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。 当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。

下面我讲下,我处理问题的过程。首先要知道Oracle的官方网站:www.oracle.com。这里有Oracle的各种版本的数据库、应用工具和权威的官方文档。

其次,还要知道http://metalink.Oracle.com/。这里是买了Oracle服务或是Oracle的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。

然后就是一些著名网站:asktom.Oracle.com www.orafaq.net, www.dbazine.com。这里有很多遇到问题了的经验之谈。

如果是概念上的问题,第一时间可以找tahiti.Oracle.com,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。

三、Oracle的体系

Oracle的体系很庞大,要学习它,首先要了解Oracle的框架。在这里,简要的讲一下Oracle的架构,让初学者对Oracle有一个整体的认识。

1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)

控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件。

数据文件:存储数据的文件。

重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件。 参数文件:定义Oracle例程的特性,例如它包含调整SGA中一些内存结构大小的参数。

归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

密码文件:认证哪些用户有权限启动和关闭Oracle例程。

2、逻辑结构(表空间、段、区、块)

表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。

段:是对象在数据库中占用的空间。

区:是为数据一次性预留的一个较大的存储空间。

块:Oracle最基本的存储单位,在建立数据库的时候指定。

3、内存分配(SGA和PGA)

SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle服务器的数据和控制信息,它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反PGA是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。

4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)

数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件。

日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件。

系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复。

进程监控:负责在一个Oracle进程失败时清理资源。

检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。 归档进程:在每次日志切换时把已满的日志组进行备份或归档。

服务进程:用户进程服务。

用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

5、Oracle例程

Oracle 例程由SGA内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。

6、SCN(System Change Number)

系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

四、深入学习

管理:可以考OCP证书,对Oracle先有一个系统的学习,然后看Oracle Concepts、Oracle online document,对Oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。

开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。

介绍几个网站

http://tahiti.Oracle.com Oracle的官方文档

http://metalink.Oracle.com/Oracle的技术支持网站。需要购买Oracle服务才能有一个帐号,才能登陆,有大量的Knowledge Base,大量问题解决经验。

http://www.Oracle.com Oracle的官方网站,可以在这里down Oracle的软件、官方文档和获得最新的消息

http://www.dbazine.com/Oracle的杂志

---------------------------------------------------------------------20091211-------------------------------------------------------------------

1.oracle必须启动的程序
  OracleOraDb10g_home1TNSListener
  OracleServiceXXXX(XXXX为实例名) 
2.

---------------------------------------------------------------------20091212-------------------------------------------------------------------

0Cent -- In da club

2Pac feat Elton John -- Ghetto Gospel

Akon -- Mr.Lonely

B.I.G.-- Big poppa

Bow Wow -- Let me hold you

Chamillionaire -- Ridin`

Eminem -- Lose yourself

Fort Minor feat Styles of beyond -- Remember the name

Jay-Z feat Beyonce -- Me and my girlfriend

Jibbs -- Chain hang low

Kanye West -- Stronger

Lloyd banks feat Eminem,50Cent,Nate dogg -- Warrior Part2

P.Diddy feat Keyshia Cole -- Last night

T.I.-- You know what it is

Twista feat Faith Evans -- Hop

Trick Daddy feat Baby -- Tuck ya ice

Soulja Boy -- Crank That

每人选了一首..Eminem,50cent,T.I都很不错~~~~

1.Jay-Z
众所周知的,Jay-Z退休的诺言肯定持续不了多久,终于在2006年,这位老将发行了他的回归专辑。
2.Nas
今年最让人感到惊讶的消息就是Nas与Jay-Z这对老冤家重归于好,并且Nas的新专辑也由Jay-Z所管理的Def Jam发行。
3.Lupe Fiasco
Fiasco最先被人所熟识是在2005年Kayne West和Fort Minor的专辑中,在2006年这位来自芝加哥的小伙子推出了他的第一张个人专辑,也因此轰动了整个说唱界。
4.Apathy
一位才华横溢的白人说唱歌手,被人誉为"Battle rapper",2006年发行了他的个人首张专辑Eastern Philosophy,目前他所欠缺的只是一个成为超级明星的机遇。
5.Black Thought
The Roots在2006年凭借着新专辑Game Theory又创造了一个神话,这与他们的MC Black Thought的出色表现是密不可分的。他是这个时代的观察者,社会上任何的现象都逃不过他压迫性的Flow。
6.Clipse(Malice and Pusha-T)
人们早已经厌烦了说唱明星们在歌词中对毒品与暴力的描述,但是人们却没有厌烦Clipse的这两个兄弟。虽然他们也在不厌其烦的描述着这些东西,可是他们却拥有着很多人所不具备的诙谐与智慧。
7.The Game
The Game是西海岸的希望,也是为数不多的几个能让听众聚精会神的听他唱出来的每一个单词的说唱歌手,他的歌词有着无限的吸引力。
8.T.I.
没有哪个说唱歌手可以比T.I.更酷,虽然他没有发人深省的歌词,但他从骨子里透出的时髦气质却是主流所不可抗拒的,难怪有些人说他是南部之王。
9.Obie Trice
人们在Obie的2006年专辑Second Round's on Me中看到了他的飞跃,现在的他已经不是当初那个炒作出来的说唱明星了,而是一位拥有惊人写作能力和复杂的说唱技巧的天王。
10.E-40
作为西海岸Bay Area Hyphy的一位代言人,E-40凭着他2006年的新专辑My Ghetto Report Card迎来了他事业上的第二春,一个已经年过50的人还能创造出如此经典的专辑,实属难能可贵。

1.TATU的,30 minutes2.jtl---a better day3.tata young----cinderella4.it's only the fairy tale5.nini zahia6.I'm Gonna Getcha Good!--Shania Twain 7.tatu----show me love8.imagine me without you(Jaci Velasquez)9. my love 10.艾薇儿-When You're Gone11.西城男孩-My Love12.Groove Coverage13.另外王若琳的英语歌也很有味道,虽然是台湾人,但是英语很纯真.推荐他的let's start from you lost in paradise 14.a place nearby--lene marlin 透明,干净,忧伤15.river flows in you电影《暮光之城》中的钢琴插曲,安静的去听,很有感觉,网上有配唱版的,个人觉得不如纯钢琴曲,听听吧,很不错。16.love in December安静一点

---------------------------------------------------------------------20091213-------------------------------------------------------------------

1.业务申请的实现机制
  有部门字段保存不上:
      法人按揭的开发资质
      房地产开发项的开发资质 地上面积 建设开工时间 财务费用
      项目贷款的授信台帐要维护 lmt_item_cfg这帐表 很多字段都保存不上

2.java techlonogy
  Reflection
  introspection
  clone
  class(Object)

3.低调 博学

---------------------------------------------------------------------20091214-------------------------------------------------------------------

秋水眼波横,飞花亦溅泪

年二十又三,而不知孔孟之言,不详老庄之道,何至五千年之灿?汗颜于世,愧哉,愧哉。觅良师益友,勤学之,勤学之……

1. 项目贷款的 授信信息
   IqpLoanAppIqpComLoanPrj.limit_ma_no(授信协议编号) pop的url会在 getUrlToNo(IqpLoanAppIqpComLoanPrj);中被重新赋值,queryLmtContForLoanPopList.do
      select * from Lmt_Cont where  cus_id=? and crd_lmt_type=? andLMT_STATE='01' and sdb_flg<>'1' and EXPI_DATE>sys_date;
返回queryLmtContPopForLoanList.jsp选取一条记录checkLmtCont()先检查CheckIqpLoanLmtContOp.java检查
select * from lmt_cont ;--查询授信额度
select crd_item_id from lmt_item_cfg where biz_type=? and guar_type=?;--
select * from lmt_cont_detail where lmt_serno=? and crd_lmt_type=? and crd_item_id=?;
2.国际贸易
 货押融资申请基本信息 IQP_TF_GC
 出口发票融资基本信息 IQP_TF_OINVF
 出口保理项下融资申请基本信息 IQP_TF_OIFF
 对外担保申请基本信息 IQP_TF_CVRG
3.表外业务
 银行承兑汇票申请 IQP_ACCP_APP CTR_ACCP_CONT  IqpAccpApp CtrAccpCont
 银行承兑汇票明细 IQP_ACCP_BILL
 贸易合同信息  IQP_TRADE_INFO 
 发票信息表  IQP_NVOICE 
 票据只贴  IQP_DISC CTR_DISC_CONT    CtrDiscCont
 票据转帖转入  IQP_REDISCIN CTR_REDISCIN_CIN   CtrRediscinCont
 票据转帖转出  IQP_REDISCOUT CTR_REDISCOUT_CONT IqpRediscout CtrRediscoutCont
 国内保理  IQP_FACT CTR_FACTORING  IqpFact  CtrFactoring
 应收账款信息  IQP_FACT_RECE_LIST   IqpFactReceList
 保函申请  IQP_CVRG_APP CTR_CVRG_CONT  IqpCvrgApp CtrCvrgCont
 贷款承诺业务申请 IQP_LLOC_APP CTR_LLOC_CONT  IqpLlocApp CtrLlocCont
 国内信用证申请  IQP_LLOC_APP CTR_LLOC_CONT  IqpLlocApp CtrLlocCont
 信贷资产转入  IQP_CAT_IN CTR_CAT_IN  IqpCatIn CtrCatinCont
 信贷资产传出  IQP_CAT_OUT CTR_CATOUT_CONT IqpCatOut CtrCatoutCont
 对外担保  IQP_GRT  CTR_GRT   IqpGrt  CtrGrt
 银行信贷证明  IQP_ARG_APP CTR_ARG_CONT  IqpArgApp CtrArgCont

<Context docBase="cmis-main" path="/cmis-main" reloadable="true" source="org.eclipse.jst.j2ee.server:cmis-main">
  <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="20" maxIdle="10" maxWait="-1" name="WFDataSource" password="qhxd" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.1.2:1521:test" username="qhxd"/>
  </Context>

---------------------------------------------------------------------20091215-------------------------------------------------------------------

保函:
 getIqpCvrgAppAddPage.do->addIqpCvrgAppRecord.jsp->addIqpCvrgAppRecord.do->resultCvrgTemp.jsp->(onload)getIqpCvrgAppUpdatePage.do->QueryIqpCvrgAppDetailOp.java->iqpCvrgAppTab.jsp->(include)iqpCvrgAppDetail.jsp->

 

1.树形POP
  url="showDicTree.do?dicTreeTypeId=XXX_XX_XXX"->showTreeDic.jsp->(onload)getDicJSONTree.do->ReturnDataView.java
  d_treedic中插入数据

2.理解抽象类 接口

3.流程中是如何根据业务申请中的数据给合同数据赋值

---------------------------------------------------------------------20091216-------------------------------------------------------------------

1.流程中如何生成合同的
  获取IqpInterface接口
  processCase.getCaseNo()获取申请流水号
  getIqpLoanAppHamp(processCase.getCaseNo())获取申请表从表信息
  获取CtrContImpl接口
  interfaceOfProcessWithLoanApp(loan, param,processCase);方法循环从申请表中取字段赋值给合同表

2.保函流程
  IqpCvrgApp
<![CDATA[
if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     loan = iqpInterface.getIqpCvrgAppHamp(processCase
      .getCaseNo());
     LOG.info("IqpInterface executed successfully, using CtrContImpl");
     ctrCont = runner.getInterface("CtrContImpl");
     ctrCont.interfaceOfProcessWithLoanApp(loan, param,processCase);
     LOG.info("Interface executed successfully");
     }
    ]]>


3.www.songtaste.com

4.银承流程
IqpAccpApp
<![CDATA[
    if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     loan = iqpInterface.getIqpAccpAppHamp(processCase
      .getCaseNo());
     LOG.info("IqpInterface executed successfully, using CtrContImpl");
     ctrCont = runner.getInterface("CtrContImpl");
     ctrCont.interfaceOfProcessWithLoanApp(loan, param,processCase);
     LOG.info("Interface executed successfully");
     }
    ]]> 

5.贴现流程
<![CDATA[
    if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     loan = iqpInterface.getIqpDiscHamp(processCase
      .getCaseNo());
     LOG.info("IqpInterface executed successfully, using CtrContImpl");
     ctrCont = runner.getInterface("CtrContImpl");
     ctrCont.interfaceOfProcessWithLoanApp(loan, param,processCase);
     LOG.info("Interface executed successfully");
     }
    ]]>
6.转贴现买入
<![CDATA[
    if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     loan = iqpInterface.getIqpRediscinHamp(processCase
      .getCaseNo());
     LOG.info("IqpInterface executed successfully, using CtrContImpl");
     ctrCont = runner.getInterface("CtrContImpl");
     ctrCont.interfaceOfProcessWithLoanApp(loan, param,processCase);
     LOG.info("Interface executed successfully");
     }
    ]]>
7.转贴现转出
<![CDATA[
    if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     loan = iqpInterface.getIqpRediscoutHamp(processCase
      .getCaseNo());
     LOG.info("IqpInterface executed successfully, using CtrContImpl");
     ctrCont = runner.getInterface("CtrContImpl");
     ctrCont.interfaceOfProcessWithLoanApp(loan, param,processCase);
     LOG.info("Interface executed successfully");
     }
    ]]>
8.信用证
<![CDATA[
    if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     iqpInterface.proLocContInfo(processCase
      .getCaseNo());
     
     }
    ]]>

---------------------------------------------------------------------20091217-------------------------------------------------------------------

1.机构组配置->规则维护
  queryCfgOrgGroupList.do->QueryCfgOrgGroupListOp.java->queryCfgOrgGroupList.jsp
    queryCfgBizRuleList.do->QueryCfgBizRuleListOp.java->queryCfgBizRuleList.jsp
    getCfgBizRuleAddPage.do->addCfgBizRuleRecord.jsp->
2.

---------------------------------------------------------------------20091218-------------------------------------------------------------------

1.银承的表模型设计
  IqpTradeInfo 是 IqpAccpApp的从表 所以插入IqpAccpApp时必须插入IqpTradeInfo
  IqpAccpBill和iqpNvoice 是IqpAccpApp的子表

重新生成对公联合表

2.alter table qhxd.iqp_trade_info drop constraint PK_IQP_TRADE_INFO cascade;
alter table qhxd.iqp_trade_info add constraint  PK_IQP_TRADE_INFO primary key(serno,trade_cont_due_no);

3.
Truncate Table table_name;
要是没有数据的话直接用以下语句即可

alter   table  tb_test  modify permile  number(5,2);

但是有数据的话 就不能用上面方法了,

alter table tb_test add permile_temp number(5,2)

update tb_test set  permile_temp=permile;

alter table drop column permile;

alter  table test rename column  permile_temp to permile;

这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响

以下方法是比较好的方法

不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次

如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做

要是不停机的话 ,也可以采用在线重定义方式来做

以下是脚本:

alter table tb_test  add permile_temp number;
-- Add/modify columns
alter table  tb_test  modify PERMILE null;
update  tb_test  set permile_temp=permile,permile=null;
commit;
alter table  tb_test  modify permile number(5,2);
update  tb_test  set permile=permile_temp,permile_temp=null;
commit;
alter table  tb_test  drop column permile_temp;
alter table  tb_test  modify PERMILE not null;
select * from  tb_test ;

---------------------------------------------------------------------20091219-------------------------------------------------------------------

1.国内保理

---------------------------------------------------------------------20091221-------------------------------------------------------------------

1.Love a person in my own way.
2.Do not relay on others. Trust yourself.Create My Own Way.
3.In My Name.
4.不怕初期的失败和艰辛,坚持到底,相信必然会出成果。Oath on behalf of the sun god

---------------------------------------------------------------------20091222-------------------------------------------------------------------

1.生成合同
  IqpInterface.java接口
  IqpInstance.java实现
  调用生成申请表数据hashmap
  合同接口
  合同接口实现类
  生成合同

2.生成保函合同
  修改CtrInterfaceAgent.java文件
  cnContNo = sequenceService.getYZCnSequence("Û´Òøº¯×Ö", orgId, context, this.getConnection());
   (编写公用的sequence生成serno的类)

3.深入理解eval
(1)介绍javascript中的eval函数的用法
(2)如何在函数内执行全局代码
@先来说eval的用法,内容比较简单,熟悉的可以跳过。
eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。
需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下:
var code1='"a" + 2';    //表达式
var code2='{a:2}';      //语句
alert(eval(code1));     //->'a2'
alert(eval(code2));     //->undefined
alert(eval('(' + code2 + ')'));    //->[object Object]
        可以看到,对于对象声明语句来说,仅仅是执行,并不能返回值。为了返回常用的"{}"这样的对象声明语句,必须用括号括住,以将其转换为表达式,才能返回其值。这也是使用JSON来进行Ajax开发的基本原理之一。在例子中可以清楚的看到,第二个alert语句输出的是undefined,而第三个加了括号后输出的是语句表示的对象。
            @现在来说本文的重点,如何在函数内执行全局代码。为了说明这个问题,先看一个例子:
var s='global';    //定义一个全局变量
function demo1(){
    eval('var s="local"');
}
demo1();
alert(s);    //->global
         很好理解,上面的demo1函数等价于:function demo1(){var s='local';},其中定义了一个局部变量s。
        所以最后的输出是global并不是什么奇怪的事情,毕竟大家都能很清楚的区分局部变量和全局变量。
        仔细体会一下,可以发现eval函数的特点,它总是在调用它的上下文变量空间(也称为:包,closure)内执行,无论是变量定义还是函数定义都是如此,所以如下的代码会产生函数未定义的错误:
var s='function test(){return 1;}';     //一个函数定义语句
function demo2(){
    eval(s);
}
demo2();
alert(test());    //->error:test is not defined
        这是因为test函数在局部空间定义,demo2函数内可以访问到,外面就访问不到了。

         而在实际的Ajax开发中,有时我们需要从服务器动态获取代码来执行,以减轻一次载入代码过多的问题,或者是一些代码是通过Javascript自身生成的,希望用eval函数来使其执行。
但这样的动态获取代码的工作一般在函数内完成,比如:
function loadCode(){
    var code=getCode();
    eval(code);
}
       可见eval不可能在全局空间内执行,这就给开发带来了不少问题,也看到过很多人为此郁闷。
        不过现在偶终于找到了解决办法,嘿嘿,可以同时兼容IE和Firefox,方法如下:
var X2={}    //my namespace:)
X2.Eval=function(code){
 if(!!(window.attachEvent && !window.opera)){
  //ie
  execScript(code);
 }else{
  //not ie
  window.eval(code);
 }
}
        现在如果要想在函数内定义全局代码,就可以通过调用X2.Eval(code)方法,一个例子如下:
var s='global';
function demo3(){
 X2.Eval('var s="local"');
}
demo3();
alert(s); //->'local'
        可见,在demo3函数内重新定义了全局变量s="local"。
        需要注意的是X2.Eval并不返回值,如果要进行表达式的求值,还是用系统的eval函数。X2.Eval设计为仅做全局代码定义用。
        其实看到这里,或许有人感觉问题也太容易解决了点,呵呵,但发现这个办法倒是需要些运气和技巧的:
(1)对于IE浏览器,默认已经提供了这样的函数:execScript,用于在全局空间执行代码,只是知道的人还不多。
(2)对于Firefox浏览器,直接调用eval函数,则在调用者的空间执行;如果调用       window.eval则在全局空间执行。这个知道的人估计就更少了。毕竟alert(eval==window.eval)返回true!
         Firefox的eval函数的特点的确是很令人奇怪的,但从javascript规范中倒也能找到其来源:
If value of the eval property is used in any way other than a direct call (that is, other than by the explicit use of its
name as an Identifier which is the MemberExpression in a CallExpression), or if the eval property is assigned to,
an EvalError exception may be thrown.
      意思大概就是说eval函数的执行是和调用者相关的,但并没有说其执行上下文的问题。所以IE和Firefox孰是孰非也就很难说了,大家知道解决办法就好。

---------------------------------------------------------------------20091223-------------------------------------------------------------------

:/Program Files/Microsoft Visual Studio/Common/Tools/WinNT;D:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin;D:/Program Files/Microsoft Visual Studio/Common/Tools;D:/Program Files/Microsoft Visual Studio/VC98/bin;C:/Program Files/IDM Computer Solutions/UltraEdit/;%ANT_HOME%/bin

%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;%JAVA_HOME%/bin;D:/Java/jre1.6.0_02/bin;D:/Oracle/product/10.1.0/Client_1/bin;D:/Oracle/product/10.1.0/Client_1/jre/1.4.2/bin/client;D:/Oracle/product/10.1.0/Client_1/jre/1.4.2/bin;D:/Program Files/TortoiseSVN/bin;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/strawberry/c/bin;C:/strawberry/perl/bin;D:/oracle/product/10.1.0/Db_1/bin;D:/oracle/product/10.1.0/Db_1/jre/1.4.2/bin/client;D:/oracle/product/10.1.0/Db_1/jre/1.4.2/bin;D:/Program Files/QuickTime/QTSystem/;%ANT_HOME%/bin;D:/Ruby19/bin;D:/omniORB-4.1.3/bin/x86_win32;D:/apache-maven-2.0.10/bin;

系统环境变量是所有用户共享的 用户环境变量是用户特有的 有些只能设置成系统环境变量才能生效 例如apche_ant的 ant_home和path

执行力

看到周围的人陆陆续续的买了房有些许的着急

 


新写一个流程生成合同的类的步骤
1.找到相应的包例如package com.yucheng.cmis.iqp.app.component;
        package com.yucheng.cmis.iqp.app.agent;
    增加相应的componet和agent例如:IqpLlocAppComponent,IqpLlocAppAgent
2.配置相应的component找到iqp_cfg.xml增加两条记录例如
 <COMPONENT id="IqpLlocApp" describe="´û¿î³ÐŵÉêÇë" comproperty="">com.yucheng.cmis.iqp.app.component.IqpLlocAppComponent</COMPONENT>
 <AGENT id="IqpLlocApp" describe="´û¿î³ÐŵÉêÇë" comproperty="">com.yucheng.cmis.iqp.app.agent.IqpLlocAppAgent</AGENT>
 
3.在接口类IqpInterface.java 中增加两个方法申明 例如
 public IqpLlocApp getIqpLlocApp(String serno) throws EMPException;
 public HashMap getIqpLlocAppHamp(String serno) throws EMPException;
4.在对应的实现类IqpInstance.java中增加这两个方法的实现
(当然3,4步也可以写自己的interface和instance)
5.找到iqp_cfg.xml如果有就无需修改,如果没有增加一条记录
<INTERFACE id="IqpInterface" describe="贷前未流程" comproperty="">com.yucheng.cmis.iqpinterface.IqpInstance</INTERFACE>
6.增加合同拷贝源码,找到
  CtrContImpl.java
     增加一个分支例如:
else if("IqpLlocApp".equals(mainDomainName)){
             ciAgent.copyAppInfoToCtrLlocCont(appInfoMap,resultMap,pCase);
            }
7.实现合同拷贝类,找到
CtrInterfaceAgent.java
增加实现类例如:
public void copyAppInfoToCtrLlocCont(Map<String, Object> appInfoMap,Map<String,String> resultMap,ProcessCase pCase)throws ComponentException{
...
...
}
这个在流程biz文件中相对应即可
   <!-- ¶¯Ì¬×é¼þµ÷Óà engineName¿ÉÑ¡£¬Ä¬ÈÏΪgroovy -->
   <event event="CompleteProcessEvent" handler="dymanicEmp">
    <para key="engineName">groovy</para>
    <para key="afterScript"><![CDATA[
    if(approveResult=='1'){
     LOG.info("using IqpInterface");
     iqpInterface = runner.getInterface("IqpInterface");
     loan = iqpInterface.getIqpLlocAppHamp(processCase
      .getCaseNo());
     LOG.info("IqpInterface executed successfully, using CtrContImpl");
     ctrCont = runner.getInterface("CtrContImpl");
     ctrCont.interfaceOfProcessWithLoanApp(loan, param,processCase);
     LOG.info("Interface executed successfully");
     }
    ]]>
    </para>
   </event>

---------------------------------------------------------------------20091224-------------------------------------------------------------------

1.资产转让

2.转贴现转入
  queryIqpRediscinList.do->queryIqpRediscinList.jsp->getIqpRediscinAddPage.do->addIqpRediscinRecord.jsp
    买入批此号queryIqpBatchPopList.do次表中的数据是从什么地方来的呢?票据暂存?

---------------------------------------------------------------------20091225-------------------------------------------------------------------

1.To Be Perfect In Everything.

2.转贴现转出
  批次暂存及其明细
  iqp_batch
  iqp_batch_bill_lst

3.资产转让转出的明细要从acc_loan中导入
 
4.groove
  ruby
  pathy

---------------------------------------------------------------------20091226-------------------------------------------------------------------

   <transition dest="Out" condition="($retValue='Out')"/>

---------------------------------------------------------------------20091228-------------------------------------------------------------------

WFIServlet.java流程
andromda 
http://coffeejp.com

---------------------------------------------------------------------20091229-------------------------------------------------------------------

http://www.gamersky.com/news/200809/125800.shtml

银承
国内保理
贴现
等有明细的tab页在增加 删除 产看 修改后再返回页面时如何把该次申请的serno条件加上?

xml中使用转义字符
?--%3F
"--%22

function asyncFormSubmit(){
  
  var handleSuccess = function(o) {
   
   if (o.responseText !== undefined) {
    
    try {
     var jsonstr = eval("(" + o.responseText + ")");

    } catch (e) {
     alert("Parse jsonstr define error!" + e.message);
     //document.write(o.responseText);
     return;
    }
    var operFlag = jsonstr.operFlag;
    if(operFlag=='1'){ 
             alert('±£´æ³É¹¦!');
             if(flag=='FW'){
     dofw();
     }
    }
    
   } 
  };
  var handleFailure = function(o) {
   alert("±£´æʧ°Ü!");
  };
  var callback = {
   success :handleSuccess,
   failure :handleFailure
  };

  
       
  var form = document.getElementById("submitForm");
  form.action="updateIqpFactRecord.do";
  //id2Form(form,'modelId',tableModelId);
  var postData = YAHOO.util.Connect.setForm(form); 
  var obj1 = YAHOO.util.Connect.asyncRequest('POST',form.action, callback,postData)


 }

IqpDiscBillList
票据只贴明细表
draft_no[desc];serno[desc];
serno[desc];draft_no[desc];
draft_no;bill_issue;bill_amount;bill_issuing_date;bill_due_day;pre_due_date;adjust_day;dir_pre;

贴现金额=票面金额-贴现利息
贴现利息=票面金额*贴现率*期限

---------------------------------------------------------------------20091230-------------------------------------------------------------------

今年23了 还一事无成一无所有 郁闷中

---------------------------------------------------------------------20091231-------------------------------------------------------------------

真的是一事无成,一无所有吗?为什么我会感觉如此疲惫乏力?要尝试着去成功的完成一件事啊。
人际关系一塌糊涂
自己喜欢的东西一团糟
工作技能很弱
没有成功的完美做完成过哪怕是一件事
那就从自学日语开始慢慢培养自己的自信和能力
从玩游戏辅助到核心到挑大梁到领导队友逆转开始
切记着急烦躁郁闷是没有用的要自信开朗的去夯实自己

流程生成合同时的copy

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 游戏压缩出现未知错误或损坏怎么办 百度云里的压缩包解压后损坏怎么办 联创打印时显示压缩文件失败怎么办 电脑的软件打开出现未知格式怎么办 图片只突出人物边上全黑怎么办 合金机兵存档密码忘了怎么办 手机网页验证码无法加载插件怎么办 绝地求生次激战场机型不支持怎么办 木茷生存中文版安装包损坏了怎么办 手机下载软件显示安装包损坏怎么办 不小心把qq图片删了怎么办 奶水不足宝宝不好好吸奶怎么办 膀胱切除前列腺切除阴茎不硬怎么办 小孩的睾丸睾丸碰肿了怎么办 怎么判断小孩子的睾丸没下来怎么办 怀孕39周腰酸屁股酸疼该怎么办 我儿子18岁睾丸筋鼓起来怎么办 去医院检查说精子跑的慢怎么办 多囊卵巢综合症引起屁股增大怎么办 蚊子咬了肿了挠破了流水怎么办 血糖高引发的睾丸一直烂怎么办? 被洪水淹过的猪后期怎么办 做睾丸阴囊彩超阴茎突然勃起怎么办 阴茎冠状沟皮肤感染总不愈合怎么办 不小心咬到孩子破皮了怎么办 小孩子不小心碰到脸黑了一块怎么办 眼睛不小心碰到了里面红了怎么办 八个月宝宝睾丸还沒掉下来怎么办 孩子背部皮肤有一块皮肤很脏怎么办 洗浴种心搓背老板不给发工资怎么办 半个月小鸡屁骨下垂眼睛紧闭怎么办 在学校走廊把老师撞倒了怎么办 裤衩给孩子买的有点肥怎么办 到交警队立案后医疗费没了怎么办 交警扣车车里的贵重东西没了怎么办 睾丸内囊肿割了又长怎么办 我把别人的卵子踢碎了怎么办 两岁宝宝不小心被猫抓出血怎么办 两岁宝宝小蛋蛋肿了怎么办 吃大胺片过敏蛋皮又痛又痒怎么办 刚出生二十天宝宝蛋蛋有疝气怎么办