X++雙向關聯查詢數據,初始化下拉選項

static client void lookupInfuseBOMId(FormStringControl   _ctrl,ItemId _itemId)


{

   //傳入要查詢的表
    SysTableLookup          sysTableLookup = SysTableLookup::newParameters(tablenum(BomTable), _ctrl);
    Query                   query;
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildDataSource    queryBuildDataSourceSite;
    QueryBuildDataSource    qbdBomVersion;

    QueryBuildRange         queryBuildRange;
    QueryBuildRange         qbrVesionRange;
    ;
    query = new Query();

    queryBuildDataSource = query.addDataSource(tablenum(BomTable));

    qbdBomVersion=queryBuildDataSource.addDataSource(tablenum(BomVersion));
    qbdBomVersion.joinMode(JoinMode::ExistsJoin);
    qbdBomVersion.addLink(fieldnum(BomTable,BomId),fieldnum(BomVersion,BomId));

    queryBuildDataSourceSite = qbdBomVersion.addDataSource(tablenum(JaxBomType));
    queryBuildDataSourceSite.joinMode(JoinMode::ExistsJoin);
    queryBuildDataSourceSite.addLink(fieldnum(BomVersion,JaxBoMTypeId ), fieldnum(JaxBomType, JaxBoMTypeId));

    queryBuildRange=queryBuildDataSourceSite.addRange(fieldnum(JaxBomType,isInfuseWax));
    queryBuildRange.value(QueryValue(NoYes::Yes));


    qbrVesionRange=qbdBomVersion.addRange(fieldnum(BomVersion,ItemId));
    qbrVesionRange.value(_itemId);

 

    //初始化要顯示的欄位

    sysTableLookup.addLookupfield(fieldnum(BomTable, BomId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, Name));
    sysTableLookup.addLookupfield(fieldnum(BomTable, SiteId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, ItemGroupId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, JaxBOMTypeId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, JaxGoldContentId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, JaxStoneTypeId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, JaxPartsTypeId));
    sysTableLookup.addLookupfield(fieldnum(BomTable, JaxEditionId));

    //return sysTableLookup;
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}

 

 

  調用位置,

     重寫數據源的lookup方法

public void lookup(FormControl _formControl, str _filterStr)
{
    //super(_formControl, _filterStr);
    ;
    BOMTable::lookupInfuseBOMId(_formControl,BOMVersion.ItemId);
}

 

  用戶在使用下拉列表的時候就會調用此方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章