|
zen+mvc+web
|
|||
---|---|---|---|
#18+
всем привет! изучаю каше совсем недавно, столкнулась с такой проблемой: есть сущность RESTRAUNT:Class Rest.RESTRAUNT Extends (%Persistent, %Populate) { Property RestInfo As Rest.RestInfo [ Required ]; Relationship Cards As Rest.CARD [ Cardinality = children, Inverse = Restraunt ]; } Class Rest.RestInfo Extends (%SerialObject, %Populate, %ZEN.DataModel.Adaptor) { Property OfficialName As %String(MAXLEN = 100) [ Required ]; Property Phone As %String(MAXLEN = 20); Property Address As %String(MAXLEN = 100); } есть класс RestrauntModel:Class Rest.RestrauntModel Extends %ZEN.DataModel.ObjectDataModel { //RestInfo Property OfficialName As %String [ Required ]; Property Phone As %String; Property Address As %String; Method %OnOpenSource(pID As %String) As %RegisteredObject { Set pStatus = $$$OK Quit ##class(Rest.RESTRAUNT).%OpenId(pID) } Method %OnSaveSource(pSource As Rest.RESTRAUNT) As %Status { Set tSC = pSource.%Save() Set ..%id = pSource.%Id() Quit tSC } Method %OnLoadModel(pSource As Rest.RESTRAUNT) As %Status { Set ..OfficialName = pSource.RestInfo.OfficialName Set ..Phone = pSource.RestInfo.Phone Set ..Address = pSource.RestInfo.Address Quit $$$OK } Method %OnRestModel(pSource As Rest.RESTRAUNT) As %Status { Set pSource.RestInfo.OfficialName= ..OfficialName Set pSource.RestInfo.Phone =..Phone Set pSource.RestInfo.Address =..Address Quit pSource.%Save() } ClassMethod %OnDeleteSource(pID As %String) As %Status { Quit ##class(Rest.RESTRAUNT).%DeleteId(pID) } Method %OnNewSource(Output pSC As %Status = {$$$OK}) As %RegisteredObject { Quit ##class(Rest.RESTRAUNT).%New() } } и есть zen-приложение для добавления записей и отображения таблицы:/// Created using the page template: Default Class MyApp.RestShow Extends %ZEN.Component.page { /// Имя приложения, которому принадлежит эта страница. Parameter APPLICATION; /// Отображаемое имя для нового приложения. Parameter PAGENAME; /// Домен, используемый для локализации. Parameter DOMAIN; /// Этот блок Style содержит определение CSS стиля страницы. XData Style { <style type="text/css"> </style> } /// Этот XML блок описывает содержимое этой страницы. XData Contents [ XMLNamespace = " http://www.intersystems.com/zen" ] { <page xmlns=" http://www.intersystems.com/zen" title=""> <dataController id="patientData" modelClass="Rest.RestrauntModel" modelId="1" /> <form controllerId="patientData" id="MyForm" > <text label="ID:" onblur="zenPage.loadRecord(zenThis.getValue())" dataBinding="%id"/> <text label="Названиe" dataBinding="OfficialName" /> <text label="Телефон" dataBinding="Phone" /> <text label="Адрес" dataBinding="Address" /> </form> <hgroup> <button caption="Сохранить" onclick="zenPage.saveRecord();" /> <button caption="Новая запись" onclick="zenPage.newRecord();" /> </hgroup> <tablePane id="patientDataT" tableName="Rest.RestrauntModel"/> </page> } ClientMethod newRecord() [ Language = javascript ] { zenPage.getComponentById('patientData').createNewObject(); } /// Сохраняем объект, обновляем табличку ClientMethod saveRecord() [ Language = javascript ] { zenPage.getComponentById('patientData').save(); zenPage.getComponentById('patientDataT').executeQuery(); } /// Загружаем объект в контроллер (например, при выборе строки таблицы) ClientMethod loadRecord(id) [ Language = javascript ] { if (id!="") { zenPage.getComponentById('patientData').setModelId(id); } } } когда пытаюсь скомпилировать и открыть страницу в браузере вылетает ошибка: Код: plaintext
скажите, пожалуйста, что же надо вставить в tableName в строке <tablePane id="patientDataT" tableName="Rest.RestrauntModel"/>, чтобы на страничке в браузере отобразились записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2012, 15:02 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakvaкогда пытаюсь скомпилировать и открыть страницу в браузере вылетает ошибка: таблица Rest.RestrauntModel не найдена. А у вас есть такая таблица? Вы ж нам только про Rest.RESTRAUNT и Rest.RestInfo рассказали. В документации разные пример есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2012, 12:45 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
конкретно такой таблицы нет, но есть же контроллер (он же RestrauntModel). я неправильно понимаю, что контроллер должен реагировать на обращение к себе из zen и вытаскивать записи из таблицы Restraunt? спасибо за документацию, я её уже читала, но не нашла там примера для mvc шаблона, который используется у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 23:35 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakvaконкретно такой таблицы нет, но есть же контроллер (он же RestrauntModel). я неправильно понимаю, что контроллер должен реагировать на обращение к себе из zen и вытаскивать записи из таблицы Restraunt? спасибо за документацию, я её уже читала, но не нашла там примера для mvc шаблона, который используется у меня. Контроллер помогает в заполнении полей форм, а не таблиц(!) - иначе бы потребовалось столько контроллеров, сколько строк в таблице. В таблице нужно использовать запрос к данным (а не к контроллеру) - tableName="Rest.Restraunt" И еще - чем оправдываете использование отдельного класса модели? Не проще ли как и во втором случае просто унаследовать класс данных от %ZEN.DataModel.Adaptor? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2012, 08:52 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
kolesov, проблема в том, что когда я подставляю туда tableName="Rest.Restraunt", у меня не вставляются в неё никакие записи с формы после нажатия на эту кнопку: <button caption="Сохранить" onclick="zenPage.saveRecord();" /> отдельный класс оправдываю тем, что так сказано в задании, которое выдали в институте. посоветуйте, пожалуйста, что я не учла, чтобы и таблица отображалась, и записи сохранялись ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2012, 10:29 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakva , 1. коль скоро класс Rest.CARD Вы опустили и в модели он не используется, уберите его вовсе из Rest.RESTRAUNT ; 2. тип свойств в модели должен совпадать с типами в исходном классе иначе рискуете потерять часть данных или получить ошибку переполнения: %String; = %String(MAXLEN = 50); => %String(MAXLEN = 100); ≠ %String; 3. %OnRestModel исправьте на %OnStoreModel ; 4. <tablePane id="patientDataT" tableName="Rest.RestrauntModel"/> исправьте на <tablePane id="patientDataT" tableName="Rest.RESTRAUNT"/> PS: Методическое пособие по ZEN и Prototype 6 (стр. 70) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2012, 17:42 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
servit krjakva , 1. коль скоро класс Rest.CARD Вы опустили и в модели он не используется, уберите его вовсе из Rest.RESTRAUNT ; 2. тип свойств в модели должен совпадать с типами в исходном классе иначе рискуете потерять часть данных или получить ошибку переполнения: %String; = %String(MAXLEN = 50); => %String(MAXLEN = 100); ≠ %String; 3. %OnRestModel исправьте на %OnStoreModel ; 4. <tablePane id="patientDataT" tableName="Rest.RestrauntModel"/> исправьте на <tablePane id="patientDataT" tableName="Rest.RESTRAUNT"/> PS: Методическое пособие по ZEN и Prototype 6 (стр. 70) исправила всё, как Вы сказали, - не работает (приложила скриншот). и методическое пособие, к сожалению, отсутствует на сервере. перезалейте его, пожалуйста, куда-нибудь ещё может быть, не хватает какого-нибудь метода? я всё делала по примерам из интернета ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 01:44 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakvaи методическое пособие, к сожалению, отсутствует на сервере. перезалейте его, пожалуйста, куда-нибудь ещёТогда посмотрите Аудио-курс с упражнениями (есть pdf) krjakvaисправила всё, как Вы сказали, - не работаетПопробуйте мой проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 15:51 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
servitkrjakvaи методическое пособие, к сожалению, отсутствует на сервере. перезалейте его, пожалуйста, куда-нибудь ещёТогда посмотрите Аудио-курс с упражнениями (есть pdf) krjakvaисправила всё, как Вы сказали, - не работаетПопробуйте мой проект. я уже смотрела эти презентации - там нет нужного( если можно, всё-таки загрузите, пожалуйста, то методическое пособие ещё раз. надеюсь, оно будет полезным и спасибо огромное за советы и помощь попробовала Ваш проект, получилось создать две записи, дальше вылетает ошибка ещё объясните мне, пожалуйста, как сделать так, чтобы таблица отображалась в том виде, как на приложенном скриншоте внизу пока что отображается только поле id, а когда пытаюсь создать такую конструкцию: <tablePane id="table" tableName="Rest.RESTRAUNT"> <column colName="ID" hidden="true"/> <column colName="OfficialName"/> </tablePane> вылетает ошибка - ERROR #5540: SQLCODE: -29 Message: Field 'OFFICIALNAME' not found in the applicable tables^ SELECT ID , OfficialName FROM SOURCE ELEMENT: %ZEN.Component.tablePane (patientDataT) несмотря на то, что Relationship с классом Rest.RestInfo прописан ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 19:16 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakvaя уже смотрела эти презентации - там нет нужного(Презентации или PDF-документ на странице 19? krjakvaесли можно, всё-таки загрузите, пожалуйста, то методическое пособие ещё раз. надеюсь, оно будет полезнымДокумент не мой. Возможно, его удалили по требованию авторов. krjakvaпопробовала Ваш проект, получилось создать две записи, дальше вылетает ошибкаНе густо. krjakvaещё объясните мне, пожалуйста, как сделать так, чтобы таблица отображалась в том виде, как на приложенном скриншоте внизуЗаготовка<tablePane id="patientDataT" tableName="Rest.RESTRAUNT" caption="Рестораны" showRowNumbers="true" showRowSelector="true" > <column colName="ID" hidden="true"/> <column colName="RestInfo_OfficialName" header="Официальное название"/> <column colName="RestInfo_Phone" header="Телефон"/> <column colName="RestInfo_Address" header="Адрес"/> <column seed="edit" OnDrawCell="DrawCell"/> <column seed="cards" OnDrawCell="DrawCell"/> </tablePane> Method DrawCell( pTable As %ZEN.Component.tablePane, pName As %String, pSeed As %String) As %Status { if pSeed="edit" { &html<<a href="#" onclick="zenAlert(#(..QuoteJS(%query("RestInfo_Address")))#);">Редакт.</a>> }elseif pSeed="cards" { &html<<a href="#" onclick="zenAlert('bla-bla-bla');">Кредитки</a>> } Quit $$$OK } PS: можно узнать ВУЗ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 20:08 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
servit, pdf-документ. собственно, с него я и начала делать курсовую. но потом что-то не заработало, и я взяла за основу одну из тем с этого форума. жаль, что удалили пособие. беглое гугление не нашло его ещё скажите, пожалуйста, почему/из-за чего может вылетать такая ошибка? проверила свои методы по pdf-документу - всё то же самое. и спасибо огромное за пример с видом таблицы - очень долго искала в интернете аналогичный, но не нашла а вуз - мифи. нынче нияу мифи. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 21:11 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakvaещё скажите, пожалуйста, почему/из-за чего может вылетать такая ошибка?Опубликуйте здесь код проекта в ZIP. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 21:20 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
servitОпубликуйте здесь код проекта в ZIP. прикладываю xml ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2012, 21:32 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakva , Ваш код у меня (2013.1.FT2) работает без проблем: создал пять записей. Попробуйте удалить все глобалы ^Rest.* и создать записи заново: возможно, что остался мусор с предыдущих Ваших экспериментов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2012, 12:06 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
всем откликнувшимся огромное человеческое спасибо, вопрос закрыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2012, 20:10 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
krjakvaи методическое пособие, к сожалению, отсутствует на сервере. перезалейте его, пожалуйста, куда-нибудь ещё Методическое пособие по ZEN и Prototype 6 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2013, 18:45 |
|
zen+mvc+web
|
|||
---|---|---|---|
#18+
servitkrjakvaи методическое пособие, к сожалению, отсутствует на сервере. перезалейте его, пожалуйста, куда-нибудь ещё Методическое пособие по ZEN и Prototype 6 По мотивам этого прекрасного пособия создан электронный курс Zen . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2013, 01:15 |
|
|
start [/forum/topic.php?fid=39&msg=38066447&tid=1557133]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 173ms |
0 / 0 |