|
|
#1 |
|
Чайный пьяница
|
Открытие формы лукапа через JavaScript с кастомным View по умолчанию.
Добрый день коллеги,
Решаю сейчас сабжевую задачу. Использую примерно следующий код: Код: var EntityCode = 10008;
var defaultviewid = "{C1CBEED9-F1D5-E211-8006-005056B2000A}";
var customView = {
id: defaultviewid,
recordType: EntityCode,
name: "Credit Cards",
fetchXl: "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
"<entity name='sd_creditcard'>" +
"<attribute name='sd_creditcardid' />" +
"<attribute name='sd_creditcardnumber' />" +
"<attribute name='sd_nameofholder' />" +
"<attribute name='sd_expiration' />" +
"<attribute name='sd_cardtype' />" +
"<order attribute='sd_creditcardnumber' descending='false' />" +
"<filter type='and'>" +
"<condition attribute='sd_accountid' operator='eq' value='" + accountid[0].id + "' />" +
"</filter>" +
"</entity>" +
"</fetch>",
layoutXml: "<grid name='resultset' " +
"object='1' " +
"jump='sd_creditcardid' " +
"select='1' " +
"icon='1' " +
"preview='1'>" +
"<row name='result' id='sd_creditcardid'>" +
"<cell name='sd_creditcardnumber' width='150' />" +
"<cell name='sd_cardtype' width='100' />" +
"<cell name='sd_expiration' width='100' />" +
"<cell name='sd_nameofholder' width='150' />" +
"</row>" +
"</grid>",
Type: 0
};
var lookupItems = window.parent.LookupObjects(null, "single", EntityCode, 0, null, "", null, null, null, null, null, null, defaultviewid, [customView]);UPD window.parent для вызова используется по причине того, что вызов идёт из html вебресурса.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#2 |
|
Участник
|
var viewId = "{C0F1DD64-1BF3-450D-BCDE-DF4732DE1606}"; // "Генерируем" ID для нового представления
var entityName = "skb_legalentity"; // Имя объекта var viewDisplayName = "Юридические лица ВП"; // Задаем название нового представления var setDefault = true; // Определяем, будет ли наше новое представление дефолтным при открытии диалогового окна лукапа if (Xrm.Page.data.entity.attributes.get("skb_partnershipopportunityid").getValue()) { var oppName=Xrm.Page.data.entity.attributes.get("skb_partnershipopportunityid").getValue()[0].name; var oppId=Xrm.Page.data.entity.attributes.get("skb_partnershipopportunityid").getValue()[0].id; // Создаем XML запрос на запрос Юридических лиц var fetchXml = "" + "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" + "<entity name='skb_legalentity'>" + "<attribute name='skb_name' />" + "<attribute name='skb_legalentityid' />" + "<attribute name='skb_inn' />" + "<attribute name='skb_kpp' />" + "<order attribute='skb_name' descending='false' />" + "<link-entity name='account' from='accountid' to='skb_accountid' alias='aa'>" + "<link-entity name='skb_partnershipopportunity' from='skb_accountid' to='accountid' alias='ab'>" + "<filter type='and'>" + "<condition attribute='skb_partnershipopportunityid' operator='eq' uiname='" + oppName + "' uitype='skb_partnershipopportunity' value='" + oppId + "'/>" + "</filter>" + "</link-entity>" + "</link-entity>" + "</entity>" + "</fetch>"; // Определяем представление фильтрованного лукапа var layoutXml = "" + "<grid name='resultset' object='1' jump='name' select='1' icon='1' preview='1'>" + "<row name='result' id='skb_legalentityid'>" + "<cell name='skb_name' width='200' />" + "<cell name='skb_inn' width='100' />" + "<cell name='skb_kpp' width='100' />" + "</row>" + "</grid>"; // Задаем имя лукапа и задаем кастомное Представление для него var lookupControl = Xrm.Page.ui.controls.get('skb_legalentityid'); lookupControl.addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, setDefault); Я использую вот такой код, для кастомного представления. Посмотрите, может поможет. |
|
|
|
|
#3 |
|
Чайный пьяница
|
Вся проблема в том, что:
1. Это html вебресурс. Вроде писал про это. 2. Отсюда следует что и поля-лукапа у меня нет. Всё равно спасибо за попытку.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#4 |
|
Moderator
|
На самой форме код работает нормально? Если да, то попробуй что-то вроде
with (window.parent) { //JS CODE } В некоторых случаях это решает проблемы с областью видимости.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() MS Certified Dirty Magic Professional
|
|
|
|
|
#5 |
|
Участник
|
Я делал так:
Код: var url = Mscrm.CrmUri.create("/_controls/lookup/lookupinfo.aspx");
var args =
{
customViews: [{
id: "{A76B2C46-C28E-4E5E-9DDF-951B71202C9D}",
recordType: 3,
name: "Contact's opportunities",
fetchXml: fetchXml,
layoutXml: "<grid name=\"\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"0\"><row name=\"opportunity\" id=\"opportunityid\"><cell name=\"name\" width=\"300\" /></row></grid>",
Type: 0
}],
availableViews: null
};
url += "?AllowFilterOff=1&DefaultType=3&DefaultViewId=%7bA76B2C46-C28E-4E5E-9DDF-951B71202C9D%7d&DisableQuickFind=0&DisableViewPicker=0&LookupStyle=single&ShowNewButton=1&ShowPropButton=1&browse=false&objecttypes=3"
return openStdDlgWithCallback(url, args, 600, 600); |
|
|
|
|
#6 |
|
Участник
|
Работаю с лукапами на своем веб-ресурсе почти так как написал Anros, но вместо openStdDlgWithCallback использую openStdDlg так как openStdDlgWithCallback вызывает его.
Пока кастомные представления в лукапы не подставлял, но буду делать что-то похожое, потому что эти параметры мелькали пока заставилял работать мультилукапы, патилисты и лукап тем с обратным подставлением выбранного. |
|
|