powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Кто как работает с формами?
44 сообщений из 44, показаны все 2 страниц
Кто как работает с формами?
    #36471901
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, существует несколко механизмов связывания БД и формы: кто что использует в своих проектах? Почему?
1) Использование компонента <dataController>;
2) Использование логики Submit;
3) Использование %page. (%page.%GetValueById("Имя_поля"))

Ваши мысли по этому поводу..
P.S. Возможно что то не написал или ошибочно разделил на пункты.. поправьте, плз:)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36471981
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot1) Использование компонента <dataController>;
Его пока только используем...

CacheLotПочему?
Таки в примерах его показали - вот и юзаем.
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472010
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot,

80% - <dataController> + тупое наследование хранимых классов от %ZEN.DataModel.Adaptor

20% - сбор параметров формы через getConponentById().value и передача из в ZenMethod
(мог бы сказать 5%, ибо второй случай не всегда относится к кнопке "сохранить" формы - иногда это делается еще невидимо для пользователя, в зависимости от событий на странице)

От Submit не отказались при передаче файлов на сервер (пока не было причин что-то здесь менять)

Про %page не устану повторять - забудьте этот глюк. Это _хороший_ совет, поверьте ;)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472133
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
Таки в примерах его показали - вот и юзаем.

Ну знач не все примеры смотрели: можно глянуть ZENDemo.FormDemo (там пользуются компонентом-кнопокй Submit), или ZENApp.HelpDesk - там %page используют...в методе сохранения "SaveDetails"...
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472211
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotНу знач не все примеры смотрели
Только те, что на русском языке...
С сабмитом тоже видел пример - не понравился он мне... Куча всякого "лишнего" кода...
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472436
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у нас только %page....
так проще разбираться в геморойных случаях, коих вполне достаточно в нашем проекте.
<dataController> - пока не используем, думаю его можно применять только в случае "легкого" справочника или "легкой" формы.
Submit - только при авторизации и загрузке файлов, иногда при работе с общедоступной частью проекта, но подразумевающей работу пользователя с личными данными.
закрытая часть только для доступа "рабочих" офиса заказчика, реализована с помощью другого наймеспейса и мэпинга.
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472528
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov
Про %page не устану повторять - забудьте этот глюк. Это _хороший_ совет, поверьте ;)
Почему глюк? Можно привести пример где %page глючит?
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472568
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007<dataController> - пока не используем, думаю его можно применять только в случае "легкого" справочника или "легкой" формы.

Посмотрел наши формы... реально все "легкие" ;) Тяжелых мне программисты сделали штук 5 за два года - но я их поубивал (не программистов, а формы) и переделал обратно в легкие...

Вот так и живем...
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472610
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotПочему глюк? Можно привести пример где %page глючит?

ZEN - платформа, использующая AJAX, так?
%page - это не совсем динамическая работа с сервером, возьмите любой сниффер и посмотрите, как отрабатывают экземплярные методы ZEN.
А отрабатывают они так - при любой попытке обращения к такому методу, вся клиентская страница, пакуется со всеми ее потрохами и отправляется на сервер, на сервере она разбирается в %page, который к клиентской странице в этот момент не имеет никакого отношения - это некий ее слепок на момент вызова метода на клиенте.
Затем вы что-то на сервере с этим слепком делаете, а по завершению этих изменений страница передается назад (вот тут утверждать не стану - полностью или только измененная ее часть, не уверен) клиенту.
Затем в браузере выполняется некий JavaScript, который изменяет страницу клиента в соответствии с изменениями на сервере (подозреваю, что именно этот скрипт обновления и передается сервером).

Все это время клиент живет своей жизнью, а сервер - своей. Пока сервер думает, что у него реальная копия страницы, клиент уже приложил массу усилий, чтобы его копия отличалась от серверной....

В нашем случае это прекрасно демонстрировал пример с табличкой, при выборе строки в которой происходит вызов серверного метода. Пока %page гуляет туда-сюда, клиент успел еще по двум-трем строкам таблицы щелкнуть и отправить на сервер еще 2-3 %page, отличающихся от первой...
И не факт, что "обновляющий клиента" JS будет приходить в том же порядке, в котором ушел на сервер.

