/content/folder[@name='Samples_DQ']/folder[@name='Models']/package[@name='GO Data Warehouse (query)']/model[@name='model']
<div id="DRWarn">
Error: End date cannot be prior to start date
</div>
<div id="defDateRang" style="display:none">
Change this text for the default you need according to the following mapping: 1 - YTD; 2-QTD;3-MTD;4-WTD;5-Last Month;6-Last week;7-MTD last year
</div>
<span id="dateRangesLinks" style="white-space:nowrap;"> </span>
<br>
<script>
var RodScripts={};
//var isPP=0;
var DLinks=["NONE","YTD","QTD","MTD","WTD","Last Month","Last Week","MTD Last Year"];
var dlHTML="";
setTimeout('document.getElementById("DRWarn").style.display="none";','400');
RodScripts.setDateRange=function(type){
//define all variables necessary
var today=new Date();
var thisYear=today.getUTCFullYear();
var lastYear=thisYear-1;
var thisMonth=today.getMonth();
var lastMonth=thisMonth==0?12:thisMonth-1;
var firstMonthOfQuarter=thisMonth<3?0:(thisMonth<6?3:(thisMonth<9?6:9));
var mondayThisWeek=today.getDay()>0?today-today.getDay()*24*60*60*1000+1*24*60*60*1000:today-6*24*60*60*1000;
var mondayLastWeek=mondayThisWeek-7*24*60*60*1000;
var endOfLastWeek=mondayThisWeek-1*24*60*60*1000;
var fromDate=new Date();
var toDate=new Date();
var useDate;
//monthsArray
var monthsName=["January","February","March","April","May","June","July","August","September","October","November","December"];
var oCR = cognos.Report.getReport("_THIS_");
var fromPrompt = oCR.prompt.getControlByName("fromDate");
var toPrompt = oCR.prompt.getControlByName("ToDate");
var vals;
//get the date for current type
/*
1-YTD
2-QTD
3-MTD
4-WTD
5-last month
6-last week
7-MTD last year
*/
switch(type){
case 1://YTD
fromDate=new Date(thisYear,0,1);
break;
case 2://QTD
fromDate=new Date(thisYear,firstMonthOfQuarter,1);
break;
case 3://MTD
fromDate=new Date(thisYear,thisMonth,1);
break;
case 4://WTD
fromDate=new Date(mondayThisWeek);
break;
case 5://LAST MONTH
fromDate=new Date(thisMonth==0?lastYear:thisYear,lastMonth,1);
toDate=new Date(thisMonth==0?lastYear:thisYear,thisMonth,0);
break;
case 6://LAST WEEK
fromDate=new Date(mondayLastWeek);
toDate=new Date(endOfLastWeek);
break;
case 7://MTD LAST YEAR
fromDate=new Date(lastYear,thisMonth,1);
toDate=new Date(lastYear,thisMonth,today.getDate());
break;
default:
alert("There was an error");
}
//set from date
useDate=fromDate.getFullYear()+'-'+((fromDate.getMonth()+1)<10?'0'+(fromDate.getMonth()+1):(fromDate.getMonth()+1))+'-'+(fromDate.getDate()<10?'0'+fromDate.getDate():fromDate.getDate());
vals=[{'use':useDate}];
fromPrompt.addValues(vals);
//set to date
useDate=toDate.getFullYear()+'-'+((toDate.getMonth()+1)<10?'0'+(toDate.getMonth()+1):(toDate.getMonth()+1))+'-'+(toDate.getDate()<10?'0'+toDate.getDate():toDate.getDate());
vals=[{'use':useDate}];
toPrompt.addValues(vals);
toPrompt.addValues(vals);
useDate=fromDate.getFullYear()+'-'+((fromDate.getMonth()+1)<10?'0'+(fromDate.getMonth()+1):(fromDate.getMonth()+1))+'-'+(fromDate.getDate()<10?'0'+fromDate.getDate():fromDate.getDate());
vals=[{'use':useDate}];
fromPrompt.addValues(vals);
}
//set up the links
for(var dli=1;dli<DLinks.length;dli++){
dlHTML+='|<a href="#" onclick="RodScripts.setDateRange('+dli+');">'+DLinks[dli]+'</a>';
if(dli==4){dlHTML+='<br>';}
}
RodScripts.defaultValueSetUp=function(){
//var def=document.getElementById("defDateRang").innerText;
if(document.getElementById("defDateRang").textContent.length==1){
RodScripts.setDateRange(document.getElementById("defDateRang").textContent*1);
}
}
dlHTML+='|';
document.getElementById("dateRangesLinks").innerHTML=dlHTML;
/*
VERIFY THE DATE RANGE
*/
//get the values and turn numeric
RodScripts.getDateValue=function(promptname){
var oCR = cognos.Report.getReport("_THIS_");
var prObj = oCR.prompt.getControlByName(promptname);
var prObjVals=prObj.getValues();
var prObjNumericValue=prObjVals[0].use.replace(/-/g,'');
prObjNumericValue=prObjNumericValue.substr(0,8);
return prObjNumericValue*1;
}
//compare the values, return true or false
RodScripts.compareDateRange=function(){
var fromVal=RodScripts.getDateValue("fromDate");
var toVal=RodScripts.getDateValue("ToDate");
if(toVal>=fromVal){
document.getElementById("DRWarn").style.display="none";
canSubmitPrompt();
return true;
}
else{
document.getElementById("DRWarn").style.display="block";
return false;
}
canSubmitPrompt();
}
//set validator
RodScripts.setValidationForDR=function(prName){
var oCR = cognos.Report.getReport("_THIS_");
var prObj = oCR.prompt.getControlByName(prName);
prObj.setValidator(
function(){
var result=RodScripts.compareDateRange();
return result;
}
);
}
RodScripts.setValidationForDR("fromDate");
RodScripts.setValidationForDR("ToDate");
RodScripts.defaultValueSetUp();
setTimeout('RodScripts.compareDateRange();','200');
</script>
5
daterange sample