Class mgr session::BaseSession

Материал из ISPWiki
Перейти к: навигация, поиск

Формирование ответа панели

Класс mgr_session::BaseSession

Класс-сессия

#include <mgrsession.h> 

Описание:

class mgr_session::BaseSession

Данный класс содержит набор параметров и методов предназначеных для управления содержимым XML документа - сессией. Данный XML документ определяет набор данных который будет использован для формирования окончательного ответ пользователю на тот или иной запрос. Класс является базовым для isp_api::Session.

See also: isp_api::Session
See also: isp_api::Action

Потомки:


Содержание

Классы

class mgr_session::BaseSession::Banner

Пользовательское уведомление


class mgr_session::BaseSession::Field

Поле на форме


class mgr_session::BaseSession::Page

Вкладка на форме


class mgr_session::BaseSession::RecordLimitExceeded

Перечисления (кратко)

Перечисление ResultType { okNone = 0, okList = 1, okForm = 2, okTop = 3, okBlank = 4, okUrl = 5, okType = 15, okNotifyUp = 16, okChild = 32, }

Тип дополнительного действия

Открытые аттрибуты (кратко)

Xml xml

Результирующий XML документ


XmlNode lastNode

Последний добавленный XML узел. Только метод AddChildNode не меняет значения этого свойства


XmlNode tagNode

Последний добавленный XML узел

Открытые члены (кратко)

void Ok ( int flags = okNone , const string &param = "" )

Сигнализировать графическому интерфейсу об успешности операции


virtual int GetRecordLimit ()

Получить лимит количества записей в списке


XmlNode SetCookie ( const string &name , const string &value )

Выставить cookie.

Свойства и методы для модификации XML документа

XmlNode NewNode ( const char * name )

Добавляет новый узел в корень XML документа


XmlNode AddChildNode ( const char * name , const string &value = "" )

Добавить дочерний узел


void NodeProp ( const char * name , const string &value )

Добавить аттрибут

Управление содержимым графических элементов

XmlNode NewSelect ( const string &name )

Сформировать список значений


template <class InputIterator>

void

BuildSelect ( InputIterator first , InputIterator last , const string &name )

Сформировать список значений на основе значений итераторов


void BuildTree ( const string &name , const string &path , size_t depth = 0 )

Сформировать дерево каталогов


XmlNode NewElem ()

Сформировать новую строку в таблице


void NewIndicator ( const string &name , long long val , long long lim )

Добавить в строку таблицы новый индикатор

Динамическое формирование объектов графического интерфейса

Field NewField ( const string &type , const string &name , const string &msg , const string &hint )

Добавить поле на форму


Page NewPage ( const string &name , const string &msg )

Добавить новую вкладку на форму


Banner NewBanner ( const string &msgid , Banner::Level level )

Добавить уведомление в списке

void SendFile ( const string &filename , const string &data )

Отправить файл в качестве ответа панели

Методы работы с параметрами

virtual string Param ( const string &param )

Вернуть значение параметра


virtual void SetParam ( const string &param , const string &value )

Установить значение параметра


virtual void DelParam ( const string &param )

Удалить параметр


virtual void GetParams ( StringVector &res )

Получить список имен параметров


virtual bool Has ( const string &param )

Проверить наличие параметра


virtual bool Checked ( const string &param )

Проверить "отмечено" поле или нет


virtual bool IsSubmitted () const

Проверить была ли нажата кнопка "ОК".


virtual bool IsGet () const

Проверить был ли это запрос на чтение данных


virtual bool IsSetValues () const

Проверить был ли это запрос дополнительных данных


string IParam ( const string &name )

Работа с внутренними параметрами

Перечисления (подробно)

ResultType

Тип дополнительного действия

Данное перечисление определяет список дополнительных действий возможных при закрытии формы.

See also: Ok

  • okNone= 0

    не требуется никаких дополнительных действий

  • okList= 1

    загрузить указанный в param список

  • okForm= 2

    открыть указанную в param форму

  • okTop= 3

    загрузить заново все содержимое рабочего стола с указанными в param параметрами

  • okBlank= 4

    открыть указанный в param URL в новом окне

  • okUrl= 5

    открыть указанный в param URL в текущем окне

  • okType= 15

    маска для типа

  • okNotifyUp= 16

    обновить список оповещений

  • okChild= 32

    открыть форму в дочерней вкладке

