Цитата:
Сообщение от
user_ax
То есть мне нужно показ\скрытие полей вставить в метод modified поля датасоурса для отображения его? Попробую, спасибо большое!
не совсем так.
1. создайте метод visibleFields, в корне формы (там где метод classDeclaration). в этом методе пропишите необходимый алгоритм отображения и столбцов датасорсов и любых других контролов формы. в будующем везде вы будете использовать этот метод, когда будет необходимо изменить видимость (а не писать одно и тоже тыщу раз). В дальнейшем вызов этого метода выглядит как:
X++:
element.visibleFields();
Для управления видимости столбцов датасорса, можно на самом датасорсе создать метод visibleColums(), в нем прописать логику отображения столбцов. И в методе visibleFields() этот метод вызвать (так мы разделим управление видимостью столбцами и прочих контролов формы). Т.е. в итоге метод visibleFields буде выглядеть примерно так:
X++:
...
MyTable_ds.visibleColums();
AnyControl.visible(...);
AnyControl2.visible(...);
...
2. Если вам необходимо изменять видимости после измененеия значения в каком либо поле, тогда нужно будет вызвать метод определения видимости (который мы создали в первом пункте) из метода modified
изменяемого поля. Например, если при изменении поля ItemId (Код номенклатуры) нам необходимо скрыть какое то поле, тогда в методе modified поля ItemId датасорса прописываем после super() код:
X++:
element.visibleFields();
а в методе visibleColum датасорса SalesQuotationLine надо прописать:
X++:
SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,ItemId)).visible(AnyParameters);