загрузка json данных из http request
загрузка json данных из http request
Добрый день.
Можно ли подгрузить json данные в dataset, используя url и параметры напрямую,
Сейчас я делаю сначала аякс запрос, получаю json и потом только передаю в dataset. А хотелось бы какой то механизм, которому достаточно лишь сообщить откуда и с какими параметрами получать данные.
Можно ли подгрузить json данные в dataset, используя url и параметры напрямую,
Сейчас я делаю сначала аякс запрос, получаю json и потом только передаю в dataset. А хотелось бы какой то механизм, которому достаточно лишь сообщить откуда и с какими параметрами получать данные.
Re: загрузка json данных из http request
Здравствуйте,
Вы можете использовать указанный ниже код для загрузки данных по URL, так же в строке адреса можно использовать GET параметры.
POST параметры и соответствующий запрос не предусмотрены, здесь необходима предварительная загрузка данных отдельным AJAX методом.
Спасибо.
(извините за предыдущий не совсем верный ответ)
Вы можете использовать указанный ниже код для загрузки данных по URL, так же в строке адреса можно использовать GET параметры.
Код: Выделить всё
var dataSet = new Stimulsoft.System.Data.DataSet();
dataSet.readJsonFile("http://localhost:54200/Data/Demo.json");
report.regData("Demo", null, dataSet);
Спасибо.
(извините за предыдущий не совсем верный ответ)
Re: загрузка json данных из http request
Добрый день. Спасибо за ответ. Т.е. параметры необходимо задавать следующим образом? А нет ли более элегантного метода?
И еще вопрос. вышеуказанным способом удалось считать json.
Но, изначально первый вопрос появился из за того, что загрузка json занимается достаточно долгое время, а вьюер не показывает маску загрузки. Была мысль, что если запрашивать непосредственно в dataset, маска появится перед загрузкой. Однако не появляется. Подскажите пожалуйста, как сделать чтобы маска загрузки появлялась раньше?
Код: Выделить всё
dataSet.readJsonFile("/reports/well_reports/"+"?id="+this.id+"&start_dt="
+this.lookupReference('fromDate').getValue().toISOString().substr(0,19)
+"&end_dt="+this.lookupReference('toDate').getValue().toISOString().substr(0,19)
+"&report_type="+this.lookupReference('reports').getValue());
Но, изначально первый вопрос появился из за того, что загрузка json занимается достаточно долгое время, а вьюер не показывает маску загрузки. Была мысль, что если запрашивать непосредственно в dataset, маска появится перед загрузкой. Однако не появляется. Подскажите пожалуйста, как сделать чтобы маска загрузки появлялась раньше?
Re: загрузка json данных из http request
Здравствуйте,
В данный момент, указанная функция может работать только с GET параметрами запроса.
Для показа, скрытия загрузки можно использовать следующий код:
viewer.jsObject.controls.processImage.show();
viewer.jsObject.controls.processImage.hide();
Спасибо.
В данный момент, указанная функция может работать только с GET параметрами запроса.
Для показа, скрытия загрузки можно использовать следующий код:
viewer.jsObject.controls.processImage.show();
viewer.jsObject.controls.processImage.hide();
Спасибо.
Re: загрузка json данных из http request
Пишу так:
но, viewer.jsObject = undefined
Код: Выделить всё
var viewer = new Stimulsoft.Viewer.StiViewer(options, "StiViewer", false);
viewer.jsObject.controls.processImage.show();
Re: загрузка json данных из http request
Здравствуйте,
viewer.jsObject инитиализируется только после viewer.renderHtml("viewerCont");
Спасибо.
viewer.jsObject инитиализируется только после viewer.renderHtml("viewerCont");
Код: Выделить всё
var viewer = new Stimulsoft.Viewer.StiViewer(options, "StiViewer", false);
viewer.renderHtml("viewerCont");
viewer.jsObject.controls.processImage.show();
Re: загрузка json данных из http request
К сожалению проблема не решается таким образом. Т.е. пока происходит загрузка емкого отчета, вьюер не появляется, т.е. просто пустое место. И после того как данные загрузились через несколько секунд, только потом появляется и вьюер и маска загрузки. Что я делаю не так? Хотелось бы чтобы сначала отрисовался вьюер, потом только пошел запрос отчета и параллельно появилась маска загрузки.
Код: Выделить всё
let options = this.createViewerOptions();
// Create the report viewer with default options
this.viewer = new Stimulsoft.Viewer.StiViewer(options, "StiViewer", false);
this.viewer.renderHtml("viewerContent");
this.viewer.jsObject.controls.processImage.show();
// Create a new report instance
var report = new Stimulsoft.Report.StiReport();
var dataSet = new Stimulsoft.System.Data.DataSet();
dataSet.readJsonFile("/reports/well_reports/"+"?params);
let type = this.lookupReference('reports').getSelection().data.type;
report.loadFile("static/js/map/components/reportTemplates/"+type+".mrt");
report.dictionary.databases.clear();
report.regData("tmpl", "tmpl", dataSet);
// Assign report to the viewer, the report will be built automatically after rendering the viewer
this.viewer.report = report;
this.viewer.jsObject.controls.processImage.hide();
Re: загрузка json данных из http request
Здравствуйте.
Возможно мы немного не с той стороны подошли к вашей проблеме.
В нашем продукте можно в отчёт добавить переменную и потом использовать их в URL подключения к JSON данным.
Для этого не надо запрашивать JSON данные вашим кодом. Они будут запрошены перед построением отчёта нашим движком.
Значение переменной можно запросить у пользователя или задать её из кода.
В самом URL переменную можно использовать следующим образом:
Напишите какой вариант вам больше подходит, и, если вам ещё нужна наша помощь, то в каком направлении.
Спасибо.
Возможно мы немного не с той стороны подошли к вашей проблеме.
В нашем продукте можно в отчёт добавить переменную и потом использовать их в URL подключения к JSON данным.
Для этого не надо запрашивать JSON данные вашим кодом. Они будут запрошены перед построением отчёта нашим движком.
Значение переменной можно запросить у пользователя или задать её из кода.
В самом URL переменную можно использовать следующим образом:
Код: Выделить всё
http://example.com/json/{VarParam1}
Спасибо.
Re: загрузка json данных из http request
Здравствуйте. Вот тут мы и возвращаемся к самому началу. Все так и было. Я изначально забираю откуда надо аяксом данные, и потом подгружаю в отчет. Вся проблема в том, что загрузка данных занимает ощутимое время, и все это время крутится наша маска, а потом в момент подрузки в report, включается ваша маска, что выглядит некрасиво. Нужно либо нашу маску отключить, но при этом чтобы была возможность включить вашу маску еще до того, как данные подгружены в репорт, либо отключить вашу совсем. Даже второй вариант предпочтительнее, чтобы во всей системе была единая маска.
как то не очень помогает.
Код: Выделить всё
this.viewer.jsObject.controls.processImage.hide();