根据从 LOV 选择的值,默认值存储在另一列中
Default value gets stored in another column based on value selected from LOV
Table-Items
Columns-Order_Type
(Sales,
Return,
Defective)
Order_Type_Id(1,2,3)
即 1-销售,
2-Return,
3-次品
VO 具有 Transient 属性 - OrderType,其 LOV 显示 Order_Type。
根据选择的 Order_Type,Order_Type_Id 应该存储在 Order_Type_Id 列
public Number getOrder_Type_Id() {
String orderType = null;
Number orderNumber = null;
if (getOrderType() != null) {
orderType = getOrderType();
if (orderType.equals("Sales")) {
orderNumber = new oracle.jbo.domain.Number(2);
} else if (orderType.equals("Return")) {
orderNumber = new oracle.jbo.domain.Number(3);
} else if (orderType.equals("Defective")) {
orderNumber = new oracle.jbo.domain.Number(4);
}
this.setOrder_Type_Id(orderNumber);
}
假设 LOV VO 也来自查询而不是来自静态列表:
它是在 ADF 11g 中开发的
订单类型LOVVO :
order_type_id - back-end stored column
order_type_desc - display column
BaseOrderVO
OrderTypeId - transient attribute - LOV - OrderTypeLOVVO
OrderTypeDesc - transient attribute - OutputText column with default value - 1
orderTypeId
- Make autoSubmit property true in both places in VO and in jsff page ( drop it as select one choice) .
- OrderTypeId value will be bindings.orderTypeId.inputValue
- Shuffle the dependent attribute Order_type_desc from left to right in dependecies component of VO.
OrderTypeDesc
Make default value as 1 and in jsff page set partial trigger dependent of orderTypeId after dropping it as output label.
Make OrderTypeDesc value attribute as bindings.orderTypeId.attributeValue
我们需要将 OrderTypeDesc 值设置为 orderTypeId.attributeValue 因为当您 select OrderTypeId 为 sales (这是 inputValue),所以后端值 (id) 是 1。所以 attributeValue 将得到 selected 值的 id爱
同样适用于静态列表 VO。
根据您的要求,以编程方式,
我已经在 LOV 的值更改侦听器上创建了一个方法,
changeValue()
是bean中的方法class.
public void changeValue(ValueChangeEvent valueChangeEvent) {
AppModuleImpl module = getApp(); // creating appModuleImpl class object
//definition for getApp() is given below.
item_desc = module.assignValue(valueChangeEvent.getNewValue().toString());
// This item_desc value is declared globally.
//assignValue method of AppModuleClass is given below
bind_item_desc.setValue(item_desc);
AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance();
adfFacesContext.addPartialTarget(bind_item_desc);
// bind_item_desc is the binding attribute of output label which needs to be refreshed.
// Add event code here...
}
public static AppModuleImpl getApp() {
return (AppModuleImpl)Configuration.
createRootApplicationModule(
"Model.AppModule", // where your module is stored
"AppModuleShared"); // chosen configuration
}
这里Model.AppModule
是AppModule的位置
assingValue()
的 AppModuleClass,它将根据 LOV 中的 selected 值分配值。
public String assignValue(String value)
{
String item_desc=null;
System.out.println("Changed value " + value);
if(value.equals("Sales"))
{
item_desc="14";
}
return item_desc;
}
在 assignValue 中,参数是将从 bean class 输入的值(来自 LOV 的 selected 值)并返回 bean [= 中再次需要的字符串参数70=].
因此,当您 select LOV 中的值时,它将触发值更改侦听器方法 (changeValue()) 并将导航到 AppModule 。在 AppModule 中,值将被赋值并返回给 Bean class。
但它不会反映,直到您不会刷新页面组件。
<af:selectOneChoice value="#{bindings.item_id_lov.inputValue}"
label="item for lov"
required="#{bindings.item_id_lov.hints.mandatory}"
shortDesc="#{bindings.item_id_lov.hints.tooltip}"
id="soc4" autoSubmit="true"
valueChangeListener="#{bean1.changeValue}">
<f:selectItems value="#{bindings.item_id_lov.items}" id="si4"/>
</af:selectOneChoice>
此处在 SelectOneChoice 中调用值更改侦听器并且 autoSubmit 为真。
<af:panelLabelAndMessage label="item description"
id="plam1" partialTriggers="soc4">
<af:outputFormatted value="#{bean1.item_desc}" binding="#{bean1.bind_item_desc}"
id="of1"/>
</af:panelLabelAndMessage>
此处,在 value
中分配了 item_desc
属性(在 bean 中声明)。还为输出标签创建了绑定。 PartialTrigger 分配给 LOV,因为 outputLabel 取决于 LOV。
以下代码有效。
在 Order_Type_Id 中编写以下代码:
public Number Order_Type_Id()
{
String orderType=null;
Number orderNumber=null;
if(getOrder_Type()!=null){
orderType=getOrder_Type();
if(orderType.equals("Sales")){
orderNumber=new oracle.jbo.domain.Number(2);
}
else if(orderType.equals("Defective")){
orderNumber=new oracle.jbo.domain.Number(3);
return orderNumber;
}
else
{
return (Number)getAttributeInternal(Order_Type_Id);}
}
}
在Order_Type_Id属性中添加依赖或者Order_Type
Table-Items
Columns-Order_Type
(Sales,
Return,
Defective)
Order_Type_Id(1,2,3) 即 1-销售, 2-Return, 3-次品
VO 具有 Transient 属性 - OrderType,其 LOV 显示 Order_Type。 根据选择的 Order_Type,Order_Type_Id 应该存储在 Order_Type_Id 列
public Number getOrder_Type_Id() {
String orderType = null;
Number orderNumber = null;
if (getOrderType() != null) {
orderType = getOrderType();
if (orderType.equals("Sales")) {
orderNumber = new oracle.jbo.domain.Number(2);
} else if (orderType.equals("Return")) {
orderNumber = new oracle.jbo.domain.Number(3);
} else if (orderType.equals("Defective")) {
orderNumber = new oracle.jbo.domain.Number(4);
}
this.setOrder_Type_Id(orderNumber);
}
假设 LOV VO 也来自查询而不是来自静态列表:
它是在 ADF 11g 中开发的
订单类型LOVVO :
order_type_id - back-end stored column
order_type_desc - display column
BaseOrderVO
OrderTypeId - transient attribute - LOV - OrderTypeLOVVO
OrderTypeDesc - transient attribute - OutputText column with default value - 1
orderTypeId
- Make autoSubmit property true in both places in VO and in jsff page ( drop it as select one choice) .
- OrderTypeId value will be bindings.orderTypeId.inputValue
- Shuffle the dependent attribute Order_type_desc from left to right in dependecies component of VO.
OrderTypeDesc
Make default value as 1 and in jsff page set partial trigger dependent of orderTypeId after dropping it as output label.
Make OrderTypeDesc value attribute as bindings.orderTypeId.attributeValue
我们需要将 OrderTypeDesc 值设置为 orderTypeId.attributeValue 因为当您 select OrderTypeId 为 sales (这是 inputValue),所以后端值 (id) 是 1。所以 attributeValue 将得到 selected 值的 id爱
同样适用于静态列表 VO。
根据您的要求,以编程方式,
我已经在 LOV 的值更改侦听器上创建了一个方法,
changeValue()
是bean中的方法class.
public void changeValue(ValueChangeEvent valueChangeEvent) {
AppModuleImpl module = getApp(); // creating appModuleImpl class object
//definition for getApp() is given below.
item_desc = module.assignValue(valueChangeEvent.getNewValue().toString());
// This item_desc value is declared globally.
//assignValue method of AppModuleClass is given below
bind_item_desc.setValue(item_desc);
AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance();
adfFacesContext.addPartialTarget(bind_item_desc);
// bind_item_desc is the binding attribute of output label which needs to be refreshed.
// Add event code here...
}
public static AppModuleImpl getApp() {
return (AppModuleImpl)Configuration.
createRootApplicationModule(
"Model.AppModule", // where your module is stored
"AppModuleShared"); // chosen configuration
}
这里Model.AppModule
是AppModule的位置
assingValue()
的 AppModuleClass,它将根据 LOV 中的 selected 值分配值。
public String assignValue(String value)
{
String item_desc=null;
System.out.println("Changed value " + value);
if(value.equals("Sales"))
{
item_desc="14";
}
return item_desc;
}
在 assignValue 中,参数是将从 bean class 输入的值(来自 LOV 的 selected 值)并返回 bean [= 中再次需要的字符串参数70=].
因此,当您 select LOV 中的值时,它将触发值更改侦听器方法 (changeValue()) 并将导航到 AppModule 。在 AppModule 中,值将被赋值并返回给 Bean class。
但它不会反映,直到您不会刷新页面组件。
<af:selectOneChoice value="#{bindings.item_id_lov.inputValue}"
label="item for lov"
required="#{bindings.item_id_lov.hints.mandatory}"
shortDesc="#{bindings.item_id_lov.hints.tooltip}"
id="soc4" autoSubmit="true"
valueChangeListener="#{bean1.changeValue}">
<f:selectItems value="#{bindings.item_id_lov.items}" id="si4"/>
</af:selectOneChoice>
此处在 SelectOneChoice 中调用值更改侦听器并且 autoSubmit 为真。
<af:panelLabelAndMessage label="item description"
id="plam1" partialTriggers="soc4">
<af:outputFormatted value="#{bean1.item_desc}" binding="#{bean1.bind_item_desc}"
id="of1"/>
</af:panelLabelAndMessage>
此处,在 value
中分配了 item_desc
属性(在 bean 中声明)。还为输出标签创建了绑定。 PartialTrigger 分配给 LOV,因为 outputLabel 取决于 LOV。
以下代码有效。 在 Order_Type_Id 中编写以下代码:
public Number Order_Type_Id()
{
String orderType=null;
Number orderNumber=null;
if(getOrder_Type()!=null){
orderType=getOrder_Type();
if(orderType.equals("Sales")){
orderNumber=new oracle.jbo.domain.Number(2);
}
else if(orderType.equals("Defective")){
orderNumber=new oracle.jbo.domain.Number(3);
return orderNumber;
}
else
{
return (Number)getAttributeInternal(Order_Type_Id);}
}
}
在Order_Type_Id属性中添加依赖或者Order_Type