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

Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 10 янв 2020, 15:38
svs
Версия репортера - Version 2020.1.1 from 18 Декабрь 2019, PHP, JS

С помощью предложенной вами на странице
https://www.stimulsoft.com/ru/samples/p ... -sql-query
конструкции передаю в отчёт переменную, которую хочу использовать в запросах в НЕСКОЛЬКИХ "Data Source".
Так вот, запрос из первого "Data Source" получает правильное значение переменной, а вот в запросах второго и последующих "Data Source" значение переменной ОЧИЩАЕТСЯ.

Например, запрос из 2-го "Data Source" имеет вид:

select * from produces where produce_id in ({var1})

При этом var1 = 1,2,3

При построении отчёта появляется ошибка исполнения запроса:

select * from produces where produce_id in ()

Как быть?

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 13 янв 2020, 12:07
Aleksey
Здравствуйте,

Если переменная var1 имеет тип List, то необходимо использовать метод ToQueryString() для использования ее в запросе.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 13 янв 2020, 14:30
svs
Вы не ответили на мой вопрос.
Дело не в том, что переменная имеет тип List.
В моём случае переменная имеет тип "String", и в первом "Data Source" значение переменной успешно передаётся в соответствующий sql-запрос.
А вот уже во втором и последующих Data Source" значение переменной ТЕРЯЕТСЯ (обнуляется, пропадает,...)

Почему!?


Aleksey писал(а): 13 янв 2020, 12:07 Здравствуйте,

Если переменная var1 имеет тип List, то необходимо использовать метод ToQueryString() для использования ее в запросе.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 13 янв 2020, 21:45
HighAley
Здравствуйте.

Похоже запрос выполняется до инициализации переменной.
Это может происходить, если данные используются в переменной, запрашиваемой у пользователя.

Возможно проблема в чём-то ещё.
Точно ответить сможем. если вы пришлёте пример, который позволит воспроизвести проблему.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 14 янв 2020, 16:23
svs
Во вложении - пример отчёта.
Здесь можно посмотреть видео с демонстрацией проблемы:

https://www.youtube.com/watch?v=u5wf0Sx ... e=youtu.be


HighAley писал(а): 13 янв 2020, 21:45 Здравствуйте.

Похоже запрос выполняется до инициализации переменной.
Это может происходить, если данные используются в переменной, запрашиваемой у пользователя.

Возможно проблема в чём-то ещё.
Точно ответить сможем. если вы пришлёте пример, который позволит воспроизвести проблему.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 16 янв 2020, 22:48
Aleksey
Здравствуйте,

Параметр "p1" должен быть добавлен как переменная в словаре отчета.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 17 янв 2020, 10:18
svs
Попробовал сделать по-вашему: помимо того, что завёл переменную "p1" в "handler01.php", добавил параметр "p1" в словаре отчёта (смотри вложение)

В этом случае ваш репортер не передаёт значение "1544", присвоенное переменной "p1" в файле "handler01.php" с помощью оператора $event->parameters["p1"] = 1544; , в параметр "p1" из словаря отчёта,
а пытается взять это значение из поля "Value" раздела "Init by".



Aleksey писал(а): 16 янв 2020, 22:48 Здравствуйте,

Параметр "p1" должен быть добавлен как переменная в словаре отчета.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 21 янв 2020, 10:36
Aleksey
Здравствуйте,

Нашли некоторые проблемы с параметрами в последних версиях. Необходимо время для анализа.

На текущий момент, попробуйте использовать разные параметры для каждого источника данных.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 21 янв 2020, 11:16
svs
Здравствуйте.

После того, как устраните свою ошибку, сообщите пожалуйста об этом.

Aleksey писал(а): 21 янв 2020, 10:36 Здравствуйте,

Нашли некоторые проблемы с параметрами в последних версиях. Необходимо время для анализа.

На текущий момент, попробуйте использовать разные параметры для каждого источника данных.

Спасибо.

Re: Передача параметра в отчёт - переменную можно использовать только один раз

Добавлено: 22 янв 2020, 10:30
Aleksey
Здравствуйте,

Да, конечно.