2

Похоже, что это было бы очень просто (и может быть), но я пытаюсь взять строковые данные столбца, а затем через вычисленный столбец, заменить все пробелы с% 20, так что ссылка HTML в рабочем письме, создаваемом электронной почтой, на самом деле не будет прерываться в первом месте.Sharepoint: Calculated Column заменить все пробелы

К примеру, у нас есть это в нашей колонке источник:

файла: /// Z:/данные/Это наш report.rpt

И хотел бы в конечном итоге с этим в расчетная колонка:

файла: /// Z: /data/This%20is%20our%20report.rpt

Уже используется REPLACE, и составил жуткая супер вложенными зАМЕНИТЬ/SEARCH V но проблема заключается в том, что вам нужно гнездиться для КАЖДОГО потенциального пространства, и если вы не знаете, сколько впереди, оно не работает или пропустит некоторые.

Есть ли у вас какой-либо из вас этот сценарий и как вы справились с этим?

Заранее благодарен!

ответ

4

Насколько я знаю, нет общего решения, использующего синтаксис расчетного столбца. Стандартным решением для этой ситуации является использование события ItemAdded (/ ItemUpdated) и инициализация значения поля из кода.

+0

Это хороший звонок, мы искали решение «более легкого веса», странно, что у них нет варианта REPLACE, который анализирует всю строку цели – curtisk

+0

Да, это серьезная боль. Набор формул основан на лингвисте Excel ... хотелось бы, чтобы они беспокоились о порте SUBSTITUTE, пока они были на нем. –

+0

достаточно верно ... удивительно, но в то же время неудивительно, в любом случае спасибо за предоставление подхода к методу события – curtisk

0

Я смог решить эту проблему для своих обстоятельств, используя серию вычисленных столбцов.

В первой вычисленной колонке (C1) я ввел формулу, чтобы удалить первое пространство, что-то вроде этого **: = IF (ISNUMBER (FIND («», [Title])), REPLACE ([Title] , FIND («», [Title]), 1, «% 20»), [Title])

Во второй подсчитанной колонке (C2) я использовал: = IF (ISNUMBER (FINN («", [ C1])), REPLACE ([C1], FIND ("", [C1]), 1, "% 20"), [C1]).

В моем случае я хотел кодировать до четырех пробелов, поэтому я использовал 3 вычисленных столбца (C1, C2, C3) тем же способом и получил желаемый результат.

Это не так эффективно, как использование одного вычисленного столбца, но если SUBSTITUTE не будет работать в вашей среде SharePoint, и вы не можете использовать обработчик событий или рабочий процесс, он может предложить приемлемую альтернативу.

** На самом деле я использовал немного другую формулу, но на рабочем компьютере, к которому у меня сейчас нет доступа, я просто схватил эту формулу из аналогичного S.O. вопрос. Любая формула, которая заменит первое вхождение пространства с «% 20», будет работать, трюк заключается в a) убедиться, что формула возвращает исходную строку без изменений, если в ней больше пробелов, и b) протестировать, проверить , контрольная работа. Создайте представление своего списка, в котором есть поле, которое вы пытаетесь кодировать, плюс вычисленные поля и посмотрите, получаете ли вы нужные результаты.

0

, так что ссылка HTML в рабочем письме, создаваемом электронной почтой, на самом деле не прерывается в первом пространстве.

Браузер только делает это, если у вас есть не прилагается вашу ссылку в кавычки

Если вы заключаете ссылку в кавычках, это делает не отрезать на первом пространстве

В Формула SharePoint:

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

Потому что две кавычки представляют собой обозначение SP escape для вывода цитаты