Помогите получить информацию о Relations'ах...

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Aragorn
Активист
Сообщения: 113
Зарегистрирован: 11 Июль 2005, 12:40
Откуда: Москва

Помогите получить информацию о Relations'ах...

Сообщение Aragorn »

Хочу обрабатывать информацию о связях между таблицами, описанными в dct. Недолго думая, подправил написанный ранее шаблон, и он у меня заполняет очередь типа

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

tablesref QUEUE
ChildTableRef &FILE
ChildTableLab STRING(100)
ParentTableRef &FILE
ParentTableLab STRING(100)
ChildKeyRef &KEY
ParentKeyRef &KEY
 END
число записей для каждого child-файла = числу его родителей
возник вопрос - как получить теперь какие поля в ключах попарно связаны? Ведь не факт, что они связаны как описаны в ключах?

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

%RelationKeyFieldLink
%FileFieldLink
оказывается не дают правильной последовательности связки?
Как же быть???
Помогите пожалуйста
-------------------------------
В истинном золоте блеска нет...
Аватара пользователя
Aragorn
Активист
Сообщения: 113
Зарегистрирован: 11 Июль 2005, 12:40
Откуда: Москва

Сообщение Aragorn »

Ау! Неужели никто не знает???
-------------------------------
В истинном золоте блеска нет...
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Читать, разбираться нужно.
Смотреть как шаблоны и по каким символам генерят такие связи.
Сам не пробовал так?

Я понимаю... тебе может быть лень или некогда. Но если у народа нет готового решения врядли кто будет разбираться ...
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Кусок кода:

#FOR(%File)
! File: %File
#FOR(%Relation)
! Related file: %Relation
#FOR(%RelationKeyField)
! Link fields: %RelationKeyFieldLink = %RelationKeyField
#ENDFOR
#ENDFOR
#ENDFOR

Вот примерный результат (для тестового словарика):

! File: House
! Related file: Category
! Link fields: HOU:LiftCategoryID = CAT:ID
! Related file: Register
! Link fields: HOU:House = REG:House
! Link fields: HOU:Apartment = REG:Apartment

! File: Register
! Related file: House
! Link fields: REG:House = HOU:House
! Link fields: REG:Apartment = HOU:Apartment

! File: Invoices
! Related file: Category
! Link fields: INV:CategoryID = CAT:ID

! File: Category
! Related file: Invoices
! Link fields: CAT:ID = INV:CategoryID
! Related file: House
! Link fields: CAT:ID = HOU:LiftCategoryID

Ключики и остальное сам догадаешься как получить ...

P.S. Если не нужно дублирование связи в две стороны то проверяй %FileRelationType на 1:MANY
Аватара пользователя
Aragorn
Активист
Сообщения: 113
Зарегистрирован: 11 Июль 2005, 12:40
Откуда: Москва

Сообщение Aragorn »

вот до чего я не допер - я считал что
%RelationKeyField и %FileKeyField
живут отдельной друг от друга жизнью...
По крайней мере, в хелпах ничего про это не написано

Буду надеяться, что это поможет
Завтра проверю
Большое спасибо!

PS И мне совсем не лень, я искал, читал, пробовал
И как бы ни было некогда, хотелось изящного решения...
Просто я думал, может, есть способ без шаблона как-нибудь.
-------------------------------
В истинном золоте блеска нет...
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Без шаблона по моему нельзя такое через PROP:xxx получить ...
Т.к. файл не хранит информации о связях!
Ответить