Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Добавление новой записи в таблицу / 12 сообщений из 12, страница 1 из 1
01.06.2017, 14:09
    #39463829
Rishat1c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Всем привет, меньше месяца изучаю Cache, и уже успел состряпать маленькую форму CSP.

Вообщем, хотел создать форму по которой можно будет добавлять новую запись в таблице.
Но все мои попытки безуспешны, поэтому решил обратиться сюда, помогите ребята :-)

Имеется класс Client (где хранятся Name, Object, Amount и Price)

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
			    <csp:OBJECT NAME="obj" CLASSNAME="Data.Client"> 
				<form name=client cspbind=obj>
				Наименование организации: <input type="text" name="Name" cspbind=Name> <br> 
				Объект: <input type="text" name="Object" cspbind=Object><br> 
				Количество: <input type="text" name="Amount" cspbind=Amount ><br> 
				Цена:  <input type="text" name="Price" cspbind=Price><br>
				<input name="New" type="Button" value="Добавить" onClick='client_new();'> 
				</form>



Код: javascript
1.
2.
3.
4.
<script language=SQL name="client">
SELECT ID,Name,Object,Amount,Price
FROM Data.Client
</script>



При нажатии кнопки добавить, почему в таблице ничего не происходит :-(
очень надеюсь на понимание и на Вашу помощь :-)
...
Рейтинг: 0 / 0
01.06.2017, 14:48
    #39463861
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Rishat1c , уже не помню адрес примеров нативных функций для работы с объектами в csp...

Вот нашел одну из старинных страниц на эту тему.

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
<html>
<title>Контактное лицо у абонента</title>
<head>
<link rel="stylesheet" type="text/css" href="/css/standart.css">
<script language="javascript">
// Добавить контакт для абонента
function AddCont(IdA) {
  var id=#server(..cAddCont(IdA))#
  window.navigate("telabcont.csp?ida="+IdA+"&id="+id)
}
// Удалить контактное лицо
function DelCont(Id,IdA) {
  #server(..cDelCont(Id))#
  window.navigate("telabedit.csp?id="+IdA)
}
</script>

<csp:method name='cDelCont' arguments='Id:%String'>
  n o
  s o=##class(Tel.AbContact).%OpenId(Id)
  d ##class(Tel.AbContact).%Delete(o.%Oid())
  d o.%Close()
  q
</csp:method>
<csp:method name='cAddCont' arguments='Id:%String' returntype='%String'>
  n oab,o,id
  s oab=##class(Tel.Abonent).%OpenId(Id)
  s o=##class(Tel.AbContact).%New()
  s o.Abonent=oab
  d o.%Save()
  s id=o.%Id()
  d oab.%Close()
  d o.%Close()
  q id
</csp:method>
</head>
<body>

<csp:object name='abcont' classname='Tel.AbContact' objid='#(%request.Data("id",1))#'>

<form name='fabcont' cspbind='abcont'>
<table width='100%' border='0'>
<tr>
<th align='left' valign='top' width='90%'>Контактное лицо абонента
<th align='left' valign='top' rowspan='2'>
  <table>
  <tr>
  <td><input type='button' value='Выход' onclick='window.navigate("telabedit.csp?id=#(%request.Data("ida",1))#")'>
  <tr>
  <td><input type='button' value='Записать' onclick='fabcont_save()'>
  <tr>
  <td><input type='button' value='Добавить' onclick='AddCont(#(%request.Data("ida",1))#)'>
  <tr>
  <td><input type='button' value='Удалить' onclick='DelCont(#(%request.Data("id",1)_","_%request.Data("ida",1))#)'>
  </table>
<tr>
<td valign='top'>
  <table border='0'>
  <tr>
  <td>Имя
  <td><input type='text' name='tname' cspbind='Name' size='50'>
  <tr>
  <td>Должность
  <td><input type='text' name='tpost' cspbind='Post'>
  </table>
</table>
</form>
</body>
</html>
...
Рейтинг: 0 / 0
01.06.2017, 14:50
    #39463864
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Rishat1c
Код: html
1.
			    <csp:OBJECT NAME="obj" CLASSNAME="Data.Client"> 



У тебя нет привязки к ИДишнику экземпляра...

Да и вообще в твоем примере есть большое количество атрибутов объявленных без всяких кавычек, а это плохо.
...
Рейтинг: 0 / 0
01.06.2017, 15:02
    #39463872
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
krvsaуже не помню адрес примеров нативных функций для работы с объектами в csp...
И в документации кроме записи ничего не показали.
http://docs.intersystems.com/cache20162/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_dbapps

Нативное добавление не учитывает связи с родительскими элементами. Т.ч. пользоваться им можно только в частном случае.
...
Рейтинг: 0 / 0
01.06.2017, 17:33
    #39464025
