При составлении выражения, включающего в себя несколько полей, можно не получить желаемого результата из-за того, что результирующее выражение будет содержать незначащие (лидирующие и завершающие) пробелы. Для их исключения нужно сначала удалить незначащие пробелы из значений полей, а затем объединить поля в одно выражение. Допустим, вы хотите отобразить адресную строку, содержащую названия города, области и почтовый код. Если указать поля в строке друг за другом, то между значениями этих полей могут появиться незначащие пробелы.

Обрезание полей и выражения для объединения

Вы можете применить обрезание и объединение  к выражениям, содержащим поля с переменной длиной значения. Сначала из каждого такого поля функцией ALLTRIM( ) надо удалить незначащие пробелы, при этом знаки пунктуации и значащие пробелы заключаются в кавычки (" "), а затем объединить поля с помощью знака плюс (+).

Длина значения в поле может быть переменной, как в поле с названием города, или постоянной, как в поле с почтовым кодом. В следующем примере показано, что функция ALLTRIM( ) применяется только к полям с переменной длиной значения:

  Копировать код
ALLTRIM(city) + ", " + region + " " + postal_code
Замечание:
Обратите внимание на то, что в кавычки заключена не только запятая, но и пробел.

Для лучшего понимания смотрите пример отчета Invoice.frx в папке Visual FoxPro ...\Samples\Solution\Reports.

Выражения для быстрого обрезания и объединения

Если знаки пунктуации не нужны, то можно применить быстрое обрезание и объединение, поставив запятую (,) между выражениями. При этом из значения выражения, стоящего перед запятой, будут удалены незначащие пробелы .

Замечание:
Если значение, полученное после удаления незначащих пробелов, имеет длину больше нуля, то его можно перенести на новую строку, поставив вслед за выражением точку с запятой (;).

В следующем примере показано применение выражений для обрезания и объединения для нескольких полей в почтовом адресе:

  Копировать код
contact_name; address; city, region, postal_code

См. также