Group - узнать принадлежность
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Group - узнать принадлежность
А кто то уже задержку посчитал прежде чем париться о ней?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Group - узнать принадлежность
Я бы составил сразу очередь с нужными мне группами, а потом бы лазил в неё...
А одного поля в нескольких группах не бывает?
А одного поля в нескольких группах не бывает?
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Group - узнать принадлежность
Спрашиваю всё это потому, что в С10 в Preserve local variables, при выборе локальных данных, если они относятся к группе - выбираются без группового признака, просто как локальные данные 

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Group - узнать принадлежность
Хотел сказать "перетаскиваются" в код? Или что-то другое?
Я уже предлагал сей чудный вариант. Почему-то не понравился.
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Group - узнать принадлежность
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Group - узнать принадлежность
Понятно. Проблема только визуальная или код генерится из-за этого не верный?
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Group - узнать принадлежность
я не ради визуальности программирую, а ради результата
Выдает ошибки при компиляции воспринимает поле как не относящееся к группе (показывает - Myfield, должно быть G1:Myfield)

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Group - узнать принадлежность
Если речь об ошибке в "новом" шаблоне "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
С уважением, ДП
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Group - узнать принадлежность
о немДед Пахом писал(а):Если речь об ошибке в "новом" шаблоне "Preserve locals", то точно так же ведёт себя и глобальный...


“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Group - узнать принадлежность
Была когда-то аналогичная проблема при переносе старого приложения.
У глобальной группы убрал префикс, а в поля, наоборот, добавил
L1_group Group,Pre()
L1G:Field1 Long
L1G:Field2 Long
End
И как рукой...
Потом, правда, пришлось обратно переделывать, но это совсем другая история
У глобальной группы убрал префикс, а в поля, наоборот, добавил
L1_group Group,Pre()
L1G:Field1 Long
L1G:Field2 Long
End
И как рукой...
Потом, правда, пришлось обратно переделывать, но это совсем другая история

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