В итоге - масса загадочных и невоспроизводимых эффектов, связанных как с характеристиками каналов связи, так и с прыткостью пользователей...

Плюс конский трафик, из-за которого шибко удаленные (или сидящие на узком канале) клиенты жаловались страшно...
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472904
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesovYmka2007<dataController> - пока не используем, думаю его можно применять только в случае "легкого" справочника или "легкой" формы.

Посмотрел наши формы... реально все "легкие" ;) Тяжелых мне программисты сделали штук 5 за два года - но я их поубивал (не программистов, а формы) и переделал обратно в легкие...

Вот так и живем...

с %page - усёк, теперь осталось разобраться на каком этапе "лёгкая форма" переходит в "тяжёлую"? Т.е. когда форма ещё "лёгкая", и когда уже "тяжёлая":)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36472948
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как в ZEN смогли облегчить форму и отказались совсем от %page
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473037
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CacheLot,
"легкая" в моем понятии, когда запись со страницы происходит в один максимум два класса
остальное все "тяжелое"!

Еще все зависит от того сколько Вы готовы потратить рабочего времени, для формирования грамотной формы, со всякими проверками как на клиенте так и на сервере?
В нашей фирме нет отдела, который занимался бы только тестированием проекта, поэтому чтоб не ударить в грязь лицом перед заказчиком приходится все гонять самому

Да, на написание методов сохранения/чтения с помощью %page уходит много времени, но оно того стоит при определенных условиях работы с конкретным заказчиком. Уповать на то, что в Cache выполнение автоматических методов, которые ты не контролируешь, НИКОГДА НЕ ПРИВОДЯТ к ошибке, я бы НЕ СТАЛ, проверено временем.

Лично я предпочитаю, чуть медленней и дотошней разрабатывать и писать формы, чем потом через некоторое время, после тычка от заказчика в бешенном темпе бежать к интернету и править классы, которые вдруг стали выдавать ошибки, например из-за $c(0).
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473070
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
"и как в ZEN смогли облегчить форму и отказались совсем от %page" - отказались от ZEN :)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473096
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне вот например очень нравятся компаненты вот отсюда DHTML
даже есть некоторые интеграции их в ZEN
но гемору с ними тож хватат
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473161
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую jQuery и плагины к ней. Например, такой важный для интерфейса к СУБД компонент как Grid
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473213
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorи как в ZEN смогли облегчить форму и отказались совсем от %page

Совсем - не отказались... в %OnAfterCreatePage() %page рулит... и еще как.
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473216
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

как данные туда пихаешь?
скорость работы?

я доделал стандартный DynaGrid, но такое х..м получилось, хотя и работает
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473368
поделитесь dynaGrid достала она меня уже :)
кто что придумал новое.
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36473445
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007,

Работает супер, я бы сказал летает. На сайте jQGrid есть пример для ASP.NET на полмиллиона записей, у меня есть рабочий пример с ~50 тыс . Выглядит, по сравнению с dynaGrid, просто обалденно (там что-то упоминалось про проф. дизайнеров). Вместо "пагинации" - "скроллинг" (cкрытая пагинация :). Данные передаю через JSON (csp страница, на которой вывод объектов в формате JSON), плагин к ним лезет через AJAX). И да, формы - часть плагина, как и инлайн редактирование, сложный поиск и т.д.
Но на CSP!!! Никакого ZEN ( чур меня, чур ;) )
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36474295
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefintYmka2007,
Выглядит, по сравнению с dynaGrid, просто обалденно (там что-то упоминалось про проф. дизайнеров).

Действительно выглядит очень симпатично, осталось разобраться как с ним работать:)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36474612
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
измученый зен,

поройся на форуме где то уже выкладывал
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36474763
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007,

По поводу динагрида, мож его довели до ума в 2010 версии? Никто не юзал?
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36475051
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CacheLot,

в 2009 точно нет
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36475277
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint,

