У меня есть основной отчет, в котором клиент вводит либо полный серийный номер, либо последние 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 символов, вложенный отчет не отображается, даже если он работает нормально, когда я запускаю вложенный отчет самостоятельно.
Не могу понять, почему мой вложенный отчет будет работать нормально при запускеон сам вводит значение параметра вручную, но как только я связываю его с основным отчетом, он работает только в том случае, если в качестве значения параметра основного отчета используется полный серийный номер.