Mestre de execução / Relações de detalhe usando listas personalizadas

Usuários do Fórum com freqüência como perguntas como esta:

> Olá,
>
> Por favor me diga se há quaisquer possibilidades de criar uma lista personalizada com o
> tipo de mestre e de detalhes (como as faturas) sem usar o InfoPath.
>

O SharePoint fornece alguns fora dos recursos de caixa que oferecem suporte a tipos de requisitos de negócios como esse.

Em geral, uma liga duas listas juntos usando uma coluna de pesquisa. Lista A contém as informações de cabeçalho de factura e lista B contém detalhes da fatura.

Use listas adicionais para manter números de clientes, números de produto, etc.

Usar uma web part de consulta de conteúdo (Moss só) e/ou um dados Ver os web part para criar modos de exibição mesclados das listas. SQL Server Reporting Services (SRS) também está disponível para o lado relato de.

No entanto, Existem algumas limitações importantes que tornará difícil usar puras características de out-of-the-box para tudo que é mesmo moderadamente complexa. Estes incluem:

  • Tamanho de pesquisa relacionado lista vs. "esperteza" o tipo de coluna de pesquisa. Um tipo de coluna de pesquisa apresenta-se na interface do usuário de forma diferente dependendo se você habilitou o seleção múltipla ou não. Em ambos os casos, o controle de out-of-the-box mostra todos os itens disponíveis na lista de fonte. Se a lista fonte possui 1,000 itens, Isso vai ser um problema. O controle de pesquisa não paginar através desses itens. Em vez disso, Ele puxa todas elas no controle. Esta é uma interface de usuário muito estranho, tanto em termos de desempenho e entrada de dados.
  • Pesquisas "puxar volta" uma coluna de informações. Você nunca pode recuar mais de uma coluna de informações da lista de fonte. Por exemplo, não é possível selecionar um cliente "12345" e exibir o número, bem como nome e endereço do cliente ao mesmo tempo. A pesquisa mostra apenas o cliente número e nada mais. Isto faz para uma interface de usuário estranho e difícil.
  • Nenhuma comunicação intra-formulário. Eu escrevi sobre isso aqui. Você não pode implementar suspensas em cascata, condicionalmente ativar/desativar campos, etc.
  • Sem exclusões em cascata ou integridade referencial interna. SharePoint trata listas personalizadas como entidades independentes e não permite que você vinculá-los uns aos outros no sentido tradicional do ERD. Por exemplo, SharePoint permite que você criar duas listas personalizadas, "cliente" e "cabeçalho de factura". Você pode criar um cabeçalho de factura que liga para um cliente na lista do cliente. Em seguida, Você pode excluir o cliente da lista. Fora da caixa, Não há nenhuma maneira de evitar isso. Para resolver este tipo de problema, Você normalmente usaria manipuladores de eventos.

Parece sombrio, Mas eu ainda usaria SharePoint como ponto de partida para construir este tipo de funcionalidade. Embora haja lacunas entre o que você precisa em uma solução, SharePoint permite-nos preencher essas lacunas usando ferramentas tais como:

  • Manipuladores de eventos. Usá-los para impor a integridade referencial.
  • Colunas personalizadas: Criar tipos de coluna personalizados e usá-los em vez de coluna de pesquisa padrão. Adicionar paginação, buffering e recursos do AJAX para torná-los responsivos.
  • BDC. Esse recurso somente MOSS permite-nos para consulta que outro SharePoint lista com uma interface de usuário superior para a coluna de pesquisa usual. BDC pode também chegar a um aplicativo de servidor back-end. Use o BDC para evitar a replicação. Em vez de replicar informações de cliente de um back-end sistema ERP, Use o BDC. BDC recursos fornecem uma interface de usuário agradável para puxar essa informação diretamente do sistema ERP, onde pertence e evita o incômodo de manter uma solução de replicação.

    BDC é uma característica de musgo (não disponível no WSS) e é um desafio para configurar.

  • ASP.NET web formulário: Criar um formulário habilitado para AJAX completo que usa os serviços de modelo e/ou web de objeto do SharePoint para aproveitar a listas do SharePoint, fornecendo uma interface de usuário muito sensível.