О каком гриде для каше вы говорите, тем более не зен (а мне зен не нужен).
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36475447
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.,
В описании технологии CSP, в качестве преимуществ выносится то, что она использует открытые стандарты и built-in базу данных Cache (см. Технологический справочник на intersystems.ru). Было время, когда мне жутко не хватало чего-нибудь, похожего на Zen. После длительной и упорной практики с xHTML, CSS, javascript, и, естественно, Cache, необходимость в ZEN отпала. Все что предлагаю - это использовать накопленный опыт программистов на HTML, javascript и CSS. Есть популярные javascript-библиотеки (jQuery, Prototype), облегчающие создание сложного пользовательского web-интерфейса и готовые решения на них (мне лично, например, понравился Grid плагин для jQuery , а их всяких есть - мама не горюй). Как их использовать с Каше - другой вопрос, у меня проблем не возникло.

Плюсы такого варианта: -большое количество, самых разнообразных, красивых, удобных, проверенных (спорим программистов, использующих jQuery, больше, чем людей, просто знающих о существовании Cache ;( ), хорошо документированных (в том числе и на русском) компонентов с подробными примерами
Минусы:- нужен опыт и знание не только Cache.

При этом, я нисколько не умаляю роли ZEN, она просто must have для Cache в качестве основного инструмента для создания интерфейса. Но каждому инструменту свое место и время. Пока Zen, к сожалению, отстает
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36475672
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefintИспользую jQuery и плагины к ней. Например, такой важный для интерфейса к СУБД компонент как Grid

Посмотрел примерчики отсюда:
туту
Первое впечатление ЗЕН действительно менее эффектен, кстать, а почему ZEN так называется? что-то до сих пор не могу понять? Это чё аббревиатура какая то?
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36476503
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotПервое впечатление ЗЕН действительно менее эффектен..

Согласен, дизайнеры в ИС довольно своеобразные, если не сказать оригинальные ;)
Не эффектен, зато эффективен.

Я лично пока не видел ни одного инструмента, который бы обеспечивал такие скорость и качество разработки, легкость поддержки и модификаций, как ZEN. В данном случае я о ZEN говорю, конечно, в связке с Каше (если говорить не о Каше, понятно, что таких платформ есть ;). Сам по себе он довольно уродлив. Некоторые знания в css могут поправить положение, ибо все визуальное оформление лежит в одном файле - бери, да правь... Нужен только художественный вкус ;)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36496635
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

не мог бы ты какю нибудь страничку тестовую кинуть, чтоб с привязкой к каше была
чтоб данные можно было бы редактировать
спасиб
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497564
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007, только пример (опускаем вопросы производительности, архитектуры и т.д.)
Данные с интерфейсом
Код: plaintext
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.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
/// Хранимый класс, данные которого будем показывать в jQuery Grid
Class User.jQGridTest Extends (%Persistent, %Populate) {

Property Code As %Integer [ Required ];
Index CodeIDX On Code [ Unique ];
Property Name As %String [ Required ];
Property Description As %String;

/// Класс будет отдавать свои данные в js
ClassMethod wJS(str As %String) As %Status {
 w ##class(%CSP.Page).QuoteJS(str) Q $$$OK
}

/// Выгрузить объект в формате JSON
ClassMethod wJSON(id As %String) As %Status {
	if '..%ExistsId(id) w "{id:''}" Q $$$ERROR(10001,"id:"_id_" not exists")
	s code=..CodeGetStored(id), name=..NameGetStored(id)
	  , desc=..DescriptionGetStored(id)
	w "{id:" d ..wJS(id) w ",code:" d ..wJS(code)
		w ",name:" d ..wJS(name) w ",desc:" d ..wJS(desc)
	w "}"
    Q $$$OK
}

/// Надо сообщать об ощибках в js
ClassMethod gErr(sc As %Status) As %String {
  Q $system.Status.GetErrorText(sc)
}

/// Ответ на действие
ClassMethod wResponse(ok As %Boolean, newid As %String, err As %String) As %Status {
 w "{ok:",$S(ok=1:"true",1:"false"),",newid:" d ..wJS(newid) w ",err:" d ..wJS(..gErr(err)) w "}" 
 Q $$$OK
}

/// Обработка вызова на добавление от интерфейса
ClassMethod jQGridAdd(ByRef reqData As %String) As %Status {
	s test=..%New(), test.Code=$G(reqData("code",1)), test.Name=$G(reqData("name",1)) 
	, test.Description=$G(reqData("desc",1))
	s sc=test.%Save(), id=test.%Id() k test
	d ..wResponse(+sc,id,sc) Q $$$OK
}

/// Обработка вызова на редактирование от интерфейса
ClassMethod jQGridEdit(ByRef reqData As %String) As %Status {
	s id=$G(reqData("id",1)) 
	if '..%ExistsId(id) {
		s sc=$$$ERROR( 10001 ,"id:"_id_" not exists") 
		d ..wResponse(+sc,id,sc) Q $$$OK
	}
	;упрощенный пример!
	s test=..%OpenId(id), test.Code=$G(reqData("code", 1 )), test.Name=$G(reqData("name", 1 )) 
	, test.Description=$G(reqData("desc", 1 ))
	s sc=test.%Save() k test
	d ..wResponse(+sc,id,sc) Q $$$OK
}

