Saltar al contenido

Sharepoint – Cómo usar Hoy y Yo en la columna Calculada

Este equipo especializado pasados algunos días de investigación y de juntar de datos, hallamos los datos necesarios, deseamos que resulte de gran utilidad para tu plan.

Solución:

Actualización 6/2017: lea: 13 de junio de 2017 Microsoft bloqueó el manejo del marcado HTML en los campos calculados de SharePoint: cómo recuperar la misma funcionalidad


## Documentación de columna calculada:

https://www.365csi.nl/vm365com/365coach/#/Calculated_Column_Functions_List



# Yo en una columna calculada

Usted puede no usar [Me] en una fórmula de columna calculada.

usted pueden usar [Me] en la configuración del filtro de vista

Como el [Created By] y [Modified By] Columnas y columnas de búsqueda [Me] no está disponible para columnas calculadas ya que la información textual no se almacena en el elemento de lista.
Presumo su comportamiento heredado. Aunque con la potencia de procesamiento actual, esas búsquedas adicionales podrían no afectar el rendimiento del servidor, hace 15 años realmente lo hizo.

obtener [Me] con Javascript

Más en: ¿Cómo obtener un usuario actual con javascript?

#Hoy en una columna calculada

Christophe documentó hace mucho tiempo que el truco de HOY al agregar y eliminar una columna llamada HOY no no trabaja:
http://blog.pathtosharepoint.com/2008/08/14/calculated-columns-the-useless-today-trick/

  • Las fórmulas calculadas solo se modifican / actualizan cuando un elemento cambia

Lee eso una vez más:

  • Las fórmulas calculadas solo se modifican / actualizan cuando un elemento cambia

¿Entiendo?

Eso significa que cualquier referencia a una función Hoy
obtener el resultado de la ÚLTIMA actualización de artículo.
Hoy hace no se comportan igual que en Excel.

¿Por qué crees que funciona?

Cuando cambia una fórmula, esencialmente está actualizando todos los elementos de la lista; así que sí, el resultado de Hoy es correcto … pero espere hasta mañana y será un día de compensación.

Si quieres este comportamiento (¿pero por qué? lo harías, ya que TODAY () es lo mismo que [Modified]) y desea escribir los 5 caracteres HOY, puede usar el Hoy dia()función en una fórmula. No es necesario crear y eliminar columnas. Tenga en cuenta que el Ahora()función le da una marca de tiempo (como la columna Modificada predeterminada

Filtrar vista por fecha

Solo puedes usar [Today] en las opciones de Ver filtro
(sume o reste el número de días, 5475 = 15 años)

Importante: ¡¡¡NO use espacios en estas fórmulas !!!

Para un uso más avanzado de [Today] Filtración (Filtrar por mes actual, etc.) ver: http://blog.pentalogic.net/2009/11/howto-filter-items-current-calendar-month-view-sharepoint/

Pero el filtrado no te atrapa hoy calculos en un Vista

### Visualización de un [Due Date] cálculo en una vista basada en la fecha de hoy

Su navegador conoce la fecha de hoy, por lo que puede usar la Representación del lado del cliente (CSR) y algunos enlaces JS para cambiar la forma en que se muestran las Vistas.

Ahora eso requiere algo de programación JavaScript.

Nota:

en junio de 2017, Microsoft deshabilitó el uso de JavaScript en una columna calculada

Eso significa que es posible que las respuestas dadas no se apliquen a las versiones más recientes de SharePoint.

Para obtener una explicación detallada y soluciones alternativas, consulte:
13 de junio de 2017 Microsoft bloqueó el manejo del marcado HTML en los campos calculados de SharePoint: cómo recuperar la misma funcionalidad


** Respuesta original: **

Si es vago, como yo, puede abusar de una columna calculada para mostrar HTML / JavaScript

  • Crear una columna calculada

  • Establecer el tipo de datos en Número

  • Pegar la fórmula

      =IF(ISBLANK([Due Date]),"Missing Due date",
      "")
    

Notas:

  • Explicación completa sobre por qué funciona (y cuándo no usarlo) en: http://www.viewmaster365.com/#/How especialmente lea los pros y los contras !!
  • Los meses de JavaScripts comienzan con 0 para enero, por lo que debe restar 1
  • la imagen del truco para disparar el Javascript se reemplaza con su texto
  • A diferencia de la RSE no es necesario incluir la fecha de vencimiento en la vista
  • Todo esto solo funciona en Vistas, para Formularios debes usar CSR

### Añadiendo algo de color

Solo 5 líneas de javascript extra (intente eso con CSR), y las filas de la tabla están coloreadas según un rango y colores CSS coincidentes

    =IF(ISBLANK([Due Date]),"Missing Due date",
    "")

### Una versión compacta

Alguien (con razón) se quejó de que este script se agrega para cada elemento de la lista. En una vista con 1000 elementos que agrega algo de peso. Entonces, el Javascript debe ser lo más compacto posible.

También quería atenuar las filas que se completaron.

    =IF(ISBLANK([Due Date]),"Missing Due date","[-365*20,-365*10,-365*5,0,10][C])C++;"    
    &"while(T.tagName!='TR')T=T.parentNode;"    
    &"T.style.backgroundColor='#'+['DA0','FF0','FCC','9E9','3B7','3C3'][C];"    
    &IF([Completed] , "T.style.opacity=.7;" )   
    &"this.parentNode.innerHTML=N<0?-N+' days past':N+' days to go';"   
    &""">") 

Esto agrega 340 bytes por artículo (¡Pero NO para fechas en blanco!) a la página, es decir, 332 Kb para 1000 elementos, aproximadamente el 10% de toda la página Vista de lista.

Si el tamaño de la página es un problema, descárguelo a una función de CSR

Tenga en cuenta el uso de [Completed]

La fórmula está preconstruyendo el Javascript; en CSR, esta sería una condición que se evalúa una y otra vez … también tenga en cuenta que CSR solo puede operar con datos en la Vista. En CSR, no puede colorear los elementos de rojo que nunca se cambiaron si esos campos no se muestran en la Vista, aquí hay una línea:

&IF( [Created]=[Modified] , "this.parentNode.style.color='red';")

### CalcMaster Bookmarklet para editar fórmulas Es un PITA para depurar columnas calculadas. Porque no recibe comentarios hasta que guarda una fórmula y termina teniendo que hacer clic varias veces para volver a su fórmula.

He escrito un pequeño bookmarklet ‘CalcMaster’ que se conecta al editor de fórmulas y guarda la Fórmula con cada pulsación de tecla; dar retroalimentación inmediata.
Publicó una primera versión en GitHub:

https://github.com/Danny-Engelman/CalcMaster

Escribir menos JavaScript CSR con iCSR.js

Este iCSR Fuente abierta La biblioteca de soporte de CSR puede realizar cálculos de Today y facilitar el formateo.

Si tiene una columna “ContractEndDate” (o cualquier columna DateTime), declaras:

Cambie la definición de vista a:

      "ContractEndDate":{//date column with the contract end date
        View : iCSR.DueDate(
          ranges:     "coral/red,-1,lightcoral,0,khaki/red,89,lightgreen,90,yellowgreen",
          colortag:   "TR",
          red:        "style=color:[msRed]",
          labelNodate:"No Contract Enddate!",
          labelToday: "Today",
        )

No es necesario OnPostRender ni nada más

Y obtienes:

iCSR.js es de código abierto en GitHub

Editar archivos CSR

Utilice la extensión del navegador Cisar Chrome de Andrei Markeev

iCSRjs

I1 ICC top20

No puede especificar directamente hoy y yo en la columna calculada para establecer los valores. Tendrás que crear columnas con el nombre Hoy dia y Me y luego utilícelo en su columna calculada.

Una vez que haya terminado con la fórmula para la columna calculada, debe eliminar las 2 columnas creadas para esto. Creo que esto hará que tus cosas funcionen.

El construido en [Today] y [Me] los valores nunca han funcionado en columnas calculadas, todas las referencias a esto en versiones anteriores eran “hacks” como menciona Sane.

La mejor manera de hacer esto sería a través del flujo de trabajo en la creación / edición de elementos, actualice un campo según la fórmula que desee o podría probar un receptor de eventos remoto para manejarlo.

Aquí puedes ver las comentarios y valoraciones de los lectores

Acuérdate de que puedes añadir un enjuiciamiento objetivo si chocaste tu atolladero justo a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 3)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *