Показать сообщение отдельно
Старый 10.04.2007, 12:44   #1  
johny77 is offline
johny77
Участник
 
31 / 27 (1) +++
Регистрация: 04.07.2006
Набор однотипных lookup() методов на форме
На форме таблици XXX_Table необходимо что бы поля Field1, Field2 выбирались из определенного списка (например название клиентов like 'К*' с ограничением на группу клиентов).

Я сделал следующее:
Tables\XXX_Table\Methods\modifiedField(fieldId _fieldId)
X++:
...
switch(_fieldId)
{
...
        case fieldNum(XXX_Table, Field1) :
        case fieldNum(XXX_Table, Field2) :
            select Name from custTable
                where custTable.AccountNum == this.(_fieldId);

            if (custTable.CustGroup!= #Group)
            {
                warning('.....');
                this.(_fieldId) = this.orig().(_fieldId);
            }
            break;
...
}
...
\Forms\XXX_Table\DataSources\XXX_Table\Fields\Field1\Methods\lookup
\Forms\XXX_Table\DataSources\XXX_Table\Fields\Field2\Methods\lookup
X++:
public void lookup(FormControl _formControl, str _filterStr)
{
    ;
    custTable::XXX_lookupMyFilter(_formControl, #Group);
}
Описанное все работает чудестно. Вопрос в следующем, есть необходимость реализовать это не для двух полей, а двадцати (такое полотно таблицы), необходимо добавлять двадцать методов на форму:

\Forms\XXX_Table\DataSources\XXX_Table\Fields\Field...\Methods\lookup

Есть ли другой способ реализовать данные методы на элементы формы?
(кроме реализации через EDT для полей Field1, Field2, ...)
Спасибо.

Последний раз редактировалось johny77; 10.04.2007 в 12:47.