Загрузка данных из JSON без переопределения структуры

Обсуждение Stimulsoft Reports.WEB
Ответить
Klogo
Сообщения: 59
Зарегистрирован: 28 дек 2017, 16:27

Загрузка данных из JSON без переопределения структуры

Сообщение Klogo »

Добрый день.
Необходимо загружать данные из JSON в существующий DataSource, не изменяя структуры таблицы

Код: Выделить всё

DataSet dataSet = Stimulsoft.Base.StiJsonToDataSetConverter.GetDataSetFromFile("d:\\Demo.json");
report.RegData("JSON", dataSet);
Такой код вызывает "переопределение" структуры таблицы (загружает структуру из JSON)
Возможно ли загрузить данные без изменения таблицы?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Загрузка данных из JSON без переопределения структуры

Сообщение HighAley »

Здравствуйте.

Мы переработали этот метод. Используйте, пожалуйста, Stimulsoft.Base.StiJsonToDataSetConverterV2.GetDataSetFromFile.

С наступающими Рождеством и Новым Годом.
Спасибо.
Klogo
Сообщения: 59
Зарегистрирован: 28 дек 2017, 16:27

Re: Загрузка данных из JSON без переопределения структуры

Сообщение Klogo »

HighAley писал(а): Мы переработали этот метод. Используйте, пожалуйста, Stimulsoft.Base.StiJsonToDataSetConverterV2.GetDataSetFromFile.
При использовании этого метода, добавляются новые таблицы. Такой же результат был и со старым методом.
В рамке выделен результат работы метода Stimulsoft.Base.StiJsonToDataSetConverterV2.GetDataSet
В рамке выделен результат работы метода Stimulsoft.Base.StiJsonToDataSetConverterV2.GetDataSet
Screenshot_1.png (9.71 КБ) 4399 просмотров
Изначально я удалял старые таблицы и с помощью метода, получал таблицы со структурой из json. Но в json структура таблиц может быть отлична от той, что была в шаблоне. И к тому же типы столбцов в таких таблицах могут также оказаться другими.

Поэтому я ищу способ загрузить только данные в существующие таблицы. Возможно ли это?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Загрузка данных из JSON без переопределения структуры

Сообщение HighAley »

Здравствуйте.

Для этого вам надо удалить имеющиеся источника данных и зарегестрировать новые.
Код должен выглядеть примерно так:

Код: Выделить всё

DataSet dataSet = Stimulsoft.Base.StiJsonToDataSetConverter.GetDataSetFromFile("d:\\Demo.json");
report.Dictionary.DataSources.Clear();
report.RegData("JSON", dataSet);
report.Dictionary.Synchronize();
Мы не видем реальной ситуации, возможно также надо будет очистить Databases.

Код: Выделить всё

report.Dictionary.Databases.Clear();
Спасибо.
Klogo
Сообщения: 59
Зарегистрирован: 28 дек 2017, 16:27

Re: Загрузка данных из JSON без переопределения структуры

Сообщение Klogo »

Если делать report.Dictionary.DataSources.Clear();
то это просто удалит все таблицы. DataSources. А нужно чтобы эти сорсы остались и в них появились данные из json.
Klogo
Сообщения: 59
Зарегистрирован: 28 дек 2017, 16:27

Re: Загрузка данных из JSON без переопределения структуры

Сообщение Klogo »

Как вариант, я попробовал загружать json в DataTable каждого DataSource, но пока ничего не получилось. Я не знаю можно ли вообще так сделать
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Загрузка данных из JSON без переопределения структуры

Сообщение HighAley »

Здравствуйте.

Если структура отлична от данных, и эти данные используются в отчёте, то будет ошибка при построении.
Структура источников данных восстановиться после вызова Synchronize().
Возможно вам просто надо изменить путь с JSON файлу?

Код: Выделить всё

(report.Dictionary.Databases[0] as Stimulsoft.Report.Dictionary.StiJsonDatabase).PathData = newPath;
Спасибо.
Ответить