Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как работать с типом данных Currency / 16 сообщений из 16, страница 1 из 1
11.12.2011, 06:25
    #37569470
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
подскажите пожалуйста как правильно сохранить данные с типом currency.
Создан класс Книги где есть св-во "цена". создал страничку где можно добавлять все данные класса книги. нопри сохранении он ругается. подскажите как исправить

<head>
<title>КНИГИ</title>
</head>

<h3> <A href="GLAVMENU.csp">Главная страница</A> </h3>
<h3> <A href="REDACTIROVANIE.csp">НАЗАД</A> </h3>

<!-- This function is needed by the search button on the form -->
<script language='javascript'>

<!--
function update(id)
{
#server(..formLoad(id))#;
return true;
}

function updateDISC(id)
{
#server(..formDISCLoad(id))#;
return true;
}
// -->
</script>

<body bgcolor="#FFFFFF"> </body>
<table width=100% border=0>
<tr>
<td colspan=2 bgcolor=#D0D0FF>
<font face="Verdana,Arial,Helvetica,sans-serif" color=#000088 size=+2>
<center>ДОБАВЛЕНИЕ И РЕДАКТИРОВАНИЕ КНИГ</center>
</font>
</td>
</tr>
</table>

<!-- use CSP:OBJECT tag to create a reference to an instance of the class -->
<csp:object
name='objForm'
classname='Dima.bd.Kniga'
OBJID=#(%request.Get("OBJID"))#>

<!-- use csp:search tag to create a javascript function to invoke a search page -->

<csp:search
caption = "Изменение данных по книгам"
name='form_search'
classname='Dima.bd.Kniga'
where='Nazv Название книги'
options='popup,nopredicates,display'
onselect='update'
FEATURES = "height=800,width=800"
select="Nazv Название книги, DISC->Disc ОЗ, FIO->FIO Автор, FIO->Izdatel->Izdatel Издательство"
>
<csp:search
caption="Выберите облась знаний"
name="findDISC"
classname="Dima.bd.OZ"
where="Disc Область знаний"
options="popup,nopredicates,display"
onselect="updateDISC"
>

<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'></td> </tr>
<tr>
<td><b><div align='right'>*Название книги:</div></b></td>
<td><input type='text' name='Nazv' cspbind='Nazv' size='50' csprequired></td>
</tr>
<tr>
<td><b><div align='right'>*ISBN(13 значный шифр книги):</div></b></td>
<td><input type='text' name='ISBN' cspbind='ISBN' size='16' csprequired></td>
</tr>

<tr>
<td>
<input size="70" name="DISCID" cspbind="DISC" type="hidden">
<a href="javascript:findDISC();"><b>
<div align="right">Область знаний:</div>
</b></a></td>
<td><input name="DISC" cspbind="DISC.Disc" size="50" readonly="readonly" type="text"></td>
</tr>
<tr>
<td><b><div align='right'>*Автор:</div></b></td>
<td><select name='FIO' cspbind='FIO' classname='Dima.bd.Avtor' query='SpisokAvtor' field='FIO' csprequired></select></td>
</tr>
<tr>
<td><b><div align='right'>*Год издания:</div></b></td>
<td><input type='text' name='GodIzdania' cspbind='GodIzdania' size='4' csprequired></td>
</tr>
<tr>
<td><b><div align='right'>Кол-во страниц:</div></b></td>
<td><input type='text' name='Stranica' cspbind='Stranica' size='4' ></td>
</tr>
<tr>
<td><b><div align='right'>*Кол-во экземпляров:</div></b></td>
<td><input type='text' name='KolEkz' cspbind='KolEkz' size='3' csprequired></td>
</tr>
<tr>
<td><b><div align='right'>*Цена книги:</div></b></td>
<td><input type='text' name='Cena' cspbind='Cena' size='5'csprequired></td>
</tr>
<tr>
<td><b><div align='right'>*Дата поступления книги ДД/ММ/ГГГГ:</div></b></td>
<td><input type='text' name='DataPost' cspbind='DataPost' 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='btnRedact' value='Редактировать' onclick='form_search();'></td>
</tr>
<tr>
<td> </td>
<td><font color='#000088' size='2'>(* Обязательные поля для заполнения)</font></td>
</tr>
</table>
</center>
</form>
...
Рейтинг: 0 / 0
11.12.2011, 06:30
    #37569471
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Вот кстати сама ошибка

The form was not saved because of the following error(s).
Please correct these error(s) and try again.
_______________________________________________________________