/// Обработка вызова на удаление от интерфейса
ClassMethod jQGridDel(ByRef reqData As %String) As %Status {
	s id=$G(reqData("id", 1 )) 
	if '..%ExistsId(id) {
		s sc=$$$ERROR(10001,"id:"_id_" not exists") 
		d ..wResponse(+sc,id,sc) Q $$$OK
	}
	s sc=..%DeleteId(id) d ..wResponse(+sc,id,sc) Q $$$OK
}

/// Разбор параметров запроса от интерфейса
ClassMethod jQGrid(ByRef reqData As %String) As %Status {
  s mode=$G(reqData("oper",1)) 
  Q:mode="add" ..jQGridAdd(.reqData) 
  Q:mode="edit" ..jQGridEdit(.reqData) 
  Q:mode="del" ..jQGridDel(.reqData)
  q ..jQGridOut(.reqData) ;по умолчанию
}

/// Вывод объектов постранично в jQuery Grid
ClassMethod jQGridOut(ByRef reqData As %String) As %Status {
  s pageNum=+$G(reqData("page",1),1) ;номер запрашиваемой страницы, по умолчанию первый
  s:pageNum<1 pageNum=1 ;контроль номера страницы 
    
  s pageSize=+$G(reqData("rows",100),100) ;вывести строк на страницу, по умолчанию 100
  s:pageSize<1 pageSize=100 ;контроль количества строк на страницу
  
  s SQL = "SELECT ID, Count(*) as records FROM SQLUser.jQGridTest"
  s where=..jQGridWhere(.reqData) s:where'="" SQL=SQL_where
  s order=..jQGridOrder(.reqData) s:order'="" SQL=SQL_order
  ;w "SQL:",SQL
  ;!!! В зависимости от версии Каше используем рекомендуемый %ResultSet || %ResultSet.SQL ||
  s rs=##class(%ResultSet).%New("%DynamicQuery:SQL")
  s sc=rs.Prepare(SQL) if 'sc d $system.OBJ.Dump(sc) Q sc
  s sc=rs.Execute() if 'sc d $system.OBJ.Dump(sc) Q sc
  
  ;диапазон выводимых строк
  s endRow=pageSize*pageNum ;последняя запись которую надо вывести с записи
  s startRow=endRow-pageSize ; начиная с записи
  s i=0,first=1,records=0,pages=0
  
  ;выводим
  w "{rows:["
  while rs.Next() {
   
   s i=i+1 ;счетчик пройденных строк
   if i<=startRow continue ;Не дошли до первой записи
   if i>endRow Q  ;прошли последнюю запись
   
   w:'first "," s:first first= 0  ;запятая после каждого объекта, кроме первого 
   s:records= 0  records=$G(rs.Data("records")) ;количество записей по запросу
   s id=$G(rs.Data("ID")) ;вывод объекта 
   d ..wJSON(id)
  
  }
  d rs.Close(),rs.%Close()
  s pages= 0   ;всего страниц данных
  s:records> 0  pages=records\pageSize ; если есть строки 
  s:records#pageSize> 0  pages=pages+ 1  ; непоместившиеся строки на след страницу
  w "],page:",pageNum,",total:",pages,",records:",records,"}"
  Q $$$OK
}

