Serviços de relatórios 2008: Exclusão manual de um atributo de um problema de entidade

StackOverflow https://stackoverflow.com/questions/1222094

  •  10-07-2019
  •  | 
  •  

Pergunta

Estou modificando meu modelo de relatório no Visual Studio (2008). Se eu refrescar meu arquivo DSV (após alterações no banco de dados subjacente), reflita manualmente as mesmas alterações no arquivo SMDL, parece que sempre que excluo um atributo de uma entidade, ele corrompe o projeto Relatório.

Excluir um atributo remove uma referência como a seguinte do <IdentifyingAttributes> e <DefaultDetailAttributes> Seções do arquivo SMDL:

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

E também remove o próprio atributo:

<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>

Não consigo ver como isso atrapalharia o arquivo SMDL.

De qualquer forma, minha pergunta é: mais alguém teve o mesmo problema? Nesse caso, existe uma maneira de contorná -lo (além de autogerenar o SMDL).

Além disso, existe uma razão para não Autogenerativo? (Foi -me dito para não por um colega, mas não entendo a motivação por trás disso).

Agradecemos antecipadamente por sua ajuda, Pete.

Foi útil?

Solução

Ok, posso responder minha própria pergunta aqui. Parece que há um problema relacionado a Campos ocultos. Se o atributo ou a função que você estiver tentando excluir for referenciado da coleção Hidden Fields de outra função, quando você a exclui (o atributo ou a função), a referência mantida na coleção será órfã. Parece que o Visual Studio não é inteligente o suficiente para fazer isso - bah!

Quando você tenta reabrir o projeto do modelo de relatório depois de salvá-lo, recebe a adorável mensagem de erro expressiva: "Referência de objeto não definida como uma instância de um objeto".

A única maneira de ver isso para resolver isso quando recebo o erro "Referência do objeto ..." é abrir o arquivo SMDL no bloco de notas (ou similar) e procurar a referência GUID da coisa que você está excluindo. Nota No caso de uma função, isso pode acontecer em ambos os extremos - a fonte ou o alvo - do relacionamento.

Outras dicas

Apenas para expandir a resposta, o campo oculto se parecerá algo assim (no SMDL):

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

Basta excluir toda a entrada manualmente.
Um pouco desonesto, mas funciona ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top