Методы

XmlNode NewNode ( const char * name )

Добавляет новый узел в корень XML документа

Вызов данного метода запонимает вновь созданный узел в lastNode и tagNode. Таким образом последующие вызовы NodeProp и AddChildNode будут добавлять аттрибуты и дочерние узлы для данного узла GetNode - возвращает узел с заданным именем из корня XML докумета или добавляет новый, если такого узла нет

See also: AddChildNode
See also: NodeProp

XmlNode AddChildNode ( const char * name , const string &value = "" )

Добавить дочерний узел

Метод добавляет новый дочерний узел для последнего узла созданного методом NewNode

See also: NewNode

void NodeProp ( const char * name , const string &value )

Добавить аттрибут

Метод добавляет новый аттрибут для последнего узла созданного методами NewNode или AddChildNode

See also: NewNode
See also: AddChildNode

XmlNode NewSelect ( const string &name )

Сформировать список значений

Для того чтобы задать набор значений для любых графических элементов списочного типа (select, list, radiobutton) необходимо выполнить следующую последовательность действий:

  • вызвать метод NewSelect указав в качестве имени имя элемента на графической форме
  • вызовами методам AddChildNode сформировать набор значений. При этом в качестве параметра name для AddChildNode следует передавать одно из двух значений: msg - если вместо value необходимо подставить соотвестующее ему сообщение, val - если параметр value следует оставить без изменений

ses.NewSelect("myselect"); 
ses.AddChildNode("val", "my_value_1"); 
ses.AddChildNode("val", "my_value_2"); 
ses.AddChildNode("msg", "my_message_from_msg_files"); 

void BuildSelect ( InputIterator first , InputIterator last , const string &name )

Данная функция/метод является inline функцией

Сформировать список значений на основе значений итераторов

Метод выполняет все необходимые шаги для формирования нового списка значений

Аргументы:
[in] - first Первое значение-итератор
[in] - last Последнее значение-итератор
[in] - name Имя списка
Уст.Устаревший метод. Рекомендуется использовать ses.AddChildNode("msg", "aa");
See also: NewSelect

void BuildTree ( const string &name , const string &path , size_t depth = 0 )

Сформировать дерево каталогов

Аргументы:
[in] - name Имя дерева
[in] - path Путь до корневого каталога
[in] - depth Глубина дерева (максимальная длина ветвей дерева)

XmlNode NewElem ()

Сформировать новую строку в таблице

Для того чтобы задать набор значений для строки таблицы необходимо выполнить следующие действия:

  • вызвать метод NewElem
  • вызовами методам AddChildNode сформировать набор значений. При этом в качестве параметра name для AddChildNode следует передавать имя колонки в таблицы, а в качестве value - ее значение

Warning: Метод проверяет чтобы чтобы количество добавленный строк не превышало максимально допустимое. В противном случае генерируется исключение типа RecordLimitExceeded

ses.NewElem(); //первая строка в таблице 
ses.AddChildNode("col1", "my_value_1"); 
ses.AddChildNode("col2", "my_value_2"); 
 
ses.NewElem(); //вторая строка в таблице 
ses.AddChildNode("col1", "my_value_3"); 
ses.AddChildNode("col2", "my_value_4"); 

See also: NewSelect
See also: RecordLimitExceeded

void NewIndicator ( const string &name , long long val , long long lim )

Добавить в строку таблицы новый индикатор

Данный метод служит для формирования значений особого типа колонок - индикаторов.

Аргументы:
[in] - name Имя колонки
[in] - val Как правило этот параметр содержит количество использованных ресурсов
[in] - lim Этот параметр определят предельно допустимое значение параметра val

Field NewField ( const string &type , const string &name , const string &msg , const string &hint )

Добавить поле на форму

Аргументы:
[in] - type Тип поля
[in] - name Имя поля
[in] - msg Локализованное имя поля
[in] - hint Подсказка, которая будет появляться при наведении курсора на поле
Warning: Настоятельно рекомендуется описывать объекты графического интерфейса в XML файлах. Если необходимо скрыть часть полей в определенных случаях, то лучше создать обработчик функции и удалить в них не нужные поля. Также, для сокрытия полей, можно использовать if/else XML узлы в XML файлах. Побробнее см. документацию по XML.
See also: Field

Page NewPage ( const string &name , const string &msg )

Добавить новую вкладку на форму

Аргументы:
[in] - name Имя вкладки
[in] - msg Локализованное имя вкладки

Добавить уведомление в списке

Аргументы:
[in] - msgid Идентификатор сообщения, которое будет отображено в качестве текста уведомления
See also: Level

void SendFile ( const string &filename , const string &data )

Отправить файл в качестве ответа панели

Позволяет отправить данные, которые будет предложено скачать и сохранить как файл

Аргументы:
[in] - filename Имя файла. Под этим именем пользователю будет предложено сохранить скаченный файл
[in] - data Содержимое файла
[in] - autoremove Удалить файл после передачи
[in] - src_filename Имя файла, содержимое которого необходимо передать
Warning: SendFile - устарело, используйте SendFromBuffer

virtual string Param ( const string &param )

Вернуть значение параметра

Аргументы:
[in] - param Имя параметра
Returned: Возвращает строку, содержащую значение параметра с заданным именем или пустую строку если параметр с таким именем не существует

virtual void SetParam ( const string &param , const string &value )

Установить значение параметра

Устанавливает значение параметра. Если параметра с заданным именем не существует, то он будет создан. Данный метод нужен для того, чтобы заменить значение параметра с целью использования нового значения последующими обработчиками

Аргументы:
[in] - param Имя параметра
[in] - value Значение параметра

virtual void DelParam ( const string &param )

Удалить параметр

После вызова DelParam имя параметра не будет возвращаться методом GetParams, и метод Has будет возвращать false.

virtual void GetParams ( StringVector &res )

Получить список имен параметров

virtual bool Has ( const string &param )

Проверить наличие параметра

Аргументы:
[in] - param Имя параметра
Returned: Возвращает true, если параметр с заданным именем существует, в противном случае - false

virtual bool Checked ( const string &param )

Проверить "отмечено" поле или нет

Используется для полей, имеющих значения "on"/"off" (логические поля)

Аргументы:
[in] - param Имя параметра
Returned: Возвращает true, если параметр с заданным именем имеет значение "on", в противном случае - false

virtual bool IsSubmitted () const

Проверить была ли нажата кнопка "ОК".

Фактически проверяет, что значение параметра "sok" равно "ok" и "sback" не равен "ok"

Returned: Возвращает true, если кнопка была нажата, в противном случае - false

virtual bool IsGet () const

Проверить был ли это запрос на чтение данных

Фактически проверяет !IsSubmitted() && !IsSetValues()

Returned: Возвращает true, если это запрос на чтение, в противном случае - false

virtual bool IsSetValues () const

Проверить был ли это запрос дополнительных данных

Возникает, когда на форме изменяется значение поля ввода с атрибутом setvalues="yes". Фактически проверяет наличие параметра с именем SETVALUES_FIELD

Returned: Возвращает true, если это запрос дополнительных данных, в противном случае - false

string IParam ( const string &name )

Работа с внутренними параметрами

Набор функций представляет собой обертку на аналогичными функциями без приставки 'I' При вызове любой из них к имени параметра добавляется INTERNAL_PREFIX. Параметры с таким префиксом могут быть установлены только внутренним вызовом и не доступны через API.

void Ok ( int flags = okNone , const string &param = "" )

Сигнализировать графическому интерфейсу об успешности операции

Наличие узла ok, добавляемого этим методом, сигнализирует о том, что действие завершено успешно. Кроме этого данный метод позволяет передать дополнительные инструкции для web интерфейса: перезагрузить рабочий стол или открыть URL.

Warning: Данный метод следует использовать только при работе с формами
See also: ResultType

virtual int GetRecordLimit ()

Получить лимит количества записей в списке

XmlNode SetCookie ( const string &name , const string &value )

Выставить cookie.

Аргументы:
name имя куки
value значение куки
Returned: Нода в xml с описание куки. Можно добавить атрибут expires, чтобы задать дату истечения. Указывается в формате mgr_date::DateTime

Данные

Xml xml

Результирующий XML документ

XmlNode lastNode

Последний добавленный XML узел. Только метод AddChildNode не меняет значения этого свойства

XmlNode tagNode

Последний добавленный XML узел