Hi kranthi,
I am not able to show record in the form grid according the lookup selection.
I have string control lookup.
I have written a lookup in the form string control.
please see the below code.
public void lookup()
{
Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
FieldId NameField;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(CompanyInfo), this);
sysTableLookup.addLookupField(fieldNum(CompanyInfo, Name));
queryBuildDataSource = query.addDataSource(tableNum(CompanyInfo));
NameField = fieldNum(CompanyInfo, Name);
queryBuildDataSource.addRange(NameField).value(queryValue(“Abc”));
queryBuildDataSource.addRange(NameField).value(queryValue(“Tmd”));
queryBuildDataSource.addRange(NameField).value(queryValue(“Adp”));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
I have used temp table to show the record to the form gird.
Please see the below code.
i have created a class and created below code in this method,this class return the temp record
to the modfied method in the form lookup string control
public void initInventMinMax(Str 50 _LegalEntityLookup)
{
InventTable inventTable,invntTable;
InventSum inventSum;
PurchReqLine purchReqLine;
InventItemInventSetup inventItemInventSetup;
EcoResProductCategory ecoResProductCategory;
QueryRun queryRun;
container legalentitycon;
Query query;
str 50 legalentitystr;
CompanyInfo CompanyInfo;
QueryBuildDataSource qbds1,qbds2;
;
select DataArea from companyInfo where companyInfo.Name == _LegalEntityLookup ;
legalentitystr =companyInfo.DataArea;
legalentitycon = str2con(companyInfo.DataArea);
query = new query();
qbds1 = query.addDataSource(tableNum(inventTable));
qbds2 = qbds1.addDataSource(tableNum(inventSum));
qbds2.joinMode(JoinMode::OuterJoin);
qbds2.relations(true);
query.allowCrossCompany(true);
query.addCompanyRange(legalentitystr);
queryRun = new queryRun(query);
while(queryRun.next())
{
inventTable = queryRun.get(tableNum(inventTable));
inventSum = queryRun.get(tableNum(inventSum));
select crossCompany:legalentitycon sum(PurchQty)
from purchReqLine
group by purchReqLine.ItemId
where purchReqLine.ItemId == inventTable.ItemId
&& purchReqLine.BuyingLegalEntity == CompanyInfo::findDataArea(legalentitystr).RecId
&& (purchReqLine.RequisitionStatus == PurchReqRequisitionStatus::Draft
|| purchReqLine.RequisitionStatus == PurchReqRequisitionStatus::InReview);
select crossCompany:legalentitycon LowestQty,HighestQty
from inventItemInventSetup
where inventItemInventSetup.itemid == inventTable.ItemId
&& inventItemInventSetup.Override == NoYes::Yes;
select crossCompany:legalentitycon RecId
from ecoResProductCategory
join invntTable
where invntTable.Product == ecoResProductCategory.Product
&& invntTable.ItemId == inventTable.ItemId;
if(((inventSum.availPhysicalCalculated() + inventSum.orderedSum() + purchReqLine.PurchQty) <
InventItemInventSetup.LowestQty) && ecoResProductCategory.RecId)
{
this.insert_InventMinMax(inventTable, inventSum, inventItemInventSetup.LowestQty,
inventItemInventSetup.HighestQty, purchReqLine.PurchQty); // this method is to insert the
record in to the temp table.
}
}
}
form method
public InventMinMax initInventMinMax()
{
autoGeneratePurchReq = new AutoGeneratePurchRequisition();
autoGeneratePurchReq.init_InventMinMax(LegalEntityLookup.valueStr());
return autoGeneratePurchReq.parmInventMinMax();
}
form lookup control modified field
public boolean modified()
{
boolean ret;
ret = super();
InventMinMax.setTmpData(element.initInventMinMax());
return ret;
}
please suggest me to show the temp table record to the form grid