Вложенные типизированные данные

7 views
Skip to first unread message

Анатолий Долидович

unread,
Apr 13, 2022, 6:12:38 AM4/13/22
to cla...@googlegroups.com
Здравствуй, Clalist.

Помогите пожалуйста равзобраться.

Перерабатываю сейчас один свой, можно сказать, пет-проект, под новые
условия на Clarion6.3.9058.

Завел такое объявление данных:
Id_Contact Group,type !Контактная информация
Info string(140) !Дополнительные сведения о клиенте
StatPhoneNo string(35) !Номер стационарного телефона
MobPhoneNo string(35) !Номер мобильного телефона
Fax string(35) !Номер факса
Email string(140) !Адрес(-а) электронной почты
End
Id_Post Group,type !Почтовый адрес
Formalised byte !Формализованный или в свободной форме
Street string(70) !Название улицы
Building string(16) !Номер дома
Room string(16) !Номер квартиры или офиса
PI string(16) !Почтовый индекс
Town string(35) !Название населенного пункта
Location string(35) !Конкретное наименование места в городе
District string(35) !Название административной единицы
Region string(35) !Наименование региона/области страны
Country string(2) !Код страны
End
Id_Branch Group,type !Идентификация филиала финансового института
BranchId string(35) !Идентификатор филиала финансового института
BranchName string(140) !Наименование филиала финансового института
BranchAddr Group(Id_Post). !Почтовый адрес филиала
End

и т.п.
и есть типизированная очередь, в которую входят эти структуры:

Queue20022 Queue,type
N short
Date long
Type byte
PmtInfId string(35)
DbtAdvcPrtry string(4)
LclInstrmPrtry string(35)
InstrPrty string(4)
SvcLvl_Cd string(4)
CtgyPurp string(4)
ReqdExctnDt long
ReqdExctnTm long
Dbtr Group(ID_Org).
Dbtr_Adr Group(Id_Post).
Dbtr_Ct Group(Id_Contact).
и т.д.

Все это находится в подключаемом файле.
Насколько я знаю кларион, такое объявление данных ничему не
противоречит. Главное обращаться к переменным корректно.
Однако когда я объявляю переменную с типом Queue20022, у меня сразу
выскакивают ошибки компиляции а именно дублирование переменной.
Расставлял везде уникальные префиксы - все то же самое.
Может отказаться от мелких типизированных структур и все в одну
очередь засунуть? Беда в том, что они повторяются там несколько раз,
например, групп типа Id_Post там ажно 11 штук.
Такая вот дебильная структура.

--
С уважением,
Анатолий mailto:anatoli.d...@asb.by

Alexander Strumensky

unread,
Apr 13, 2022, 6:23:26 AM4/13/22
to cla...@googlegroups.com


ср, 13 апр. 2022 г. в 13:12, 'Анатолий Долидович' via ClaList <cla...@googlegroups.com>:
как обьявляется переменная Queue20022 ?
дублирование какой переменной?
 
Расставлял везде уникальные префиксы - все то же самое.
Может  отказаться  от  мелких  типизированных  структур  и  все в одну
очередь  засунуть?  Беда в том, что они повторяются там несколько раз,
например, групп типа Id_Post там ажно 11 штук.
Такая вот дебильная структура.

--
С уважением,
 Анатолий                          mailto:anatoli.d...@asb.by

--
Вы получили это сообщение, поскольку подписаны на группу ClaList.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Просмотреть это обсуждение в Сети можно по адресу https://groups.google.com/d/msgid/clalist/336153755.20220413131235%40asb.by.


--
Best regards,
  Strumensky Alexander

Анатолий Долидович

unread,
Apr 13, 2022, 6:27:19 AM4/13/22
to cla...@googlegroups.com
В секции данных процедуры объявляю очередь Q с типом Queue20022.
Дублируются все переменные, которые находятся во вложенных
типизированных группах.

Анатолий Долидович

unread,
Apr 13, 2022, 6:33:20 AM4/13/22
to cla...@googlegroups.com
Вот так объявлена переменная:



А вот так выводятся варниниги при компиляции:





-- 
С уважением,
 Анатолий                          
mailto:anatoli.d...@asb.by
int_1.jpg
int_2.jpg

wbu...@gmail.com

unread,
Apr 13, 2022, 6:38:07 AM4/13/22
to cla...@googlegroups.com
В элементарных группах поставь префиксы тоже

--
Отправлено из мобильной Яндекс Почты

13.04.2022, 13:33, "'Анатолий Долидович' via ClaList" <cla...@googlegroups.com>:
Вот так объявлена переменная:




А вот так выводятся варниниги при компиляции:





-- 
С уважением,
 Анатолий                          
mailto:anatoli.d...@asb.by

--
Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/clalist/19410179127.20220413133316%40asb.by.

Alexander Strumensky

unread,
Apr 13, 2022, 6:39:51 AM4/13/22
to cla...@googlegroups.com
Ну вот как человеку помочь, когда он упорно не хочет давать никакой подробной информации о его проблеме?

Следующий код компилится успешно (поля типа ID_Org закомментил, т.к. не приведена декларация)

  PROGRAM

  MAP
main PROCEDURE
  END


Id_Contact   Group,type                !Контактная информация
Info           string(140)             !Дополнительные сведения о клиенте
StatPhoneNo    string(35)              !Номер стационарного телефона
MobPhoneNo     string(35)              !Номер мобильного телефона
Fax            string(35)              !Номер факса
Email          string(140)             !Адрес(-а) электронной почты
             End
