powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / связи через RelationShip
7 сообщений из 7, страница 1 из 1
связи через RelationShip
    #37569842
dementenish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До этого всегда связь делалла через индекс на класс, а теперь сделала через
relationsip. Есть 2 класса Книги и Экземпляры и связь между ними 1:М. вот пример классов:

/// Информация о имеющихся книгах в библиотеке
Class Dima.bd.Kniga Extends %Persistent
{/// название книги
Property Nazv As %String(MAXLEN = 100) [ Required ];

/// уникальный шифр книги
Property ISBN As %String(MAXLEN = 16) [ Required ];

Relationship Ekzemplar As Dima.bd.Ekzemplar [ Cardinality = many, Inverse = KNIGA ];

/// Экземпляры книг, взятых на руки
Class Dima.bd.Ekzemplar Extends %Persistent
/// Уникальный инвентарный номер
Property Nomer As %String(MAXLEN = 6) [ Required ];
Relationship KNIGA As Dima.bd.Kniga [ Cardinality = one, Inverse = Erzemplar ];

Index KnigaIndex On KNIGA;


Вроде правильно сделала?
...
Рейтинг: 0 / 0
связи через RelationShip
    #37569847
dementenish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сама страница
<script language='javascript'>
<!--
function update(id)
{
#server(..formLoad(id))#;
return true;
}
function updateKNIGA(id)
{
#server(..formKNIGALoad(id))#;
return true;
}

// -->
</script>

<csp:object
name='objForm'
classname='Dima.bd.Ekzemplar'
OBJID='#(%request.Get("OBJID"))#'>

<!-- use csp:search tag to create a javascript function to invoke a search page -->
<csp:search name='form_search'
classname='Dima.bd.Ekzemplar'
where='Nomer Номер экземпляра'
options='popup,nopredicates,display'
onselect='update'
select='KNIGA->Nazv Название книги,KNIGA->ISBN ISBN, Nomer Номер экземпляра'

>
<csp:search
caption="Выберите название книги"
name="findKNIGA"
classname="Dima.bd.Kniga"
where="Nazv название книги"
options="popup,nopredicates,display"
startvalues="KNIGANazv"
onselect="updateKNIGA"
select='Nazv название книги, DISC->Disc ОЗ, FIO->FIO Автор, FIO->Izdatel->Izdatel Издательство'
>
<form name='form'
cspbind='objForm'
cspjs='All'
onsubmit='return form_validate();'>
<center>
<table cellpadding='3'>
<tr>
<td><b><div align='right'>ID:</div></b></td>
<td><input type='text' name="sys_Id" cspbind="%Id()" size='10' readonly="readonly"></td>
</tr>
<tr>
<td>
<input size="70" name="KNIGAID" cspbind="KNIGA" type="hidden">
<a href="javascript:findKNIGA();"><b>
<div align="right">Название книги:</div>
</b></a></td>
<td><input name="KNIGA" cspbind="KNIGA.Nazv" size="50" readonly="readonly" type="text"></td>
</tr>
<tr>
<td><font color="#666666"><b>
<div align="right">*ISBN:</div>
</b></font></td>
<td><input name="KNIGASHIFR" cspbind="KNIGA.ISBN" size="" readonly="readonly" type="text"></td>
</tr>
<tr>
<td><b><div align='right'>*Уникальный номер экземпляра:</div></b></td>
<td><input type='text' name='Nomer' cspbind='Nomer' size='10' csprequired></td>
</tr>

<tr>
<td> </td>
<td><input type='button' name='btnClear' value='Новая запись' onclick='form_new();'>
<input type='button' name='btnSave' value='Сохранить данные' onclick="if (form_save() == 1) {alert('Данные записаны!');};">
<input type='button' name='btnDelete' value='Редактировать' onclick='form_search();'></td>
</tr>
<tr>
<td> </td>
<td><font color='#000068' size='2'>(* Обязательные поля для заполнения)</font></td>
</tr>
</table>


При сохранении выдает ошибку
Example HyperEvent Error Alert

A run-time error occurred while executing the page
Error: <METHOD DOES NOT EXIST>zKNIGAGetSwizzled+5^Dima.bd.Ekzemplar.1 *ErzemplarRelate,Dima.bd.Kniga
CSP Page: /csp/samples/Page/%CSP.Broker.cls
Namespace: SAMPLES
Class: Dima.bd.Ekzemplar
Routine: Dima.bd.Ekzemplar.1
Location: zKNIGAGetSwizzled+5
Line: Do oref.ErzemplarRelate($this)

хотя данные сохраняет и при нажатии на редактирование - таже ошибка, что не так сделала? Кто-нибудь подскажите. Вот так с вами потихоньку можно азы освоить.
...
Рейтинг: 0 / 0
связи через RelationShip
    #37569858
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как тяжело читать, вы бы хоть в теги какого-нибудь языка обрамляли (например, VB)
...
Рейтинг: 0 / 0
связи через RelationShip
    #37569859
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relationship Ekzemplar As Dima.bd.Ekzemplar [ Cardinality = many, Inverse = KNIGA ];
...
Relationship KNIGA As Dima.bd.Kniga [ Cardinality = one, Inverse = Erzemplar ];
...
Рейтинг: 0 / 0
связи через RelationShip
    #37569862
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы, кстати, не в первый раз ошибаетесь с идентификаторами.
Советую использовать английские слова, а не кириллицу, гораздо лучше читаться будет.
...
Рейтинг: 0 / 0
связи через RelationShip
    #37569868
dementenish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Как тяжело читать, вы бы хоть в теги какого-нибудь языка обрамляли (например, VB)

знаю что тяжело читать. не знаю как вы делаете такой вид, какв рамочке
...
Рейтинг: 0 / 0
связи через RelationShip
    #37569871
dementenish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Relationship Ekzemplar As Dima.bd.Ekzemplar [ Cardinality = many, Inverse = KNIGA ];
...
Relationship KNIGA As Dima.bd.Kniga [ Cardinality = one, Inverse = Erzemplar ];


ааааааааааа, все заработало. Вам огромное спасибо за помощь
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / связи через RelationShip
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]