Crystal Reports удаляет последний возврат каретки - PullRequest
0 голосов
/ 07 августа 2020

У меня есть такой блок адреса;

123 Fake St
Suburb, VI C
4512

Я хочу удалить только последний возврат каретки, чтобы он выглядит так;

123 Fake St
Suburb VI C 4512

Я использую следующий код, который, как мне кажется, находится на правильном пути, но он вообще не меняет текст. Totext там, потому что без него я получаю сообщение «здесь ожидается строка»

replace({Header.Address},totext(instr(strreverse({Header.Address}),chrw(13))) ,'')

Мне кажется, мне нужна только небольшая корректировка, но я просто не могу понять это из. Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 19 августа 2020

Решено в другом месте с помощью;

StrReverse(Replace(Replace(StrReverse({Header.Address}), chr(10), "", 1, 1), chr(13), "", 1, 1))

0 голосов
/ 07 августа 2020

Похоже, формат для перегрузки функции Replace (), которую вы используете, следующий.

Replace (inputString, findString, replaceString)

Вы определили значение аргумента findString как this.

totext(instr(strreverse({Header.Address}),chrw(13)))

Аргумент findString имеет тип данных String, поэтому вам пришлось добавить функцию ToText(), потому что InStr() возвращает целочисленное значение, представляющее индекс того, где находится возврат каретки в вашей перевернутой строке. Вам не нужен индекс для того, где находится возврат каретки в строке для перегрузки используемой вами функции Replace(), поэтому вы можете упростить свой аргумент findString для этого.

ChrW(13)

Это изменит вашу исходную формулу на это.

Replace({Header.Address}, ChrW(13) ,'')

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

Replace({Header.Address}, ChrW(10) ,'')

В некоторых случаях вам может потребоваться заменить символы перевода строки и возврата каретки. Для этого вам нужна эта вложенная версия формулы.

Replace(    Replace({Header.Address}, ChrW(10) ,''), ChrW(13) ,'')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...