/// Сбор условий для Where 
ClassMethod jQGridWhere(ByRef reqData As %String) As %String {
 if $d(reqData("_search", 1 ))= 0  Q ""
 s where=" WHERE 1=1 "
 ;!!! Так делать нехорошо. Используйте параметры запроса
 s code=$G(reqData("code", 1 )) s:code'="" where=where_" AND Code['"_code_"'"
 s name=$G(reqData("name",1)) s:name'="" where=where_" AND Name['"_name_"'"
 s desc=$G(reqData("desc", 1 )) s:desc'="" where=where_" AND Description['"_desc_"'"
 q where
}

/// Сбор Order
ClassMethod jQGridOrder(ByRef reqData As %String) As %String {
 s sidx=$G(reqData("sidx",1)) ;сортировать по столбцу 
 if ",code,name,desc,"'[(","_sidx_",") Q ""  ;проверка наименование столбцов сортировки
 s:sidx="desc" sidx="Description"
 s order=" ORDER BY "_sidx
 s sord=$G(reqData("sord", 1 )) if sord'="desc" Q order
 Q order_" "_sord
}

}
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497567
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посредник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
/// Промежуточный слой 
Class json.jQGridTest Extends %CSP.Page {
Parameter CHARSET = "utf-8";
ClassMethod OnPage() As %Status {
	m reqData=%request.Data
	Q ##class(User.jQGridTest).jQGrid(.reqData)
}
}
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497570
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
/// Интерфейс
Class csp.jQGridTest Extends %CSP.Page {
Parameter CHARSET = "utf-8"; 
ClassMethod OnPage() As %Status {
 &html<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title> Пример интерфейса на jQuery Grid плагине </title>
<!--link rel="SHORTCUT ICON" href=""/-->
<link rel='stylesheet' href='css/redmond/jquery-ui-1.7.2.custom.css' type='text/css'/>
<link rel="stylesheet" href="css/ui.jqgrid.css" type="text/css" media="all"  />
<link rel="stylesheet" href="css/jquery.autocomplete.css" type="text/css" media="all"  />
<style type="text/css"> #gbox_table {margin-left:auto;margin-right:auto;} </style>
<body>

<table id="table"></table> 
<div id="navigator"></div>

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.min.js"></script>
<script type="text/javascript" src="js/i18n/grid.locale-ru.js" ></script>
<script type="text/javascript" src="js/jquery.jqGrid.min.js" ></script>


<script type="text/javascript">
//нужно вынести во внешний скрипт и сжать
var page=document.page||{};
//Обработчик ответа сервера 
page.fn_ServerResponse=function(response,postdata){
   var server=response.responseText;
   server=eval("("+server+")");
   return [server.ok,server.newid,server.err];
}

page.init=function(){
	var code={name:'code',index:'code',label:"Код"
	    ,width: 60 , sorttype:"int",search:true
 		,editable:true
 	};
	var name={name:'name',index:'name',label:"Наименование"
 		,width: 350 ,search:true,stype:'text'
 		,editable:true,edittype:"text",editoptions:{size: 50 }
 	};
 	var desc={name:'desc',index:'desc',label:"Описание"
 		,width: 350 ,search:true,stype:'text'
 		,editable:true,edittype:"text",editoptions:{size: 50 }
 	};	

var grid={
   url:"json.jQGridTest.cls",editurl:"json.jQGridTest.cls"
  ,datatype: "json",mtype:"POST"
  ,jsonReader : { repeatitems: false}
  ,caption: "Тестовые данные для примера"
  ,colModel:[code,name,desc]
  ,autowidth:false
  ,height:  400 
  ,gridview:true
  ,rownumbers:true,viewrecords:true,rowNum: 100 
  ,pager:$("#navigator")
  ,scrollrows:true,scroll: 1 
 }
 
 var table=jQuery("#table"); table.jqGrid(grid); //Создали таблицу
 table.filterToolbar({autosearch:true}); //добавили строку фильтра 
 
 var addOptions={afterSubmit:page.fn_ServerResponse,closeAfterAdd:true
 	,width: 500  
 };
 var editOptions={afterSubmit:page.fn_ServerResponse,closeAfterEdit:true
 	,width: 500  
 };
 var delOptions={afterSubmit:page.fn_ServerResponse,closeAfterDel:true};
 table.jqGrid('navGrid',"#navigator",
       {add:true, view:false, del:true,edit:true,search:false}, 
       editOptions,addOptions,delOptions
 );
 
}
$(page.init);   
</script>
</body>
</html>>

 Quit $$$OK
}

}

