Страница 1 из 1

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

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

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

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

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

Добавлено: 28 дек 2017, 23:06
HighAley
Здравствуйте.

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

С наступающими Рождеством и Новым Годом.
Спасибо.

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

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

Поэтому я ищу способ загрузить только данные в существующие таблицы. Возможно ли это?

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

Добавлено: 29 дек 2017, 16:16
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();
Спасибо.

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

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

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

Добавлено: 29 дек 2017, 16:28
Klogo
Как вариант, я попробовал загружать json в DataTable каждого DataSource, но пока ничего не получилось. Я не знаю можно ли вообще так сделать

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

Добавлено: 02 янв 2018, 16:01
HighAley
Здравствуйте.

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

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

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