Инструменты пользователя

Инструменты сайта


rowset-definition

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
rowset-definition [2026/04/27 17:35] – [Описание полей источника данных] madminrowset-definition [2026/07/24 15:51] (текущий) – [Раздел autoexec] madmin
Строка 10: Строка 10:
  
 Ориентировочный вид [[rowset-definition|декларативного описания]] таков: Ориентировочный вид [[rowset-definition|декларативного описания]] таков:
-<code>+<code xml>
 <rowset  <rowset 
-  (name|rowset)="<имя набора строк>"  +  name|rowset="имя набора строк"  
-  datasource="<имя источника данных>" +  datasource="имя источника данных" 
   readonly="0|1"   readonly="0|1"
-  js_readonly="<JavaScript выражение>"+  js_readonly="JavaScript выражение"
  
-<!--- +/* устарело, заменено на autoexec 
-  autorefresh="<автоперечитка в секундах>" +  autorefresh="автоперечитка в секундах" 
-  autorefreshrow="<автоперечитка в секундах>"+  autorefreshrow="автоперечитка в секундах"
   ignoreerror="0|1"   ignoreerror="0|1"
--->+*/
  
-  js_refresh="<JavaScript выражение, изменение которого автоматически вызывает перечитку>"+  js_refresh="JavaScript выражение, изменение которого автоматически вызывает перечитку"
  
-  parent.row.type="<допустимый row.type узла родительского набора строк>" +  parent.row.type="допустимый row.type узла родительского набора строк" 
-  parent.sync.row.type="<допустимые дочерние типы узлов через ;>" +  parent.sync.row.type="допустимые дочерние типы узлов через ;" 
-  parent.sync.field.icon="<имя поля, задающего иконку синхронизируемого узла>" +  parent.sync.field.icon="имя поля, задающего иконку синхронизируемого узла" 
-  parent.sync.field.empty="<имя поля, задающего признак row.empty синхронизируемого узла>" +  parent.sync.field.empty="имя поля, задающего признак row.empty синхронизируемого узла" 
-  parent.sync.field.final="<имя поля, задающего признак row.final синхронизируемого узла>"+  parent.sync.field.final="имя поля, задающего признак row.final синхронизируемого узла"
  
   anketa="0|1"   anketa="0|1"
Строка 36: Строка 36:
   filter.autorefresh="1|0"   filter.autorefresh="1|0"
      
-  paginator.count="0|<кол-во строк в странице>"+  paginator.count="0|кол-во строк в странице"
      
-  row.focus.id="<id для первого позиционирования>" +  row.focus.id="id для первого позиционирования" 
-  row.focus.path="<path для первого позиционирования (через ;)>"+  row.focus.path="path для первого позиционирования (через ;)"
      
-  evt_onnavigate="<имя запроса>" +  evt_onnavigate="имя запроса" 
-  js_onnavigate="<JavaScript выражение>"+  js_onnavigate="JavaScript выражение"
      
-  mark.rowset="<имя источника данных для хранения пометок>" +  mark.rowset="имя источника данных для хранения пометок" 
-  mark.rowset.fieldmark="<имя поля для id пометки>" +  mark.rowset.fieldmark="имя поля для id пометки" 
-  mark.rowset.fieldtype="<имя поля для row.type>"+  mark.rowset.fieldtype="имя поля для row.type"
  
   mark.all="0|1 (пометить все после первого refresh)"   mark.all="0|1 (пометить все после первого refresh)"
Строка 53: Строка 53:
   <autoexec   <autoexec
     enabled="1|0"     enabled="1|0"
-    request="refresh|refreshrow|<любой запрос>" +    request="refresh|refreshrow|любой запрос" 
-    mode="timeout|polling|socket" +    mode="timeout|polling|socket|event" 
-    timeout="<кол-во секунд между перечитками, для method=timeout>" +    event="наименование события, вызывающее срабатывание, для method=event" 
-    url="<url соединения, для mode=polling или socket>"+    timeout="кол-во секунд между перечитками, для method=timeout" 
 +    url="url соединения, для mode=polling или socket"
     ignoreerror="0|1"     ignoreerror="0|1"
-    pingtimeout="<периодичность отправки ping запросов для проверки соединения socket, в секундах>"+    pingtimeout="периодичность отправки ping запросов для проверки соединения socket, в секундах"
   >   >
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
     ...     ...
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
   </autoexec>   </autoexec>
      
   <section    <section 
