Solução sem código: apresentar os dias, uma vez que um item de lista do SharePoint foi alterada pela última vez

Solução sem código: apresentar os dias, uma vez que um item de lista do SharePoint foi alterada pela última vez

Nota:  Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

20/9/2011 3:01 PM

por Justin Joyce, LANtek

Nota: Este artigo faz parte de uma colecção de mensagens de quatro anos do blogue obter o ponto para os utilizadores finais do SharePoint.

Descrição geral: Personalizar envelhecimento relatórios com sem código

Uma das partes funcionais frequentemente pedidas de um site SharePoint é um relatório de envelhecimento para tarefas ou itens de lista. Por outras palavras, quantos dias/meses o tenha sido uma vez que este item de lista foi modificado pela última vez?

Na superfície disto parece um pedido de muito simple. Depois de todos os, temos datas para itens que está a ser criados e modificados, temos a capacidade para armazenar datas personalizadas que determinadas alterações aos itens entrarão em local através de destinatários de evento. Vamos ter calculado colunas onde podemos pode incluir fórmulas semelhante do Excel para trabalhar com os nossos informação. Parece estar como uma proposta muito diretamente reencaminhar. Pedimos escolha um campo de data, criar uma coluna calculada e, em seguida, efetue uma fórmula algo ao longo das linhas de [DateField]-[Hoje]. Aqui, não a mesma rapidez com apesar! Como qualquer pessoa que tentou esta tarefa "simple" saiba, a tentar utilizar algo parecido com [Hoje] em problemas de faz com que uma coluna calculada. Tentar inserir [Hoje] na sua calculados caixa fórmula da coluna irá dar-lhe uma mensagem de erro algo da seguinte forma:

Mensagem de erro

Porque é que isto? Bem, tem de fazer com o modo como calculados colunas são calculadas.

Vamos dar uma fórmula simples como exemplo:

= IF ( [Column1] < = [Column2], "OK", "Não OK")

Tudo isto indica que é que se Column1 for menor ou igual a Column2, em seguida, apresente OK, caso contrário, apresentar não OK. Esta é uma fórmula básica bastante típica para uma coluna calculada e torna um pressupostos básicos sobre o item de lista que contém estas colunas: os valores de Column1 e Column2 nunca poderá alterar sem um evento de atualização no item de lista.

Já está à direita, colunas calculadas irão apenas voltar a calcular quando a lista é atualizada (ou criada) desde que assumem que as informações que está a calcular estão contidas no próprio item. Esta ação cria um problema ao que está a tentar utilizar algo que muda independente dos campos do item, tal como a data de hoje.

Agora posso não era na reunião onde decidido que esta é a forma que calculada colunas seriam funcionar, no entanto, se tiver a fazer com que uma estimativa do suposições que posso seria partem do princípio de que funcionam desta forma para obter um desempenho. Imagine se tiver uma lista de vários milhares itens, cada um dos quais contidas uma coluna calculada que seja necessário uma atualização de "direto". Que significa que algumas mecanismo, talvez uma tarefa do temporizador, teria de iteração em cada item que contidas nessa coluna calculada vez por isso, muitas vezes e atualizar o seu valor. Uma vez que com implementações maiores esta tarefa pode constantemente estar em execução e alterar coisas este foi extremamente tributar em termos de desempenho. Já está apenas a minha estimativa, mas torna bastante um pouco da sentido se ter em consideração-lo.

Existem algumas sugestões sobre soluções semelhantes flutuantes à volta de saída não existem que envolvam tricking SharePoint para aceitar um valor de hoje por criar uma coluna denominada hoje em dia, pela primeira vez, em seguida, adicioná-lo à sua fórmula, em seguida, eliminá-la. Estas são todas as melhoras e boas, mas lembre-se de que o que eu disse sobre quando são atualizadas as colunas calculadas. Este valor alterar apenas quando o item é atualizado o que significa que os valores mais cedo será incorretos, principalmente no caso de um cálculo de dia.

