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

Обсуждение Stimulsoft Reports.PHP
svs
Сообщения: 10
Зарегистрирован: 10 янв 2020, 15:21

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

Сообщение 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 ()

Как быть?
Aleksey
Сообщения: 2761
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

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

Спасибо.
Вложения
ListInQueryID.mrt
(6.76 КБ) 263 скачивания
svs
Сообщения: 10
Зарегистрирован: 10 янв 2020, 15:21

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

Сообщение svs »

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

Почему!?


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

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

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

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

Сообщение HighAley »

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

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

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

Спасибо.
svs
Сообщения: 10
Зарегистрирован: 10 янв 2020, 15:21

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

Сообщение svs »

Во вложении - пример отчёта.
Здесь можно посмотреть видео с демонстрацией проблемы:

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


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

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

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

Спасибо.
Вложения
Пример отчёта.rar
(8.38 КБ) 236 скачиваний
Aleksey
Сообщения: 2761
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

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

Спасибо.
svs
Сообщения: 10
Зарегистрирован: 10 янв 2020, 15:21

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

Сообщение svs »

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

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



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

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

Спасибо.
Вложения
Ошибка передачи параметра в отчёт 01.docx
(194.77 КБ) 227 скачиваний
Aleksey
Сообщения: 2761
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

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

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

Спасибо.
svs
Сообщения: 10
Зарегистрирован: 10 янв 2020, 15:21

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

Сообщение svs »

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

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

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

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

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

Спасибо.
Aleksey
Сообщения: 2761
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

Да, конечно.
Ответить