Положение колонок в гриде

Не подскажете ли решение одной проблемы – как определить положение колонки грида? Смотрел ее свойства – свойства Left нет. Есть ширина, но OrderPosition 0 у всех (может оно где-то на последнем этапе появляется). Если бы можно было пройтись по колонкам от первой до интересующей, то можно было бы вычислить положение. Как определить координаты элементов?

Нравится

4 комментария

Добрый день.
Настройка положения колонок "вытаскивается" из закешированного содержимого. Базовые функции. работающие с кешем представлены в Common\Library\scr_WindowUtils: WinCache_Get, WinCache_CheckExtent() и т.д. Примеры их использования можно найти в конфигурации.

Если окно еще ни разу не открывалось - ядро обращается непосредственно к XML содержимому сервиса окна, и по мере получения Item'ов формирует обект окна. При необходимости уточним у разработчиков, учитывается ли OrderPosition, и реализуема ли Ваша задача. Уточните также, в свою очередь, какие бинарные файлы используете Вы (их версию).

Здравствуйте!

Цикл:

var j = 0;
var ActiveView = DataGrid.ActiveView;
for (var i = 0; i < DataGrid.ActiveView.Count; i++) {
var DataField = ActiveView.Items(i);
if (!DataField.IsEnabled) {
continue;
}
//Это поле, DataField стоит под номером j. Дальше что хотите, то и делаете
j++;
}

Даже если кто-то испортил порядок вручную, то запустив эту функцию еще раз мы все-равно определим положение

Спасибо, работает. Не поскажете еще как программно менять порядок следования элементов внутри фреймгруп. Например внутри FrameGroup5 находятся (fgOffering1, fgOffering2, fgOffering3, fgOffering4) Хотелось бы изменить порядок следования - (fgOffering4, fgOffering2, fgOffering1, fgOffering3)

можно вместо цикла перебрать по одному.

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