Posso visualizou outras pessoas utilizando JavaScript inteligente para escrever os valores para a página. Este procedimento iria funcionar também, mas estiver muito muito categorically contra script do cliente quando-pode ser evitada.

Implementação:

Por isso, o que fazer? Colunas calculadas estiverem fora a pergunta para o chamado funções "voláteis" como hoje. É possível que recomendamos poderá desenvolver algumas código personalizado ao encarregam-se desta para-nos como uma coluna calculada, tarefa do temporizador, ou agendada processo voltar ao longo e atualizar a cada item único que necessita deste cálculo efetuado. Que dá-nos novamente para o problema de desempenho que posso mencionado embora no último parágrafo e, para além disso é uma solução frágil que seria altamente específica para a/lista/coluna de site em questão. Na parte superior dessas duas preocupações, também teria aceda localizar um nerdy boneco, tal como pessoalmente, que sabe como código e convencer contactá-la para desenvolver esta solução por si. Mas existe uma forma mais fácil!

Se possui direitos para criar campos de e editar páginas no seu site e tiver um pouco de conhecimento sobre XSLT e criar vistas, pode colocar em conjunto um modelo XSL que pode ser incluído numa vista de lista e aceitar calculará o valor de cada vez que a página é pedida. Este cenário remove o nossa preocupações ao longo do desempenho e não necessita de código personalizado para ser desenvolvido e implementada através de uma solução.

Perfeita. Então como podemos fazê-lo?

  1. Criar ou selecione o campo que irá agir nossa origem. Tem de ser um tipo de data.

  2. Crie os nossos campo que irá actuar como um marcador de posição para o valor a ser calculado.

  3. Adicione ambos estes campos para um tipo de conteúdo e adicionar esse tipo de conteúdo a uma lista.

  4. Crie uma vista da lista que contém as colunas de origem e o marcador de posição.

  5. Carregar um modelo de XSL para a biblioteca de estilos.

  6. Defina a propriedade de "Ligação XSL" para a peça Web vista de lista através da UI.

  7. Com êxito!

Vamos explorar um caso de utilização de exemplo e guiá-lo através da aplicação. Os nossos cliente pretendia quanto tempo um item de lista em particular tivesse sido sentada ao seu estado de uma vista da sua lista principal que iria informá-los. Esta lista contidos num site personalizado conteúdo tipo derivado de tipo de Item e adicionada à lista. Já havia recetor um evento num local que captura sempre que esse campo Estado no item de lista foi alterado e guardado essa data para uma coluna denominada "Data de estado foi alterado". Todos os este eléctricos não é necessário e podem ser efectuados com qualquer campo Data (aconteçam apenas por isso, isto é, os nossos pós-implementação mas gratuita experimentar a funcionalidade). As condições mínimas que terá são o campo de data de origem e o campo de marcador de posição para manter o seu cálculo (obter mais informações sobre isto no parágrafo seguinte) adicionados à sua lista, embora posso sugerir que utilizar colunas de site e tipos de conteúdo de site, no caso que pretende reutilizar esta solução no outras pl ACE no seu site.

Por isso, temos nossa data de origem que pode utilizamos no nosso cálculo contra a data de hoje. Agora, podemos criar uma coluna de site personalizado para utilizar como um contentor para os nossos valor calculado. Neste caso posso optar por utilizar uma coluna calculada uma vez que não poderão ser alteradas no novo ou editar formulários de item, mas podem ser selecionado para serem apresentados nas vistas de uma vez que recomendamos não pretende que os utilizadores introduzindo arbitrários valores para esta coluna. Pode dever-confuso Control por que motivo não está a ser apresentado nas vistas, etc.

Agora que temos nossa coluna de site, podemos pode adicioná-la a nossa tipos de conteúdo que serão utilizados na nossa lista. Em seguida, precisamos de criar os nossos vista que mais tarde ser personalizada com os nossos XSLT. Certifique-se de que cria uma vista padrão que contém a sua coluna de data de origem e a sua nova coluna calculada que irá actuar como um marcador de posição para o valor calculado.

