Кастомизация
25
Ноя
5

Изменение интерфейса с помощью ISV.Config

Главное окно

Кнопка на панели инструментов

<Root>
...
<ToolBar>
	<Button Icon="/_imgs/ico_18_debug.gif" JavaScript="alert('Тест');">
		<Titles>
			<Title LCID="1049" Text="Кнопель" />
		</Titles>
		<ToolTips>
			<ToolTip LCID="1049" Text="Кнопка" />
		</ToolTips>
	</Button>
	<ToolBarSpacer />
</ToolBar>
...
</Root>

Меню на панели инструментов

<Root>
...
<MenuBar>
<CustomMenus>
<Menu>
	<Titles>
		<Title LCID="1049" Text="Заголовок меню" />
	</Titles>
	<MenuItem Url="http://www.microsoft.com">
		<Titles>
			<Title LCID="1049" Text="Пункт 1" />
		</Titles>
	</MenuItem>
	<MenuSpacer />
	<SubMenu>
		<Titles>
			<Title LCID="1049" Text="Заголовок подменю 1" />
		</Titles>
		<MenuItem Url="http://www.microsoft.com">
			<Titles>
				<Title LCID="1049" Text="Подпункт 1" />
			</Titles>
		</MenuItem>
		<MenuSpacer />
		<MenuItem JavaScript="alert('Тест');">
			<Titles>
				<Title LCID="1049" Text="Подпункт 2" />
			</Titles>
		</MenuItem>
	</SubMenu>
</Menu>
</CustomMenus>
</MenuBar>
...
</Root>

Представление

Кнопка

<Entities>
<Entity name="имя объекта">
...
<Grid>
<MenuBar>
<Buttons>
	<Button Icon="/_imgs/ico_18_debug.gif" Url="http://www.microsoft.com">
		<Titles>
			<Title LCID="1049" Text="Кнопка" />
		</Titles>
		<ToolTips>
			<ToolTip LCID="1049" Text="Кнопка" />
		</ToolTips>
	</Button>
	<ToolBarSpacer />
</Buttons>
</MenuBar>
</Grid>
...
</Entity>
</Entities>

Меню Действий

<Entities>
<Entity name="имя объекта">
...
<Grid>
<MenuBar>
<ActionsMenu>
	<MenuItem Url="http://www.microsoft.com">
		<Titles>
			<Title LCID="1049" Text="Пункт 1" />
		</Titles>
	</MenuItem>
	<MenuSpacer />
	<SubMenu>
		<Titles>
			<Title LCID="1049" Text="Заголовок подменю 1" />
		</Titles>
		<MenuItem Url="http://www.microsoft.com">
			<Titles>
				<Title LCID="1049" Text="Подпункт 1" />
			</Titles>
		</MenuItem>
		<MenuSpacer />
		<MenuItem>
			<Titles>
				<Title LCID="1049" Text="Подпункт 2" />
			</Titles>
         </MenuItem>
	</SubMenu>
</ActionsMenu>
</MenuBar>
</Grid>
...
</Entity>
</Entities>

Форма

Кнопка на панели инструментов

<Entities>
<Entity name="имя объекта">
...
<MenuBar>
<CustomMenus>
...
<ToolBar>
	<Button Icon="/_imgs/ico_18_debug.gif" JavaScript="alert('Тест');">
		<Titles>
			<Title LCID="1049" Text="Кнопель" />
		</Titles>
		<ToolTips>
			<ToolTip LCID="1049" Text="Кнопка" />
		</ToolTips>
	</Button>
	<ToolBarSpacer />
</ToolBar>
...
</Entity>
</Entities>

Меню на панели инструментов

<Entities>
<Entity name="имя объекта">
...
<MenuBar>
<CustomMenus>
<Menu>
	<Titles>
		<Title LCID="1049" Text="Заголовок меню" />
	</Titles>
	<MenuItem Url="http://www.microsoft.com">
		<Titles>
			<Title LCID="1049" Text="Пункт 1" />
		</Titles>
	</MenuItem>
	<MenuSpacer />
	<SubMenu>
		<Titles>
			<Title LCID="1049" Text="Заголовок подменю 1" />
		</Titles>
		<MenuItem Url="http://www.microsoft.com">
			<Titles>
				<Title LCID="1049" Text="Подпункт 1" />
			</Titles>
		</MenuItem>
		<MenuSpacer />
		<MenuItem JavaScript="alert('Тест');">
			<Titles>
				<Title LCID="1049" Text="Подпункт 2" />
			</Titles>
		</MenuItem>
	</SubMenu>
</Menu>
</CustomMenus>
</MenuBar>
...
</Entity>
</Entities>

Кнопка на левой навигационной панели

<Entities>
<Entity name="имя объекта">
...
<NavBar>
	<NavBarItem Icon="/_imgs/ico_18_debug.gif" Url="http://www.microsoft.com" Id="idItem" Area="Sales">		<Titles>
			<Title LCID="1049" Text="Кнопкааа" />
		</Titles>
	</NavBarItem>
</NavBar>
...
</Entity>
</Entities>

