Cognos BIのレポートでプロンプトページを作成し、開始日時と完了日時を以下のようにテキストボックスのプロンプトで指定したい場合に、デフォルト値として、10日前の時刻と現在時刻を入れておくJavaScriptのサンプルです。
イメージ
この様なプロンプトページに、開始日時のテキストボックスプロンプト、完了日時のテキストボックスプロンプトを置いています。
レポートを実行すると、この様に開始日時には10日前の現在時刻、完了日時には現在時刻がデフォルト値として埋め込まれるイメージです。
実装
前提として、開始日時のプロンプトには「FDT」、完了日時のプロンプトには「TDT」という名前をプロパティから付与しています。
HTMLアイテムに以下のJavaScriptコードを記載します。
<script language="javascript">
var f = (typeof getFormWarpRequest == "function" ? getFormWarpRequest() : document.forms["formWarpRequest"]);
var curtime = new Date();
//開始日時に10日前時刻を挿入
f._textEditBoxFDT.value = creDT(new Date(curtime - 10*24*60*60*1000 ));
//終了日時に現在時刻を挿入
f._textEditBoxTDT.value = creDT(new Date(curtime));
//日時のフォーマット変換
function creDT(crdt)
{
//[YYYY-MM-DD]で年月日作成
var strDate = [crdt.getFullYear(),padding(crdt.getMonth()+1,2),padding(crdt.getDate(),2)].join("-");
//時分秒を追加
strDate = strDate + " " + padding(crdt.getHours(),2) + ":" + padding(crdt.getMinutes(),2) + ":" + padding(crdt.getSeconds(),2);
return strDate;
}
//桁合わせで0付与
function padding(src,fullbit)
{
src = src.toString();
for(i=0;i<fullbit-src.length;i++)
{
src = '0' + src;
}
return src;
}
</script>