Можно ли использовать одну функцию замены для замены нескольких строк в одном поле? - PullRequest
6 голосов
/ 30 сентября 2011

В моем отчете мне нужно использовать встроенную функцию замены, чтобы заменить, например, «a» на «b» и «c» на «d».

Когда я просто использую 2 функции, подобные этой: Заменить (Поля! Field1.Value, "a", "b") & Заменить (Поля! Field1.Value, "c", "d") Я получаю текст из поля дважды в моем отчете.

Возможно ли это сделать? Может быть, гнездо для замены функций? Я новичок в службах отчетности, поэтому я мог упустить очень очевидное решение для этого.

Примечание. Для этого я написал бы свой собственный код, но этот отчет предназначен для Microsoft Dynamics CRM 2011, который не допускает использование пользовательского кода в отчете.

Ответы [ 3 ]

15 голосов
/ 30 сентября 2011

Вы должны вложить функции

Например, чтобы заменить 1 на a и 0 на b, вы можете написать выражение ниже

= Заменить (Replace (Fields! Field1.Value, "1", "а"), "0", "б")

0 голосов
/ 04 июля 2019

Хорошо, если вы сделаете это с

=Switch(
    Fields!Status.Value = "20", "Entered",
    Fields!Status.Value = "30", "Returned",
    Fields!Status.Value = "200", "Cancelled",
    Fields!Status.Value = "220", "Complete",
    Fields!Status.Value = "300", "Deleted"
)

Получено из другого стекового потока anser

0 голосов
/ 19 июня 2013

Это может быть немного сложно (сначала), когда у вас есть строка, часть которой повторяется в строке после нее, которую вы также хотите заменить. Вот вам пример: если вы используете вложенную функцию из niktrs для замены «Test» на «Test A» и «Test B» на «Test C», возвращается «Test A» и «Test A B». В этом примере вам нужно настроить выражение на:

= Заменить (Заменить (Fields! Field1.Value, "Test", "Test A"), "Test A B", "Test C")

С двумя или более строками такого типа вам нужно пройти путь (вниз по таблице) до последнего значения, которое необходимо заменить, что, к сожалению, может привести к относительно длинному выражению. Вероятно, лучше изменить запрос для набора данных, с которым вы работаете.

...