Получить имя поля с указателем в Group

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Получить имя поля с указателем в Group

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

Привет всем !

Нужно получить имя поля с указателем на список в группе.
Но для этого ведь нужно получить номер поля. Т.е.:

Код: Выделить всё

MyQueue Queue
FL  Long
  end
  
MyGroup Group
FS  String(20)
Q1  &Queue
  end
  
  Code
  Message( Where(MyGroup, MyGroup.Q1) )  ! Вроде бы очевидное решение -> Ошибка с вылетом.
  
  MyGroup.Q1 &= MyQueue
  Message( Where(MyGroup, MyGroup.Q1) )  ! Мы пойдём другим путём -> Результат = 0. :(
А как тогда узнать номер (и имя) поля в группе ? Спасибо за содействие.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Получить имя поля с указателем в Group

Сообщение Admin »

Может как то с другой стороны подойти... не уверен. :)

Код: Выделить всё

PROGRAM              
  
  MAP
  END
  
MyGroup  GROUP
F1        LONG          !Field number 1
F2        SHORT         !Field number 2
F3        STRING(30)    !Field number 3
InGroup    GROUP        !Field number 4
F1          LONG        !Field number 5
F2          SHORT       !Field number 6
F3          STRING(30)  !Field number 7
          END
        END

  CODE
  W# = 1
  LOOP                   
    MESSAGE(WHO(MyGroup, W#))
    W# += 1
  WHILE WHO(MyGroup, W#) <> ''
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Получить имя поля с указателем в Group

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

Игорь Столяров писал(а): 30 Ноябрь 2022, 10:11 Вроде бы очевидное решение -> Ошибка с вылетом.
Этот бы вопрос да Соловьёву, по мне так реально жёсткий баг. А так всегда было, в C6 например?
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Получить имя поля с указателем в Group

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

Дед Пахом писал(а): 30 Ноябрь 2022, 22:38 А так всегда было, в C6 например
Да, в С63 и есть проблема ... ну ладно, тогда мы пойдём другим путём. :ty:
За теми кто отстал - не возвращаться. (С) Кодекс
IKSoft
Посетитель
Сообщения: 42
Зарегистрирован: 27 Май 2010, 13:38

Получить имя поля с указателем в Group

Сообщение IKSoft »

Возможно, Вас так устроит

Код: Выделить всё

MyQueue Queue
FL  Long
  end
  
MyGroup Group
FS  String(20)
gr         group
pqQueue      &Queue
plQueue      long,over(pqQueue)
           end

  end
  code
  Message( Where(MyGroup, MyGroup.gr.plQueue) )
  
  MyGroup.gr.pqQueue &= MyQueue
  Message( Where(MyGroup, MyGroup.gr.plQueue)&'|'& MyGroup.gr.plQueue)
  
Ответить