Agora temos tudo num local necessitamos para suportar o nosso relatório de envelhecimento personalizado. Tudo o que mantém-se está a criar nosso modelo XSL, carregá-lo para estilo biblioteca o site e ligando-o a nossa vista de lista. O modelo XSL que estamos irá utilizar vai conter algumas marcação gerados pelo SharePoint normal para gerar a vista, bem como a nossa própria são utilizadas para substituir determinadas partes do presente e calcular os nossos valor pretendido para-na marcação personalizada.

Dar crédito onde vence crédito, os modelos XSL para efetuar cálculos reais estiver a utilizar para esta solução foram graciously fornecidos pelo "swirch" nos fóruns MSDN:
http://social.msdn.microsoft.com/Forums/en-US/ sharepointcustomization/tópico/aeda905b-9bc6-40c4-bd22-21306c5cb0d2 /

Transferir a folha de estilos XSL (aging.zip) tem coloquei em conjunto localizada aqui:
https://OneDrive.live.com/?cid=c262e8e2d59a86d9&permissionsChanged=1&id=C262E8E2D59A86D9! 104

Abrir este seu editor de texto favoritas verá muito de marcação de SharePoint XSL normal para compor vistas, se manter deslocar para baixo para a linha 357 irá ver o início dos modelos personalizados que adicionei à marcação, a primeira parte a ser "DateDiff" temp mais tarde seguido por "calcular-juliano-dia" e "FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status". Estes são os nossos três modelos que irão tornar e apresentar os nossos cálculos no nossas vistas. Se utilizar os nomes dos campos diferentes do que foram especificadas neste artigo, terá de seguir estes modelos e substituir todas as referências a outros nomes de. Lembre-se, para que isto que irá pretende utilizar o nome do campo não o nome a apresentar interno.

Assim que estiver satisfeito que o modelo está pronto para ir, navegue para a biblioteca de estilo e carregue-o na pasta "Folhas de estilo XSL", em seguida, copiar para baixo na ligação para o ficheiro. Isto irá permitir-nos facilmente mais tarde, efetuar alterações ao mesmo ou adicioná-lo para diferentes partes do site, tal como o podemos, por favor.

Em seguida, aceda à sua lista e selecione a vista que criou neste artigo. "Ações do Site" menu clique no "Editar página".

Comando Editar Página no menu Ações do Site

Localize a peça Web vista de lista na página e abra o menu Peça Web ao clicar na pequena seta para baixo no canto superior direito. A partir deste menu selecione "Editar peça Web".

Comando Editar Peça Web no menu Peça Web

Isto vai abrir o menu da peça Web no lado direito da janela do browser.

Menu Peça Web

Clique na secção + para "Diversos" e localize a propriedade de "Ligação XSL".

Propriedade da Ligação XSL no menu Peça Web

Cole a ligação ao seu ficheiro XSL na sua biblioteca de estilos que copiou anteriormente para baixo (pode ser uma ligação relativa ou absoluta).

Ligação do ficheiro XSL colada

Clique em "OK" para guardar as suas alterações, em seguida, clique no botão "Parar a edição" no Friso "Página" na parte superior da página.

Botão Parar Edição no separador Página

Se tudo o que tiver sido configurado corretamente agora deverá ver números na sua coluna de "Dias no estado".

Coluna Dias no Estado a apresentar número

E, por fim, eis o que terá um aspeto como com algumas testar dados de várias datas:

Relatório de Envelhecimento a apresentar dados de teste

Resumo:

Não existem é: concluir a uma forma agradável, robusta e melhor desempenho para criar um relatório de envelhecimento no SharePoint. com uma implementação sem código simple. Isto tem bastante alguns potenciais aplicações para além daquele utilizar caso que podemos explorou aqui. Outro cenário comum para este tipo de relatório é anexar a uma lista de tarefas para que possa ver quanto tempo passaram desde que uma tarefa foi criada, de relance.

Desfrute!

– Justin

Justin Joyce, LANtek

Comentários

Os passos em falta
8/10/2012 3:51 AM
ok posso seguido os passos, mas tem de ter algo em falta - como será o XSL saber que data para utilizar ou que de campo para adicionar os dias desde para? Ninguém gosta-lo quando passos são perdidos.

