Автозаповнення форми з параметрами в Oracle BI EE +, Oracle, Бази даних, статті

Продовжую тему вдосконалення 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>

*

*