本文目錄一覽:
- 1、Cognos 用JS實現導出Excel按鈕 ?求代碼,急!
- 2、Cognos通過JS設置值提示的默認值
- 3、求助:關於Cognos8打印報表的問題
- 4、cognos custom view 哪裡
- 5、請教一個cognos添加js的問題
Cognos 用JS實現導出Excel按鈕 ?求代碼,急!
我用的報表開發工具是FineReport,這種情況出現在FineReport中的解決方案是
1. 描述
FineReport支持多種不同的導出方式,直接使用FineReport內置導出按鈕可以非常快捷方便的來對各種格式的輸出,但是我們在web頁面集成中的時候,往往只想講報表內容嵌入到iframe中,而工具欄以及工具欄上的按鈕都會隱藏掉,而使用web頁面自定義的按鈕,那麼,此時,這種自定義按鈕如何實現導出呢,如下圖所示:
2. 示例
如上圖所示,我們新建一個html頁面,定義一個工具欄和一個iframe,工具欄中定義上圖所示的按鈕,iframe中嵌入FR中的報表,如下圖:
2.1 FR報表設置
打開設計器,找到上面web頁面中嵌入的那張模板,由於要使用自定義按鈕作為工具欄,那麼FR報表內置的工具欄就無需顯示出來。點擊模板模板web屬性分頁預覽設置,去掉使用工具欄前面的勾選,如下圖:
2.2 自定義導出按鈕
web頁面中定義了6個自定義導出按鈕,那麼怎樣才能實現導出操作呢?
FineReport導出操作的js接口為:
導出PDF:exportReportToPDF()
導出[Excel](分頁):exportReportToExcel(‘page’)
導出[Excel](原樣):exportReportToExcel(‘simple’)
導出[Excel](分頁分sheet):exportReportToExcel(‘sheet’)
導出[圖片]:exportReportToImage(‘gif’)【括號裡面可以更換參數,比如說png,jpg等等圖片類型】
導出[word]:exportReportToWord()
故,各個按鈕的點擊事件應該調用上述的js接口來實現其對應的導出格式,比如說導出PDF,那麼其按鈕的onclikc事件為:
onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToPDF()”
註:document.getElementById(‘reportFrame’)是獲取到iframe框架,然後通過contentWindow得到報表窗口,並拿到contentPane這個報表容器,最後就可以從容器中調用各種導出接口的方法了。
其他的幾個按鈕的導出事件這裡就不一一講解了。
2.3 完整代碼
根據上述同樣的方法為其他幾個按鈕添加導出事件,完整代碼如下:
html
head
titleFineReport自定義導出/title
meta http-equiv=”Content-Type” content=”text/html; charset=GBK” /
/head
body
fieldset
div id=”toolbar”
button type=”button” onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToPDF()”導出[PDF]/button
button type=”button” onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToExcel(‘page’)”導出[Excel](分頁)/button
button type=”button” onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToExcel(‘simple’)”導出[Excel](原樣)/button
button type=”button” onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToExcel(‘sheet’)”導出[Excel](分頁分sheet)/button
button type=”button” onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToImage(‘png’)”導出[圖片]/button
button type=”button” onclick=”document.getElementById(‘reportFrame’).contentWindow.contentPane.exportReportToWord()”導出[Word]/button
/div
/fieldset
iframe id=”reportFrame” width=”100%” height=”100%” src=’ReportServer?reportlet=doc/Primary/DetailReport/Details.cpt’ /iframe
/body
/html
3. 效果查看
點擊不同的按鈕,即可看到其導出的結果:
Cognos通過JS設置值提示的默認值
根據需要,設置默認值,並顯示對應的列表信息。這裡設置為值提示的最後一個值,並去掉值提示中的“——”選項。效果如下:
求助:關於Cognos8打印報表的問題
是打印報表的什麼問題呢?在進行報表集成時,常常需要通過js來調用打印事件,在我用的報表軟件finereport中就是用的這種方法,在調用之前,需要先引入finereport.js,在通過doURLxxxxPrint()進行調用。
1)doURLxxxxPrint(printurl)
FR.doURLFlashPrint(“/WebReport/ReportServer?reportlet=report.cpt”)
2)doURLxxxxPrint(printurl,isPopUp)
FR.doURLFlashPrint(“/WebReport/ReportServer?reportlet=report.cpt”,true);
3)doURLxxxxPrint(config)
var printurl=””;
var reportlets =”[{reportlet: ‘1.cpt’, p1: ‘a’}, {reportlet: ‘1.cpt’, p1: ‘b’}]”;
var config = {
url : printurl,
isPopUp : false,
data : {
reportlets: reportlets
}
};
FR.doURLPDFPrint(config);
cognos custom view 哪裡
1.在page頁面中加入4個HTLM 項目分別用來實現隱藏工具欄、打印、Excel2002導出、選擇導出格式。如下:
2.修改4個HTML屬性-》常規-》說明內容分別為:隱藏工具欄、打印、Excel2002導出、選擇導出格式。
3.修改完畢。如下所示:
4.隱藏工具欄對應的JS代碼:
style .mainHeader1{ display: none;}
.mainViewerHeader3{ display: none;}
/style
5.打印Html對應的js 代碼:(打印報表)
input type=”button” value=”打印” style=”padding-left:10px;padding-right:10px;font-size: 10px” onclick=”javascript:print();” class=”toolbarButton”/
6.Excel2002導出Html對應的JS代碼:(Excel2002格式導出報表)
input type=”button” value=”Excel2002導出” style=”padding-left:0px;padding-right:0px;font-size:10px”
onclick=”javascript:gCognosViewer.getRV().viewReport(‘XLWA’)”
class=”toolbarButton”/
7.選擇導出Html對應的JS代碼:(下拉框導出不同格式報表)
!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”
HTML
HEAD
TITLE New Document /TITLE
META NAME=”Generator” CONTENT=”EditPlus”
META NAME=”Author” CONTENT=””
META NAME=”Keywords” CONTENT=””
META NAME=”Description” CONTENT=””
script language=”javascript”
function Export_js(){
var s;
var se =document.getElementByIdx_x_x(“zbsjlx”);
var options=se.getElementsByTagName_r(“option”);
for(var i=0;ioptions.length;++i)
{
if(options[i].selected)
{
s = options[i].text;
}
}
var str=s;
if(str==’Excel2007′){
eval_r(gCognosViewer.getRV().viewReport(‘spreadsheetML’));
}else if(str==’Excel2003′){
eval_r(gCognosViewer.getRV().viewReport(‘XLWA’));
}else if(str==’Excel2002′){
eval_r(gCognosViewer.getRV().viewReport(‘XLWA’));
}else if(str==’Singlesheet’){
eval_r(gCognosViewer.getRV().viewReport(‘singleXLS’));
}else if(str==’Excel2000′){//Excel2000有可能不支持
eval_r(gCognosViewer.getRV().viewReport(‘XLS’));
}else if(str==’PDF’){
eval_r(gCognosViewer.getRV().viewReport(‘PDF’));
}else {
alert(‘請選擇導出格式!’);
}
}
/script
/HEAD
BODY
table
TD nowrap class=”Edit_content”select id=”zbsjlx” name=”zbsjlx”
option selected value=”Excel2007″Excel2007/option
option value=”Excel2003″Excel2003/option
option value=”Excel2002″Excel2002/option
option value=”Singlesheet”Singlesheet/option
option value=”Excel2000″Excel2000/option
option value=”PDF”PDF/option
/select
/TD
TD /TD
TD /TD
TD
input type=”button” value=”導出” onClick=”Export_js()” class=”toolbarButton”/
/TD
/table
/BODY
/HTML
8.界面實現效果:
請教一個cognos添加js的問題
請問題主到底是添加js的什麼問題呢,是需要添加js控件呢還是在運用js語言的時候遇到了困難呢?可以明確的說明一下嗎?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/295375.html