วันอังคารที่ 11 กันยายน พ.ศ. 2555
ดึงราคาจากPO ก่อน Movement/Transfer จากรายงาน inventTranlist
display real PricePerUnit()
{
real realRet;
PurchIdBase ret;
InventTrans inventTrans_PONO;
PurchLine purchline;
;
while select inventTrans_PONO
where inventTrans_PONO.TransType == InventTransType::Purch
&& inventTrans_PONO.ItemId == InventTrans.ItemId
&& inventTrans_PONO.InventTransId <= InventTrans.InventTransId
{
ret = inventTrans_PONO.TransRefId;
}
if(inventTrans.TransType == InventTransType::Purch)
{
ret = "";
}
if(ret != "")
{
select purchline
where purchline.PurchId == ret
&& purchline.ItemId == InventTrans.ItemId;
realRet = purchline.PurchPrice;
}
else
{
realRet = 0;
}
return realRet;
}
วันอาทิตย์ที่ 2 กันยายน พ.ศ. 2555
Create JournalMovement
Boolean CreateJournalMovement()
{
InventJournalTable journalTable;
InventJournalTrans journalTrans;
JournalTableData journalTableData;
InventJournalId journalId;
InventJournalName journalName;
;
ttsbegin;
//journalName = InventJournalName::find([MyJournalName]);
journalName = InventJournalName::find("M-FG");
journalTable.clear();
journalTable.JournalNameId=journalName.JournalNameId;
//rint journalTable.JournalNameId;
//ause;
journalTableData = JournalTableData::newTable(journalTable);
journalTableData.initFromJournalName(journalTableData.JournalStatic().findJournalName(journalTable.journalNameId));
journalTable.JournalId = journalTableData.nextJournalId();
print journalTable.JournalId;
journalTable.Reservation = ItemReservation::Automatic;
journalTable.insert();
//=== Journal Trans ===//
journalTrans.clear();
journalTrans.JournalId = journalTable.JournalId;
journalTrans.JournalType = journalName.JournalType;
journalTrans.LedgerAccountIdOffset = journalName.LedgerAccountIdOffset;
print journalTrans.JournalId;
print journalTrans.JournalType;
print journalTrans.LedgerAccountIdOffset;
pause;
// BBCN0001
//journalTrans.ItemId = [MyItemId];
journalTrans.ItemId = "BBCN0001";
//journalTrans.initFromInventTable(InventTable::find([MyItemId]),False,False);
journalTrans.initFromInventTable(InventTable::find("BBCN0001"),False,False);
//ournalTrans.InventDimId = [MyInventDimId];
journalTrans.InventDimId = "DM-0000001";
journalTrans.TransDate = SystemDateGet();
//journalTrans.Qty = [MyQty];
journalTrans.Qty = 1000;
//journalTrans.PriceUnit = [MyPriceUnit];
journalTrans.PriceUnit = 1000;
//journalTrans.CostPrice = [MyCostPrice];
journalTrans.CostPrice = 999;
journalTrans.CostAmount = journalTrans.calcCostAmount();
print journalTrans.CostAmount;
pause;
journalTrans.insert();
ttscommit;
info("Create journal movement is done.");
return true;
}
Reference http://oromux.wordpress.com/2008/07/02/ax-create-journal-movement-via-x/
Thanks....
SysGlobalCache ไว้เก็บค่า Global
static void SysGlobalCache(Args _args)
{
SysGlobalCache globalCache;
;
globalCache = ClassFactory.globalCache();
globalCache.set(curuserid(), 1, "One");
globalCache.set(curuserid(), 2, "two");
print globalCache.get(curuserid(), 1);
print globalCache.get(curuserid(), 2);
globalcache.remove(curuserid(), 1);
pause;
print globalCache.get(curuserid(), 1);
print globalCache.get(curuserid(), 2);
pause;
}
อ้างอิง http://learnax.blogspot.com/2010/01/globalcache-alternative-to.html
Thanks.... Nagaraj Jadhav | India
How to use:
To Set a Value:
static void GlobalCacheSet(Args _args)
{
SysGlobalCache globalCache;
;
globalCache = ClassFactory.globalCache();
globalCache.set(curuserid(), 1, "One");
}
To Get the Value:
static void GlobalCacheGet(Args _args)
{
SysGlobalCache globalCache;
;
globalCache = ClassFactory.globalCache();
print globalCache.get(curuserid(), 1);
globalcache.remove(curuserid(), 1);
pause;
}
วันพุธที่ 22 สิงหาคม พ.ศ. 2555
Post Movement By Code
static void PostMovement(Args _args)
{
InventJournalTable
inventJournalTable;
InventJournalName
xInventJournalName;
InventJournaltrans
inventJournaltrans;
InventJournalCheckPost inventJournalCheckPost;
;
xInventJournalName
= InventJournalName::find(InventParameters::find().MovementJournalNameId);
info(strfmt("%1",
xInventJournalName.JournalType));
inventJournalTable.initFromInventJournalName(xInventJournalName);
inventJournalTable.JournalNameId = 'IMov';
inventJournalTable.insert();
inventJournaltrans.JournalId =
InventJournalTable.JournalId;
info(strfmt("%1",
inventJournaltrans.JournalId));
inventJournaltrans.Voucher = '8000_999';
inventJournaltrans.ItemId = '1005';
inventJournaltrans.InventDimId = '00000465_069';
inventJournaltrans.Qty = 1000;
inventJournaltrans.TransDate = mkdate(1,10,2009);
inventJournaltrans.insert();
inventJournalCheckPost = InventJournalCheckPost::newJournalCheckPost(JournalCheckPostType::Check,inventJournalTable);
inventJournalCheckPost.run();
//
}
วันพฤหัสบดีที่ 16 สิงหาคม พ.ศ. 2555
ดึงค่า Pool
/*
void create(boolean _append = false)
{
;
inCreate = true;
if (! journalFormTable.datasourceCreatePre())
{
inCreate = false;
return;
}
super(_append);
journalFormTable.datasourceCreatePost();
inCreate = false;
}
*/
void create(boolean _append = false)
{
// Pantep Cust1
ProdTable prodTable2setProdPoolId;
// End Cust1
;
inCreate = true;
if (! journalFormTable.datasourceCreatePre())
{
inCreate = false;
return;
}
super(_append);
// Pantep Cust1
select firstonly ProdPoolId from prodTable2setProdPoolId
where prodTable2setProdPoolId.ProdId == ProdJournalTable.ProdId;
ProdJournalTable.PoolId = prodTable2setProdPoolId.ProdPoolId;
// End Cust1
journalFormTable.datasourceCreatePost();
inCreate = false;
}
วันจันทร์ที่ 6 สิงหาคม พ.ศ. 2555
Method Sequence
ds1.init > ds2.init
form.init
ds1.executeQuery > ds2.executeQuery
form.run
form.canClose
form.Close
วันพุธที่ 1 สิงหาคม พ.ศ. 2555
All About Form
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);
..
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);
..
สมัครสมาชิก:
บทความ (Atom)