A última opção pode sentir como você está começando do zero, mas considere o fato de que a plataforma do SharePoint você começa com os seguintes recursos-chave:

  • Modelo de segurança com manutenção.
  • Sistema de menu com manutenção.
  • "Tabela mestre" (ou seja. listas personalizadas) com segurança, auditoria e manutenção interna.
  • Pesquisa.
  • Ferramentas de integração de back-end (BDC).

Se você iniciar com um novo projeto em branco no visual studio, você tem um monte de infra-estrutura e encanamento para construir antes de você chegar perto do que o SharePoint oferece.

Eu acredito que a Microsoft pretende estender o SharePoint neste sentido de desenvolvimento de aplicativos. Parece como uma extensão natural para a base existente do SharePoint. Aplicação de CRM da Microsoft fornece uma grande quantidade de extensibilidade dos tipos necessários para apoiar o desenvolvimento de aplicativos de cabeçalho/detalhes. Embora estes recursos estiverem em CRM, a tecnologia é obviamente disponível para a equipe de desenvolvimento do SharePoint e espero que isso fará sua maneira no produto SharePoint até final de 2008. Se alguém tiver um conhecimento ou insight sobre isto, por favor, deixe um comentário.

</fim>

5 pensamentos "Mestre de execução / Relações de detalhe usando listas personalizadas

  1. Paul Galvin

    Raghu, Eu não acho que há alguma maneira fácil de fazer isso. Eu foco no treinamento dos seus usuários quando usar qual um deles e talvez dar-lhes uma dica com o nome do conteúdo tipo próprio. Eu não acho que você realmente pode pregar este abaixo, tecnicamente.

    Resposta
  2. Raghu escreveu:
    Estou criando realationship pai/filho, usando dois tipos de conteúdo e lista personalizada, tal como explicado no commnet acima. Mas eu tenho um problema; Eu preciso fazer Item tipo de conteúdo não está disponível no nível da pasta e o tipo de conteúdo de pasta não está disponível no nível de item. Por favor me orientar sobre este. Obrigado…
    Resposta
  3. Michael Vickers

    É um pouco de um kludge mas eu uso um ASP.Líquido dropdown que sombreia a pesquisa "dropdown" gerado pelo SharePoint. Aponto o ASP.Líquido dropdown para uma fonte de dados com base na lista que contém o item de pesquisa, permitindo-me usar o campo ID como o valor e a coluna da minha escolha como texto de exibição. Eu não ligar o ASP.Líquido dropdown para o campo de lista de pesquisa porque ele gera erros de servidor.

    Na página carregar eu usar javascript para atribuir o valor correto para o ASP.Dropdown líquido, e, em seguida, anexar eventos onChange onchange para essa lista suspensa para atribuir novos valores para o correspondente dropdown de pesquisa do SharePoint. Eu na verdade ocultar a linha que contém a lista suspensa SharePoint.

    Uma última coisa — por causa da maneira como SharePoint processa pesquisa Pateta dropdowns quando Obtém o número de itens do passado 20 Usar o objeto wrapper personalizado para obter/definir o valor de lista suspensa. Eu tenho um post de blog detalhando o processo aqui:

    http://www.idiotsyncrasies.com/2007/12/lookup-list-dropdowns-in-sharepoint.aspx

    Elogios,

    Michael

    Resposta
  4. David

    Você pode criar um tipo de conteúdo para o cabeçalho da factura com base no tipo de conteúdo de pasta e, em seguida, criar outro tipo de conteúdo de fatura e adicionar a uma lista do SharePoint. Este efeito cria uma relação pai/filho que permitirá que você crie várias facturas com base no tipo de conteúdo de factura que vivem sob o tipo de conteúdo de cabeçalho de factura que lhe dá e relação instantânea entre os dois itens e se o cabeçalho da factura de item da lista é excluído todos os itens de nota fiscal de criança dentro da pasta será excluído. Você também pode especificar que um tipo de conteúdo só estar disponíveis dentro de uma determinada pasta. Esta abordagem é semelhante à forma como a biblioteca de discussão funciona e é muito útil para esse tipo de relação entre itens. Manipuladores de eventos e código ajudará com algumas outras limitações mas geral uma rápida solução fácil.

    Resposta

Deixe uma resposta para Raghu escreveu: Cancelar resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *