Функция openCard()
Версии: 2.3.0+
Описание
openCard()
Открывает карточку записи раздела или справочника*. Функция может принимать различные наборы параметров
Вариант 1:
openCard(p_parent_type, p_source_name, p_rec_id[, p_parent_id, p_replace_window_id, p_card_params, p_ondestroy, p_detail_name, p_detail_column_value])
Параметры
p_parent_type — Тип источника описания карточки. Доступные значения:
grid,dict.p_source_name — Имя источника описания карточки (имя раздела или справочника).
p_rec_id — ID записи, карточку которой необходимо открыть, если передана пустая строка, то будет открыта карточка новой записи.
p_parent_id — id родительской таблицы записей, из которой открsnf карточка. После сохранения карточки, происходит перерисовка таблицы записей с id =
p_parent_id, при условии, что данная таблица записей существует и она отображает данные того же раздела, что и карточка. Еслив качестве параметра указать пустую строку, то параметру будет присвоено случайное значение.p_replace_window_id — Служебный параметр, использующийся для навигации по вкладкам карточки. Если значение отлично от
p_replace_window_id, то карточка нарисуется в существующем окне с id =p_replace_window_id.p_card_params* — Строка (предпочтительно в формате JSON), содержащая параметры, которые необходимо передать карточке. Данные параметры доступны в серверной логике карточке (
$params['card_params'])и в клиентсокй логике (поле_paramsформы карточки).p_ondestroy** — Функция, которая будет вызвана после закрытия карточки.
p_detail_name*** — Имя вкладки. Используется, если нужно открыть вкладку какого-либо раздела.
p_detail_column_value*** — Значение ID связующего поля вкладки. Используется, если задан параметр
p_detail_name.
Вариант 2:
openCard(p_params_object)*
Параметры
p_params_object.source_type — см.
p_parent_type. Значение по умолчанию:grid.p_params_object.source_name — см.
p_source_name.p_params_object.rec_id — см.
p_rec_id. Значение по умолчанию: пустая строка.p_params_object.parent_id — см.
p_parent_id. Значение по умолчанию:grid.p_params_object.replace_window_id — см.
p_replace_window_id. Значение по умолчанию:undefined.p_params_object.card_params — см.
p_card_params. Значение по умолчанию: пустая строка.p_params_object.ondestroy — см.
p_ondestroy. Значение по умолчанию: пусто.p_params_object.ondestroy — см.
p_detail_name. Значение по умолчанию: пусто.p_params_object.ondestroy — см.
p_detail_column_value. Значение по умолчанию: пусто.
Результат
Функция не возвращает результата
Примеры
1. Передача параметров старым способом
Раздел сообщения, кнопка "Ответить". При ее нажатии открывается карточка сообщения, которой в полеparent_id передан id текущего сообщения. При открытии карточки, из parent_id выделяется id переданной записи
function replyMessage(p_grid_id) { ... // открытие карточки, которой в качестве родителя данные в специальном формате openCard('grid', 'Message', '', '#'+rec_id+'#grid'); }
2. Передача параметров новым способом
Карточка письма. При нажатии на кнопку "Создать инцидент", открывается карточка инцидента, которой передаются параметры в JSON формате. В северной логике карточки инцидента проверяется, передан ли карточке параметр и в зависимости от результата производятся нужные действия// создание инцидента из письма function c_email_createIncident(p_this) { var form = $(get_window_id(p_this)).getElementsByTagName("form")[0]; var params = {mode: 'incident_from_email', emailid: form._id.value}; form._hash.value = 'close'; CloseCardWindow(p_this); openCard({ source_name: 'Incident', card_params: Object.toJSON(params) }); }
//******************************************************************** // Серверная логика карточки инцидента //******************************************************************** include_once GetPath().'/config/common/Lib/lib.php'; // Функция вызывается перед открытием карточки function incident_onprepare($params) { if ($params['card_params'] != '') { $card_params = json_decode($params['card_params'], true); if ($card_params['mode'] == 'incident_from_email') { ... } ... }
*Доступно, начиная с версии 3.0.06
**Доступно, начиная с версии 3.2.03
***Доступно, начиная с версии 3.3.01
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
-
