Ниже приведен пример использования операции SetPrxMd для создания элемента управления в регламентном отчете. В запросе передается моникёр открытого экземпляра отчета, шаблон, указывающий необходимость создать элемент управления, и метаданные, содержащие параметры нового элемента управления. Результатом работы операции будет обновленная информация обо всех элементах управления регламентного отчета.
{
"SetPrxMd" :
{
"tPrx" :
{
"id" : "S1!M!S!P2"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"controls" : "Add"
},
"meta" :
{
"controls" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"autoRecalc" : "true",
"binding" :
{
"value" :
{
"@type" : "q1:UiControlBindingComboBox",
"UI" : "ComboBox",
"value" : "Понедельник",
"listMode" : "true",
"items" : "Понедельник|Вторник|Среда|Четверг|Пятница|Суббота|Воскресенье",
"separators" : "|"
}
}
}
]
}
}
},
"metaGet" :
{
"obInst" : "true",
"controls" : "Get"
}
}
}
}
{
"SetPrxMdResult" :
{
"id" :
{
"id" : "S1!M!S!P2"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "1",
"@hf" : "0",
"i" : "REPORT_1",
"n" : "Регламентный отчет",
"k" : "6334",
"c" : "2562",
"p" : "6333",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "1",
"controls" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "ITEM",
"n" : "ITEM",
"vis" : "1",
"value" :
{
"value" : "",
"dt" : "0",
"dimId" :
{
"id" : "S1!M!S!P2!Controls!1"
}
},
"autoRecalc" : "1",
"recalcOnChange" : "0",
"size" :
{
"width" : "-1",
"height" : "-1",
"units" : "DLU96"
},
"dimension" :
{
"dataSource" :
{
"k" : "1",
"id" : "STD_CUBE",
"n" : "Куб",
"vis" : "1"
},
"slice" :
{
"k" : "1",
"id" : "Срез1",
"n" : "Срез1",
"vis" : "1"
},
"dimension" :
{
"k" : "112",
"id" : "CALENDAR",
"n" : "Календарь",
"vis" : "1"
}
},
"appearance" :
{
"report" : "1",
"specificRecalc" : "1",
"recalcAllSheets" : "1"
},
"multiSelect" : "1",
"binding" :
{
"value" :
{
"@type" : "q1:UiControlBindingDimCombo",
"UI" : "DimCombo",
"object" : "CALENDAR",
"valueAttribute" : "ORDER",
"levelAttribute" : "0{}",
"paramValues" : ""
}
},
"changeCounters" :
{
"Content" : "0",
"Structure" : "0"
}
},
{
"k" : "2",
"id" : "ITEM1",
"n" : "ITEM1",
"vis" : "1",
"value" :
{
"value" : "Понедельник",
"dt" : "1"
},
"autoRecalc" : "1",
"recalcOnChange" : "0",
"size" :
{
"width" : "-1",
"height" : "-1",
"units" : "DLU96"
},
"appearance" :
{
"report" : "1",
"specificRecalc" : "0"
},
"multiSelect" : "2",
"binding" :
{
"value" :
{
"@type" : "q1:UiControlBindingComboBox",
"UI" : "ComboBox",
"value" : "Понедельник",
"listMode" : "1",
"items" : "Понедельник|Вторник|Среда|Четверг|Пятница|Суббота|Воскресенье",
"separators" : "|"
}
},
"changeCounters" :
{
"Content" : "0",
"Structure" : "0"
}
}
]
},
"sheetControlsOrders" :
{
"its" :
{
"it" :
[
{
"SheetKey" : "1",
"order" :
{
"it" :
[
"1",
"2"
]
}
},
{
"SheetKey" : "2",
"order" :
{
"it" :
[
"1",
"2"
]
}
}
]
}
}
},
"dataChange" :
{
"isDataChanged" : "0"
}
}
}
}
public static SetPrxMdResult CreatePrxControl(PrxId moniker)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tArg = new SetPrxMd()
{
tArg = new SetPrxMdArg()
{
meta = new PrxMd()
{
controls = new PrxControls()
{
its = new PrxControl[1]
{
//Параметры создаваемого элемента управления
new PrxControl()
{
autoRecalc = true,
//Параметры редактора элемента управления
binding = new UiControlBinding()
{
value = new UiControlBindingComboBox()
{
UI = "ComboBox",
items = "Понедельник|Вторник|Среда|Четверг|Пятница|Суббота|Воскресенье",
separators = "|",
value = "Понедельник",
listMode = true
}
}
}
}
}
},
pattern = new PrxMdPattern()
{
controls = ListOperation.Add
},
metaGet = new PrxMdPattern()
{
controls = ListOperation.Get
}
},
tPrx = moniker
};
//Получение метаданных
var result = somClient.SetPrxMd(tArg);
return result;
}
См. также: