Query with QueryBuilderDataSource in D365fo In x++
Query with QueryBuilderDataSource in D365fo In x++
Query query1 = new Query();
InventTable INVENTTABLE;
InventTrans inventTrans;
InventDim INVENTDIM;
UserInfo UserInfo;
TXLWarehouseSecurity TXLWAREHOUSESECURITY;
QueryBuildDataSource qbds;
QueryBuildRange queryBuildRange;
sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), _formControl);
//queryBuildDataSource = query.addDataSource(tableNum(InventTable));
qbds = query.addDataSource(tableNum(InventTable));
query1.queryType(QueryType::Union);
qbds1 = query1.addDataSource(tableNum(InventTable));
qbds1.unionType(UnionType::UnionAll); // Include duplicate records
qbds1.fields().dynamic(false);
qbds1.fields().clearFieldList();
qbds1.fields().addField(fieldNum(InventTable, ItemId));
qbds1.fields().addField(fieldNum(InventTable, NameAlias));
qbds2 = query1.addDataSource(tableNum(InventTable));
qbds2.unionType(UnionType::UnionAll); // Include duplicate records
qbds2.fields().dynamic(false);
qbds2.fields().clearFieldList();
qbds2.fields().addField(fieldNum(InventTable, ItemId));
//qbds2.fields().addField(fieldNum(InventTable, ItemType));
//qbds2.fields().addField(fieldNum(InventTable, Product));
qbds2.fields().addField(fieldNum(InventTable, NameAlias));
qbds3 = query1.addDataSource(tableNum(InventTable));
qbds3.unionType(UnionType::UnionAll); // Include duplicate records
qbds3.fields().dynamic(false);
qbds3.fields().clearFieldList();
qbds3.fields().addField(fieldNum(InventTable, ItemId));
qbds3.fields().addField(fieldNum(InventTable, NameAlias));
//qbds3.addSortField(fieldNum(InventTable, ItemId));
//qbds3.addSortField(fieldNum(InventTable, NameAlias));
qbds3.orderMode(OrderMode::GroupBy);
qbds4 = qbds3.addDataSource(tableNum(InventTrans));
qbds4.fields().dynamic(false);
qbds4.fields().clearFieldList();
qbds4.fields().addField(fieldNum(InventTrans, ItemId));
qbds4.fields().addField(fieldNum(InventTrans, inventDimId));
qbds5 = qbds4.addDataSource(tableNum(INVENTDIM));
qbds5.fields().dynamic(false);
qbds5.fields().clearFieldList();
qbds5.fields().addField(fieldNum(INVENTDIM, InventLocationId));
qbds5.fields().addField(fieldNum(INVENTDIM, inventDimId));
qbds6 = qbds5.addDataSource(tableNum(TXLWAREHOUSESECURITY));
qbds6.fields().dynamic(false);
qbds6.fields().clearFieldList();
qbds6.fields().addField(fieldNum(TXLWAREHOUSESECURITY, Location));
qbds6.fields().addField(fieldNum(TXLWAREHOUSESECURITY, UserRef));
qbds7 = qbds6.addDataSource(tableNum(UserInfo));
qbds7.fields().dynamic(false);
qbds7.fields().clearFieldList();
qbds7.fields().addField(fieldNum(UserInfo, RecId));
qbds7.fields().addField(fieldNum(UserInfo, ID));
//add joins
qbds4.joinMode(JoinMode::ExistsJoin);
qbds4.relations(true);
qbds4.addLink(fieldNum(InventTable,ItemId),fieldNum(InventTrans,ItemId));
qbds5.joinMode(JoinMode::ExistsJoin);
qbds5.relations(true);
qbds5.addLink(fieldNum(InventTrans,inventDimId),fieldNum(INVENTDIM,inventDimId));
qbds6.joinMode(JoinMode::ExistsJoin);
qbds6.relations(true);
qbds6.addLink(fieldNum(INVENTDIM,InventLocationId),fieldNum(TXLWAREHOUSESECURITY,Location));
qbds7.joinMode(JoinMode::ExistsJoin);
qbds7.relations(true);
qbds7.addLink(fieldNum(TXLWAREHOUSESECURITY,UserRef),fieldNum(UserInfo,RecId));
//add ranges
qbds1.addRange(FieldNum(InventTable,TxlDirectIndirect)).value(queryValue(TxlDirectIndirect::Indirect));
qbds1.addRange(FieldNum(InventTable,TxlMaintainable)).value(queryValue(NoYes::No));
qbds2.addRange(FieldNum(InventTable,TxlDirectIndirect)).value(queryValue(TxlDirectIndirect::Direct));
qbds2.addRange(FieldNum(InventTable,TxlBulkIssuance)).value(queryValue(NoYes::Yes));
qbds2.addRange(FieldNum(InventTable,TxlMaintainable)).value(queryValue(NoYes::No));
qbds7.addRange(FieldNum(UserInfo,ID)).value(curUserId());
Comments
Post a Comment