Страница 1 из 1

Browse - смена порядка и скрытие колонок

Добавлено: 21 Июнь 2016, 14:46
gopstop2007
Browse в котором пользователь расставляет в нужном порядке колонки, ненужные прячет(HIDE), после чего пытаюсь получить данные из Queue:Browse. Если с получением названий колонок нет проблем,

Код: Выделить всё

Loop n# = 1 to ?List{PropList:Exists,0} by 1
     IF ?List{PropList:Width,n#} > 0 ! если не скрыта колонка 
            myNameHeader = ?List{PROPLIST:Header, n#} 
     END 
END
то с самими данными в Queue:Browse, если используя WHAT(), кроме данных самого поля берутся и все атрибуты этого поля color, icon id, tip (_Icon, _NormalFG, _NormalBG, _SelectedFG, _SelectedBG, _Icon, _Tip, _Style).
Вопрос: 1.Как получить из Queue:Browse только содержимое полей?
2. Получить данные при измененном порядке колонок?
Буду рад любой подсказке.

Browse - смена порядка и скрытие колонок

Добавлено: 21 Июнь 2016, 15:44
kreator
what() вытягивает из очереди. Поэтому нужно это учитывать. Например, содержимое первого поля - what(Q,1), второго - what(Q,7), в зависимости от аттрибутов поля. А что касается изменённого порядка, то есть свойство proplist:FieldNo, оно должно показывать номер поля в очереди, по которой List.

Browse - смена порядка и скрытие колонок

Добавлено: 21 Июнь 2016, 23:28
gopstop2007
kreator писал(а):what() вытягивает из очереди. Поэтому нужно это учитывать. Например, содержимое первого поля - what(Q,1), второго - what(Q,7), в зависимости от аттрибутов поля.
Как различить поля с атрибутами от полей с данными, кроме различий в названии? :)

Browse - смена порядка и скрытие колонок

Добавлено: 22 Июнь 2016, 1:56
kreator
gopstop2007 писал(а):Как различить поля с атрибутами от полей с данными, кроме различий в названии?
Не очень понятен вопрос. Очередь ведь объявлена, там поля в каком-то порядке. Посмотрите. List требует определённых правил (например, если ячейка имеет атрибут "цвет", то за значением должны идти четыре поля типа Long). А what() не разбирает названия, вытягивает, что там есть по числу.

Browse - смена порядка и скрытие колонок

Добавлено: 22 Июнь 2016, 16:24
Игорь Столяров
gopstop2007 писал(а): 1.Как получить из Queue:Browse только содержимое полей?

Распарсив имена колонок и отбросив колонки с окончаниями (_Icon, _NormalFG, _NormalBG, _SelectedFG, _SelectedBG, _Icon, _Tip, _Style). Конечно же в этом случае, колонки с данными не должны иметь такие "служебные" хвостики имен.
gopstop2007 писал(а): 2. Получить данные при измененном порядке колонок?
А зачем ? Вся эта информация в очереди для прорисовки оформления строится шаблоном на основании структуры FORMAT() LIST.
Т.е. Вы можете напрямую ее получить из структуры FORMAT() LIST (см. в справке PROPLIST Properties Index), причем в текущем
порядке колонок в LIST ...