Простите, привожу код:
Лукап:
X++:
public static void lookupSalesAgreementIdExecutant(FormControl _callingControl,
CustAccount _custAccount,
AgreementExecutant _executant)
{
Query query;
QueryBuildDataSource qbds;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(SalesAgreementHeader), _callingControl);
sysTableLookup.addLookupfield(fieldNum(SalesAgreementHeader, DocumentTitle));
sysTableLookup.addLookupMethod(tableMethodStr(AgreementHeader, AgreementDate_RU));
sysTableLookup.addLookupMethod(tableMethodStr(SalesAgreementHeader, custNameAlias));
sysTableLookup.addLookupfield(fieldNum(SalesAgreementHeader, CustAccount));
sysTableLookup.addLookupfield(fieldNum(SalesAgreementHeader, Currency));
sysTableLookup.addLookupfield(fieldNum(SalesAgreementHeader, AgreementClassification));
sysTableLookup.addLookupfield(fieldNum(SalesAgreementHeader, SalesNumberSequence), true);
query = AgreementHeader::partyAgreementsQuery(tableNum(SalesAgreementHeader),
fieldNum(SalesAgreementHeader, CustAccount),
_custAccount ? _custAccount : SysQuery::valueUnlimited(),
systemDateGet(),
false,
0,
_executant
);
qbds = query.dataSourceTable(tableNum(SalesAgreementHeader));
qbds.addSortField(fieldNum(SalesAgreementHeader, DocumentTitle));
qbds = query.dataSourceTable(tableNum(SalesAgreementHeader));
qbds = qbds.addDataSource(tableNum(SalesAgreementHeaderExt_RU));
qbds.relations(true);
qbds.joinMode(JoinMode::ExistsJoin);
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(false);
sysTableLookup.performFormLookup();
}
Дисплейный метод:
X++:
//BP Deviation Documented
public display CustName custNameAlias()
{
CustTable custTable;
DirPartyTable partyTable;
if (this.CustAccount)
{
select firstonly Party from custTable
where custTable.AccountNum == this.CustAccount
join NameAlias from partyTable
where partyTable.RecId == custTable.Party;
}
return partyTable.NameAlias;
}