SimpleRecord Client-Side
Этот класс содержит методы для работы с базой данных в клиентских скриптах. Например, автоматическое заполнение, отображение или обязательность элементов формы, в зависимости от значений в ссылочных полях.
Клиентский класс SimpleRecord позволяет взаимодействовать как с записями таблицы в целом, так и полями конкретных записей.
Обработка запросов этого класса происходит на стороне сервера. Это значит, что для получения данных записи будет выполняться запрос с клиентской части на сервер.
Для некоторых задач функциональных возможностей клиентского SimpleRecord может быть недостаточно. В таких случаях, воспользуйтесь классом SimpleAjax или используйте Table API.
addQuery(field, operator, value)
Используйте метод, чтобы добавить условие (field, operator и value) для выбора записей из базы данных.
Также данный метод позволяет добавить условие для получения записей, в котором property равно value (или находится в списке значений).
При добавлении условия в этом методе можно использовать любой оператор из списка операторы условий, указанный в нижнем или верхнем регистре. Используйте системное название оператора в скрипте.
Следующие операторы используйте без значения:
- ISEMPTY
- ISNOTEMPTY
- ANYTHING
- VALCHANGES
- IN (также можно использовать со значением)
- NOT IN (также можно использовать со значением)
- NOTHING
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
field | String | Да | Нет |
operator | String | Нет | Нет |
value | Integer/String/Boolean/Array | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.addQuery('subject', 'startswith', 'Электр');
record.query(() => {
while (record.next()) {
console.log(record.number); // TSK0000128
}
});
deleteRecord(responseFunction)
Используйте этот метод для удаления текущей записи.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
responseFunction | Function | Нет | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const taskRecord = new SimpleRecord('task');
taskRecord.get('123456789012345678', () => {
taskRecord.deleteRecord(callback);
});
function callback(response) {
const answer = response.responseXML.documentElement.getAttribute('answer');
if (answer == '1') {
console.log('Запись удалена');
} else {
console.log(answer);
}
}
get(recordId, callback)
Используйте данный метод, чтобы загрузить объект из базы данных, основываясь на значении его ID. Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
recordId | String | Да | Нет |
callback | Function | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('user');
record.get(s_user.userID, () => {
console.log(record.email); // admin@admin.ru
});
getRows()
Используйте этот метод, чтобы получить массив записей, содержащих пары колонка-значение.
Возвращаемое значение:
Тип | Описание |
---|---|
Array of Strings | Метод возвращает массив записей, содержащих пары колонка-значение |
Пример:
const record = new SimpleRecord('sys_db_table');
record.addQuery('is_vcs_enabled', 'IS', true);
record.query();
record.getRows();
getTableName()
Используйте данный метод, чтобы вернуть системное имя текущей таблицы.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает системное название таблицы. |
Пример:
const record = new SimpleRecord('user');
record.get(s_user.userID, () => {
console.log(record.getTableName()); // user
});
hasNext()
Используйте этот метод, чтобы определить, существуют ли еще записи в этой выборке.
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если есть еще записи. Если больше записей нет, метод возвращает false. |
Пример:
const record = new SimpleRecord('user');
record.get(s_user.userID, () => {
console.log(record.hasNext()); // true
});
insert(responseFunction)
Используйте метод, чтобы добавить новую запись.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
responseFunction | Function | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const newRecord = new SimpleRecord('task');
newRecord.subject = 'Создано клиентским API';
newRecord.insert((response) => {
const answer = response.responseXML.documentElement.getAttribute('answer');
console.log(answer);
})
next()
Используйте этот метод для перехода к следующей записи.
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает false, если в запросе больше нет записей. |
Пример:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.addQuery('subject', 'startswith', '[SWD-10]');
record.query(() => {
while (record.next()) {
console.log(record.number); // TSK0000128
}
});
orderBy(column)
Используйте данный метод, чтобы указать колонку для упорядочивания. Вызывайте метод несколько раз для того, чтобы упорядочить записи по нескольким колонкам.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
column | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.orderBy('number');
record.query(() => {
while (record.next()) {
console.log(record.number); // >TSK0000128 >TSK0000129 >TSK0000130 ...
}
});
query(responseFunction, property, value, ...)
Используйте метод, чтобы выполнить запрос, принимая 0 и более параметров в любом порядке. Он использует любую пару литералов как пару запроса (поле:значение) и любую функцию как функцию ответа.
Не создавайте синхронный вызов запросов. Вызов становится синхронным, если запрос выполняется без функции ответа. В этом случае состояние объекта не поменяется, пока не появится ответ на запрос.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
responseFunction | Function | Нет | Нет |
property | String | Нет | Нет |
value | Any | Нет | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('user');
record.addQuery('sys_id', s_user.userID);
record.query(() => {
if (record.next()) {
console.log(record.email); // admin@admin.ru
}
});
setLimit(maxQuery)
Используйте этот метод, чтобы установить максимальное количество записей в запросе.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
maxQuery | Integer | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.orderBy('sys_created_at'); // the very first record
record.setLimit(1);
record.query(() => {
while (record.next()) {
console.log(record.number); // TSK0000002
//...
}
});
setValue(fieldName, value)
Используйте этот метод, чтобы задать значение поля.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
fieldName | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const record = new SimpleRecord('task');
record.setValue('subject', 'Другой тип назначения');
record.insert((response) => {
const answer = response.responseXML.documentElement.getAttribute('answer');
console.log(answer);
})