powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache метод при нажатии на кнопку
25 сообщений из 38, страница 1 из 2
Cache метод при нажатии на кнопку
    #34765236
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И снова я! Теперь такой вопрос. Хочу, чтобы при нажатии на кнопку с полей формы (поля текст и радио группы) выполнялся Каше метод. Код:
Код: 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.
<script language="cache" method="getParam" arguments="pfindFLT:%String,pfindREG:%String,psort0:%Boolean,psort1:%Boolean,psort2:%Boolean,psort3:%Boolean,psee0:%Boolean,psee1:%Boolean,psee2:%Boolean">
   
   set rs=##class(%Library.ResultSet).%New("%Library.DynamicQuery:SQL")
  
   if pfindFLT="" set pfindFLT="%"
   if pFindREG="" set pfindREG="%"
   
   if psort0=True set psortfield="flt"
   if psort1=True set psortfield="reg"
   if psort2=True set psortfield="plan_time"
   if psort3=True set psortfield="estimated_time"
   
   if psee0=True set pseefield="%"
   if psee1=True set pseefield="ARR"
   if psee2=True set pseefield="DEP"
   
   set sql="SELECT stat,appn_row_id,flt,tys,reg,plan_time,estimated_time,actual_time,in_out_parking, tal, tas, tar FROM OPS$AODB.viewARRDEP WHERE (stat=?) and (flt=?) and (reg=?) ORDER BY ? "
   set st=rs.Prepare(sql)
   
   do rs.Execute(@pseefield,@pfindFLT,@pfindREG,@psortfield)
   
   write "<html>"
   write "<head>"
   write "</head>"
   write "<body>"
   write "<table width=""100%"" height=""0.18"" border=""1"" align=""center"">"
    
   while rs.Next()
   {
	     
	   write "<tr>"
	   write "<td height=""0.3%"">"_rs.Get("stat")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("flt")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("tys")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("reg")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("plan_time")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("estimated_time")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("actual_time")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("in_out_parking")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("tal")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("tas")_" </td>"
	   write "<td height=""0.3%"">"_rs.Get("tar")_" </td>"
	   write "</tr>"
   }
   
   write "</table>"
   write "</body>"
   write "</html>"
   
  </script> 

<form action="" name="theForm" id="form1" >
...
<input type="button" name="theButton" onClick="#server(..getParam(self.document.theForm.findFLT.value,self.document.theForm.findREG.value,self.document.theForm.sort(0).checked,self.document.theForm.sort(1).checked,self.document.theForm.sort(2).checked,self.document.theForm.sort(3).checked,self.document.theForm.see(0).checked,self.document.theForm.see(1).checked,self.document.theForm.see(2).checked))#" value="OK" />

Где: findFLT, findREG - текстовые поля, sort, see - радио группы

При нажатии на кнопку появляется окно с ошибкой "Http object response incomplete or invalid.0,#V". Дальше наверное не помещается.... Уповаю на вашу помощь :)
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34765459
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю что у вас неверный подход к методам Каше... Кащейское гиперсобытие не должно менять документ html...
Эго минимально должно менять javascript или перезагрузка документа (может даже загрузка нового документа) если изменения очень радикальные...
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34765981
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все нормально, только write дожен генерить не html код, а код javascript, с помощью которого вы по типу аякса будете менять свой документ.

