Как установить последнее использованное значение параметра в качестве значения по умолчанию в подсказке значения или текстовой подсказке в Cognos Bi
Я использую версию Cognos Bi 10.2.2.
Я создал страницу приглашения для параметра со значением prompt. Я использую параметр как "Term_Code", который содержит такие значения, как 201410,201420,201510...
и я впервые выберу значение параметра "201420" при запуске отчета. Когда я в будущем снова запущу свой отчет, я должен получить значение по умолчанию, равное 201420, которое является значением параметра "Последний использованный" Кто-нибудь может знать это,
Как получить Последнее использованное значение параметра в качестве значения по умолчанию в значении Подсказка. Пожалуйста, помогите мне.
Заранее спасибо.
3 ответа
Это всего лишь предложение возможного решения.
В Framework Manager вы можете создать тему запроса, связанную с хранимой процедурой. Каждый раз, когда выполняется отчет, параметр Team_Code передается запросу, связанному с хранимой процедурой, и хранимая процедура сохраняет свое значение в таблице базы данных.
При следующем выполнении отчета страница приглашения будет запрашивать таблицу сохраненных параметров для последнего сохраненного параметра, и с помощью API подсказки JavaScript это значение будет установлено в качестве значения по умолчанию для элемента управления подсказкой на странице приглашения.
Я надеюсь, что это помогает, удачи!
Вы можете создать cookie, чтобы установить его значение в соответствии с последним выбранным пользователем. Я сделал так, чтобы перетащить элемент HTML, чтобы после подсказки, а затем внутри элемента HTML, можно было разместить JavaScript, чтобы позаботиться о создании файла cookie и установке его значения.
Вот JavaScript, который я использовал:
<script>
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function subtractDay ()
{
var dtToday = new Date();
var dtYesterday = new Date( dtToday - 86400000 ); // 86400000 = 24 hours * 60 (minutes per hour) * 60 (seconds per minute) * 1000 (milliseconds per second)
var strYesterday = [dtYesterday.getUTCFullYear(), dtYesterday.getMonth()+1, dtYesterday.getDate()].join("-");
return strYesterday;
}
var x = readCookie('MyCookie');
while (x != 'Value'){
pickerControlpDatePicked.setValue(subtractDay() );
createCookie('MyCookie','Value',0);
x = readCookie('MyCookie');
}
</script>
Функция pickerControlpDatePicked
получить выбранную дату (это был мой вариант использования). Я думаю, что должна быть похожая функция для строки
Cognos не предназначен для хранения информации о вариантах подсказок, за одним исключением представлений отчетов. Однако это не поможет, так как значения подсказок для представления отчета не являются динамическими. Вы устанавливаете фиксированное значение, и оно сохраняется до тех пор, пока вы не измените его вручную.
Что я хотел бы сделать, это настроить небольшой веб-сервис. Это будет веб-страница, целью которой является получение запросов через веб-URL и возврат информации или выполнение каких-либо действий. Можно создать одну страницу для:
- Получите новое значение и сохраните его в базе данных или даже в куки
- Получить значение из базы данных /cookie и вернуть его запрашивающей стороне
Страница приглашения Cognos будет иметь JavaScript, который запускается при первой генерации страницы приглашения, чтобы извлечь сохраненное значение через веб-сервис и установить значение приглашения в предыдущее значение. Также был бы JavaScript, который запускался, когда пользователь выбирал новое значение, которое отправляло бы выбор веб-службе для хранения.