[OA Framework] findIndexedChildRecursive, findChildRecursive ใช้ต่างกันอย่างไร

findIndexedChildRecursive หรือ
public OAWebBean findIndexedChildRecursive(String name)
ใช้สำหรับค้นหา component ด้วย index จาก child/grandchild ด้วยการระบุชื่อ
findChildRecursive หรือ
public OAWebBean findChildRecursive(String name)
ใช้สำหรับค้นหา component ทั้ง Index และ Name จาก child/grandchild ด้วยการระบุชื่อ
ทั้งสอง method จะคืนค่า null หากไม่พบ component ตรงกับชื่อที่ต้องการค้นหา
ปล. หากเราไม่แน่ใจว่าชื่อที่เราต้องการค้นหาเป็น Index หรือ Name ของ component ขอแนะนำให้ใช้ findChildRecursive ในการค้นหาครับ เพราะจะค้นหาทั้ง index และ name
Advertisements
[OA Framework] findIndexedChildRecursive, findChildRecursive ใช้ต่างกันอย่างไร

[OA Framework] findIndexedChildRecursive, findChildRecursive ใช้ต่างกันอย่างไร

findIndexedChildRecursive หรือ
public OAWebBean findIndexedChildRecursive(String name)

ใช้สำหรับค้นหา component ด้วย index จาก child/grandchild ด้วยการระบุชื่อ

findChildRecursive หรือ
public OAWebBean findChildRecursive(String name)

ใช้สำหรับค้นหา component ทั้ง Index และ Name จาก child/grandchild ด้วยการระบุชื่อ

ทั้งสอง method จะคืนค่า null หากไม่พบ component ตรงกับชื่อที่ต้องการค้นหา

ปล. หากเราไม่แน่ใจว่าชื่อที่เราต้องการค้นหาเป็น Index หรือ Name ของ component ขอแนะนำให้ใช้ findChildRecursive ในการค้นหาครับ เพราะจะค้นหาทั้ง index และ name

Credit: http://www.betterdevelopers.com/article/45347312/Use+of+findChildRecursive,+findIndexedChildRecursive,+findIndexedChild

[OA Framework] findIndexedChildRecursive, findChildRecursive ใช้ต่างกันอย่างไร

How to set Currency Format on TotalRow in OAAdvancedTable

เจอปัญหาในการใส่ Format ให้กับจำนวนเงิน สำหรับ Total Row ใน OAAdvancedTable

OAAdvancedTable
Id: showDetailTb
Id: column1

Total Value: True
Id: TrxAmount
View Attribute: TrxAmount

ถึงเราจะใส่ Format ให้กับ OAMessagedStyledTextBean id TrxAmount

Formatter formatter = new OADecimalValidater("#,###,###,##0.00;(#,###,###,##0.00)", "#,###,###,##0.00;(#,###,###,##0.00)");

OAAdvancedTableBean adTable = (OAAdvancedTableBean) webBean.findChildRecursive("showDetailTb");

OAMessageStyledTextBean trxAmountTotal = (OAMessageStyledTextBean) adTable.findChildRecursive("TrxAmount");
trxAmountTotal.setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, formatter);

แต่จำนวน Total ก็ยังไม่อยู่ในรูป Format

หลังจากลองผิดลองถูก เข้าไป set format ในเกือบทุก objects ที่อยู่ภายใต้ OAAdvancedTable ก็ได้เข้าใจว่าถ้าต้องการให้เลขใน TotalRow อยู่ในรูปแบบที่จัด Format แล้วเราต้องไปตั้งค่าที่ …

Continue reading “How to set Currency Format on TotalRow in OAAdvancedTable”

How to set Currency Format on TotalRow in OAAdvancedTable

OAF: วิธีการใส่ Format ให้กลับจำนวนเงิน

เจอปัญหาในการใส่ Format ให้กับจำนวนเงิน สำหรับ Total Row ใน OAAdvancedTable

OAAdvancedTable
Id: showDetailTb

Id: column1
Total Value: True

Id: TrxAmount
View Attribute: TrxAmount

ถึงเราจะใส่ Format ให้กับ OAMessagedStyledTextBean id TrxAmount
Formatter formatter = new OADecimalValidater("#,###,###,##0.00;(#,###,###,##0.00)", 
                                             "#,###,###,##0.00;(#,###,###,##0.00)");