Id_Post      Group,type                !Почтовый адрес
Formalised     byte                    !Формализованный или в свободной форме
Street         string(70)              !Название улицы
Building       string(16)              !Номер дома
Room           string(16)              !Номер квартиры или офиса
PI             string(16)              !Почтовый индекс
Town           string(35)              !Название населенного пункта
Location       string(35)              !Конкретное наименование места в городе
District       string(35)              !Название административной единицы
Region         string(35)              !Наименование региона/области страны
Country        string(2)               !Код страны
             End
Id_Branch    Group,type                !Идентификация филиала финансового института
BranchId       string(35)              !Идентификатор филиала финансового института
BranchName     string(140)             !Наименование филиала финансового института
BranchAddr     Group(Id_Post).         !Почтовый адрес филиала
             End

Queue20022   Queue,type
N              short
Date           long
Type           byte
PmtInfId       string(35)
DbtAdvcPrtry   string(4)
LclInstrmPrtry string(35)
InstrPrty      string(4)
SvcLvl_Cd      string(4)
CtgyPurp       string(4)
ReqdExctnDt    long
ReqdExctnTm    long
!Dbtr           Group(ID_Org).
Dbtr_Adr       Group(Id_Post).
Dbtr_Ct        Group(Id_Contact).
!Crtr           Group(ID_Org).
Crtr_Adr       Group(Id_Post).
Crtr_Ct        Group(Id_Contact).
             End

  CODE

main PROCEDURE
Q Queue20022
  CODE
  Q.Dbtr_Adr.Formalised = 1
  Q.Crtr_Adr.Formalised = 1




ср, 13 апр. 2022 г. в 13:27, 'Анатолий Долидович' via ClaList <cla...@googlegroups.com>:
--
Вы получили это сообщение, поскольку подписаны на группу ClaList.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Просмотреть это обсуждение в Сети можно по адресу https://groups.google.com/d/msgid/clalist/1501702709.20220413132716%40asb.by.

Alexander Strumensky

unread,
Apr 13, 2022, 6:41:18 AM4/13/22
to cla...@googlegroups.com
Вот какраз из-за префиксов все проблемы

Префиксов быть не должно вообще

ср, 13 апр. 2022 г. в 13:38, <wbu...@gmail.com>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/clalist/69801649846283%40vla5-f98fea902492.qloud-c.yandex.net.

Alexander Strumensky

unread,
Apr 13, 2022, 6:49:35 AM4/13/22
to cla...@googlegroups.com

Q Queue20022,PRE() - это и есть корень зла. префикса быть не должно.

либо придется обьявлять структуру очереди не используя декларированные структуры.

PS: можно зайти в
image.png
и попробовать убрать ЗЛО ( ,PRE() ) там


ср, 13 апр. 2022 г. в 13:33, 'Анатолий Долидович' via ClaList <cla...@googlegroups.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/clalist/19410179127.20220413133316%40asb.by.


--
Best regards,
  Strumensky Alexander

Alexander Strumensky

unread,
Apr 13, 2022, 6:54:22 AM4/13/22
to cla...@googlegroups.com
Кстати, я обьявил вот так
image.png

И тоже все в порядке

ср, 13 апр. 2022 г. в 13:33, 'Анатолий Долидович' via ClaList <cla...@googlegroups.com>:
Вот так объявлена переменная:
Вы получили это сообщение, поскольку подписаны на группу "ClaList".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес clalist+u...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/clalist/19410179127.20220413133316%40asb.by.

Анатолий Долидович

unread,
Apr 13, 2022, 7:22:43 AM4/13/22
to cla...@googlegroups.com
У всех групп поставил префиксы, которые были и вне очереди и в
очереди. Группы, которые дублировались (а есть и такие), заменил на
объявление массива из соответствующего чисола элементов.
Все равно идет какое-то дублирование, пока не могу понять, но уже
наверно разберусь сам уже.
По крайней мере когда было более 900 сообщений - клаша вешалась,
теперь по крайней мере их 346, и обработку можно продолжать.
Александр, огромное спасибо за помощь!
Я в принципе начал было расставлять префиксы, но плохо это сделал.

Анатолий Долидович

unread,
Apr 13, 2022, 7:25:42 AM4/13/22
to cla...@googlegroups.com
Я попробовла объявить очередь в локальных данных без атрибута pre(),
подсунул старую версию Include-файла, в которой все объявления без
префиксов, и не помогло. Процедурное объявление очереди уже должно
быть нетипизированным чтобы данные получать.
Я честно говоря наверно дошел бы и до префиксов сам чуть позже, но у
меня сегодня обучение через час, а за час я многое сделать успею
Спасибо!

Анатолий Долидович

unread,
Apr 13, 2022, 7:29:18 AM4/13/22
to cla...@googlegroups.com
Я мудила с Нижнего Тагила - не удалил объявление очереди из данных
процедуры и в эмбеды занес. теперь все нормально.

Анатолий Долидович

unread,
Apr 13, 2022, 7:31:48 AM4/13/22
to cla...@googlegroups.com
Объявив очередь с типом Queue20022 в эмбедах, а не под кнопкой
"данные", восстановил старый вариант Include-файла, и все заработало.
Долбаный префикс, дьявольское наследие досовщины!
Reply all
Reply to author
Forward
0 new messages