Pergunta

Parece que seria uma coisa simples realmente (e pode ser), mas eu estou tentando tirar os dados de cadeia de uma coluna e, em seguida, através de uma coluna calculada, substituir todos os espaços por% 20 de modo que o HTML link no email fluxo de trabalho produzido realmente não vai quebrar no primeiro espaço.

Por exemplo, nós temos isso em nossa coluna fonte:

file: /// Z: / dados / Este é o nosso report.rpt

E gostaria de acabar com isso na coluna calculada:

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

Já usou o REPLACE, e fez-se um super medonho aninhado SUBSTITUIR / versão de busca, mas o problema é que você tem que ninho para cada espaço potencial, e se você não sabe quantas frente para cima, ele doesn' t trabalho, ou vai perder alguns.

Algum de você se deparar com este cenário e como você lidou com isso?

Agradecemos antecipadamente!

Foi útil?

Solução

Tanto quanto eu sei que não há solução genérica usando a sintaxe da coluna calculada. A solução padrão para esta situação é através de um evento ItemAdded (/ ItemUpdated) e inicializar o valor do campo de código.

Outras dicas

para que o link HTML no e-mail de fluxo de trabalho produzido realmente não vai quebrar no primeiro espaço.

O navegador só faz isso se você tiver não fechado seu link entre aspas

Se você quebrar a ligação entre aspas, ele não cortado no primeiro espaço

Em um Fórmula SharePoint seria:

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

becuase duas citações são a notação SP fuga para a saída de uma citação

Você pode usar esta fórmula (guarnição Iniciar para 1, no meu caso era 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)

Eu era capaz de resolver este problema para minhas circunstâncias, utilizando uma série de colunas calculadas.

Na coluna calculada primeiro (C1) entrei em uma fórmula para remover o primeiro espaço, algo como isto:

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

Na coluna segunda Calculado (C2) que eu usei:

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

No meu caso, queria codificam até quatro espaços, para utilizado 3 colunas calculadas (C1, C2, C3) da mesma maneira e com o resultado desejado.

Este não é tão eficiente quanto usar uma única coluna calculado, mas se SUBSTITUTE não vai funcionar em seu ambiente SharePoint, e você não pode usar um manipulador de eventos ou fluxo de trabalho, pode oferecer uma alternativa viável.

Na verdade, eu usei uma fórmula ligeiramente diferente, mas foi em uma máquina de trabalho a que eu não tenho acesso no momento, então eu apenas agarrou esta fórmula de um S.O. semelhante questão. Qualquer fórmula que irá substituir a primeira ocorrência de um espaço com "% 20" vai funcionar, o truque é a) certificar-se a fórmula retorna o string original inalterada, se ele não tem mais espaços nele, e b) teste, teste , teste. Criar uma vista de sua lista que tem o campo que você está tentando codificar, mais os campos calculados, e veja se você está obtendo os resultados desejados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top