|
|
|
|
#1 |
|
Участник
|
Проблемы в dialog
Имеется контрол в диалоге типа Dimension, надо по какому-то условию делать эти контролы недоступны.
метод: PHP код:
Есть у кого-нибудь какие мысли? |
|
|
|
|
#2 |
|
MCTS
|
Ну не знаю...
Одно из решений: допиливание классов DialogField и Dialog Идея: при добавлении поля в диалоге указывать индекс поля (то бишь аналитику) В классе Dialog метод addField() X++: DialogField addField(
int type,
FieldLabel label = '',
FieldHelp help = '',
ArrayIdx idx = 0 //modified for ArrayFields
)
{
DialogField DialogField;
fields += 1;
DialogField = new DialogField(this,type,fields);
this.addCtrlDialogField(dialogField.name());
// dialogField.init(this); //standard
dialogField.init(this, idx);//modified for ArrayFields
if (label)
dialogField.label(label);
if (help)
dialogField.helpText(help);
this.addDialogClass(dialogField);
return dialogField;
}X++: //void init(Dialog dialog)//standard void init(Dialog dialog, ArrayIdx idx=0)//Modified for ArrayFields { .... //Added for ArrayFields --> if((idx)&&(idx<=arraysize)) { f = idx; arraysize = idx; } //Added for ArrayFields <-- while (f <= arraysize) { .... } X++: d.addField(TypeId(Dimension), '', '', 1);
__________________
![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
|
|
|
#3 |
|
Moderator
|
Если все делаете правильно (как советовал Peter Savintsev), то нормально создается и работает EDT для любой аналитики.
MyDimensionPurpose == Dimensions.Num 2 == Dimensions.DimensionCode Единственное, я не наследовал от SysDim.
__________________
Андрей. |
|
|
|
| За это сообщение автора поблагодарили: Qaz Qwerty (1). | |
|
|
#4 |
|
Участник
|
Сорри, ошибся. Действительно, надо наследовать не от SysDim, а от SysGroup. Для SysDim используется своя lookup-форма, которая не очень корректно работает в данном случае.
|
|
|
|
| За это сообщение автора поблагодарили: Qaz Qwerty (1). | |
|
|
#5 |
|
Участник
|
Спасибо!!! Всё получилось
|
|
|