Показать сообщение отдельно
Старый 11.08.2017, 09:12   #1  
SuperStar88 is offline
SuperStar88
Участник
 
79 / 10 (1) +
Регистрация: 11.08.2017
? Программное создание comboBox в Dialog
Надо на форму Dialog добавить поле RContractCode из таблицы RContractTable.
Должен получиться такой список
Нажмите на изображение для увеличения
Название: screenshot 2017-08-11 001.png
Просмотров: 556
Размер:	17.3 Кб
ID:	11592

Делаю так:
X++:
protected Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{;
    dialog = super(_dialog, _forceOnClient);
    dialog.caption("Задайте параметры");

    rContractCodeField = dialog.addFieldValue(TypeId(RContractCode), rContractCode);

    return dialog;
}
public void dialogPostRun(DialogRunbase _dialog)
{
    super(_dialog);

    _dialog.formRun().controlMethodOverloadObject(this);
    _dialog.formRun().controlMethodOverload(true);
}

public void rContractCodeField_lookup()
{
    FormStringControl           formStringControl;
    SysTableLookup              sysTableLookup;
    Query                               query = new Query();
    QueryBuildDataSource     qbds;
    ;

    formStringControl = dialog.formRun().controlCallingMethod();
    sysTableLookup = SysTableLookup::newParameters(tablenum(RContractTable),formStringControl);
    sysTableLookup.addLookupfield(fieldnum(RContractTable, RContractCode));

    qbds = query.addDataSource(tablenum(RContractTable));
    // Получаем нужное поле
    qbds.addSelectionField(fieldnum(RContractTable, RContractCode));
    // Используем группировку, чтобы убрать дубли
    qbds.addGroupByField(fieldnum(RContractTable, RContractCode));
    // Отображаем только для Поставщиков
    qbds.addRange(fieldnum(RContractTable, RContractPartnerType)).value(enum2str(RContractPartnerType::Vend));

    //info(query.dataSourceNo(1).toString());
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}
В итоге получается такое:
Название: Безымянный.png
Просмотров: 994

Размер: 32.7 Кб

То есть, не получается отфильтровать нужные данные. И оно почему-то не заходит в lookup-метод

AX2009 (5.0.1500)