1、processFormRequest不能更改webBean的属性
2、row.setNewRowState(Row.STATUS_NEW/STATUS_INITIALIZED);
两种状态的区别:
a.STATUS_NEW 会对新增的行进行有效的验证,如有必填项,若未填写,则新增失败,而 STATUS_INITIALIZED 不会进行验证
b.在新增后设置STATUS_INITIALIZED状态,表示新增行处于脱管状态,不参与事务提交,不参与验证,
直到页面进行更新,然后OA框架自动把状态设回为STATUS_NEW,以重新参与事物和验证
对VO增加语句为:
EmployeesVOImpl vo = (EmployeesVOImpl)getEmployeesVO1();//获取VOif (!vo.isPreparedForExecution())//判断是否已经执行
{
vo.executeQuery();//首先必须执行VO
}
Row row = vo.createRow();//创建一个新行
row.setNewRowState(Row.STATUS_NEW); //给创建的新行赋类型
vo.insertRow(row);//将新创建的行加入到VO里
//现在的vo(缓存中的数据),状态是持久状态(提交后直接保存至数据库)
新增的列一般没有删除图标,需要在VO里的删除图标加一个默认值,因为只有执行查询语句才会给删除
列赋值或在createRow();后设置值row.setAttribute("deleteFlag",true);
对VO删除语句为:
1)、得到row:Rowrow = (XXXVORowImpl)deleteIter.getRowAtRangeIndex(i);
或Row[] rows = vo.getFilteredRows("OutPlanDetId", detailId);//rows[i]
2)删除并其提交
row.remove();
getTransaction().commit();
3、item中的disable的属性设置true
界面不能修改,在代码也获得不到值(pageContext.getParameter("techTrialDate");),获取不到值,只能抓取标签
4、隐藏LOV及下拉框对应的Value值的控件
这种设置方法是不形成html标签,因此也无法获取input内的value,所以要在PG里设置CSS属性或者设置item style为formvalue
OAMessageTextInputBean sAppPropCodeValue =(OAMessageTextInputBean)webBean.findChildRecursive("SAppPropCodeValue");
sAppPropCodeValue.setRendered(false);
5、命名规范:cux.oracle.apps.inv001(这个是需求上的缩写).***
前面加INV,是因为在运行的时候,会去数据库中查找对应的应用模块INV6、table每个字段必须有vo映射,控件有个required设置为yes表示为必填项
7、LOV常用的三个事件:lovPrepare、lovFilter、lovUpdate
lovPrepare:点击查询图标(手电筒)触发事件(通常这里传入客户过滤条件的参数值)lovFilter:点击弹出页面中的开始按钮触发事件,因此通常在这里加客户过滤条件。
lovUpdate:选择查询结果数据返回到 主Page页面后触发
String event = pageContext.getParameter("event");
if (pageContext.isLov