ERROR #5659: Property 'Dima.bd.Kniga::Сena(4@Dima.bd.Kniga,ID=1)' required
...
Рейтинг: 0 / 0
11.12.2011, 07:22
    #37569473
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
и еще не понятно с колонкой Дата поступления, как все таки правильно вносить туда данные или это нужно как-то в программном коде прописывать?
...
Рейтинг: 0 / 0
11.12.2011, 14:47
    #37569615
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
dementenish, судя по ошибке, не введено значение в поле Cena
...
Рейтинг: 0 / 0
11.12.2011, 16:51
    #37569719
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
doublefintdementenish, судя по ошибке, не введено значение в поле Cena

В том то и дело, что программа ругается при сохранении и на поле цена и на поле с датой, какие бы я не вводила значения. Я правильно понял в полес ценой нужно вводить там "53" или "53р". или как правильно?
...
Рейтинг: 0 / 0
11.12.2011, 17:12
    #37569738
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Сделайте числовое поле, не выделывайтесь
...
Рейтинг: 0 / 0
11.12.2011, 17:24
    #37569753
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Блок А.Н.Сделайте числовое поле, не выделывайтесь

а с датой тогда в чем проблема?
...
Рейтинг: 0 / 0
11.12.2011, 17:39
    #37569767
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
А с датой та же дрянь -
вы пытаетесь в дату записать в формате ДД/ММ/ГГГГ, а она хранится в формате числа. В результате поле не проходит валиадацию.
Из-за этого мы пишем свои методы сохранения для форм, в которых есть дата.

В принципе попробовать обойти через Get,Set методы, но я не уверен, что это очень хорошо, лучше пишите метод сохранения формы.
...
Рейтинг: 0 / 0
11.12.2011, 17:54
    #37569782
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Блок А.Н.А с датой та же дрянь -
вы пытаетесь в дату записать в формате ДД/ММ/ГГГГ, а она хранится в формате числа. В результате поле не проходит валиадацию.
Из-за этого мы пишем свои методы сохранения для форм, в которых есть дата.

В принципе попробовать обойти через Get,Set методы, но я не уверен, что это очень хорошо, лучше пишите метод сохранения формы.


Чет я загрузился. может кинете примерчик своего метода сохранения даты? потому что я совсем не предстваляю пока как это сделать
...
Рейтинг: 0 / 0
11.12.2011, 18:14
    #37569795
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Я вас маленько обманул, оказывается можно с датой работать через cspbind (вот так начнешь помогать кому-нибудь и сам поймешь :)) )

Попробуйте в класса поле описать с таким параметром
Property DateValue As %Date(FORMAT = 4);

Если не получится, то покажу через метод.
...
Рейтинг: 0 / 0
11.12.2011, 18:19
    #37569800
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Вот тут можно найти, что означает формат
http://docs.intersystems.com/cache20111/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fzdate
...
Рейтинг: 0 / 0
11.12.2011, 18:21
    #37569801
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Блок А.Н.Я вас маленько обманул, оказывается можно с датой работать через cspbind (вот так начнешь помогать кому-нибудь и сам поймешь :)) )

Попробуйте в класса поле описать с таким параметром
Property DateValue As %Date(FORMAT = 4);

Если не получится, то покажу через метод.


Я кстати и делал через cspbind. Все получилось. Спасибки огромное
...
Рейтинг: 0 / 0
11.12.2011, 18:25
    #37569806
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
А с ценой все равно почему то не получается сделал тип integer, и вписываю значение "600", а он все равно мне выдает ошибку

The form was not saved because of the following error(s).
Please correct these error(s) and try again.
_______________________________________________________________

ERROR #5659: Property 'Dima.bd.Kniga::Сena(4@Dima.bd.Kniga,ID=1)' required
...
Рейтинг: 0 / 0
11.12.2011, 18:50
    #37569818
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Покажите, как описали поле

Я описал как
Property NumberValue As %Numeric;
у меня работает.
...
Рейтинг: 0 / 0
11.12.2011, 19:01
    #37569827
dementenish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Блок А.Н.Покажите, как описали поле

Я описал как
Property NumberValue As %Numeric;
у меня работает.

Заработала только когда поменяла название поля, было "Cena" стало "Stoimost". Вот со старым названием ни в какую не хотел работать.
...
Рейтинг: 0 / 0
11.12.2011, 19:30
    #37569848
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работать с типом данных Currency
Значит у вас где-то русская буква закралась.
Кстати, каше поддерживает русскоязычные идентификаторы, то я не рекомендую ими пользоваться.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как работать с типом данных Currency / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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