Соответвенно для уменьшения обмена с сервером (и упрощения ващей работы) html должен максимально быть вынесенным в статичный csp, а javascript - в js-библиотеки
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34766560
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaДумаю что у вас неверный подход к методам Каше...
Возможно, я ведь только учусь :)
Только вопрос то не в этом. Вопрос в ошибке, которая появляется при нажатии на кнопку и она возникала и до "обновления старницы" с помощью Каше (write "<html>"...). А самое обидное, что для csp страниц даже отладчик не работает :(
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34766651
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно писать вот как
Код: plaintext
&html<<td height="0.3%">#(rs.Get("stat"))#</td>>
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34766821
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaНужно писать вот как

Ошибка от этого не пропала :(
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34766885
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sonia , опиши что ты хочеш...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767070
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
&html<<td height="0.3%">
Так из под "сервера" работать не будет.
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767229
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.&html<<td height="0.3%">
Так из под "сервера" работать не будет.
Почему?
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767272
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa Sonia , опиши что ты хочеш...

Пользователь вводит значение для поиска в текстовое поле формы и нажимает на кнопку. По нажатию на кнопку выполняется Каше метод getParam, описанный в вопросе, он выполняет динамический запрос с параметром и обновляет таблицу, находящуюся ниже текстового поля и кнопки (рисует заново). Я читала что-то про гиперсобытия, которые могут "обновлять часть страницы"...только как вот это сделать...
Вот пример такого гиперсобытия (осуществляет перевод валюты), взятого из книги:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<HTML>
<HEAD>
<TITLE>Конвертор валют</TITLE>
</HEAD>
<BODY>
<h3>Конвертер валют</h3>
     <form name="Converter">
        Число месяца: <input type="TEXT" name="Day"><br>
        Доллары: <input type="TEXT" name="USD"><br>
        Рубли: <input type="TEXT" name="RUR"><br>
        <input name="Go" type="Button" value="Вычислить" onClick="#server(..Convert(self.document.Converter.Day.value, self.document.Converter.USD.value))#">
     </form>
</BODY>
</HTML>
<script language="Cache" Method="Convert" Arguments="day:%Integer,usd:%Integer">
     new rub
     set rub=usd*$get(^CurrencyRate(day), 30 )
     &javascript<self.document.Converter.RUR.value=#(rub)#;>
</script>


Однако, в этом примере описано, как в объект типа Текстовое поле вывести значение....а вот таблицу же нельзя рассматривать как объект....или можно?
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767275
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa Sonia , опиши что ты хочеш...

А ну и загвоздка в ошибке, которая непонятно почему возникает :)
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767330
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка возникает потому что write у сервера должен генерить javascript, а не html.

Если вам заново нужно нарисовать таблицу, вам нужно поразбираться с динамическим html.
В принципе я подобное делал. Сначала кажется - жуть и кода много. Потом ничего, даже короче, чем html получается. Правда сложновато может получиться сделать поддержку разных браузеров - как раз из-за несовместимости javascript.

Если вам интересно и сам не забуду, выложу примеры (через пару часов)
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767342
Sonia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.
Если вам интересно и сам не забуду, выложу примеры (через пару часов)
Выложите, очень интересно
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34767495
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sonia , гипер событие не должно рисовать страницу... Это может сделать
<script language="Cache" runat="Server">
...
</script>

Обработав соответствующие параметры на входе.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34768335
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да нет, почему же, приходилось и по гиперсобытию рисовать таблицы
Вот надерганый оттуда и упрощеный пример


Код: 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.
<html>
<head>
<script language=javascript>
function addTableRow(parentHTML,rowData,delimiter)
{var tr,td,data,i;
 data=rowData.split(delimiter);
 tr=document.createElement("tr")
 parentHTML.appendChild(tr)	
 
 for (i= 0 ;i<data.length;i++)
   {td=document.createElement("td")
    tr.appendChild(td)	
    td.innerHTML=data[i];
   } 
}
/////////////
function deleteRows(parentHTML)
{while (parentHTML.rows.length>  0 ) 
   {parentHTML.deleteRow( 0 );
   }
}

/////////////
function fillTable(cols,rows)
{#call(..FillTable(cols,rows))#;
}
</script>
</head>

<body>
<table>
<tr><td>Строк<td><input type=text id=rowcount value= 3 >
<tr><td>Столбцов<td><input type=text id=colcount value= 2 >
<tr><td colspan= 2 ><center><button onclick=fillTable(colcount.value,rowcount.value)>Генерить</button>
</table>

<div id=ddata>		
</div>
<table border= 1  >
<tbody id=tdata></tbody>
</table>
</body>
</html>

<script language=cache method=FillTable arguments="cols:%String,rows:%String">
w !,"alert('Рисуем таблицу "_cols_"х"_rows_"');"
w !,"deleteRows(tdata);"
for i= 1 : 1 :rows 
	{s line=$r( 100 )
	 for j= 2 : 1 :cols s line=line_","_$r( 100 )
	 w !,"addTableRow(tdata,'"_line_"',',');"
	}
</script>
Разбирайтесь ;-)
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34768427
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. , я бы не стал в гиперсобытии рисовать что-то в страничке... Пусть это делают JS, <script> или <csp:*>...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34768442
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему?
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34768529
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая тактика у нас :)
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34769434
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас генеральная линия партии - тоже.
Пока на димамическом html идут только отдельные кусочки.
Но так получается проще (при создании сложных страниц) и намного приятнее для пользования.
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34774216
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу признаюсь, что в Cache я не не просто ноль, а 2 ноля :)
Поэтому вопрос больше для саморазвития, чем для решения конкретных задач:

А есть ли для Cache библиотеки (стандартные или сторонние), позволяющие не писать прямое формирование html-кода?
Например, библиотеки, использующие компонентный подход (аля ASP.Net)?

Из названия технологии - csp, я предположил, что это аналог ASP (JSP), т.e. страница шаблонов. Это так?
И если да, то (вопрос к автору топика) почему бы не воспользоваться этим подходом, как значительно снижающим сложность разработки, по сравнению с формированием html-кода прямо в тексте?
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34774267
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилР , изначально М-программисты взяли себе на вооружение девиз "Наши руки не для скуки"! И все обычно делают сами
Все "наработки" стоят денег... А вот их-то платить никто не собирается...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34774305
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилРСразу признаюсь, что в Cache я не не просто ноль, а 2 ноля :)
Поэтому вопрос больше для саморазвития, чем для решения конкретных задач:

А есть ли для Cache библиотеки (стандартные или сторонние), позволяющие не писать прямое формирование html-кода?
Например, библиотеки, использующие компонентный подход (аля ASP.Net)?

Из названия технологии - csp, я предположил, что это аналог ASP (JSP), т.e. страница шаблонов. Это так?
И если да, то (вопрос к автору топика) почему бы не воспользоваться этим подходом, как значительно снижающим сложность разработки, по сравнению с формированием html-кода прямо в тексте?

CSR?
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34774583
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, CSR для новичков
Возможности хорошие, но если честно, то прочувствовать ее у меня не получилось.
Разработка с готвыми CSR - конечно хорошо, а вот сами CSR как-то тяжело пишутся.
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34774604
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем проблема скорее не в том, чтобы написать саму CSR , а сколько в том, чтобы придумать компонент, который можно без проблем использовать много раз в самых разных условиях.

Делаешь хороший компонент - теряешь универсальность. Делаешь универсальный - теряешь в удобстве. Но это в общем то проблема не каше и не CSR.
...
Рейтинг: 0 / 0
Cache метод при нажатии на кнопку
    #34774641
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. , так и есть. Даже с использованием классов вариантов "как построить БД" вагон! А с глобалами было и того больше...
Т.ч. схема храниения одних в корне отличалась от схемы хранения у других. Компонентами другдруга пользоваться было невозможно...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache метод при нажатии на кнопку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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