Qualsiasi soluzione, Oggi Colonna Calcolata problema è di SharePoint?

Vorrei essere in grado di utilizzare la data di oggi in una colonna calcolata in un elenco di SharePoint, ad esempio, per determinare se un’attività è in ritardo. C’è una ben documentata trucco che prevede la creazione di una colonna fittizia denominata “Oggi”, il loro uso in una formula, e quindi l’eliminazione, in modo tale da “ingannare” di SharePoint utilizzando la funzione di Oggi.

Il problema è che questo metodo non funziona in modo affidabile — il calcolo non è dinamico; è fatto solo quando l’elemento viene salvato, e quindi l’Oggi “colonna” diventa, di fatto, la Data di modifica. (Questo è probabilmente il motivo per SharePoint non permette di utilizzare la funzione di Oggi, in un senso diretto.)

Qualcuno ha trovato una soluzione che funziona? So che posso usare javascript per ottenere la data effettiva sul lato client e display a colori, di bandiere, di qualunque cosa, ma sto cercando un “lato server” soluzione.


Per riferimento, colonna Oggi trucco e i suoi problemi sono descritti abbastanza bene in questi due post e i relativi commenti:
http://blogs.msdn.com/cjohnson/archive/2006/03/16/552314.aspx e http://pathtosharepoint.wordpress.com/2008/08/14/calculated-columns-the-useless-today-trick/

InformationsquelleAutor MDRoz | 2009-05-18

 

