Для выполнения примера необходимо создать html-страницу и выполнить следующие действия:
1. Добавить ссылки на следующие css-файлы: PP.css, PP.Express.css.
Также нужно добавить ссылки на js-файлы: PP.js, PP.Metabase.js, PP.Express.js и resources.ru.js.
2. Затем в теге <head> дополнительно задаётся стиль для элементов:
<style type="text/css">
body, html
{
height: 100%;
width: 100%;
overflow: hidden;
}
</style>
3. Далее в теге <head> необходимо добавить скрипт, создающий контейнер для параметра экспресс-отчета EaxParameterBox, при этом источник данных экспресс-отчета должен содержать параметр INTPARAM:
<script type="text/javascript">
PP.setCurrentCulture(PP.Cultures.ru);
var metabase, eaxDocument, eaxMbService, settings,
examplePar, button, checkBox, idChanger;
function Ready()
{
// Создаём соединение с репозиторием
metabase = new PP.Mb.Metabase(
{
ExportUrl: "PPService.axd?action=export",
ImportUrl: "PPService.axd?action=import",
PPServiceUrl: "PPService.axd?action=proxy",
Id: "WAREHOUSE",
UserCreds: { UserName: "user", Password: "password" }
});
// Открываем соединение с репозиторием
metabase.open();
// Создаём сервис для работы с экспресс-отчётами
eaxMbService = new PP.Exp.EaxMdService({
Metabase: metabase,
EaxOpened: PP.Delegate(Opened, this)
});
// Открываем экспресс-отчет с ключом 108 на редактирование
eaxDocument = eaxMbService.editDocument(108);
};
// Обработчик события EaxOpened у класса EaxMdService
function Opened(sender, args)
{
// Создаём контейнер для параметра экспресс-отчета
examplePar = new PP.Exp.Ui.EaxParameterBox({
ParentNode: "EaxParam",
ParamId: "INTPARAM", // Идентификатор параметра
Width: 300,
Source: eaxDocument, // Источник данных
Service: eaxMbService // Сервис
});
// Создаём кнопку для сохранения измененных данных параметра
button = new PP.Ui.Button({
ParentNode: "ApplyButton",
Content: "Apply parameter",
Height: 30,
Click: function (){
examplePar.applyParameter();
}
});
// Создаём элемент управления типа «флажок»
checkBox = new PP.Ui.CheckBox({
ParentNode: "LabelCheckBox",
Content: "With label",
CheckedChanged: function ()
{
examplePar.setShowParamLabel(checkBox.getChecked());
}
});
// Создаем раскрывающийся список с параметрами
idChanger = new PP.Ui.ComboBox({
ParentNode: "IdChanger",
Width: 300,
ListBox: {
ItemSelected: function (sender, args)
{
examplePar.setParamId(args.ListItem.getContent());
}
}
});
// Заполняем раскрывающийся список идентификаторами параметров
for (var i = 0; i < eaxDocument.getParams().length; i++)
{
idChanger.addItem(eaxDocument.getParams()[i].getId());
}
idChanger.getListBox().setSelectedIndex(2);
}
</script>
4. В теге <body> в качестве значения атрибута «onLoad» указываем имя функции для создания контейнера для параметра экспресс-отчета, а также размещаем блоки с идентификаторами «IdChanger», «EaxParam», «ApplyButton», «LabelCheckBox»:
<body onselectstart="return false" onload="Ready()"> <div id="IdChanger"></div> <div id="EaxParam" style="display: block;"></div> <div id="ApplyButton"></div> <div id="LabelCheckBox"></div> </body>
5. В конце документа вставляем код, устанавливающий стили к вершине «document.body», соответствующие операционной системе клиента:
<script type="text/javascript"> PP.initOS(document.body); </script>
После выполнения примера на html-странице будет размещён контейнер для параметра экспресс-отчета (компонент EaxParameterBox), кнопка для сохранения измененных данных параметра (компонент Button), элемент управления типа «флажок» для включения и выключения подписи у параметра (компонент CheckBox) и раскрывающийся список для выбора параметра экспресс-отчета (компонент ComboBox):

См. также: