Показать сообщение отдельно
Старый 15.04.2008, 16:30   #11  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
блин я со своими правками в конец запутался...ситуация
Да там дела не так просты как кажуться, вам придеться писать свой lookup, для этого поля.

Ну вот что то похожее что вам нужно:

X++:
client static void lookupRContractCode(Object                  _lookupCtrl,
                                       RContractPartnerType    _rcontractPartnerType)
{
    SysTableLookup          sysTableLookup;
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    ;

    sysTableLookup       = SysTableLookup::newParameters(tableNum(RContractTypes), _lookupCtrl);
    queryBuildDataSource = query.addDataSource(tableNum(RContractTypes));

    queryBuildRange      = queryBuildDataSource.addRange(fieldNum(RContractTypes, ContractPartnerType));
    queryBuildRange.value(queryvalue(_rcontractPartnerType));

    sysTableLookup.addLookupfield(fieldNum(RContractTypes, ContractCode));
    sysTableLookup.addLookupfield(fieldNum(RContractTypes, ContractCodeName));
    sysTableLookup.addLookupfield(fieldNum(RContractTypes, ContractPartnerType));

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}
X++:
client static void lookupRContractAccount(Object                  _lookupCtrl,
                                          RContractPartnerType    _rcontractPartnerType,
                                          RContractCode           _rcontractCode,
                                          RContractPartnerCode    _rcontractPartnerCode,
                                          boolean                 _onlyActive = true)
{
    SysTableLookup          sysTableLookup;
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    ;

    sysTableLookup       = SysTableLookup::newParameters(tableNum(RContractTable), _lookupCtrl);
    queryBuildDataSource = query.addDataSource(tableNum(RContractTable));

    queryBuildRange      = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractPartnerType));
    queryBuildRange.value(queryvalue(_rcontractPartnerType));

    queryBuildRange      = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractCode));
    queryBuildRange.value(queryvalue(_rcontractCode));

    queryBuildRange      = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractPartnerCode));
    queryBuildRange.value(queryvalue(_rcontractPartnerCode));

    if (_onlyActive)
    {
        queryBuildRange      = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractStatus));
        queryBuildRange.value(queryvalue(RContractStatus::Active));
    }  
    sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractAccount));
    sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractCode));
    sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractPartnerCode));
    sysTableLookup.addLookupfield(fieldNum(RContractTable, ContractDate));
    sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractNumber));

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