Матрица ... табликс .... список / матрица ... список / табликс ... Понятия не имею.никто из них не делает то, что я хочу.
Итак, у меня есть данные резидента ... имя, пол, уровень ухода, информация о номере / местоположении.И у меня есть номера телефонов врачей.Все это должно выглядеть как форма, которую я имею, но должно быть сделано в SSRS.
Форма выглядит следующим образом:
(Тип телефона и номер телефона можно разделить, но не обязательно, если это имеет смысл.)
_______________________________________________________________________________
| Allergies: NKA |
| |
|_______________________________________________________________________________|
|Resident | ID | Gender | Room | Type Number |
|___________|___________|________________|____________|_________________________|
| | | | | Home 555-3242 |
|Kim | 123 | female | 420 | Cell 555-1111 |
|___________|___________|________________|____________|__Other_________234-5554_|
Мне нужновоссоздать это в SSRS.Я поместил его в нижний колонтитул и использовал много надписей, прямоугольников и тому подобного для форматирования, но SSRS не так уж хорош в выравнивании и сохранении одинакового размера.Я пробовал использовать этот вариант компоновки, но при их развертывании они иногда выглядят совершенно иначе, чем при разработке и предварительном просмотре.(иногда правые стороны прямоугольников не выстраиваются должным образом или прямоугольники кажутся рядом друг с другом, но визуализируются по-разному, и ничто не перекрывается, но все равно получается смешно) Я должен переделать это и пытаюсь использовать таблицу вконец отчета на этот раз, так что, если информация занимает две строки, все вокруг легко растет.
То, что я пытался сделать, это использовать группирование в матрице, чтобы воссоздать весь эффект формы с телефонными номерами в качестве «деталей» и получить группу столбцов по тексту «Аллергии», а затем строкугруппировать по информации о человеке.Но .... Мне кажется, я не могу сделать это правильно, и все выглядит великолепно, за исключением того, что по какой-то причине в списке будет указан только один номер телефона, и мне нужен один или несколько, чтобы появиться.
Я настроил свои данные так:
(name) (ID) (gender) (roomNumber) (allergies) (phoneType) (phoneNumber)
Kim 123 female 410 NKA home 555-3332
Kim 123 female 410 NKA cell 555-2342
Kim 123 female 410 NKA other 555-1111
Ох ... что я делаю не так?Если я использую список (для вышеприведенного текста об аллергии) с таблицей внутри, сгруппированной по personInfo / personID / stuff с телефонными номерами в качестве деталей, я не могу выстроить информацию о человеке, чтобы цифры непросто висит внизу.
Очевидно, я упростил данные, но это общая идея ... Пожалуйста, дайте мне несколько советов.Для жизни я не могу понять группировку.Нужно ли мои данные изложены по-другому?
Большое вам спасибо ............ за ваше время, Ким
Хорошо ... редактировать .... Я думаю, что я объяснил это неправильно, потому что некоторыеодин сказал, что мои данные нуждаются в нормализации.Вот как я настроил свои данные, чтобы попытаться использовать группировку по идентификатору персоны / персоне, а затем использовать номера телефонов в качестве деталей.
Итак, допустим, у меня есть базовая таблица, которая называется person, которая хранит всю мою личную информацию.Тогда у меня есть таблица с названием номера телефона, и в ней есть мои номера.Человек и телефон связаны идентификатором.Затем у меня есть таблица аллергий, связанная с personID, в ней есть идентификатор аллергии и текст аллергии.Левый внешний присоединиться к ним.Та да!Это действительно большая база данных, и я должен проверить кучу вещей, и на самом деле не представляется возможным предоставить запрос прямо сейчас.Извините ... все это является результатом реального упрощения ситуации, но это дает представление, и я все еще не могу выполнить желаемую группировку, даже если данные были такими простыми (что я и прошу помочь).
Еще раз спасибо!
Мне действительно очень нужна помощь с этим, я даже не смог получить ее сегодня утром ... Итак, давайте забудем часть аллергии выше, чтобы сделать этодействительно легко.Я до сих пор не могу заставить группу работать над Персоном, а затем использовать номера телефонов в качестве деталей.Вот некоторые примеры данных и прочее .... Так как этот отчет фактически будет служить формой, я хочу, чтобы пользователь выбрал нужного ему человека с параметрами, чтобы personID был передан в мой запрос / сохраненный процесс, и я получу толькоодин человек назад, но в качестве примера я включил трех человек в свой личный стол.
Это не фактическая структура, или данные, или запрос ... просто я когда-то за 10 минут сделал это, чтобы продемонстрировать проблему с группировкой в SSRS ... так что, пожалуйста, не комментируйте структуру БД или что-то в этом родеЯ просто подумал, что получу лучший ответ, если предоставлю некоторые данные для игры в SSRS.Если я / кто-то сможет заставить его работать с этими данными, он будет работать с моими реальными данными.
create table #person
(
personID int identity(1,1),
name varchar(20),
birthdate datetime,
gender char(1),
roomnumber int
primary key (personID)
)
create table #phoneNumbers
(
phoneID int identity(1,1),
personID int,
number varchar(8),
phoneType varchar(10),
foreign key (personID) references #person,
primary key (phoneID)
)
declare @scope int
declare @KimsID int
insert into #person (name, birthdate, gender, roomnumber) values ('Mike','11-22-1979','M',22)
insert into #person (name, birthdate, gender, roomnumber) values ('Kim','11-12-1985','F',123)
set @scope = SCOPE_IDENTITY()
set @KimsID = SCOPE_IDENTITY()
insert into #phoneNumbers (personID, number, phoneType) values (@scope, '333-2323', 'Home')
insert into #phoneNumbers (personID, number, phoneType) values (@scope, '333-1111', 'Cell')
insert into #phoneNumbers (personID, number, phoneType) values (@scope, '555-6767', 'Other')
insert into #person (name, birthdate, gender, roomnumber) values ('Lizz','7-26-1984','F',4)
set @scope = SCOPE_IDENTITY()
insert into #phoneNumbers (personID, number, phoneType) values (@scope, '444-4444', 'Home')
select #person.personID,
name,
(datediff(YY, birthdate, getdate()) -
case
when((month(birthdate)*100 + day(birthdate)) >
(month(getdate())*100 + day(getdate())))
then 1
else 0
end) as age,
birthdate,
gender,
roomnumber,
number,
phoneType
from #person
left outer join #phoneNumbers
on #phoneNumbers.personID = #person.personID
--where #person.personID = @KimsID
order by #person.name, phoneType
drop table #person
drop table #phoneNumbers