/*OAF控件及常见问题使用
OAF 东方瀚海
http://fccjxxw.com/m/b071defc4afe04a1a8ede1b4.html**/
点击此页面传一个值,并且此值会一直有效做法
参考博客:http://hutianci.iteye.com/blog/1015925
(1)在前台第一次进页面初始化时存值获取[在控件formValue存执]*/
OAFormValueBean oucdValue =
(OAFormValueBean)webBean.findChildRecursive("oucd");
oucdValue.setValue(pageContext, oucd);
/*(2)在后台第一次进页面初始化时存值获取:TransientValue是支持久化在本地JVM,
不会跨JVM持久化或Servlet Session范围保存。当root appliction module被回收
时,TransientValue会丢失*/
pageContext.putTransactionTransientValue("oucdValue",oucd);
String oucdValue =pageContext.getTransactionTransientValue("oucdValue").toString();
(3)设置全局变量(在类下设置)
--------------------------下拉框、LOV、隐藏-----------------------------
1、下拉框绑定事件(可直接在下拉框控件下绑定事件)
if ("changeList".equals(event)) {
OAMessageChoiceBean totalInv =
(OAMessageChoiceBean)webBean.findChildRecursive("totalInv");
String selectValue = totalInv.getSelectionValue(pageContext);
Serializable[] parameters = { selectValue };
am.invokeMethod("handleListChangeEvent", parameters);
}
//Lov绑定事件点击手电筒 触发 lovPrepare 事件
//lovValidate手动修改Lov值时(点击别处时)触发事件
//lovUpdate从选择页面回主页面时触发事件
if ("lovUpdate".equals(event)) {
String lovInputSourceId =
pageContext.getParameter(SOURCE_PARAM); //ID获取当前点击Lovinput控件的id
if("categoryLovInput".equals(lovInputSourceId)) {
......
}
}
if ("lovPrepare".equals(event)) {
// txtSearch 为 LovInput 的条件框
OAFormValueBean txtSearch =
(OAFormValueBean)webBean.findChildRecursive("category");
// 设置 名称为 categoryClass 的 AM 参数 用于 传递到 LovInput的 page 页面中
((OADBTransaction)am.getTransaction()).putTransientValue("category",
txtSearch.getText(pageContext));
}
//在 LovInput Page 的CO 中processRequest 添加
//获取刚刚从主页面设置的 参数
String txtSearch =
(String)pageContext.getTransactionTransientValue("category");
以类别和等级为例:其中只要类别为Lov时,可以在类别lovMapping下的lovMap对应
LOV Region Item设置值为:ParentFlexValueLow,
Criteria Item值设置为:对类别Id,
设置Programmatic Query设置为:True
2、hideShow控件控制:设置其展示和隐藏功能
OADefaultHideShowBean hideShow1 =
(OADefaultHideShowBean)webBean.findChildRecursive("hideShow1");
hideShow1.setDefaultDisclosed(pageContext,false);
(如果是利用其他控件进行控制,则需要进行刷新页面)
注意:此处不是OAHideShowBean类、对应属性设置也不是setDisclosed
//动态控件值的获取(控件属性动态时)
String[] departs = {"departmentCho"};
HashMap dpts =CustomSearchUtil.getBeanValues(pageContext,webBean,departs);
String departments = dpts.get("departmentCho")+"";
3、控件
public static HashMap getBeanValues(OAPageContext pageContext, OAWebBean webBean,
String[] strWebBeanNames)
{
HashMap searchMap = new HashMap();
if (strWebBeanNames != null)
{
OAWebBean itemWebBean =null;
for (int i = 0; i <strWebBeanNames.length; i++)
{
//Search for Bean
itemWebBean =webBean.findChildRecursive(strWebBeanNames[i]);
Object valueStr = null;
String value = "";
if (itemWebBean !=null)
{
//OAMessageTextInputBean
if(itemWebBean instanceof OAMessageTextInputBean)
{
valueStr =((OAMessageTextInputBean)itemWebBean).getValue(pageContext);
//((OAMessageTextInputBean)itemWebBean).setValue(pageContext, null);
}
//OAMessageLovInputBean
else if(itemWebBean instanceof OAMessageLovInputBean)
{
valueStr = ((OAMessageLovInputBean)itemWebBean).getValue(pageContext);
//((OAMessageLovInputBean)itemWebBean).setValue(pageContext, null);
}
//OAMessageLovChoiceBean
else if ((itemWebBean instanceofOAMessageLovChoiceBean))
{
valueStr = ((OAMessageLovChoiceBean)