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

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

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
- Дед Пахом
- Старичок
- Сообщения: 3302
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 51 раз
- Контактная информация:
Group - узнать принадлежность
Если речь об ошибке в "новом" шаблоне "Preserve locals", то точно так же ведёт себя и глобальный, то есть поля групп попадают в код без префикса, и ошибка компиляции.
Если же вопрос в том, как вытащить имя поля вместе с префиксом на языке шаблонов, то примерно так:
- юзер тыкает мышой в поле группы
- цикл #FOR(%LocalData) пока не дойдём до поля, запоминаем индекс1
- снова цикл #FOR(%LocalData), запоминаем индекс2, где EXTRACT(%LocalDataStatement,'GROUP') <> 0 и индекс2 < индекс1, и запоминаем префикс (иными словами, пропускаем группы, стоящие перед нашей)
- как только текущий индекс >= индекс1, выходим из цикла, если префикс есть, он тот что нужен. Если нет, и index2 > 0, у группы нет префикса. Если index2 = 0, поле никакой группе не принадлежит.
Фух

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

С уважением, ДП
Дед Пахом
- Дед Пахом
- Старичок
- Сообщения: 3302
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 51 раз
- Контактная информация:
Group - узнать принадлежность
кстати, только что дошло, можно всё это дело сократить в разы, если использовать #FOR, REVERSE
С уважением, ДП
Дед Пахом
-
- Полимат
- Сообщения: 1817
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 27 раз
- Поблагодарили: 10 раз
Group - узнать принадлежность
о немДед Пахом писал(а):Если речь об ошибке в "новом" шаблоне "Preserve locals", то точно так же ведёт себя и глобальный...


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

Yufil
Group - узнать принадлежность
Мне кажется, хороший выход, чтобы переждать, пока SV'шники поправят шаблоны. Помнится, тоже что-то подобное делал, когда C7 был совсем "сырой".
Только надо бы в problemtracker чиркнуть о данной ошибке.
Shur
Group - узнать принадлежность
Мне кажется, сама функция Preserve не очень адекватна, лучше бы явно предложить классы для сохранения и восстановления параметров. Что-то типа JSON для сохранения кларионовских структур в целом или произвольной совокупности данных, включая, естественно, группы и массивы.
Yufil
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)