Group - узнать принадлежность

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Group - узнать принадлежность

Сообщение Admin »

А кто то уже задержку посчитал прежде чем париться о ней?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Group - узнать принадлежность

Сообщение Yufil »

Я бы составил сразу очередь с нужными мне группами, а потом бы лазил в неё...
А одного поля в нескольких группах не бывает?
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Group - узнать принадлежность

Сообщение gopstop2007 »

Спрашиваю всё это потому, что в С10 в Preserve local variables, при выборе локальных данных, если они относятся к группе - выбираются без группового признака, просто как локальные данные :(
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Group - узнать принадлежность

Сообщение Shur »

gopstop2007 писал(а): выбираются без группового признака
Хотел сказать "перетаскиваются" в код? Или что-то другое?
Yufil писал(а): Я бы составил сразу очередь с нужными мне группами, а потом бы лазил в неё...
Я уже предлагал сей чудный вариант. Почему-то не понравился.
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Group - узнать принадлежность

Сообщение gopstop2007 »

Shur писал(а):Хотел сказать "перетаскиваются" в код? Или что-то другое?
лучше один раз увидеть...
Вложения
groupData.jpg
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Group - узнать принадлежность

Сообщение Shur »

Понятно. Проблема только визуальная или код генерится из-за этого не верный?
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Group - узнать принадлежность

Сообщение gopstop2007 »

я не ради визуальности программирую, а ради результата :) Выдает ошибки при компиляции воспринимает поле как не относящееся к группе (показывает - Myfield, должно быть G1:Myfield)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Group - узнать принадлежность

Сообщение Дед Пахом »

gopstop2007 писал(а): Спрашиваю всё это потому, что в С10 в Preserve local variables, при выборе локальных данных, если они относятся к группе - выбираются без группового признака, просто как локальные данные
Если речь об ошибке в "новом" шаблоне "Preserve locals", то точно так же ведёт себя и глобальный, то есть поля групп попадают в код без префикса, и ошибка компиляции.
Если же вопрос в том, как вытащить имя поля вместе с префиксом на языке шаблонов, то примерно так:
- юзер тыкает мышой в поле группы
- цикл #FOR(%LocalData) пока не дойдём до поля, запоминаем индекс1
- снова цикл #FOR(%LocalData), запоминаем индекс2, где EXTRACT(%LocalDataStatement,'GROUP') <> 0 и индекс2 < индекс1, и запоминаем префикс (иными словами, пропускаем группы, стоящие перед нашей)
- как только текущий индекс >= индекс1, выходим из цикла, если префикс есть, он тот что нужен. Если нет, и index2 > 0, у группы нет префикса. Если index2 = 0, поле никакой группе не принадлежит.

Фух :-)
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Group - узнать принадлежность

Сообщение Дед Пахом »

и это я ещё не учёл вложенные группы, там ваще писец походу :-)
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Group - узнать принадлежность

Сообщение Дед Пахом »

кстати, только что дошло, можно всё это дело сократить в разы, если использовать #FOR, REVERSE
С уважением, ДП
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Group - узнать принадлежность

Сообщение gopstop2007 »

Дед Пахом писал(а):Если речь об ошибке в "новом" шаблоне "Preserve locals", то точно так же ведёт себя и глобальный...
о нем :idied: , просто в окне используется более 100 локальных данных, хотелось упорядочить визуально :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Group - узнать принадлежность

Сообщение Yufil »

Была когда-то аналогичная проблема при переносе старого приложения.
У глобальной группы убрал префикс, а в поля, наоборот, добавил

L1_group Group,Pre()
L1G:Field1 Long
L1G:Field2 Long
End

И как рукой...
Потом, правда, пришлось обратно переделывать, но это совсем другая история :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Group - узнать принадлежность

Сообщение Shur »

Yufil писал(а): У глобальной группы убрал префикс, а в поля, наоборот, добавил
Мне кажется, хороший выход, чтобы переждать, пока SV'шники поправят шаблоны. Помнится, тоже что-то подобное делал, когда C7 был совсем "сырой".
Только надо бы в problemtracker чиркнуть о данной ошибке.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Group - узнать принадлежность

Сообщение Yufil »

Мне кажется, сама функция Preserve не очень адекватна, лучше бы явно предложить классы для сохранения и восстановления параметров. Что-то типа JSON для сохранения кларионовских структур в целом или произвольной совокупности данных, включая, естественно, группы и массивы.
Ответить