OAAdvancedTableBean adTable = (OAAdvancedTableBean) 
webBean.findChildRecursive("showDetailTb");

OAMessageStyledTextBean trxAmountTotal = (OAMessageStyledTextBean) 
adTable.findChildRecursive("TrxAmount");
trxAmountTotal.setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, formatter);

แต่จำนวน Total ก็ยังไม่อยู่ในรูป Format

หลังจากลองผิดลองถูก เข้าไป set format ในเกือบทุก objects ที่อยู่ภายใต้ OAAdvancedTable ก็ได้เข้าใจว่าถ้าต้องการให้เลขใน TotalRow อยู่ในรูปแบบที่จัด Format แล้วเราต้องไปตั้งค่าที่ …

เราต้องไปตั้งค่าในส่วนของ Column ที่จะแสดง ค่า Total ซึ่งในตัวอย่างนี้คือ column1

Formatter formatter = new OADecimalValidater("#,###,###,##0.00;(#,###,###,##0.00)", "#,###,###,##0.00;(#,###,###,##0.00)");

OAAdvancedTableBean adTable = (OAAdvancedTableBean) webBean.findChildRecursive("showDetailTb");

OAMessageStyledTextBean trxAmountTotal = (OAMessageStyledTextBean) adTable.findChildRecursive("TrxAmount");
trxAmountTotal.setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, formatter);

OAColumnBean column1 = (OAColumnBean) adTable.findChildRecursive("column1");
if (column1 != null)
{
column1.setAttributeValue(CURRENCY_CODE, "USD");
column1.setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, formatter);
}

เมื่อ Set format ให้กับ column1 แล้ว Total Row จะอยู่ในรูปของตัวเลขที่ Format เรียบร้อย

OAF: วิธีการใส่ Format ให้กลับจำนวนเงิน

วิธีการดึงค่าจาก OAMessageLovInputBean

โดยปกติแล้วเราสามารถดึงค่าจาก OAMessageTextInputBean ด้วยการเรียกเมธอด getParameter(“String id”);

แต่สำหรับ text box ที่เป็น List of Values เรามีวิธีดึงค่าใน OAMessageLovInputBean ได้อีกวิธีคือ

 

/*

* import OAMessageLovInputBean

*/import oracle.apps.fnd.framework.webui.beans.message.OAMessageLovInputBean;

public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
}

public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
OAMessageLovInputBean lovInput = (OAMessageLovInputBean) webBean.findIndexedChildRecursive(“username”);
String username = (String) lovInput.getValue(pageContext).toString();
System.out.println(“Username : “+username);
}

 

เมื่อดึงค่าออกมาเป็น String ได้แล้วเราก็สามารถนำตัวแปรชนิด String ไปใช้งานต่อได้

วิธีการดึงค่าจาก OAMessageLovInputBean

Populate current date use getCurrentDBDate()


SimpleAMImpl am = (SimpleAMImpl) pageContext.getApplicationModule(webBean);
SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss.S”);
SimpleDateFormat formatDate = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
oracle.jbo.domain.Date convertDate = applicationModule.getOADBTransaction().getCurrentDBDate();
java.util.Date date = format.parse(convertDate.toString());
String convStr = formatDate.format(date);
System.out.println(“Date from database: ”+convertDate.toString());
System.out.println(“java.util.Date: “+date.toString());
System.out.println(“String date: “+convStr);

ขอแปะ code ไว้ก่อนแล้วจะมาอธิบายนะครับ

Populate current date use getCurrentDBDate()

populate current date from getCurrentDBDate() #OAF

SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss.S”);
SimpleDateFormat formatDate = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
oracle.jbo.domain.Date convertDate = am.getOADBTransaction().getCurrentDBDate();
java.util.Date date = format.parse(convertDate.toString());
String convStr = formatDate.format(date);

System.out.println(“Date from database:  “+convertDate.toString());

System.out.println(“java.util.Date: “+date.toString());
System.out.println(“String date: “+convStr);

ไว้จะมาอธิบายเรื่อง SimpleDateFormat อีกทีนะครับ
สามารถอ่านก่อนได้จาก http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

populate current date from getCurrentDBDate() #OAF