2015-10-23 2 views
-1

У меня есть таблица, связанная с DataSet1.Возвращаемый текст, если результаты tablix пустые

DataSet1 использует следующий код TSQL

select ir.SourceRef as Account_Ref, 
     rab.BalanceFromDate, 
     rab.ClosingBalance Current_Balance, 
     ra.Account_ID as rserial, 
     ra.Current_Balance as Current_Balance 


from db1..RentAccountBalance rab 
left join db1..ImportReference ir on ir.EntityID = rab.AccountId and ir.EntityType='XXXX.XXX.X.XX' 
left join db2..RentAccounts ra on convert(varchar(50),ra.Account_ID) = ir.SourceRef 

where ir.SourceRef = '12857' 
order by rab.AccountBalanceId 

Как я знаю, что нет ir.SourceRef, что равно 12857, то результирующий набор будет пустым. Таким образом, мой tablix возвращается просто пустым. Есть ли способ, который, если результаты не возвращаются, что текст «Все учетные записи в порядке». вместо этого отображается отчет?

Надеюсь, что это ясно?

Благодаря

+0

Возможный дубликат [Как отобразить «Нет доступных данных». когда в отчете нет строк?] (http://stackoverflow.com/questions/10146944/how-do-i-display-no-data-available-when-there-are-no-rows-to -show-on-the-repo) – Oceans

ответ

0

Вы можете попробовать выражение как:

=IIF(IsNothing(Fields!FieldName.Value, "Accounts are OK", Fields!FieldName.Value)) 

Или, если вы хотите проверить, если нет данных на всех, вы можете попытаться бросить ошибку в TSQL в следующем:

--add this line to the end of query: 
IF @@ROWCOUNT = 0 RAISERROR('Accounts are OK', 16, 1) 
+0

Привет, Спасибо за ответ, но где бы я разместил выражение в SSRS? – ikilledbill

0

Если вы используете хранимую процедуру, вы можете вставить свои данные Select в таблицу, прежде чем возвращать ее. Из этого вы можете выполнить проверку своего содержимого до того, как оно будет возвращено в отчет.

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

INSERT INTO @ReturnTable (Account_Ref, ...) 
SELECT ir.SourceRef, ... 

Вы можете запросить его содержимое с помощью команды, такие как

IF (SELECT COUNT(*) FROM @ReturnTable) = 0 
BEGIN 
    INSERT INTO @ReturnTable (Account_Ref, ...) 
    SELECT 'All Accounts are OK', ... 
END 

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

=iif(First(Fields!Account_Ref.Value) = "All Accounts are OK", false, true) 

Вы можете наслаивать другой объект (информационное сообщения возможно) на вершине этого с обратным этой видимостью набора.

+0

Спасибо за ответ. Мне это кажется немного сложным, поскольку я никогда не использовал хранимые процедуры. – ikilledbill

Смежные вопросы