Я создал отчет (назовите его Первичный) и детализацию (назовите его Вторичный) в построителе отчетов. Каждый из них имеет оператор SQL.
При выполнении в SQL Server Management Studio операторы SQL работают должным образом.
Однако при загрузке Primary.rdl и Secondary.rdl в диспетчер отчетов (веб-интерфейс в Inte rnet Explorer) они не генерируют правильные данные при запуске.
Из-за этого я думаю, что проблема не в SQL заявлениях. Я думаю, что это как-то связано с диспетчером отчетов.
Основной оператор SQL:
Этот оператор собирает кучу пользовательских данных из нескольких таблиц и проверяет, приемлемы ли их пароли. Он заполняет список пользователей, чьи пароли не прошли проверку.
This is pseudocode so pardon inconsistencies in var names
with details as (
select u.userid
, u.password
, u.firstname
, u.lastname
, u.userdescription
, u.status
, u.lastlog
, dbo.IsPassswordAcceptable(u.userid, u.password) as passStatus
from masterListOfUsers as u
)
select d.*, p.datavalue
from details as d
left join passwordDetailList as p
on p.keyvalue = d.passStatus
and p.datatype = 'ERRORMESSAGE'
where d.passStatus <> 1
and d.passStatus <> -5
and d.status = (@USERSTATUS) -- only user ids in use
;
Вторичный оператор SQL:
Этот оператор является детализацией , Человек, управляющий отчетом, может щелкнуть по идентификатору пользователя в приведенном выше списке. Детализация выполняется при заполнении контактной информации для этого идентификатора пользователя.
This is pseudocode so pardon inconsistencies in var names
SELECT
m.userid
, c.address
, c.city
, c.state
, c.zip
, c.cphone
FROM userMasterList AS m
left join userDetailList AS d
ON d.userid = m.userid
left join anotherList as e on d.fullkey = e.fullkey
left join yetAnotherList AS c
WHERE m.userid = @USERID;
Ожидаемый результат:
Когда пользователь запускает Primary, список пользователей с плохими паролями. Можно щелкнуть по идентификатору пользователя каждого пользователя, после чего вторичный сервер заполняет информацию о местоположении / контакте, связанную с этим идентификатором пользователя.
Фактический результат:
При щелчке по идентификатору пользователя Вторичный не может заполнить любое местоположение / контактную информацию, связанную с идентификатором пользователя. Это происходит только иногда . В других случаях он работает нормально.
Я составил список этих «пустых» идентификаторов пользователя и запустил оператор Secondary SQL в Management Studio, и он заполняет все ожидаемое местоположение / контактную информацию.
Решения, которые я пробовал:
Я в полном замешательстве. Я трижды проверил операторы SQL и протестировал их в Management Studio. Я заново загрузил оба .rdl файла в диспетчер отчетов. Я переназначил вторичное устройство на первичное с помощью параметра «Создать связанный отчет» в диспетчере отчетов и ТАКЖЕ в параметре «Построитель отчетов»> Go В отчет.
Что еще можно сделать?