Авторизация



Изменение элементов репозитория в отчете

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

Как уже отмечалось ранее в этой главе, после добавления объекта из репозитория в отчет могут возникать некоторые затруднения. Это случается при попытке изменения формата текстового объекта из репозитория, изменения размеров растровой графики, взятой из репозитория, либо изменения текста команды SQL или пользовательской функции, которые ранее были сохранены в репозитории. Во всех этих случаях вы обнаруживаете, что объекты “заблокированы” или установлены в состояние “только для чтения”. Эти состояния изменить нельзя.

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

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

Совет. Чтобы подсоединенные объекты обновлялись при первоначальном открытии отчета, потребуется выполнить одно из двух действий. Выбрав в меню File (Файл) пункт Options (Параметры) и установив флажок Update Connected Repository Objects on Open (Обновлять подсоединенные к репозиторию объекты при открытии) на вкладке Reporting (Отчеты) диалогового окна Options (Параметры), вы добьетесь того, что все отчеты будут автоматически обновлять подсоединенные объекты в момент их открытия. Если обновление подсоединенных объектов должно осуществляться только для конкретных отчетов, следует отказаться от установки глобального флажка Update Connected Repository Objects on Open и установить флажок Update Repository Objects (Обновлять подсоединенные объекты) в диалоговом окне открытия файлов, как показано на рис. 17.10.

При желании изменить это поведение и иметь возможность вносить изменения в добавленные из репозитория объекты вручную, вам потребуется отсоединить эти объекты от репозитория. Начните со щелчка правой кнопкой мыши на нужном объекте. Если это текстовый объект или растровое изображение, щелкните на нем правой кнопкой мыши прямо во вкладке Design или Preview. Если это команда SQL или пользовательская функция, щелкните на ее имени правой кнопкой мыши в соответствующем диалоговом окне. В появившемся контекстном меню выберите пункт Disconnect From Repository (Отсоединить от репозитория). Обратите внимание на то, что после этого вы сможете изменять размеры или формат текстового объекта и растровой графики, равно как и содержимое команд SQL и пользовательских функций. Кроме того, исчезнет упоминавшаяся выше пиктограмма присоединенного состояния (с изображением вертикальной черты).

Рис. 17.10. Установка флажка Update Repository Objects в диалоговом окне открытия файлов

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

Обновление хранящихся в репозитории версий объектов

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

Как уже говорилось выше, редактировать или изменять объект, который подсоединен к репозиторию, нельзя. Это может приводить к путанице при необходимости обновить хранящуюся в репозитории копию объекта. Во избежание такой путаницы, давайте рассмотрим действия, которые должны быть выполнения для обновления копии объекта, хранящейся в репозитории:

1.   Добавьте объект из репозитория в отчет.

2.   Отсоедините объект от репозитория.

3.   Внесите необходимые изменения в объект.

4.   Сохраните этот объект в репозитории в той же папке и с тем же именем, что и исходный объект.

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

Изменение элементов репозитория в отчете

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

На заметку! Бизнес-представления, включая появившиеся в версии XI объекты динамических списков выбора, модифицируются с помощью доступного в Crystal Reports Server/ BusinessObjects Enterprise диспетчера бизнес-представлений Business View Manager — обновление бизнес-представлений в Crystal Reports невозможно. Диспетчер Crystal Enterprise Business View Manager подробно рассматривался в главе 16.

 

Управление правами доступа к репозиторию
Управление правами доступа на уровне папок и объектов
Сохранить в одной центральной базе данных несколько типов объектов отчета
Определение репозитория
Новая категория Enterprise Items в окне проводника Repository Explorer

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


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