Простой ввод с клавиатуры литерального текста в текстовые объекты означает игнорирование их возможностей. Текстовые объекты представляют собой мощные элементы, которые позволяют создавать весьма привлекательные отчеты. Взгляните на рис. 2.2. На этом рисунке показано начало стандартного письма, в котором используются данные из таблицы Customers (Заказчики), хранящейся в файле XTREME.MBD (этот файл поставляется вместе с пакетом Crystal Reports). Обратите внимание на наличие проблемы с расположением таких элементов, как контактное имя, название города и штата, а также почтовый код. Эти строки состоят из отдельных полей, извлекаемых из таблицы Customers. Не имеет значения, сколько вы сделали попыток, и какую изобретательность проявили, выбирая размеры и места для этих полей — выровнять их для всех заказчиков без исключения все равно не удастся. Они появляются в одном и том же месте по горизонтали в каждом разделе подробностей, независимо от того, насколько узкими или широкими они являются.
Наличие подобных проблем говорит о том, что данное письмо было сгенерировано компьютером. И хотя большинство пользователей, несомненно, смогут догадаться, что письма, которые они получают, составлены не без участия компьютера, вы вряд ли захотите, чтобы это бросалось им в глаза. Crystal Reports позволяет исправить эту ситуацию с помощью текстовых объектов.
В текстовые объекты разрешается добавлять не только литеральный текст, но и поля из базы данных. При отображении текстовый объект автоматически подгоняет свои размеры в соответствии с содержимым полей базы данных так, чтобы не оставалось свободного пространства. На рис. 2.3 показано то же стандартное письмо, что и на рис. 2.2, но только в этот раз поля из базы данных были объединены с литеральным текстом и пробелами с помощью текстовых объектов.
Чтобы объединить поля внутри текстового объекта, выполните следующие действия:
1. Вставьте текстовый объект, как было описано выше. Если вы хотите включить какой-нибудь литеральный текст, вы можете сделать это либо прямо сейчас, либо после того, как вставите поля из базы данных. То, останетесь вы после этого в режиме редактирования или выйдите из него, не имеет особого значения.
2. В окне проводника Field Explorer выберите поле или несколько полей, которые хотите объединить в текстовом объекте.
Перетащите их из Field Explorer в текстовый объект. Обратите внимание на то, что после наведения на текстовый объект курсор мыши изменится, и в это же время в текстовом объекте появится мерцающий курсор (рис. 2.4).
3. Прежде чем оставлять одно или несколько полей базы данных в текстовом объекте, внимательно посмотрите, где находится мерцающий курсор. После того, как вы отпустите кнопку мыши, поле или поля из базы данных будут размещены именно в том месте, в котором находится курсор. Отпускайте кнопку мыши только тогда, когда курсор находится в нужном месте.
4. Если вы уже редактировали текстовый объект перед тем, как начали перетаскивать в него поле базы данных, он так и останется в режиме редактирования. В этом случае вы сразу можете ввести в него еще какой-нибудь текст или, если нужно, добавить еще одно поле из базы данных. Если на момент перетаскивания поля текстовый объект не находился в режиме редактирования, поле будет размещено внутри объекта без перехода в режим редактирования. Если вы захотите добавить в объект еще какой-нибудь текст, вам нужно будет дважды щелкнуть на текстовом объекте, чтобы поместить его в режим редактирования.
5. Завершив объединять поля и литеральный текст, выйдите из режима редактирования, щелкнув за пределами текстового объекта.