My PhotoBruno Brás Silva

09, April 1986

info@brunosilva.net

Sintra Lisbon Portugal

WSS 3.0 - Listas Aninhadas & Sharepoint Designer

Posted on 6:44pm 4/21/2008 by Bruno Silva in Windows Sharepoint Services 3.0

Hoje tive necessidade de “martelar” um pouco o site baseado em Windows Sharepoint Services 3.0 da empresa onde trabalho. A ideia era dada uma lista pai (lista de projectos) ter um link (na última coluna da lista) que apontasse para a lista de filhos (tarefas de projectos).

Tinha portanto 2 listas independentes, em que na lista de tarefas, havia um campo Projecto que referenciava elementos da lista de projectos. Ao escolher um dado projecto é mostrada a lista de tarefas respectivas (através de um filtro).

Replicando o cenário, temos a lista Parent List, que apenas contém os títulos.

Sharepoint - Listas

A segunda lista chamada Child List, contém o seu título, e o pai associado. No post anterior relacionado com Sharepoint deixei detalhes sobre como criar listas personalizadas.

Sharepoint - Criar Item

Dada a lista abaixo, deve ser possível aplicar um filtro que nos dá apenas os elementos relacionados com o Parent 1 ou com o Parent 2.

Sharepoint - Lista Ligada

De forma a conseguir colocar na lista pai um link que aplica este filtro, utilizei o Microsoft Office Sharepoint Designer 2007, que permite personalizar as páginas/sites criados o WSS. A interface é semelhante ao defunto Front Page (reencarnado Microsoft Expression Web). Basta clicar no menu File > Open Web Site, e escolher o site pretendido (pelo url http://blahblah.blah). Será necessário proceder à autenticação como administrador do site.

Sharepoint Designer - Abrir Site

Uma vez aberto o site, é possível escolher a página a editar no Folder List, que é apresentado à esquerda. Neste caso vamos editar a lista Parent List que se encontra na pasta Lists. O ficheiro a editar é o AllItems.aspx, que corresponde à vista pré-definida, criada no momento de criação da lista. É apresentada para edição a página, com aspecto semelhante à visualizada no browser.

Sharepoint Designer - Vista Geral

Neste caso, de forma a personalizar a vista, temos de converter o ListViewWebPart (no fundo, o componente de listagem da vista) para uma vista XSLT, através do menu contextual.

Sharepoint Designer - Converter para XSLT Data View

Agora que temos uma tabela em HTML com os campos definidos em XML (mais propriamente como uma transformação XSLT), podemos adicionar uma coluna à tabela, como faríamos no FrontPage. :) (menu contextual > Table Properties, aumentar o valor do campo Columns para 3)

Sharepoint Designer - Adicionar Coluna

Com a nova coluna criada, escreve-se o texto pretendido para a hiperligação na linha de template do registo (pode-se editar a 1ª linha, que as seguintes reproduzirão a edição), e adiciona-se uma hiperligação sobre o texto introduzido na célula. Esta hiperligação será um link para a página de listagem da Child List, com os parâmetros correctos para a filtragem.

O URL terá o formato /Lists/<nome-lista>/AllItems.aspx?FilterField=<campo>&Value={@Title}.

O parâmetro Value cujo valor é {@Title} ficará ligado ao campo Title da lista Parent List, assumindo o valor do mesmo em cada registo mostrado na listagem.

Mais detalhes sobre a filtragem e ordenação de registos através do URL podem ser encontrados nesta página do site Microsoft TechNet.

Sharepoint Designer - Adicionar Hiperligação

Uma vez feitas as alterações descritas, pode-se salvar a página, confirmando esta decisão na caixa de diálogo seguinte.

Sharepoint Designer - Salvar Página

A partir de agora, na página de listagem da Parent List aparece uma segunda coluna com a hiperligação para a Child List, com o respectivo filtro aplicado.

Sharepoint - Filtro Pai/Filhos

Estes são os passos base para criar uma hierarquia de listas no Sharepoint, o que será certamente muito útil em diversos contextos.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© Bruno Silva | Powered by Wordpress