Wednesday, August 05, 2009

Axapta : Acces any Control or Grid for update

ตัวอย่างการเรียกใช้ Dialog เพื่อ update ค่าใน Control ใด ๆ ใน Grid
ตัวอย่าง เพิ่ม button ใน form InventJournalTrans เพื่อลงทะเบียน Batch แล้ว Paste ลงไปในช่อง Batch

void clicked()
{
Dialog dl;
DialogField dlfItemNo,dlfBatchId;
FormStringControl strItemNo,strBatchId;
InventBatch inventBatch;
InventTable inventTable;
;
super();
// Handle the control StringEdit "InventJournalTrans_ItemId" (field Item number).
strItemNo = element.design().control(control::InventJournalTrans_ItemId);
strBatchId = element.design().control(control::InventDimReceipt_InventBatchId);
// Check Inventory Dimension Group of the item.Only "WLB" use Batch.
SELECT * FROM inventTable WHERE inventTable.ItemId == strItemNo.valueStr();
if(inventTable.DimGroupId=="WLB"){
// Create dialog that Item number is prompted.Wait for BatchId.
dl=new Dialog("Create Batch");
dlfItemNo=dl.addFieldValue(0,strItemNo.valueStr(),"Item No.");
dlfBatchId=dl.addField(0,"Batch Id");
dlfItemNo.enabled(false);
if(dl.run() && dlfBatchId.value()!=""){
// insert into InventBatch table.
SELECT * FROM inventBatch;
inventBatch.inventBatchId=dlfBatchId.value();
inventBatch.itemId=dlfItemNo.value();
inventBatch.insert();
strBatchId.setFocus();
strBatchId.pasteText(dlfBatchId.value());
}
}
}

No comments: