Pregunta

Parece que sería una cosa simple en realidad (y puede ser), pero estoy tratando de tomar los datos de cadena de una columna y luego a través de una columna calculada, reemplazar todos los espacios con de% 20 de manera que el código HTML enlace del correo electrónico de flujo de trabajo producido en realidad no se romperá en el primer espacio.

Por ejemplo, tenemos esto en nuestra columna de origen:

file: /// Z: / data / Esta es nuestra report.rpt

Y le gustaría terminar con esto en la columna calculada:

file: /// Z: /data/This%20is%20our%20report.rpt

ya han utilizado el reemplazar y formado por un super espantosa anidado reemplazar a la versión / SEARCH, pero el problema no es que usted tiene para anidar para cada espacio potencial, y si usted no sabe cuántos en la delantera, que doesn' t trabajo, o se perderá alguna.

¿Alguno de ustedes vienen a través de este escenario y cómo lo manejaste?

Gracias de antemano!

¿Fue útil?

Solución

Por lo que yo sé no hay una solución genérica utilizando la sintaxis de la columna calculada. La solución estándar para esta situación está utilizando un evento ItemAdded (/ ItemUpdated) e inicializar el valor del campo de código.

Otros consejos

  

para que el enlace HTML en el correo electrónico de flujo de trabajo producido en realidad no se rompa en el primer espacio.

El navegador sólo hace esto si tiene no cerrado su enlace entre comillas

Si envuelve el enlace entre comillas, lo hace no cortado en el primer espacio

en una fórmula SharePoint sería:

="""file:///Z:/data/This is our report.rpt"""

becuase dos citas son la notación SP escape a la salida de una cotización

Puede utilizar esta fórmula (recorte inicial para 1, en mi caso fue de 4):

=IF(ISBLANK([EUR Amount]),"",(TRIM(MID([EUR Amount],4,2))&TRIM(MID([EUR Amount],6,2))&TRIM(MID([EUR Amount],8,2))&TRIM(MID([EUR Amount],10,2))&TRIM(MID([EUR Amount],12,2))&TRIM(MID([EUR Amount],14,2)))*1)

yo era capaz de resolver este problema por mis circunstancias mediante el uso de una serie de columnas calculadas.

En la primera columna calculada (C1) entré en una fórmula para eliminar el primer espacio, algo como esto:

=IF(ISNUMBER(FIND(" ",[Title])),REPLACE([Title],FIND(" ",[Title]),1,"%20"),[Title])

En la segunda columna calculada (C2) utilicé:

=IF(ISNUMBER(FIND(" ",[C1])),REPLACE([C1],FIND(" ",[C1]),1,"%20"),[C1]).

En mi caso, quería codificar hasta cuatro espacios, por lo que utiliza 3 columnas calculadas (C1, C2, C3) de la misma manera y dieron el resultado deseado.

Esto no es tan eficiente como el uso de una sola columna calculada, pero si SUBSTITUTE no funcionará en el entorno de SharePoint, y no se puede utilizar un controlador de eventos o de flujo de trabajo, puede ofrecer una alternativa viable.

En realidad usó una fórmula ligeramente diferente, pero fue en una máquina de obra para la cual no tengo acceso en el momento, así que sólo agarramos esta fórmula de una S. O. similares pregunta. Cualquier fórmula que sustituirá a la primera aparición de un espacio con "% 20" va a funcionar, el truco consiste en: a) asegurarse de que la fórmula devuelve la cadena original sin cambios si no tiene más espacios en él, y b) la prueba, la prueba , prueba. Crear una vista de su lista que tiene el campo que está tratando de codificar, además de los campos calculados, y ver si usted está consiguiendo los resultados que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top