Remote API > Экспорт данных >
Загрузка данных |
![]() ![]() ![]() |
Эта функция используется для загрузки экспортируемых данных
Параметры
com=export/getresult
par=
{
"val": <text> /* Идентификатор запроса, возвращаемый функцией "export/data" в поле " data". */
}
Возвращаемый результат
{
"com":"export/getresult",
"res":"OK"
"mes":"{\"val\": \"62ef026b-7b2d-455e-a684-7ba55b7d9770\" }"
"data":"{\"data\":[
{\"data\":[\"20.02.2021\",\"Клиент_91\",\"Москва, ул. Дмитрия Ульянова, д.10\/1, корп.1\",null,null],\"children\":[],\"tableName\":\"Detail\"},
{\"data\":[\"20.02.2021\",\"Клиент_160\",\"Москва, ул. Демьяна Бедного 24,2\",null,null],\"children\":[],\"tableName\":\"Detail\"},
{\"data\":[\"20.02.2021\",\"Клиент_31\",\"Москва, 2015, 3-ая Гражданская ул., д.17\",null,null],\"children\":[],\"tableName\":\"Detail\"},
{\"data\":[\"20.02.2021\",\"Клиент_166\",\"Москва, Маршала Бирюзова ул., д.20\",null,null],\"children\":[],\"tableName\":\"Detail\"},
{\"data\":[\"20.02.2021\",\"Клиент_57\",\"Москва, ул.2-я Бухвостова, д.5, стр.1\",null,null],\"children\":[],\"tableName\":\"Detail\"},
{\"data\":[\"20.02.2021\",\"Клиент_92\",\"Москва, Симферопольский бул., д.37, стр.2\",null,null],\"children\":[],\"tableName\":\"Detail\"},
…
],
/* секция описания полей */
\"tables\":[{\"level\":1,\"name\":\"Detail\",
\"fields\":[
{\"name\":\"tableCell6\",\"type\":\"String\",\"sourceType\":\"DateTime\"},
{\"name\":\"tableCell7\",\"type\":\"String\",\"sourceType\":\"String\"},
{\"name\":\"tableCell8\",\"type\":\"String\",\"sourceType\":\"String\"},
{\"name\":\"tableCell9\",\"type\":\"DateTime\",\"sourceType\":\"DateTime\"},
{\"name\
":\"tableCell10\",\"type\":\"DateTime\",\"sourceType\":\"DateTime\"}]}]}",
}
Данные и их структура возвращаются в виде сериализованного класса JMain.
Класс JMain – возвращаемый результат
public class JMain
{
public JTable[] tables;
public JRow[] data;
}
Поля класса:
•tables – массив описаний таблиц данных;
•data – массив строк данных верхнего уровня.
Класс JTable – описание таблицы данных
public class JTable
{
public int level;
public string name;
public JField[] fields;
}
Поля класса:
•level – уровень таблицы (1 – таблица верхнего уровня, 2 – таблица 2-го сверху уровня и т.д.);
•name – название таблицы, соответствует названию ленты данных (Band) или заголовка группы (Group header) шаблона отчёта;
•fields – массив описаний полей таблицы.
Класс JField – описание поля таблицы
public class JField
{
public string name;
public string type;
public string sourceType;
}
Поля класса:
•name – название поля, соответствует названию элемента, используемого в шаблоне отчёта для отображения данных;
•type – тип поля, соответствует типу в C#;
•sourceType – тип исходных данных для поля, соответствует типу в C#.
Поле sourceType может быть пустым, если элементу шаблона не сопоставлен какое-либо поле исходных данных, а содержимое элемента формируется сценарием в шаблоне отчёта. Кроме того, значение поля type может отличаться от непустого значения поля sourceType. Последнее возможно при формировании содержимого элемента данных сценарием в шаблоне отчёта, а также при невозможности сериализовать данные исходного типа (например, данные типа TimeSpan).
Класс JRow – строка данных
public class JRow
{
public object[] data;
public JRow[] children;
public string tableName;
}
Поля класса:
•data – массив значений; значения имеют фактический тип, соответствующий полю type описания полей данной таблицы;
•children – массив строк данных нижнего уровня; если массив пустой, это означает, что на нижнем уровне данных нет;
•tableName – название таблицы, к которой относится данная строка данных.
Поле tableName может использоваться для определения типов данных в строке: для этого в массиве описаний таблиц данных требуется найти таблицу с указанным именем.
Работа с результатом
Полученный результат может быть непосредственно использован для десериализации и формирования объекта типа JMain.
Результат имеет иерархическую (древовидную) структуру: каждая строка данных может иметь одну или более подчинённых строк (строк нижнего уровня).
Вот пример отчета, который использовался для экспорта