วันพุธที่ 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

วันพุธที่ 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);
  ..