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

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

Добавлено: 07 Январь 2016, 17:25
Admin
А кто то уже задержку посчитал прежде чем париться о ней?

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

Добавлено: 07 Январь 2016, 23:51
Yufil
Я бы составил сразу очередь с нужными мне группами, а потом бы лазил в неё...
А одного поля в нескольких группах не бывает?

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

Добавлено: 08 Январь 2016, 13:06
gopstop2007
Спрашиваю всё это потому, что в С10 в Preserve local variables, при выборе локальных данных, если они относятся к группе - выбираются без группового признака, просто как локальные данные :(

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

Добавлено: 08 Январь 2016, 16:20
Shur
gopstop2007 писал(а): выбираются без группового признака
Хотел сказать "перетаскиваются" в код? Или что-то другое?
Yufil писал(а): Я бы составил сразу очередь с нужными мне группами, а потом бы лазил в неё...
Я уже предлагал сей чудный вариант. Почему-то не понравился.

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

Добавлено: 08 Январь 2016, 16:54
gopstop2007
Shur писал(а):Хотел сказать "перетаскиваются" в код? Или что-то другое?
лучше один раз увидеть...

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

Добавлено: 08 Январь 2016, 17:18
Shur
Понятно. Проблема только визуальная или код генерится из-за этого не верный?

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

Добавлено: 09 Январь 2016, 10:18
gopstop2007
я не ради визуальности программирую, а ради результата :) Выдает ошибки при компиляции воспринимает поле как не относящееся к группе (показывает - Myfield, должно быть G1:Myfield)

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

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

Фух :-)

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

Добавлено: 09 Январь 2016, 11:16
Дед Пахом
и это я ещё не учёл вложенные группы, там ваще писец походу :-)

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

Добавлено: 09 Январь 2016, 11:21
Дед Пахом
кстати, только что дошло, можно всё это дело сократить в разы, если использовать #FOR, REVERSE

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

Добавлено: 09 Январь 2016, 11:35
gopstop2007
Дед Пахом писал(а):Если речь об ошибке в "новом" шаблоне "Preserve locals", то точно так же ведёт себя и глобальный...
о нем :idied: , просто в окне используется более 100 локальных данных, хотелось упорядочить визуально :)

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

Добавлено: 10 Январь 2016, 0:37
Yufil
Была когда-то аналогичная проблема при переносе старого приложения.
У глобальной группы убрал префикс, а в поля, наоборот, добавил

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

И как рукой...
Потом, правда, пришлось обратно переделывать, но это совсем другая история :)

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

Добавлено: 11 Январь 2016, 9:55
Shur
Yufil писал(а): У глобальной группы убрал префикс, а в поля, наоборот, добавил
Мне кажется, хороший выход, чтобы переждать, пока SV'шники поправят шаблоны. Помнится, тоже что-то подобное делал, когда C7 был совсем "сырой".
Только надо бы в problemtracker чиркнуть о данной ошибке.

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

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