Rishat1c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 <csp:method name='cAddCont' arguments='Id:%String' returntype='%String'>
  n oab,o,id
  s oab=##class(Tel.Abonent).%OpenId(Id)
  s o=##class(Tel.AbContact).%New()
  s o.Abonent=oab
  d o.%Save()
  s id=o.%Id()
  d oab.%Close()
  d o.%Close()
  q id
</csp:method>



Не очень понятен этот метод. Переплетаются две таблицы ( Сложно для меня это ещё

Вот такую конструкцию состряпал, с использованием ангуляра
<
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
csp:object name='abcont' classname='Data.Client' objid='#(%request.Data("id",1))#'>
				<form name='fabcont' cspbind='abcont'>
  				<input type='button' value='Записать' onclick='fabcont_save()'>
  				<input type='button' value='Добавить' onclick='AddCont(#(%request.Data("ida",1))#)'>	
				<br>
				
				<table class="table table-bordered">
    				<tr><th>Имя</th><th>Объект</th><th>Количество</th><th>Цена</th><th>Удалить</th></tr>
    				<tr ng-repeat="client in clients">
    					<td>{{client.Name}}</td>
    					<td>{{client.Object}}</td>
    					<td>{{client.Amount}}</td>
    					<td>{{client.Price}}</td>
    					<td><center><input type="button" class="btn btn-danger" value="X" ng-click="delete(client);"/></center></td>
    				</tr>
    			</table>
    			</form>



Все равно не хочет работать
...
Рейтинг: 0 / 0
01.06.2017, 21:15
    #39464144
Rishat1c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Мне нужно сделать просто,имеется 4 инпата, и по нажатию добавлялся новая строчка в таблице с данными с этих инпатов
...
Рейтинг: 0 / 0
02.06.2017, 08:35
    #39464243
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Rishat1cНе очень понятен этот метод. Переплетаются две таблицы
Там добавляется связь с материнской таблицей. У тебя такого нет.
...
Рейтинг: 0 / 0
02.06.2017, 08:38
    #39464245
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Rishat1cВот такую конструкцию состряпал, с использованием ангуляра
Если хочешь использовать Ангуляр - тебе привязка вообще не нужна.
Пусть сервер делает все кащейские дела, а на клиента просто передает жосн-данные. Ангуляр их покажет, заредактирует и отправит обратно.
...
Рейтинг: 0 / 0
02.06.2017, 08:41
    #39464247
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Rishat1cМне нужно сделать просто,имеется 4 инпата, и по нажатию добавлялся новая строчка в таблице с данными с этих инпатов
Мой пример без таблицы... Там только форма.
Но если делать все с перерисовкой всей страницы, добавить на страницу еще и табличку - не проблема.

С таблицами другая проблема... Они могут содержать много записей. Тогда "простого" показа будет не достаточно.
...
Рейтинг: 0 / 0
04.06.2017, 12:53
    #39465444
Rishat1c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
У меня все нормально отображается)
Просто вывод через JSON с ангуляром у меня работает довольно таки плачевно, т.к. КИРИ́ЛЛИЦУ не поддерживает :-(
Поэтому через ангуляр реализовал только Вывод данных в таблицу и удаление записей.

Осталось только реализовать добавление, поэтому и обратился сюда)
Как я понял, твой пример работает только с переходом на новую страницу и там уже привязка идет к IDшнику, где по нему можно изменять и удалять данные :-(

Хотел бы просто на текущей странице где находиться таблицу сделать добавление :-)
Поэтому и обратился сюда, думал может у кого нибудь есть пример) Заранее спасибо)
...
Рейтинг: 0 / 0
04.06.2017, 14:50
    #39465471
Rishat1c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
...
Рейтинг: 0 / 0
05.06.2017, 08:19
    #39465671
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление новой записи в таблицу
Rishat1cПросто вывод через JSON с ангуляром у меня работает довольно таки плачевно, т.к. КИРИ́ЛЛИЦУ не поддерживает :-(
Поэтому через ангуляр реализовал только Вывод данных в таблицу и удаление записей.
Мы работаем в DOS кодировке с русскими буквами, но не имеем проблем с передачей данных. Наверняка у тебя просто кодировки не совпадают...
Rishat1cКак я понял, твой пример работает только с переходом на новую страницу и там уже привязка идет к IDшнику, где по нему можно изменять и удалять данные :-(
Так ты первый начал!
Я тебе показал старинный пример с привязкой объекта к форме, т.к. ты про такой и спрашивал...
Rishat1cХотел бы просто на текущей странице где находиться таблицу сделать добавление :-)
Так отправь ajax-запрос на сервер с данными нового экземпляра, а на сервере почитаешь данные и создашь новый экземпляр...
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Добавление новой записи в таблицу / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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