使用Microsoft Report Builder:当没有数据时,如何添加“无可用数据”消息?

问题描述

有人可以帮忙吗?

我正在使用Microsoft Report Builder,并且想要在表中没有数据时添加一条消息,指出“无可用数据”。

每次我在属性中使用“ norowsMessage”或在其中一行中使用= CountRows()> 0表达式时,似乎都无法正常工作。我不断出现空白行或空白两行!而且消息根本不显示。就像空数据通过一样,这毫无意义。而且,如果我确定有真实数据通过,则看起来很好。有人可以告诉我我在做什么错吗?

enter image description here

enter image description here

更新信息

declare @MeetingSessionID varchar(500)
set @MeetingSessionID = '160165815460010151522-101523-4111510-14142220'

select distinct vl.originalChatSessionID,vl.applicationUserID,vl.pharmaID,vl.UserName
      --,isnull(ph.FirstName,'') as 'First Name'
      --,isnull(ph.MiddleName,'') as 'Middle Name'
      --,isnull(ph.LastName,'') as 'Last Name'
      --,phm.CompanyName,isnull(dr.Title,'') as 'Title',isnull(dr.FirstName,'') as 'First Name',isnull(dr.MiddleName,'') as 'Middle Name',isnull(dr.LastName,'') as 'Last Name',isnull(dr.Name,'') as 'Name',null as 'Specialty'
from iclickphrDxvideolog vl
    --inner join iclickphrDxpharmacy ph
    --  on ph.pharmacyProfileID = vl.applicationUserID
    --inner join iclickphrDxpharmacy_Main phm
    --  on phm.pharmacyID = ph.PharmacyID
    inner join iclickphrDxdoctor dr
        on dr.DoctorID = vl.pharmaID


where vl.originalChatSessionID = @MeetingSessionID

因此,例如,我只想在表中看到中间名,就可以了...但是该列为空...我又返回了两行空...我希望它说“无可用数据”。我知道chatSessionID会带回两行...但是我需要在其中添加一些方法....以便从其他表中获取数据。

解决方法

我不确定我是否完全了解缺少实际表的情况,但是您可以在数据集查询中模拟一些数据并使用它。

一个简单的版本可能看起来像(更改数据类型以适合您的真实数据)

DECLARE @iclickphrDxvideolog TABLE([Video Name] Varchar(100),[Video length] int,originalCharSessionID varchar(500),applicationUserID int,pharmaID int,UserName varchar(256))
INSERT INTO @iclickphrDxvideolog VALUES
('My first Video',10,'160165815460010151522-101523-4111510-14142220',1234,1,'Bob'),('My second Video',20,3456,'Dave')

declare @MeetingSessionID varchar(500)
set @MeetingSessionID = '160165815460010151522-101523-4111510-14142220'

select distinct vl.originalChatSessionID,vl.applicationUserID,vl.pharmaID,vl.UserName,isnull(dr.Title,'') as 'Title',isnull(dr.FirstName,'') as 'First Name',isnull(dr.MiddleName,'') as 'Middle Name',isnull(dr.LastName,'') as 'Last Name',isnull(dr.Name,'') as 'Name',null as 'Specialty'
from @iclickphrDxvideolog vl -- <= swapped out for table variable for testing
    inner join iclickphrDxdoctor dr
        on dr.DoctorID = vl.pharmaID
where vl.originalChatSessionID = @MeetingSessionID

如果您使用“ 160165815460010151522-101523-4111510-14142220”以外的会话ID进行测试,则应该返回0行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...