...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497586
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заполняем данными
Код: plaintext
1.
USER>d ##class(jQGridTest).Populate( 1000 )
вызываем через адресную строку http://localhost/app/csp.jQGridTest.cls
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497631
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

вот ГРАНД мерси!!!
что то мне подсказывает необходимо что то скачать еще у них?
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497682
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ога. Нужна сама библиотека jQuery-1.3.2 (можно и версию 1.4 только поправить пути к подключаемым js)
Интерфейсные навороты jQuery UI (я брал все, бо вельмі спадабалася) со стилем redmond (там есть пример, как сделать переключатель стилей), ну и сам плагин Grid (тоже выбрал все)
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36497929
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

спасибо, заработало сразу, после прописания правильных путей
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36499319
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

подскажи пожалуйста, на русском документацию где почитать, если она есть?, на худой конец родную
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36499482
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007, сайт плагина, там же ссылки на примеры и документацию . Ну и копи-паст переводчик
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36499663
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

ага понятно, спасибо большое
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36557240
2acid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал пример, на фоксе (3.6.3) такие глюки всплыли (кодировка стоит UTF-8 )
тут

На ИЕ проблем со шрифтом нет.
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36557250
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на лицо проблема не со шрифтом а с кодировкой
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36557367
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2acid,
Это кодировка файла ресурса отличается от кодировки страницы
Код: plaintext
1.
<script type="text/javascript" src="js/i18n/grid.locale-ru.js"></script>
Вариант подключить другой файл ресурса или заставить считать firefox, что страница все-таки в UTF-8
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Parameter CHARSET = "utf-8"; 
ClassMethod OnPage() As %Status {
 &html<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8" />
<title> Пример интерфейса на jQuery Grid плагине </title>
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36825012
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы ещё коснуться вопроса о написании клиента для каши на таких языках как, к примеру, С, ява, делфи. Есть у кого то опыт обработки форм и связывания форм и данных базы каши? насколько это педпочтительнее (или же наоборот геморройнее по сравнению с CSP/ZEN и вообще web интерфейсом) с точки зрения качества форм, удобства программирования? В природе существуют наглядные примеры обработки форм, как скажем методички по ZEN?
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36825234
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotХотелось бы ещё коснуться вопроса о написании клиента для каши на таких языках как, к примеру, С, ява, делфи. Есть у кого то опыт обработки форм и связывания форм и данных базы каши? насколько это педпочтительнее (или же наоборот геморройнее по сравнению с CSP/ZEN и вообще web интерфейсом) с точки зрения качества форм, удобства программирования? В природе существуют наглядные примеры обработки форм, как скажем методички по ZEN?

Клиент написан на VBA и работает на EXCEL ( UNICODE)
База данных на MSM 8 bit , или CACHE 8 bit , или MiniM - 8 bit,
но держит также и все UNICODE символы

Поэтому никаких проблем с китайским языком
или с разными языками вперемешку в одном предложении
...
Рейтинг: 0 / 0
Кто как работает с формами?
    #36825250
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotХотелось бы ещё коснуться вопроса о написании клиента для каши на таких языках как, к примеру, С, ява, делфи. Есть у кого то опыт обработки форм и связывания форм и данных базы каши? насколько это педпочтительнее (или же наоборот геморройнее по сравнению с CSP/ZEN и вообще web интерфейсом) с точки зрения качества форм, удобства программирования? В природе существуют наглядные примеры обработки форм, как скажем методички по ZEN?

вот например Аларис , клиент написанный в CBuilder, с хранением в Cache
это все таки скорее геморройнее, с учетом того что было написано несколько компонент, для связи с Cache, и для отрисовки самих форм использовался (платный, незнаю как раньше) компонент FormDesigner, и для выполнения кода на самом клиенте FastScript
по поводу удобства, то получается, что код необходимо писать как на клиенте так и на сервере, для разных задач
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Кто как работает с формами?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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