Подотчет не отображается, когда основной параметр отчета является частью оператора LIKE - PullRequest
0 голосов
/ 12 июня 2019

У меня есть основной отчет, в котором клиент вводит либо полный серийный номер, либо последние 5 символов серийного номера.Отчет возвращает несколько частей информации о продукте, а также запускает подотчет, который собирает дополнительную информацию.

Основной запрос набора данных отчета выглядит примерно так ...

select SerialNumber, ID, Property1
from Products
where (SerialNumber = @prmSerialNumber) OR (SerialNumber LKE '%' + @prmSerialNumber)

КогдаЯ ввожу полный серийный номер «123456789», возвращается следующий набор результатов:

SerialNumber ------------ ID ------------- Property1

123456789 ----------- e45f6789 --------- Зеленый

При вводе последних 5 символов "56789" точно такой же набор результатоввозвращаетсяИтак, я знаю, что основной набор данных возвращает соответствующие результаты, и только одна строка.

Запрос набора данных подотчета выглядит примерно так ...

select ID, Property2, Property3
from PropertyTable1
where ID = @prmID

Когда я вставляю подотчет вВ главном отчете на вкладке «Параметры подотчета» я связал параметр подотчета @prmID со столбцом идентификатора набора данных основного отчета (prmID = [ID])

При запуске основного отчета при вводеполный серийный номер «123456789» подотчет возвращает соответствующие данные.Когда я запускаю основной отчет, используя последние 5 символов серийного номера, подотчет не отображается вообще.

Я попытался запустить подотчет самостоятельно, сделав параметр видимым и введя идентификатор изнабор результатов основного отчета, и он работает нормально.

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

ОБНОВЛЕННЫЙ ПОДПИСЬQUERY

select p1.ID, p1.Property2, p1.Property3, p2.SerialNumber
from PropertyTable1 AS p INNER JOIN
     Products AS p2 ON p1.ID = p1.ID
where (p2.SerialNumber = @prmSerialNumber) OR (p2.SerialNumber LKE '%' + @prmSerialNumber)

Когда я изменяю запрос на подотчет, как описано выше, а затем запускаю подотчет самостоятельно, я могу использовать либо полный серийный номер, либо только последние 5 символов в качестве значения параметра иОтчет возвращает соответствующие данные в любом случае.Когда я добавляю его в свой основной отчет и обновляю передаваемый параметр как @prmSerialNumber = [SerialNumber] (serialnumber из основного набора данных), он работает, пока я ввожу полный серийный номер.Как только я ввожу только последние 5 символов, подотчет не отображается.

Я также попытался обновить передаваемый параметр до @prmSerialNumber = [@prmSerialNumber] (параметр, введенный пользователем восновной отчет).Те же результаты.Когда введен полный серийный номер, он работает нормально.Когда введены последние 5 символов, вложенный отчет не отображается, даже если он работает нормально, когда я запускаю вложенный отчет самостоятельно.

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

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