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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение 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. Получить данные при измененном порядке колонок?
Буду рад любой подсказке.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

what() вытягивает из очереди. Поэтому нужно это учитывать. Например, содержимое первого поля - what(Q,1), второго - what(Q,7), в зависимости от аттрибутов поля. А что касается изменённого порядка, то есть свойство proplist:FieldNo, оно должно показывать номер поля в очереди, по которой List.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение gopstop2007 »

kreator писал(а):what() вытягивает из очереди. Поэтому нужно это учитывать. Например, содержимое первого поля - what(Q,1), второго - what(Q,7), в зависимости от аттрибутов поля.
Как различить поля с атрибутами от полей с данными, кроме различий в названии? :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

gopstop2007 писал(а):Как различить поля с атрибутами от полей с данными, кроме различий в названии?
Не очень понятен вопрос. Очередь ведь объявлена, там поля в каком-то порядке. Посмотрите. List требует определённых правил (например, если ячейка имеет атрибут "цвет", то за значением должны идти четыре поля типа Long). А what() не разбирает названия, вытягивает, что там есть по числу.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Сообщение Игорь Столяров »

gopstop2007 писал(а): 1.Как получить из Queue:Browse только содержимое полей?

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