Авторизация



Отображение старых полей на поля с новыми именами

Оценить
(0 голоса)

Изменение базы данных может привести к несоответствию имен полей в отчете. Например, предположим, что исходный отчет создавался на основе базы данных Microsoft Access, которая включает поле с именем Account Number (Номер счета) (обратите внимание на то, что наличие пробела между словами в Crystal Reports имеет значение). Со временем этот же отчет понадобился для работы с базой данных SQL Server, в которой поле имеет имя Account Number (обратите внимание на то, что символ пробела заменен символом подчеркивания).

Всякий раз при обнаружении подобного рода изменений Crystal Reports не может знать наверняка, с каким полем новой базы данных теперь должен ассоциироваться старый объект отчета. Функция отображения полей (Field Mapping) позволяет сопоставлять старые объекты с полями новой базы данных. Она просто предоставляет возможность изменять имя поля, на которое ссылается отчет, так что, например, все объекты, до этого ассоциируемые с Account Number, теперь будут ассоциироваться с Account_Number. Не потребуется изменять формулы, удалять старые объекты и добавлять новые.

Функцию отображения полей (Field Mapping) нельзя выбрать через меню. Она запускается автоматически, когда Crystal Reports обнаруживает измененные имена полей в исходной базе данных. Crystal Reports просматривает базу данных на предмет наличия в ней изменений каждый раз, когда выполняется верификация базы данных, или используется функция определения расположения источника данных (Set Datasource Location) для замены базы данных или соединения с источником данных. Обнаружив в отчете поля, которые более не существуют в базе данных, Crystal Reports выводит диалоговое окно Map Fields, показанное на рис. 18.6.

Диалоговое окно Map Fields включает четыре списка. В верхнем левом углу окна находится список полей отчета, имена которых не совпадают ни с одним именем поля в новой базе данных. В списке в верхнем правом углу окна перечислены поля новой базы данных, на которые можно отображать поля отчета. Чтобы установить соответствие между полями отчета и полями новой базы данных, в списке в верхнем левом углу выделите поле отчета, которое хотите отобразить, а в списке в верхнем правом углу — подходящее

поле базы данных, после чего щелкните на кнопке Мар (Отобразить). Поля будут перенесены из верхних списков в нижние.

Рис. 18.6. Диалоговое окно Map Fields

Список полей базы данных изменится согласно тому, был установлен флажок Match Туре (Совпадение типов) или нет. Если флажок был установлен, отображаться будут только поля, тип которых полностью соответствует типу выбранного поля. Это гарантирует корректное отображение полей и исключает вероятность случайного отображения строкового поля на числовое поле или поле даты/времени (хотя иногда это может и понадобиться). Однако не исключены ситуации, когда из-за несоответствия типов данных поле, которое необходимо отобразить, будет отсутствовать в списке справа. Например, отображая поля из базы данных Microsoft Access на поля в базе данных SQL Server, вы можете не обнаружить в базе данных SQL Server поля, соответствующего полю валюты в базе данных Access. В таком случае снимите отметку с флажка Match Туре и самостоятельно отыщите подходящее для отображения поле.

При первом открытии диалогового окна Map Fields некоторые поля уже, вероятно, будут представлены в двух нижних списках Mapped Fields (Отображенные поля). В списке, находящемся в нижнем левом углу окна, будут перечислены поля отчета, у которых уже есть соответствующие поля в новой базе данных. После отображения полей из верхних списков эти поля будут также перенесены в нижние списки. Если текущее отображение было выполнено Crystal Reports (поскольку имена полей идентичны), или если по ошибке были отображены поля, не соответствующие друг другу, необходимо выбрать нужное поле из списка, расположенного в нижнем левом или нижнем правом углу окна.

Отображение старых полей на поля с новыми именами

Отображенное поле будет выделено в соседнем списке. Затем можно щелкнуть на кнопке Unmap (Отменить отображение), чтобы отменить отображение полей и переместить их обратно в расположенные в верхней части окна списки.

Закончив отображать поля, щелкните на кнопке ОК, чтобы закрыть диалоговое окно Map Fields. Теперь Crystal Reports будет ассоциировать отображенные поля с новой базой данных. Вкладка Design, равно как и любые формулы, будет отображать новые имена полей. Если дополнительные таблицы содержат поля, для которых соответствия найдены не были, для каждой последующей из них будет открываться диалоговое окно Map Fields.

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

Три функции для эффективной обработки изменений
Распознавание изменений в базе данных
Верификация базы данных
Опция Verify on First Refresh
Использование функции Set Datasource Location

Добавить комментарий


Защитный код
Обновить