使用Microsoft Report Builder:当没有数据时,如何添加"No Data Available"消息?
Using Microsoft Report Builder: When there is no data, how can I add "No Data Available" message?
有人可以帮忙吗?
我正在使用 Microsoft Report Builder,并且想在 table.
中没有数据时添加一条消息,说明“没有可用数据”
每次我在属性中使用“NoRowsMessage”或在其中一行中使用 =CountRows() > 0 表达式时,似乎都不起作用。我不断得到一个空行或空的两行!并且消息根本不显示。它就像空数据一样通过,这是没有意义的。如果我确定有真实数据通过,它看起来很好。有人可以告诉我我做错了什么吗?
更新信息:
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
例如,我只想在 table 中看到中间名,仅此而已……但是该列是空的……我得到了两个空行……我想让它说“无可用数据”。我知道 chatSessionID 是带回两行的东西......但我需要把它放在那里......如何从其他 tables.
中获取数据
我不确定我是否完全理解缺少实际 table 的情况,但您可以在数据集查询中模拟一些数据并使用它。
一个简单的版本可能看起来像(更改数据类型以适合您的真实数据)
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, '160165815460010151522-101523-4111510-14142220', 3456, 1, '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 行。
有人可以帮忙吗?
我正在使用 Microsoft Report Builder,并且想在 table.
中没有数据时添加一条消息,说明“没有可用数据”每次我在属性中使用“NoRowsMessage”或在其中一行中使用 =CountRows() > 0 表达式时,似乎都不起作用。我不断得到一个空行或空的两行!并且消息根本不显示。它就像空数据一样通过,这是没有意义的。如果我确定有真实数据通过,它看起来很好。有人可以告诉我我做错了什么吗?
更新信息:
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
例如,我只想在 table 中看到中间名,仅此而已……但是该列是空的……我得到了两个空行……我想让它说“无可用数据”。我知道 chatSessionID 是带回两行的东西......但我需要把它放在那里......如何从其他 tables.
中获取数据我不确定我是否完全理解缺少实际 table 的情况,但您可以在数据集查询中模拟一些数据并使用它。
一个简单的版本可能看起来像(更改数据类型以适合您的真实数据)
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, '160165815460010151522-101523-4111510-14142220', 3456, 1, '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 行。