Доступные значения для Area:

  • Sales
  • Marketing
  • Service
  • Info

Заголовки стандартных групп в левой навигационной панели

<Root>
...
<NavBarAreas>
	<NavBarArea Id="Sales">
		<Titles>
			<Title LCID="1049" Text="Сервис 24 часа" />
			<Title LCID="1039" Text="Pampers" />
		</Titles>
	</NavBarArea>
	<NavBarArea Id="Service">
		<Titles>
			<Title LCID="1049" Text="Сервис 24 часа" />
		</Titles>
	</NavBarArea>
</NavBarAreas>
...
</Root>

Атрибуты

Для элементов возможны следующие атрибуты:

Имя Описание Тип Обязательное?
AccessKey Определяет символ, который работает как «горячая» клавиша для доступа к кнопке. Когда это определено, ALT + <клавиша> может использоваться для доступа к этой кнопке. String No
AvailableOffline Определяет, доступен ли элемент офлайн.
Возможные значения:

  • true = кнопка/меню отображается при офлайновом доступе [значение по умолчанию]
  • false = кнопка/меню не отображена при офлайновом доступе
Boolean No
Client Определяет через какой интерфейс доступен элемент. Значение по умолчанию – пробел – элемент отображается в обоих клиентах.
Возможные значения:

  • Web
  • Outlook
String No
Icon Определяет URL путь иконки для кнопки. Значок должен быть 16×16 пикселов. String No
JavaScript Определяет скрипт, который будет выполняться при нажатии кнопки. String No
PassParams Определяет, передается ли информация о записи и языковом контексте в строке URL.
Возможные значения:

  • 0 = параметры не передаются [значение по умолчанию]
  • 1 = параметры передаются
Boolean No
Url Определяет URL, который будет открыт при нажатии кнопки. String No
ValidForCreate Указывает, нужно ли показывать элемент в форме создания записи. Boolean No
WinMode Определяет режим окна.
Возможные значения:

  • 0 = Window [значение по умолчанию]
  • 1 = Modal Dialog
  • 2 = Modeless Dialog
Unsigned byte No
WinParams Определяет параметры, которые передадут окну. Формат этого параметра является различным в зависимости от значения параметра WinMode. String No

Примечания

  • Вы должны определить либо параметр URL, либо JavaScript. Если определены оба, URL будет проигнорирован;
  • Когда Вы открываете новое окно с помощью кнопки, и открываемая страница находится в том же самом домене что и сервер Microsoft Dynamics CRM, у Вас есть доступ к родительскому окну при использовании свойства window.dialogArguments;
  • Для WinMode = 0, используется метод window.open;
  • Для WinMode = 1 (modal dialog), window.showModalDialog метод используется;
  • Для WinMode = 2 (modeless dialog), используется метод window.showModelessDialog;
  • Если Вы используете в кнопке Значок (Icon) и/или Заголовок (Title), и если будет недостаточно места для отображения Значка и Заголовка, то текст будет скрыт (останется только Значок). Если важно, чтобы отображались и Заголовок и Значок, используйте элемент MenuItem.

Пример

<Button Icon="/_imgs/ico_18_debug.gif" Url="http://www.microsoft.com" PassParams="1" WinParams="" WinMode="0">
	<Titles>
		<Title LCID="1049" Text="Текст кирилицей" />
	</Titles>
	<ToolTips>
		<ToolTip LCID="1049" Text="Текст кирилицей" />
	</ToolTips>
</Button>

Передаваемые параметры

Если для элемента задана передача параметров и в качестве цели указан URL, то передаются следующие параметры:

Параметр Описание
typename Entity Name
type Entity Type Code
id Object GUID
orgname Organization Name
userlcid User Language Code
orglcid Organization Language Code

Например, если в качестве URL задан:

http://myserver/mypage.aspx

То при включенной передаче параметров в новое окно будет передана примерно такая строчка:

http://myserver/mypage.aspx?orgname=AdventureWorksCycle&userlcid=1033&orglcid=1033&type=1&typename=account&id=%7BDBD5DBFB-0666-DC11-A5D9-0003FF9CE217%7D
Комментарии (5)
  • Алексей 25.11.2009

    Вечер добрый! Занимаюсь как раз такой кастомизацией. Никак не могу добавить в элемент Menu формы иконку…

  • slivka_83 25.11.2009

    у них нет иконок 🙂

  • Алексей 25.11.2009

    я это подозревал…

  • Дмитрий 25.11.2009

    У меня та же проблема — не могу добавить иконку в элемент Menu. Но иконка нужна не просто так… Я добавил новый пункт в меню со списком подменю, практически у всех пользователей он работает нормально, но у некоторых из-за настроек (разрешения экрана и т.п.) он пропадает. Для стандартных пунктов меню (вроде «Отчёты»), у которых есть иконки, скрывается только текст, а иконка показывается, на неё можно нажать и увидеть выпадающий список. Хочется добиться такого же эффекта для моего меню. Как то можно сделать? Или проблему с пропаданием можно как-то по-другому решить?

  • slivka_83 25.11.2009

    Попробуйте такой способ http://mmcrm.ru/?p=1216 🙂

*

code