when the User actived the Default BOM LAT Price checkbox on price(Purch.) Form,The ERP system will automatic updated and refresh the account selection(Vendor account) to the InventTable Form(have created Relationship field with Primary vendor account) right now.
Such as below.
Wrote by Jimmy on May 5th 2011

public void modifiedField(fieldId _fieldId)
{
Tec_PrimaryVendor _PrimaryVendor;
FormRun FR;
InventTable InventTable;
InventTableModule InventTableModule;
PriceDiscTable PriceDiscTable,updateThis;
RecId CurRecId = this.RecId;
;
super(_fieldId);
switch(_fieldId)
{
case fieldnum(PriceDiscTable,QVS_Default) :
if(this.QVS_Default == Noyes::Yes &&
this.Module == ModuleInventCustVend::Vend &&
this.relation == PriceType::PricePurch &&
this.AccountCode == TableGroupAll::Table &&
this.ItemCode == TableGroupAll::Table
)
{
ttsbegin;
_PrimaryVendor = Tec_PrimaryVendor::find(this.ItemRelation,true);
if (!_PrimaryVendor)
{
_PrimaryVendor.ItemId = this.ItemRelation;
_PrimaryVendor.PrimaryVendorId = this.AccountRelation;
_PrimaryVendor.insert();
}
else
{
_PrimaryVendor = Tec_PrimaryVendor::find(this.ItemRelation,true);
_PrimaryVendor.PrimaryVendorId = this.AccountRelation;
_PrimaryVendor.update();
//Jimmy 2010-06-10 ++
InventTable = InventTable::find(this.ItemRelation,true);
if(InventTable)
{
InventTable.ItemBuyerGroupId = VendTable::find(this.AccountRelation).ItemBuyerGroupId;
InventTable.update();
}
//Jimmy 2010-06-10 --
}
ttscommit;
//Jimmy 2010-06-10 ++
ttsbegin;
InventTableModule = InventTableModule::find(this.ItemRelation,ModuleInventPurchSales::Invent,true);
if(InventTableModule.Price == 0)//if(InventTableModule)////2010-07-27
{
InventTableModule.Price = this.ItemCostPrice_Purch();
InventTableModule.update(true);
}
ttscommit;
//Jimmy 2010-06-10 --;
if(infolog.globalCache().get(FormStr(InventTable),"RefreshCurrentForm"))
{
fr = infolog.globalCache().get(FormStr(InventTable),"RefreshCurrentForm");
InventTable = InventTable::find(this.ItemRelation);
fr.dataSource("InventTable").reread();
fr.dataSource("InventTable").research();
fr.dataSource("InventTable").refresh();
fr.dataSource("InventTable").findRecord(InventTable);
}
}
else
{
select firstonly PriceDiscTable
where PriceDiscTable.QVS_Default == Noyes::Yes &&
PriceDiscTable.Module == ModuleInventCustVend::Vend &&
PriceDiscTable.relation == PriceType::PricePurch &&
PriceDiscTable.AccountCode == TableGroupAll::Table &&
PriceDiscTable.ItemCode == TableGroupAll::Table &&
PriceDiscTable.ItemRelation== this.ItemRelation &&
PriceDiscTable.RecId != this.RecId;
if(PriceDiscTable)
this.UpdateMainVendor(PriceDiscTable);
}
break;
default :
break;
}
}

public void init()
{
;
super();
infolog.globalCache().set(FormStr(InventTable),"RefreshCurrentForm",element);
}

public boolean canClose()
{
boolean ret;
ret = super();
infolog.globalCache().remove(FormStr(InventTable),"RefreshCurrentForm");
return ret;
}