Link Type: มีหลายๆ datasource ใน Form เดียว
Link ปกติ
Inner Join : เอาเฉพาะมี link
Outer Join : เอาที่ไม่มี Link ด้วย -> ตัวที่ไม่มี Link จะแสดง Recordใน Mater ที่ไม่มี Link ด้วย
Exist Join : เอาเฉพาะตารางหลัก ที่มี link
Not Exist Join : เอาเฉพาะตารางหลัก ที่ไม่มี link
Link พิเศษDelayed : default
Passive : ไว้ตอนเขียนโค้ดเอง
Active : ..
Dynalink เช่นตอนดู Transaction ของ Item
ในตัวอย่างนี้เขียนที่ Datasource ของฟอร์ม CustTrans เพื่อทำ DynaLink ใหม่
void init()
{
Query query;
;
super();
// Clear Dynalink
/*
this.query().dataSourceNo(1).clearDynalinks();
criteriaOpen = this.query().dataSourceNo(1).addRange(fieldnum(CustTrans,Closed));
custTransDetails = new CustTransDetails(custTrans);
*/
//
// Cutomize Dynalink
this.query().dataSourceNo(1).clearDynalinks();
this.query().dataSourceTable(tablenum(CustTrans)).addDynalink(
fieldnum(CustTrans,AccountNum),
element.args().record(),
fieldnum(SalesTable,CustAccount));
criteriaOpen = this.query().dataSourceNo(1).addRange(fieldnum(CustTrans,Closed));
custTransDetails = new CustTransDetails(custTrans);
..
โครงสร้าง Method
ตอบลบ(parameter)
Access modifier
1. Public เป็น default ของ AX
2. Protected เรียกใช้ได้ใน extended ที่ inherit subclass
3. Private เรียกใช้ได้เฉพาะในคลาส
super(); เรียกใช้ method parent ของ super class
itemId parmItemId(ItemId _itemId =itemid)
{
;
itemId = _itemId;
return itemId;
}
class child extends parent
{
}
static method เรียกใช้เช่น EmplTable::find(“Pantep”).name
final method คือไม่ให้ sub class ใช้งาน
abtract method
interface class
Passing value
AX call by value อยู่แล้ว คือค่าของตัวแปรจะไม่เปลี่ยนแปลงเมื่อถูก method เรียกใช้
ส่วน call by reference โดย TmpTables
AX สามารถ return หลายค่าได้โดยใช้ container
container returnContainer(boolean isFind = true)
{
CustAccount custAccount;
CustName custName;
;
return [custAccount, custName];
}
การ optimize โดยใช้ server หน้า method
Runbase Framework มีคลาสหลักๆ คือ
1 Runbase
2 RubbaseBatch
3 RunbaseReport (is subclass of RunbaseBatch
)
Public container pack() ไว้ return ค่า macro
public boolean Unpack(container packedClass) ไว้ initialize ค่าใน macro CurrentList
dialog
getFromDialog
run