Skip to main content

Add multiple range and multiple table lookup

Add multiple range and multiple table lookup





public void lookup()
{
SysTableLookup tableLookup;
QueryBuildRange rangeTransDate;
QueryBuildRange vlgCode,ItemId,DistCode,talCode;
QueryBuildRange CropId;
QueryRun queryRun;
QueryBuildDataSource qbds,qbds1,qbr,qbr1,qbr2;
Query q = new Query();
Query q1 = new Query();
QueryBuildLink QueryBuildLink1,QueryBuildLink2;
_TmpLookup _TmpLookup1;
InventTable InventTable_1;
boolean flg;
;
tableLookup = SysTableLookup::newParameters(tableNum(_TableDetails),this);
qbr = q.addDataSource(tableNum(_TableDetails));
qbr2=qbr.addDataSource(tablenum(_Inspection1));
qbr2.joinMode(Joinmode::NoExistsJoin);
QueryBuildLink2 = qbr2.addLink(fieldnum(_TableDetails, _TableNo),fieldnum(_Inspection1,TableNo));
// qbr2.addRange(fieldnum(_TableDetails,_TableNo)).value(queryNotValue(SysQuery::valueEmptyString()));
qbr2.relations(true);
if(tmpfilter.DistrictCode != "" )
{
qbr.addRange(fieldnum(_TableDetails,_DistrictCd)).value(queryValue(tmpfilter.DistrictCode));
}
if(tmpfilter.talCode != "" )
{
qbr.addRange(fieldnum(_TableDetails,_talCd)).value(queryValue(tmpfilter.talCode));
}
if( tmpfilter.vlgCode != "")
{
qbr.addRange(fieldnum(_TableDetails,_vlgCd)).value(queryValue(tmpfilter.vlgCode));
}
if(tmpfilter.ItemId != "")
{
qbr.addRange(fieldnum(_TableDetails,ItemId)).value(queryValue(tmpfilter.ItemId));
}
// qbr2.addRange(fieldnum(_TableDetails,_TableNo)).value(queryValue(''));
//ss
//ss
// qbr.addRange(fieldnum(_TableDetails,_Area)).value(queryNotValue(0));
//ss
qbr1 = qbr.addDataSource(tablenum(_Table));
qbr1.joinMode(Joinmode::InnerJoin);
QueryBuildLink2 = qbr1.addLink(fieldnum(_TableDetails, RegId),fieldnum(_Table,RegId));
qbr1.relations(true);
if(enum2str(tmpfilter.Season) != "")
{
qbr1.addRange(fieldnum(_Table,_SeasonId)).value(queryValue(tmpfilter.Season));
}
if(tmpfilter.CustAccount != "")
{
qbr1.addRange(fieldnum(_Table,CustAccount)).value(queryValue(tmpfilter.CustAccount));
}
// qbr2.addRange(fieldnum(_TableDetails,_TableNo)).value(queryNotValue(""));
//ss
// qbr2.addRange(fieldnum(_TableDetails,_TableNo)).value(queryValue('090000004'));
//info(_Inspection1.TableNo);
//ss
tableLookup.parmQuery(q);
tableLookup.addLookupfield(fieldNum(_TableDetails,_TableNo));
tableLookup.addLookupfield(fieldNum(_TableDetails, ItemId));
tableLookup.addLookupfield(fieldNum(_TableDetails, ItemName));
tableLookup.setLabel("Name");
tableLookup.performFormLookup();

Comments

Popular posts from this blog

Process of Sales order in Technical terms in D365Fo

 ðŸ”¥ Sales Order Technical Flow in D365FO (Creation → Confirmation → Picking → Packing Slip → Invoice → Accounting) 1. Sales Order Creation Tables SalesTable → SO header SalesLine → SO lines CustTable → Customer master InventDim / InventDimCombination → Dimensions InventTable / EcoResProduct → Item master Framework Classes SalesTableType / SalesLineType Responsible for validation, defaulting, creation logic Key Methods SalesTable.initValue() SalesLine.initFromSalesTable() SalesTable.validateWrite() SalesLine.validateWrite() Events (Extensions) SalesTableType.createSalesTable() SalesLineType.createSalesLine() 2. Reservation (Optional) If reservation is done: Tables InventTrans (Reservation status) InventReservation Classes InventUpd_Reservation InventTransReservation Reservations impact picking and inventory availability. 3. Sales Order Confirmation Confirms order and freezes price/quantity. Posti...

Top 200 Q&A in D365FO Technical

  SECTION 1 — X++ BASICS (10 Q&A) 1. What is X++? A proprietary object-oriented language used in Dynamics 365 Finance & Operations for business logic, similar to C# but integrated with D365 runtime. 2. What is a TableBuffer? It is an in-memory object referencing a table. Example: CustTable custTable; 3. What is difference between select and select firstonly ? select → returns all matching rows firstonly → returns only the first matched row 4. What is ttsbegin & ttscommit ? Used to wrap database transactions; ensures atomicity. 5. Can we write SQL queries directly in X++? No. X++ uses a database-abstracted select statement. 6. What is a container? A collection datatype used to store mixed data types. 7. Difference between container and map? Map stores key-value pairs; container is indexed and immutable. 8. What is a temp table? A table that stores data temporarily in memory or database depending on property. 9. What is recursion in X++? A method c...

Process of Purchase order in Technical terms in D365Fo

  Purchase Order Technical Flow in D365FO (Step-by-Step) (From creation → approval workflow → posting → product receipt → invoice → accounting) 1. Purchase Order Creation Tables involved PurchTable → PO header PurchLine → PO lines VendTable → Vendor master InventDim / InventDimCombination → Item dimensions EcoResProduct / InventTable → Item master Classes / Framework PurchTableType / PurchLineType Framework that controls creation, validation, defaulting. Key methods PurchTable.initValue() PurchLine.initFromPurchTable() PurchTable.validateWrite() PurchLine.validateWrite() Events (Extension points) PurchTableType.createPurchTable() PurchLineType.createPurchLine() 2. Purchase Order Confirmation Document Status update PurchTable.DocumentState → Confirmation PurchParmBuffer tables used for versioning. Posting Class PurchFormLetter_Confirm Called internally via PurchFormLetter::construct(DocumentStatus::Co...