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

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

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

Сообщение svs » 10 янв 2020, 12:38

Версия репортера - 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
Сообщения: 2128
Зарегистрирован: 22 апр 2010, 02:57

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

Сообщение Aleksey » 13 янв 2020, 09:07

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

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

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

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

Сообщение svs » 13 янв 2020, 11:30

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

Почему!?


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

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

Спасибо.
HighAley
Сообщения: 1975
Зарегистрирован: 08 июн 2011, 07:36

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

Сообщение HighAley » 13 янв 2020, 18:45

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

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

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

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

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

Сообщение svs » 14 янв 2020, 13:23

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

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


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

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

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

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

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

Сообщение Aleksey » 16 янв 2020, 19:48

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

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

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

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

Сообщение svs » 17 янв 2020, 07:18

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

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



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

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

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

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

Сообщение Aleksey » 21 янв 2020, 07:36

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

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

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

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

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

Сообщение svs » 21 янв 2020, 08:16

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

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

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

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

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

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

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

Сообщение Aleksey » 22 янв 2020, 07:30

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

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