9 Replies
  1. 4

    Semplicemente non c’è un lavoro in giro per questo. Come valori per la lista vengono archiviati nel database e restituito “così come sono” per altri featurs come il crawler di ricerca, un campo dinamico non può essere creato.

    È possibile creare un campo personalizzato che display il valore con data di oggi nel suo calcolo.

    • Se in futuro i lettori considerando la codifica di un Oggi Colonna Calcolata, si potrebbe desiderare di leggere la mia esperienza cercando di fare esattamente questo: blog.pentalogic.net/2011/08/…
  2. 4

    Oltre a Christophe (PathToSharePoint)’s questo articolo copre anche Oggi trucco e perché non funziona

    La Verità sull’uso Oggi nelle colonne calcolate

    Ci sono un certo numero di scoprono con il senno, probabilmente il migliore è Dessie console app (di cui sopra da MNM)

    L’aggiornamento dinamico di una SharePoint calcolato colonna contenente un Oggi di riferimento

    Il suo bene, ma la sua non perfetta, per esempio, si potrebbe avere a preoccuparsi di diversi fusi orari.

    Prima di andare giù questo itinerario è necessario chiedersi se davvero, davvero bisogno di fare questo. Per esempio :-

  3. 1

    Se si crea un Oggi colonna deve essere aggiornato. Si può fare con un timer di lavoro o l’inserimento di un jquery script in una pagina che è colpito dall’utente. Lo script potrebbe chiamare SPServices.SPUpdateMultipleListItems a fare l’aggiornamento. Passare un CAML clausola in modo che si aggiorna solo le voci di elenco in cui Oggi il valore deve essere aggiornato, per esempio una volta al giorno.

    • Vorrei suggerire di creare un programma batch per ottenere che, lasciar correre giornaliero programmato e il programma di aggiornare solo quelli di data che non è uguale alla data di Oggi. Ma mi piacerebbe vedere l’esempio di script come quello che si parla. Grazie in anticipo.
  4. 0

    Il mio consiglio è quello di creare sul campo che fa questo calcolo per voi, e poi riferimento ad esso nel tuo elenco di SharePoint. Non un semplice attuazione, ma che avrebbe funzionato.

  5. 0

    Ho cercato una soluzione che sia, ancora senza fortuna.. Oggi colonna trucco ha la limitazione di non essere dinamico.

    Ho un suggerimento, però, perché non creare un processo timer in grado di aggiornare una certa una certa colonna con la data corrente, ogni giorno alle ore 12. So che alcuni di voi tutti potrebbe pensare che è sopra la testa. Solo una mia suggestione :D!!

  6. 0

    Mi si avvicinò con molto grezzo, ma la soluzione a questo problema senza dover fare alcuna codifica. Ti spiego come ho fatto oggi di colonna e di come ho lavorato che per un ritardo di colonna, visto che la colonna era un dolore per scoprire come fare.

    Prima, ho fatto una colonna denominata “oggi” (gasp!). Poi ho fatto una colonna denominata “Giorni di Ritardo”. Poi ho aperto sharepoint designer e creato un nuovo flusso di lavoro. L’ho impostato per essere eseguito ogni volta che un elemento viene modificato/aggiornato (tenere in mente ho disattivato il controllo delle versioni per questo elenco, altrimenti avrei dovuto ricorrere alla codifica per evitare un mucchio di dati inutili costruire sul nostro server). Ho impostato le azioni che semplicemente memorizzare la data di modifica in una variabile del flusso di lavoro, quindi modificare il valore della colonna oggi a quella variabile. anche se la colonna modificata è una data/ora e il mio oggi colonna è solo una data, che trasferisce il bene. Ho quindi impostare il flusso di lavoro per una pausa di 2 ore. si può impostare qualsiasi quantità di tempo che si desidera, ovviamente, sarà sufficiente modificare l’ultimo momento possibile per la colonna di aggiornamento, cioè alle 2 di notte, nel mio caso.

    per i giorni di ritardo colonna. questo è il codice per quel ragazzo –

    =IF([Due Date]>Today,"None",IF([Date Closed]=0,Today-[Due Date],IF([Due Date]>[Date Closed],"None",IF(Today>=[Date Closed],[Date Closed]-[Due Date],IF([Due Date]<Today,Today-[Due Date])))))

    Questo mostra il numero di giorni in ritardo nel numero di modulo in giorni, o se la sua non è in ritardo, si mostra “Nessuno”. È possibile utilizzare un formato di numero o una stringa di formato, ma NON è UN FORMATO di DATA. Bene, spero che questo aiuta chi è in esecuzione in questo problema e non voglio approfondire la codifica.

    EDIT: ho dimenticato di dire che nel codice di cui sopra per i giorni di ritardo colonna, ho messo che se oggi è oltre la data di chiusura, di utilizzare la data di chiusura meno la data di scadenza, invece, oggi meno la data di scadenza, per assicurare che il calcolo non tenere che si verificano dopo che un elemento è stato chiuso. probabilmente avrebbe notato che nel codice, ma mi sento di dover precisare, giusto in caso.

    EDIT 2: Il codice che ho avuto prima il mio 2 ° modifica per la mia colonna calcolata non calcolare i giorni di ritardo correttamente dopo che un problema è stato contrassegnato come “chiuso”. Ho messo il codice aggiornato. L’ultima parte del codice non ha senso, in quanto è la stessa logica dell’inizio, ma ha funzionato, e quindi non voglio correre rischi! 🙂

    Pace.

    • Come sarebbe questo update ‘Giorni di Ritardo’ se la voce non fosse stata modificata per, diciamo una settimana? Mi manca qualcosa?
    • il mio male, ho impostato il flusso di lavoro di modificare una colonna fittizia dopo un’attesa di 2 ore, così trasformandosi di nuovo.
    • Questo è un po ‘vecchio, ma la prego mi dia un passo passo per questa parte:” ho impostato le azioni che semplicemente memorizzare la data di modifica in una variabile del flusso di lavoro, quindi modificare il valore della colonna oggi a quella variabile. anche se la colonna modificata è una data/ora e il mio oggi colonna è solo una data, che trasferisce il bene. Ho quindi impostare il flusso di lavoro per una pausa di 2 ore. si può impostare qualsiasi quantità di tempo che si desidera, ovviamente, sarà sufficiente modificare l’ultimo momento possibile per la colonna di aggiornamento, cioè alle 2 di notte, nel mio caso.”
  7. 0

    Ho usato il seguente e non ha avuto problemi.

    Nome Del Campo: In Ritardo

    Tipo Di Campo: Calcolato

    Tipo Di Dati Restituito: Sì/No

    Formula:
    =AND([Due Date]<NOW(),Status<>"Completed",[Due Date]<>"")

    • Non funziona – non aggiornare a meno che il record viene aggiornato. Controllare di nuovo domani e si vedrà.
  8. -1

    Qui è una soluzione:

    Creare una colonna di date chiamato Oggi.
    Utilizzare questa colonna calcolata con la formula (ignorare il fatto che la formula restituisce un valore errato).
    Dopo aver finito con la formula, elimina colonna Oggi dall’elenco.

    Per qualche motivo non funziona in questo modo! Ora Sharepoint tratta Oggi in formula alla data di oggi.

    Nota: Se si decide che si desidera modificare la formula, è necessario creare colonna Oggi di nuovo. In caso contrario, non riconosce Oggi come una valida colonna.

  9. -1

    Ho Provato @Farzad approccio sembra funzionare perfettamente. Ho voluto fare un numero personalizzato su Giorni Trascorsi così aggiunto una colonna calcolata che in precedenza ho usato una differenza tra il Data di creazione e Data di modifica Colonne, che era solo in mostra ogni volta che un utente aggiornato il post, molto per il mio sgomento.

    Ora ho una formula che funziona come vorrei e utilizza il Oggi colonna, e qui è per chiunque voglia utilizzarlo. Anche io ho una colonna di Stato, sulla base dei quali a base di, Hold e il restante formula in base alla data differenza di Oggi – Creato.

    =IF(Status="On Hold","On Hold",IF(AND(Today=Created,(DATEDIF(Created,Today,"D")=0)),"New",IF(AND(Today<>Created,(DATEDIF(Created,Today,"D")=0)),"New (updated)",IF(DATEDIF(Created,Today,"d")>3,"Need Update Immediately",IF(DATEDIF(Created,Today,"d")=1,"One day old",IF(DATEDIF(Created,Today,"d")=2,"Two days old",""))))))

    In pratica il suo solo un mucchio di nidificati SE condizioni che mi etichette in base a cui posso aggiungere un gruppo a mio modo di vedere e filtrare i dati, se necessario. Spero che questo aiuta qualcuno in cerca di una risposta!

Lascia un commento