Как указано в заголовке, у меня есть две таблицы, которые я пытаюсь связать. Обе строки кажутся совпадающими, однако Crystal Reports не улавливает их. Единственное, что я могу думать, это то, что длина поля разная, хотя строки одинаковые. может ли это вызвать несоответствие? Если да, то как я могу это исправить? Спасибо
Crystal сообщает о безуспешной попытке связать две таблицы с помощью соответствующей строки
- только что подтвердил, что одна строка — String[10], а другая — String[50]. 13.11.2019
- Я также пытался связать это как подотчет, используя урезанную версию строки, но безрезультатно. 13.11.2019
Ответы:
Длина строки предотвратит совпадение. Если вы используете функцию Trim(string)
, она удаляет пробелы только в начале или в конце вашей строки, поэтому две строки могут иметь разную длину после использования этой функции. Вам нужно будет использовать другую функцию для захвата подстроки исходной строки. Для этого вы можете использовать функцию Left(string, length)
, чтобы убедиться, что обе строки имеют одинаковую длину.
Если они по-прежнему не совпадают, возможно, в одной или обеих строках есть непечатаемые символы. Возврат каретки и перевод строки, как правило, являются наиболее часто встречающимися непечатаемыми символами. Возврат каретки представлен как Chr(10)
, а перевод строки представлен как Chr(13)
. Это встроенные константы, подобные тем, которые можно найти в VBA и Visual Basic.
Вы можете использовать поиск и замену, чтобы удалить их с помощью следующей формулы. Неплохая идея также включить в него функции обрезки и левого края, чтобы обеспечить наилучшее соответствие.
Replace(Replace(Left(Trim({YourStringField}), 10),Chr(10), ""),Chr(13), "")
Есть несколько дополнительных встроенных констант, которые вам, возможно, придется проверить, если это не сработает. Вкладка представлена, например, как Chr(9)
. Однако строки очень редко содержат другие встроенные константы. В большинстве случаев возврат каретки и перевод строки — единственные, которые обычно встречаются в обычном тексте. Вкладки и другие константы должны встречаться только в форматированном тексте и очень редко встречаются в строковых данных.