Загрузка данных

Remote API  > Экспорт данных >

Загрузка данных

Previous pageReturn to chapter overviewNext page

Эта функция используется для загрузки экспортируемых данных

 

Параметры

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.

Результат имеет иерархическую (древовидную) структуру: каждая строка данных может иметь одну или более подчинённых строк (строк нижнего уровня).

Вот пример отчета, который использовался для экспорта

 

clip0003