Службы Reporting Services 2008: удаление атрибута из проблемы сущности вручную - PullRequest
0 голосов
/ 03 августа 2009

Я изменяю свою модель отчета в Visual Studio (2008). Если я обновляю свой файл dsv (после внесения изменений в базовую базу данных), а затем вручную отражаю те же изменения в файле smdl, кажется, что каждый раз, когда я удаляю атрибут из сущности, он каким-то образом портит проект ReportModel.

При удалении атрибута удаляется ссылка, подобная следующей, из разделов <IdentifyingAttributes> и <DefaultDetailAttributes> файла smdl:

<AttributeReference>
  <!--My Attribute-->
  <AttributeID>G30ea3652-7f92-41d0-a25a-500c82317288</AttributeID>
</AttributeReference>

А также удаляет сам атрибут:

<Attribute ID="G30ea3652-7f92-41d0-a25a-500c82317288">
  <Name>My Attribute Name</Name>
  <DataType>Integer</DataType>
  <Nullable>true</Nullable>
  <SortDirection>Descending</SortDirection>
  <Width>4</Width>
  <Format>g</Format>
  <EnableDrillthrough>true</EnableDrillthrough>
  <ContextualName>Merge</ContextualName>
  <ValueSelection>Dropdown</ValueSelection>
  <Column Name="Blah" />
</Attribute>

Я не вижу, как это испортит файл smdl.

В любом случае, мой вопрос: у кого-нибудь еще была такая же проблема? Если это так, есть ли способ обойти это (кроме автогенерации smdl).

Кроме того, есть ли причина для не Автогенерация? (Мне сказал не коллега, но я не понимаю мотивы этого) ..

Заранее спасибо за помощь, Пит.

Ответы [ 2 ]

1 голос
/ 03 августа 2009

ОК, я могу ответить на свой вопрос здесь. Кажется, есть проблема, связанная с Скрытые поля . Если на атрибут или роль, которую вы пытаетесь удалить, ссылаются из коллекции «Скрытые поля» другой роли, то при ее удалении (атрибут или роль) ссылка, содержащаяся в коллекции, теряется. Похоже, что Visual Studio не достаточно умен, чтобы сделать это - ба!

Когда вы пытаетесь заново открыть проект «Модель отчета» после его сохранения, вы получаете прекрасное выразительное сообщение об ошибке: «Ссылка на объект не установлена ​​для экземпляра объекта».

Единственный способ решить эту проблему, когда я получаю ошибку «Ссылка на объект ...», - это открыть файл smdl в Блокноте (или аналогичном) и найти ссылку на GUID удаляемой вещи. , Обратите внимание, что в случае роли это может произойти с любого конца - источника или цели - отношения.

0 голосов
/ 13 января 2011

Просто чтобы расширить ответ, скрытое поле будет выглядеть примерно так (в SMDL):

<!-- NameOfEntity -->
<FieldFolderItemId>G3a4a8c45-c900-4286-afdd-d31deb70be41</FieldFolderItemID>

Просто удалите всю запись вручную.
Немного хитро, но это работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...