Sem código aceitou!
30/8/2012 12:12:00
posso Concordo - não tenha em conta Isto conta realmente como "sem código".
Interestingly, através de alguns screwup do SharePoint, tenho de ter uma coluna calculada de trabalhar com hoje... não tem a certeza como ou por que razão porque não posso não é possível obtê-lo para fazê-lo novamente, mas a está ainda existem e a funcionar.

Fórmula para "Dias no estado" coluna calculada?
5/2/2012 7:39 AM
Justin - o que é a fórmula utilizada para a sua coluna de site calculado "Dias no estado" (coluna de marcador de posição)? Foi-"= hoje"?

SharePoint 2007
2/12/2011 11:29 AM
atualmente posso ter não tentado aplicar esta solução para o SharePoint 2007, no entanto, estou à procura à mesma. Infelizmente não existe nenhuma propriedade XslLink apresentada a peça web através da UI.

Mensagem excelente
30/11/2011 9:53 AM
Olá,
mensagem excelente.
Estou a utilizar o SharePoint 2007.
Não tenho uma secção diversos conforme indicado acima.
Tiver passos para uma configuração SP2007?
Agradecimento.

Re: Solução sem código: apresenta os dias, uma vez que um item de lista do SharePoint foi último alteradas
11/10/2011 8:24 AM
Olá Chris.
localizar excelente!
i estou a aceder ao veja o que publicou começadas mais tarde hoje e ver se i pode tornar esta solução um pouco mais eficaz.
que estou a satisfeito por gosto na mensagem e que estou a muito satisfeito por que foram consiga encontrar uma solução para o formato de data Europeu. :)
-Justin

Solução para formatos de data Europeu
11/10/2011 6:45 AM
Olá novamente Justin
para sua informação, encontrar uma solução para o problema posso mencionado anteriormente nesta página;
https://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/

Formatos de data Europeu
7/10/2011 3:59 AM
Justin Olá,
este é um obrigado muito bom a solução e apenas a ordenação de coisa gastou os últimos dois dias está à procura de! No entanto, estou a ter um pouco de um problema com o mesmo e posso foi na esperança que poderia ajudar-me.
posso tenha alterado o seu código ligeiramente para calcultate o número de dias até algo acontece, em vez de uma vez que, ao mudar as variáveis na última linha da função "DateDiff";

< xsl: value-dos selecione = "$JulianToday - $JulianStartDate" >< / xsl: value-da >

no entanto estou apenas conseguir obtê-lo para caclulate a diferença corretamente metade do tempo. Por isso, por exemplo, com esta data (formato dd/MM/AAAA);

30/12/2011

calcula o corretamente, mas com essa data (o mesmo formato)

10/12/2011

calcula como se 10-dez-2011 em vez de 12-Out de 2011.
tentei simplesmente mudar as posições dos valores dia e mês na variável de "JulianStartDate", assim;

< xsl: nome com param = "Mês" select="substring(ddwrt:FormatDateTime(string($StartDate), 1033, 'AAAAMMDD'), 7, 2)" / >
< xsl: nome com param = selecione "Dia" = "subcadeia (ddwrt:FormatDateTime (cadeia ($ DataDeInício), 1033, 'AAAAMMDD'), 5, 2) "/ >

e este resultado corrigido o problema com a segunda data, no entanto, foi incorreto para a primeira data!
posso também experimentou alterando a FormatoDataHora chamadas para utilização LCID Europeu e vários modificações para a última parâmetro da FormatoDataHora (por exemplo, MMddyyyy, ddMMyyyy) com os ajustes adequados para a subcadeia parâmetros posicionais sem sucesso.
posso substancialmente seria Agradecemos qualquer conselhos pode oferecer.
Obrigado,
Chris

Sem código
21/9/2011 4:27 AM
posso não pensa que são elegíveis XSL como uma solução de "sem código", como Noções sobre a linguagem XSL não para todas as pessoas - no entanto, não envolve programação. Para além de que: boa solução, obrigado!

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×