-    row.type="<тип узла>" +    row.type="тип узла" 
-    field.name="<имя поля>" +    field.name="имя поля" 
-    field.description="<имя поля>" +    field.description="имя поля" 
-    field.form="<имя поля>" +    field.form="имя поля" 
-    field.params="<имя поля>" +    field.params="имя поля" 
-    default.icon="<иконка по умолчанию>" +    default.icon="иконка по умолчанию"
     default.final="0|1"     default.final="0|1"
   >   >
Строка 78: Строка 79:
       <params>       <params>
         <param          <param 
-          (name|param)="<имя параметра>"  +          name|param="имя параметра" 
-          value="<значение>"  +          value="значение"  
-          js_value="<JavaScript выражение>" +          js_value="JavaScript выражение" 
           type="string|memo|date|num|check|ref"           type="string|memo|date|num|check|ref"
           enabled="1|0"            enabled="1|0" 
-          js_enabled="<JavaScript выражение>" +          js_enabled="JavaScript выражение" 
-          (skipempty|notempty)="0|1"+          skipempty|notempty="0|1"
         />         />
         ...         ...
Строка 91: Строка 92:
          
       <request        <request 
-        (name|request)="<имя запроса>"  +        name|request="имя запроса"  
-        mode="<подрежим запроса>"+        mode="подрежим запроса"
         enabled="0|1"          enabled="0|1" 
-        js_enabled="<JavaScript выражение>"  +        js_enabled="JavaScript выражение"  
-        js_caption="<JavaScript выражение>"  +        js_caption="JavaScript выражение"  
-        js_icon="<JavaScript выражение>"  +        js_icon="JavaScript выражение"  
-        caption="<текст>"  +        caption="текст"  
-        icon="<иконка>"  +        icon="иконка"  
-        timeout="<время ожидания ответа>"+        timeout="время ожидания ответа"
         sync="0|1"         sync="0|1"
       >       >
         <params>         <params>
           <param            <param 
-            (name|param)="<имя параметра>"  +            name|param="имя параметра" 
-            value="<значение>" +            value="значение" 
-            js_value="<JavaScript выражение>" +            js_value="JavaScript выражение" 
             type="string|memo|date|num|check|ref"             type="string|memo|date|num|check|ref"
             enabled="1|0"              enabled="1|0" 
-            js_enabled="<JavaScript выражение>" +            js_enabled="JavaScript выражение" 
-            (skipempty|notempty)="0|1"+            skipempty|notempty="0|1"
           />           />
           ...           ...
Строка 122: Строка 123:
     <fields>     <fields>
       <field       <field
-        (name|field)="<имя поля>"+        name|field="имя поля"
         enabled="0|1"         enabled="0|1"
         type="string|password|memo|date|datetime|num|check|ref|list|radio|icons|multilist|multicheck|multitree|html"         type="string|password|memo|date|datetime|num|check|ref|list|radio|icons|multilist|multicheck|multitree|html"
         list="code=value;item1;item2;item3;...;itemN"         list="code=value;item1;item2;item3;...;itemN"
-        listfield="<имя поля со списком допустимых значений id=value;id=value>" +        listfield="имя поля со списком допустимых значений id=value;id=value" 
-        listrowset="<имя источника данных, со списком допустимых значений>"+        listrowset="имя источника данных, со списком допустимых значений"
         basetype="string|num"         basetype="string|num"
         triplex="0|1"         triplex="0|1"
 +        
         dlgstyle="auto|list|check"         dlgstyle="auto|list|check"
 +        dlgcheckmax="для режима dlgstyle=auto максимальное кол-во строк, отображаемых как check, по умолчанию 25"
 +        
         size="small|medium|large"         size="small|medium|large"
-        caption="<заголовок>"+        caption="заголовок"
         visible="0|1"         visible="0|1"
-        js_visible="<JavaScript выражение>"+        js_visible="JavaScript выражение"
         readonly="0|1"         readonly="0|1"
-        js_readonly="<JavaScript выражение>"+        js_readonly="JavaScript выражение"
         notnull="0|1"         notnull="0|1"
-        maxlength="<максимальное кол-во символов>" +        maxlength="максимальное кол-во символов" 
-        width="<ширина при отображении: px, pt или %>" +        width="ширина при отображении: px, pt или %" 
-        dlgwidth="<ширина диалога при отображении: px, pt или %>" +        dlgwidth="ширина диалога при отображении: px, pt или %" 
-        len="<длина для отображения, в символах>" +        len="длина для отображения, в символах" 
-        default="<значение по умолчанию>" +        default="значение по умолчанию" 
-        rows="<высота в строках для многострочных редакторов>" +        rows="высота в строках для многострочных редакторов" 
-        maxrows="<максимально допустимая высота в строках для многострочных редакторов>" +        maxrows="максимально допустимая высота в строках для многострочных редакторов" 
-        dec="<кол-во знаков после запятой>"+        dec="кол-во знаков после запятой"
         hidezero="0|1"         hidezero="0|1"
         numsep="0|1"         numsep="0|1"
         stretch="0|1"         stretch="0|1"
-        refid="<имя поля справочника>" +        refid="имя поля справочника" 
-        refname="<имя поля в источнике данных справочника - для переноса>" +        refname="имя поля в источнике данных справочника - для переноса" 
-        reftext="<имя поля в источнике данных справочника - для отображения в списке>"+        reftext="имя поля в источнике данных справочника - для отображения в списке"
         save="0|1"         save="0|1"
         enter="0|1" - для memo Enter как перевод строки (иначе переход на следующее поле)         enter="0|1" - для memo Enter как перевод строки (иначе переход на следующее поле)
         nowrap="0|1" - отображать без переноса (в grid одной строкой)         nowrap="0|1" - отображать без переноса (в grid одной строкой)
                  
-        onaction="<текст запроса>" +        onaction="текст запроса" 
-        js_onaction="<JavaScript выражение>"+        js_onaction="JavaScript выражение"
       >       >
         <ref          <ref 
-          datasource="<имя источника>"  +          datasource="имя источника"  
-          row.type="<для деревьев, подходящие типы узлов через ;>" +          row.type="для деревьев, подходящие типы узлов через ;" 
                      
-          form="<имя модальной формы справочника>"+          form="имя модальной формы справочника"
           form.result.mode="result_mode"           form.result.mode="result_mode"
           form.result.value="result_value"           form.result.value="result_value"
         >         >
-          <param (name|param)="<имя параметра>" js_value="<JavaScript выражение>"/>+          <param name|param="имя параметра" js_value="JavaScript выражение"/>
           ...           ...
           <param/>           <param/>
                      
-          <result name="<имя возвращаемого параметра>" value=""/>+          <result name="имя элемента #data" value="имя возвращаемого элемента #data в закрывающейся модальной форме справочника"/>
           ...           ...
           <result/>           <result/>
         </ref>         </ref>
         <change>         <change>
-          <clear (name|field)="<имя очищаемого поля>"/>+          <clear name|field="имя очищаемого поля"/>
           ...           ...
           <clear/>           <clear/>
                      
-          <param (name|param)="<имя параметра>" js_value="<JavaScript выражение>"/>+          <param name|param="имя параметра" js_value="JavaScript выражение"/>
           ...           ...
           <param/>           <param/>
Строка 283: Строка 287:
 ==== Раздел autoexec ==== ==== Раздел autoexec ====
 Этот раздел позволяет периодически вызывать указанный в разделе запрос  Этот раздел позволяет периодически вызывать указанный в разделе запрос 
-<code>+<code xml>
   <autoexec   <autoexec
     enabled="1|0"     enabled="1|0"
-    request="<имя запроса>"+    request="имя запроса"
     mode="timeout|polling|socket"     mode="timeout|polling|socket"
-    timeout="<кол-во секунд>" +    timeout="кол-во секунд" 
-    url="<url соединения, для mode=polling или socket>"+    url="url соединения, для mode=polling или socket"
     ignoreerror="0|1"     ignoreerror="0|1"
   >   >
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
     ...     ...
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
   </autoexec>   </autoexec>
 </code> </code>
 Описание параметров Описание параметров
   * **enabled**="1|0" - по умолчанию включен, позволяет заблокировать autoexec   * **enabled**="1|0" - по умолчанию включен, позволяет заблокировать autoexec
-  * **request**="<имя запроса>" - выполняемый запрос, обычно refresh или refreshrow, но можно любой другой, например объявленный на уровне формы+  * **request**="имя запроса" - выполняемый запрос, обычно refresh или refreshrow, но можно любой другой, например объявленный на уровне формы
   * **ignoreerror**="0|1" - по умолчанию выключен, позволяет игнорировать ошибки сервера, возникающие при выполнении запроса   * **ignoreerror**="0|1" - по умолчанию выключен, позволяет игнорировать ошибки сервера, возникающие при выполнении запроса
   * **mode** - способ управления вызовом запроса   * **mode** - способ управления вызовом запроса
 === mode=timeout === === mode=timeout ===
 В этом режиме запрос вызывается периодически, через каждые **timeout** секунд В этом режиме запрос вызывается периодически, через каждые **timeout** секунд
-<code>+<code xml>
   <autoexec   <autoexec
     enabled="1|0"     enabled="1|0"
-    request="refresh|refreshrow|<любой запрос>"+    request="refresh|refreshrow|любой запрос"
     mode="timeout"     mode="timeout"
-    timeout="<кол-во секунд между перечитками>"+    timeout="кол-во секунд между перечитками"
     ignoreerror="0|1"     ignoreerror="0|1"
   >   >
Строка 319: Строка 323:
  
 Клиент создает и держит с сервером продолжительное, заданное параметром **timeout** (30-300 секунд) http соединение. Сервер периодически, например раз в секунду, проверяет наличие интересующего клиента события. При возникновении события, возвращает клиенту строку **1** и завершается. Если за заданное **timeout** время событие не возникло, то серверное соединение завершается, ничего не сообщая клиенту. А клиент повторно создает новое соединение и ждет ответа. Клиент создает и держит с сервером продолжительное, заданное параметром **timeout** (30-300 секунд) http соединение. Сервер периодически, например раз в секунду, проверяет наличие интересующего клиента события. При возникновении события, возвращает клиенту строку **1** и завершается. Если за заданное **timeout** время событие не возникло, то серверное соединение завершается, ничего не сообщая клиенту. А клиент повторно создает новое соединение и ждет ответа.
-<code>+<code xml>
   <autoexec   <autoexec
     enabled="1|0"     enabled="1|0"
-    request="<имя запроса>"+    request="имя запроса"
     mode="polling"     mode="polling"
-    timeout="<время ожидания polling запроса>" +    timeout="время ожидания polling запроса" 
-    url="<url polling соединения>"+    url="url polling соединения"
     ignoreerror="0|1"     ignoreerror="0|1"
   >   >
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
     ...     ...
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
   </autoexec>   </autoexec>
 </code> </code>
Строка 338: Строка 342:
  
 **Пример реализации polling сервиса на PHP** **Пример реализации polling сервиса на PHP**
-<code>+<code php>
 <?php <?php
 class ServiceAutoExecPolling extends ServiceController{ class ServiceAutoExecPolling extends ServiceController{
Строка 381: Строка 385:
 } }
 return new ServiceAutoExecPolling(); return new ServiceAutoExecPolling();
 +?>
 </code> </code>
 Некоторые важные особенности реализации для PHP: Некоторые важные особенности реализации для PHP:
Строка 393: Строка 398:
 Для реализации такого способа необходим сервер, поддерживающий socket соединение, технологии PHP+Apache недостаточно. Например, на PHP такой сервер можно написать на Ratchet, но это будет отдельный сервис, работающий независимо от Apache. Для реализации такого способа необходим сервер, поддерживающий socket соединение, технологии PHP+Apache недостаточно. Например, на PHP такой сервер можно написать на Ratchet, но это будет отдельный сервис, работающий независимо от Apache.
  
-<code>+<code xml>
   <autoexec   <autoexec
     enabled="1|0"     enabled="1|0"
-    request="<имя запроса>"+    request="имя запроса"
     mode="socket"     mode="socket"
-    url="<url socket соединения>" +    url="url socket соединения" 
-    pingtimeout="<периодичность отправки ping запросов для проверки соединения, в секундах>"+    pingtimeout="периодичность отправки ping запросов для проверки соединения, в секундах"
     ignoreerror="0|1"     ignoreerror="0|1"
   >   >
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
     ...     ...
-    <param name="<имя параметра>" value="<значение параметра>"/>+    <param name="имя параметра" value="значение параметра"/>
   </autoexec>   </autoexec>
 </code> </code>
Строка 412: Строка 417:
  
 Пример реализации WebSocket сервера на Ratchet Пример реализации WebSocket сервера на Ratchet
-<code>+<code php>
 <?php <?php
 require_once('.lss-init.php'); require_once('.lss-init.php');
Строка 488: Строка 493:
 echo "\n".'WebSocket запущен'."\n"; echo "\n".'WebSocket запущен'."\n";
 $loop->run(); $loop->run();
 +?>
 </code> </code>
rowset-definition.1777300517.txt.gz · Последнее изменение: 2026/04/27 17:35 — madmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki