Автозаповнення форми з параметрами в Oracle BI EE +

Продовжую тему вдосконалення Oracle Business Intelligence Enterprise Edition Plus. У цієї замітки я розповім як можна реалізувати автозаповнення (autocomplete) для форми з параметрами (prompt).

Нехай у вас є промпт з параметрами, ви можете вказати спосіб вибору значення у вигляді поля вводу (input field), комбо-боксу (combobox) або селектора (multiselect). Штатні засоби Oracle BI EE+ не завжди підходять при реалізації проектів або не дуже подобаються замовникам. Тому можна придумати новий компонент для вибору параметрів. На сьогоднішній день існує цілий ряд вільно розповсюджуваних JavaScript бібліотек, наприклад YUI, в яких є готові компоненти для реалізації динамічного автозаповнення для поля введення (input). Виглядає такий компонент дуже ефектно, а головне відповідає сучасним тенденціям Web 2.0. Враховуючи архітектуру і широкі інтеграційні можливості платформи Oracle BI EE+ об'єднати в єдиному пориві дві технології виявляється легко і просто.


Отже, найголовніший принцип, на якому побудований весь процес інтеграції – це унікальність ідентифікаторів для всіх об'єктів в Oracle BI EE +, розташованих на інтерактивних панелях. Якщо увійти в систему, відкрити будь-яку сторінку інтерактивної панелі і подивитися вихідний код HTML-сторінки, яку повернув сервер можна побачити багато чого цікавого. Всі об'єкти розмітки сторінки (Dashboard Objects): секції, звіти, промпти, текст, посилання і т.д. мають унікальні, а головне постійні! ідентифікатори виду:% d: dashboard ~ p:%. Наведу приклади таких ідентифікаторів:


<div id=”Embedd:dashboard~p:b066kq3ar62rn9em~s:4re2i3152f3cf9jv” minimized=”false” rendered=”false”>
<table id="d:dashboard~p:b066kq3ar62rn9em~s:4re2i3152f3cf9jvContents" style="width:100%;">
<div id="d:dashboard~p:b066kq3ar62rn9em~s:4re2i3152f3cf9jv~g:tq884vk2228ff5otNavDone"> <div id="d:dashboard~p:b066kq3ar62rn9em~s:4re2i3152f3cf9jv~g:tq884vk2228ff5otResult" result="Prompt">



Так от, кожен промпт на сторінці – це форма, яка також має унікальний ідентифікатор. Використовую JavaScript у зв'язці з DOM можна "прив'язати" до будь-якому полю промпта компонент AutoComplete.


Порядок роботи дуже простий, ви створюєте вашу сторінку з промт / ами і звітами, зберігаєте її, а потім дивіться ідентифікатори форм, а далі пишіть невеликий код на JavaScript, який додає до полів введення функціонал YUI по автозаповнення.


Приклад такого коду:
<script language=”javascript” type=”text/javascript”>
YAHOO.example.BasicRemote = function() {
var prtFrm = document.getElementById ("d: dashboard ~ p: q7q92hth31ekk10c ~ s: lu6stvlkcujn8lj2 ~ g: b07h1h367v1fu8m2form");
var inputFld = prtFrm.elements[0];
inputFld.size=30;
var spanContainer = inputFld.parentNode;
var divList = document.createElement(“div”);
divList.id = inputFld.id + “_list”;
var divContainer = document.createElement(“div”);
divContainer.id = spanContainer.id;
divContainer.class = spanContainer.class;
divContainer.appendChild(inputFld);
inputFld.parentNode.insertBefore(divList,inputFld.nextSibling);
spanContainer.parentNode.replaceChild (divContainer, spanContainer);
var oDS,oAC;
var connectionCallback = {
success: function(o) {
var xmlDoc = o.responseXML;
oDS = new YAHOO.util.DataSource(xmlDoc);
oDS.responseType = YAHOO.util.DataSource.TYPE_XML;
oDS.responseSchema = {
resultNode: “R”,
fields: [“C0”]
};
oAC = new YAHOO.widget.AutoComplete(inputFld.id,divList.id,oDS);
},
failure: function(o) {
alert(“Fail to retrieve customer list”);
}
};
var getXML = YAHOO.util.Connect.asyncRequest ("GET", "saw.dll? Go & SQL = SELECT +% 22D1% 20Customer% 22.% 22C1% 20% 20Cust% 20Name% 22 + FROM +% 22Sample% 20Sales% 22 & format = xml & userid = Administrator & nqpassword = Administrator ", connectionCallback);
return {
oDS: oDS,
oAC: oAC
};
}();
</script>


Все дуже просто.


Я реалізував приклад на стандартній схемі Samples Sales, c якій за замовчуванням поставляється Oracle BI EE +. Я додав нову інтерактивну панель "04 Custom", на якій розмістив дві сторінки. Перша сторінка – Приклад промпта з одним параметром і звітом, пов'язаним з цим параметрів, друга сторінка – приклад промпта з декількома параметрами. За основу я взяв стандартну сторінку History з веб-каталогу Samples Sales. Подивитись як це виглядає в житті можна тут:



Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*