получение значения поля выбранной записи в LookupDataControl
Технические вопросы
Разработка

получение значения поля выбранной записи в LookupDataControl

Хочу получить значение поля выбранной записи в LookupDataControl, но не его ID или видимую часть а другое поле. Делаю так:

function edtOfferingFormsTypeOnPrepareSelectWindow(LookupDataControl, SelectWindow) {
        var OfferingTypeID =    edtOffering.DataField.LookupDataset.DataFields.ItemsByName('OfferingTypeID').Value; // - тут в значении "Член группы не найден."
        var LookupDataset = LookupControl.LookupDatasetLink.Dataset;
    ApplyDatasetFilter(LookupDataset, 'OfferingTypeID', OfferingTypeID, true);
}

почему так? могу ли я получить значение любого поля записи в LookupDataControl или придется взять его ручками...

Нравится

5 комментариев

заранее поправлю ошибки, в итоге должно быть примерно так:
[javascript]
function edtOfferingFormsTypeOnPrepareSelectWindow(LookupDataControl, SelectWindow) {
//var OfferingID = edtOffering.DataField.Value; //id записи
var OfferingTypeID = edtOffering.DataField.LookupDataset.DataFields.ItemsByName('OfferingTypeID').Value;

ApplyDatasetFilter(LookupDataControl.DataField.LookupDataset,
'OfferingTypeID', OfferingTypeID, true);
}
[/javascript]

Странно как-то...
лучше на событие DataChange датасета брать Offering и по нему получать OfferingTypeID. Не до конца понимаю что вы по результату сделать. Поясните.

Здравствуйте Владимир,
Если я вас правильно понял, то для получения интересующего вас поле советую попробовать написать
[javascript]
LookupDataControl.DataField.LookupDataset.Open();
LookupDataControl.DataField.LookupDataset('интересующее вас поле').Value;
[/javascript]

Группа компаний Terrasoft

целью была фильтрация LookupDataControl, сделал так:
[javascript]
function edtOfferingFormsTypeOnPrepareSelectWindow(LookupDataControl, SelectWindow) {
var OfferingID = edtOffering.DataField.Value; //id записи
var OfferingTypeID = GetOfferingTypeID(OfferingID);

ApplyDatasetFilter(LookupDataControl.DataField.LookupDataset,
'OfferingTypeID', OfferingTypeID, true);
}

function GetOfferingTypeID(ID)
{
var sq = Services.GetNewItemByUSI('sq_Offering');
ApplySelectQueryFilter(sq, 'ID', ID, true);

var ds = sq.Open();
if (ds.RecordsCount == 0) return null;
return ds.DataFields.ItemsByName('OfferingTypeID').Value;
}
[/javascript]

Вместо

"Каукин Владимир Константинович" написал:function GetOfferingTypeID(ID)
{
    var sq = Services.GetNewItemByUSI('sq_Offering');
    ApplySelectQueryFilter(sq, 'ID', ID, true);

        var ds = sq.Open();    
        if (ds.RecordsCount == 0) return null;
        return ds.DataFields.ItemsByName('OfferingTypeID').Value;
}


Можно использовать [javascript] var OfferingTypeID = GetDatasetFieldValueByID('ds_Offering', OfferingID, 'OfferingTypeID')
[/javascript] из скрипта scr_DB

Показать все комментарии