計(jì)算機(jī)軟件及應(yīng)用cognos開(kāi)發(fā)技巧總結(jié)文檔_第1頁(yè)
計(jì)算機(jī)軟件及應(yīng)用cognos開(kāi)發(fā)技巧總結(jié)文檔_第2頁(yè)
計(jì)算機(jī)軟件及應(yīng)用cognos開(kāi)發(fā)技巧總結(jié)文檔_第3頁(yè)
計(jì)算機(jī)軟件及應(yīng)用cognos開(kāi)發(fā)技巧總結(jié)文檔_第4頁(yè)
計(jì)算機(jī)軟件及應(yīng)用cognos開(kāi)發(fā)技巧總結(jié)文檔_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Cognos開(kāi)發(fā)技巧總結(jié)文檔1 實(shí)現(xiàn)目錄樹(shù)展開(kāi)功能1.1在列表中實(shí)現(xiàn)目錄樹(shù)展開(kāi)功能1.插入一個(gè)列表,拖入5個(gè)字段,并且對(duì)運(yùn)營(yíng)商所在地分組2.添加運(yùn)營(yíng)商所在地的頁(yè)眉3.拆分運(yùn)營(yíng)商所在地的單元格4.解鎖,將運(yùn)營(yíng)商所在地的匯總拖到運(yùn)營(yíng)商處5.刪除運(yùn)營(yíng)商所在地6. 按住CTRL,分別拖動(dòng)本周新增用戶數(shù)、今年新增用戶總數(shù)、期末用戶總數(shù)到運(yùn)營(yíng)商所在地的頁(yè)眉處7. 在report page中插入HTML控件,然后拷貝如下代碼進(jìn)去下面代碼主要是定義了兩個(gè)函數(shù),一個(gè)用于目錄樹(shù)的展開(kāi)與縮進(jìn),另一個(gè)用于頁(yè)面初始化時(shí)隱藏一些數(shù)據(jù),下面代碼只支持到2層目錄,更詳細(xì)的含義可參考的在交叉表中實(shí)現(xiàn)目錄樹(shù)功能的注釋。代碼如下:

2、<script>function ExpandCollapse( el )var tr = el.parentElement.parentElement;var tbl = tr.parentElement.parentElement;var sDisplay = ( el.src.indexOf( "minus" ) = -1 ) ? "" : "none"var sDisplayReverse = ( el.src.indexOf( "minus" ) = -1 ) ? "none&quo

3、t; : ""el.src = "/cognos8/images/PropertyGroup_" + ( el.src.indexOf( "minus" ) = -1 ? "minus" : "plus" ) + ".gif"for ( var i = tr.rowIndex + 1; i < tbl.rows.length; i+ )var trCurrent = tbl.rows( i );if(trCurrent.cells(0).firstChild&&

4、amp; trCurrent.cells( 0 ).getElementsByTagName( "IMG" ).length )if ( tr.cells(0).style.paddingLeft ="" && trCurrent.cells(0).style.paddingLeft ="20px" )if (el.src.indexOf( "minus" ) = -1 )trCurrent.cells(0).getElementsByTagName("IMG").item(0)

5、.src = "/cognos8/images/PropertyGroup_plus.gif"else break;else trCurrent.style.display = sDisplay;function StartHidden(el)var tbl=el.parentElement.parentElement.parentElement.parentElement;for (var i = 0; i < tbl.rows.length; i+)var trCurrent = tbl.rows(i);if (trCurrent.cells(0).style.p

6、addingLeft.indexOf("px") > -1)trCurrent.style.display = "none"</script>8.拖入一個(gè)HTML項(xiàng)目插入到運(yùn)營(yíng)商單元格前面,修改成數(shù)據(jù)項(xiàng),并修改表達(dá)式運(yùn)營(yíng)商中HTML控件代碼如下:'<img onclick=''ExpandCollapse(this)'' src=''/cognos8/images/PropertyGroup_plus.gif'' style=''cursor:

7、hand; vertical-align:middle; margin-right:2px''/><span onclick=''ExpandCollapse(this.previousSibling)'' style=''cursor:hand''>'+ orc82.D_OPERATIONROLES.運(yùn)營(yíng)商所在地 + '</span>'9.刪除掉運(yùn)營(yíng)商所在地10.設(shè)置運(yùn)營(yíng)商的填充為左側(cè)2011.增加圖片增加樹(shù)形的圖片PropertyGroup_plus.gif

8、,空白圖片blank.gif到cognos相應(yīng)的圖片目錄12. 增加列表頁(yè)腳(注意,這里的HTML控件一定要放入表頁(yè)腳里面,否則不能實(shí)現(xiàn)隱藏?cái)?shù)據(jù)的功能),并拷貝HTML代碼,刪除掉列表頁(yè)腳幾個(gè)字代碼如下:<img onload='StartHidden(this)' src='/cognos8/images/blank.gif'/>13.選擇列表,并設(shè)置列表每頁(yè)行數(shù)為9999(這樣就不用再翻頁(yè)了)14.這樣一個(gè)樹(shù)狀報(bào)表就做好了,運(yùn)行報(bào)表,查看結(jié)果2 cognos 報(bào)表查詢條件導(dǎo)出以EXCEL2007,EXCEL2003,PDF格式導(dǎo)出報(bào)表時(shí),一般輸入

9、的查詢條件沒(méi)有一起導(dǎo)出,希望將查詢條件一起導(dǎo)出來(lái)。在每個(gè)查詢條件后面加入一個(gè)文本框文本來(lái)源類(lèi)型選報(bào)表表達(dá)式表達(dá)式內(nèi)容輸入條件參數(shù)的名字if (ReportOutput() <> 'HTML') then ParamDisplayValue('截止時(shí)間')3 創(chuàng)建模板的方法1.在COGNOS中新建一個(gè)報(bào)表文件,其實(shí)就是普通的報(bào)表文件,然后對(duì)需要用到的模板格式進(jìn)行編輯例如下圖:2.編輯完后,選中文件菜單中的轉(zhuǎn)換成模板項(xiàng)將普通文件轉(zhuǎn)換為模板文件,最后保存該模板即可3.應(yīng)用這個(gè)模板在COGNOS中新建一個(gè)報(bào)表文件,在彈出的新建對(duì)話框中如下圖:選擇現(xiàn)有 項(xiàng),然

10、后選擇剛才創(chuàng)建的模板4 類(lèi)的應(yīng)用在COGNOS系統(tǒng)報(bào)表工具中,可以利用類(lèi)對(duì)報(bào)表的格式進(jìn)行統(tǒng)一調(diào)整,類(lèi)似于CSS的功能。1.下面舉例,對(duì)下報(bào)表的列表進(jìn)行格式化如下圖:2.打開(kāi)類(lèi)編輯界面查看-類(lèi),新建一個(gè)類(lèi),并設(shè)置了背景顏色和前景顏色,用于格式化列表中的單元格,如下圖:3.創(chuàng)建了類(lèi)之后,然后在列表中應(yīng)用該類(lèi)如下圖:4.在屬性“類(lèi)”中選擇剛才創(chuàng)建的類(lèi)。列表中相應(yīng)的單元格格式即可改變,如下圖:5.創(chuàng)建了一個(gè)類(lèi)之后,還可以多次引用,可以方便地使格式保持統(tǒng)一5 報(bào)表之間對(duì)象的互相引用在一張報(bào)表中創(chuàng)建了一個(gè)控件后,可以在自身或其它報(bào)表中對(duì)它進(jìn)行引用,引用方式有兩種,一種是直接的關(guān)聯(lián)引用,即被引用的控件的修改

11、會(huì)影響到引用它的控件。另一種是復(fù)制引用,不會(huì)產(chǎn)生關(guān)聯(lián),只是復(fù)制副本。1.在一張報(bào)表中選中要被引用的的控件,然后在屬性欄中在“名稱(chēng)”項(xiàng)中輸入一個(gè)唯一的標(biāo)識(shí)名。2.在要引用它的報(bào)表,比如另一張報(bào)表中需要用到這個(gè)控件,在打開(kāi)另一張表后,在控件面板中將布局組件引用控件拖到要插入的地方,在彈出對(duì)話框中選擇“其它報(bào)表”項(xiàng),然后選擇剛才建立被引用控件的報(bào)表,這時(shí)可看到“可引用控件”欄中會(huì)顯示剛才創(chuàng)建的控件,選中即可。3.點(diǎn)擊控件,可以屬性欄中的“嵌入”選項(xiàng)中選擇引用的類(lèi)型,即前面介紹的兩種類(lèi)型。6 值提示的多項(xiàng)選擇創(chuàng)建一個(gè)值提示,選中值提示,這兩處選擇如圖:過(guò)濾條件中使用in7 交叉表表頭文字改變點(diǎn)中要修改

12、文字的節(jié)點(diǎn)成員,添加數(shù)據(jù)項(xiàng)標(biāo)簽在文本來(lái)源那里選擇數(shù)據(jù)項(xiàng)標(biāo)簽8.解決"列或交叉表的group行號(hào)、group子行號(hào)"1、先看如下效果(根據(jù)分組,顯示group行號(hào),和group的子項(xiàng)行號(hào)):2、在列表里加入 【產(chǎn)品系列】【產(chǎn)品名稱(chēng)】【銷(xiāo)售目標(biāo)】,按【產(chǎn)品系列分組】。向列表加入計(jì)算字段groupnumber,表達(dá)式為:running-count(distinct 產(chǎn)品系列)->組范圍選擇【產(chǎn)品系列】;向列表加入計(jì)算字段sub_count,表達(dá)式為:running-count(產(chǎn)品名稱(chēng) for 產(chǎn)品系列)設(shè)置如下:于是就得到了想要的結(jié)果。/修正一下圖中的表達(dá)式錯(cuò)誤,應(yīng)該為:

13、running-count(產(chǎn)品類(lèi)型 for 產(chǎn)品系列)按分組計(jì)算每一個(gè)分組的總記錄數(shù):拖入一個(gè)數(shù)據(jù)項(xiàng),表達(dá)式為count(sub_count),點(diǎn)開(kāi)鎖,拖入列表里的分組項(xiàng)同一列如:數(shù)據(jù)項(xiàng) 行號(hào) 表達(dá)式 running-count(上網(wǎng)賬號(hào) for 運(yùn)營(yíng)商名稱(chēng))數(shù)據(jù)項(xiàng) 總數(shù) 表達(dá)式 count(行號(hào))拖入列表,第二個(gè)運(yùn)營(yíng)商中拖入總數(shù),選中將第二個(gè)運(yùn)營(yíng)商名稱(chēng),可見(jiàn)那里選擇否9.日期提示默認(rèn)值設(shè)置日期提示默認(rèn)前一天腳本<script language="javascript">function subtractDay ()var dtToday = new Date

14、();var dtYesterday = new Date( dtToday - 86400000 );var strYesterday = dtYesterday.getUTCFullYear(), dtYesterday.getMonth()+1, dtYesterday.getDate().join("-");return strYesterday;function init ()pickerControlEDate1.setValue( subtractDay();promptButtonFinish(); /promptButtonFinish(); /getFo

15、rmWarpRequest().onload=promptButtonFinish(); /getFormWarpRequest().onload=init(); </script><body onload=init()>開(kāi)始日期和結(jié)束日期提示默認(rèn)前一天腳本,要將開(kāi)始日期name改為SDate1,結(jié)束日期name改為EDate1,在提示頁(yè)面添加一個(gè)html,代碼如下,也可以不加提示頁(yè)面,直接拖入報(bào)表頁(yè)面<script language="javascript">function subtractDay ()var dtToday = ne

16、w Date();var dtYesterday = new Date( dtToday - 86400000 );var strYesterday = dtYesterday.getUTCFullYear(), dtYesterday.getMonth()+1, dtYesterday.getDate().join("-");return strYesterday;function showMonthFirstDay() var dtToday = new Date();var dtYesterday = new Date( dtToday - 86400000 );va

17、r strYesterday = dtYesterday.getUTCFullYear(), dtYesterday.getMonth()+1, dtYesterday.getDate().join("-");return strYesterday; function init ()pickerControlSDate1.setValue( showMonthFirstDay();pickerControlEDate1.setValue( subtractDay();promptButtonFinish(); /promptButtonFinish(); /getFormW

18、arpRequest().onload=promptButtonFinish(); /getFormWarpRequest().onload=init(); </script><body onload=init()>10.讓用戶打開(kāi)報(bào)表不能編輯默認(rèn)打開(kāi)報(bào)表右上角有可編輯報(bào)表的按鈕在查詢前拖入一個(gè)html代碼如下,再打開(kāi)報(bào)表右上角就為空了,看報(bào)表的用戶無(wú)法編輯了<style> .mainHeader1 display: none; .mainViewerHeader3 display: none; </style>11.將條件中的參數(shù)直接帶入查詢語(yǔ)

19、句中where cdate >=#prompt('起始時(shí)間')# and cdate <=#prompt('截止時(shí)間')#12.實(shí)現(xiàn)報(bào)表不分頁(yè)方法一: 1,報(bào)表列表中這張報(bào)表的“設(shè)置屬性”-“報(bào)表”-“高級(jí)選項(xiàng)”-"HTML 報(bào)表中每個(gè) Web 頁(yè)面的行數(shù): 默認(rèn)是20, 改選值大點(diǎn)2,打開(kāi)報(bào)表設(shè)計(jì)頁(yè)面,在屬性欄里選“頁(yè)面”,找到“常規(guī)”,修改“分頁(yè)”的值,選中“重復(fù)每一頁(yè)”,其它不選,確定,就可以了此方法一中 1,在cognos8.4.1中測(cè)試可用,但在cognos10.1中不起作用選中列表所在表格,方法二:1、有時(shí)候還會(huì)出現(xiàn)分頁(yè)顯示,再

20、設(shè)置一下。設(shè)計(jì)界面選擇“文件”-> “報(bào)表屬性”-> “對(duì)于交互式HTML按數(shù)量容器分頁(yè)”選擇是“是”,修改默認(rèn)值。2、直到對(duì)當(dāng)前列表、交叉表修改屬性設(shè)置,數(shù)據(jù)屬性:每頁(yè)行數(shù)調(diào)整為:99999方法二中的2點(diǎn)缺一不可,且配合方法一中的1,可以解決cognos10.1中的html頁(yè)面分頁(yè)問(wèn)題。13.列表創(chuàng)建多行表頭再點(diǎn)中列表頁(yè)眉所在行選擇在上方或下方插入行根據(jù)需要進(jìn)行拆分和合并單元格將要?jiǎng)?chuàng)建的表頭文字拖入相應(yīng)位置按住ctrl,選中表頭單元格在左邊的類(lèi)中選擇列表標(biāo)題單元格,點(diǎn)箭頭加到右邊,確定運(yùn)行報(bào)表,查看效果:這樣表頭修改成所要的格式將原來(lái)的空的表頭行選中,方框類(lèi)型選擇 無(wú)14.空值填

21、充15.Cognos合并列單元格在使用cognos的過(guò)程中,我們難免要制作中國(guó)式報(bào)表,(是我自己的一個(gè)博客)這個(gè)上面很好的說(shuō)明了關(guān)于中國(guó)式報(bào)表表頭的制作,圖文的,看起來(lái)很方便,但是cognos不提供列的合并,而文中最后也沒(méi)有說(shuō)明怎么合并列。下面是我合并列的方法合并之前:選中一個(gè)單元格,比如上面那個(gè)單元格,然后找到它屬性的邊框?qū)傩匀缓髮邮皆O(shè)為無(wú),并選中預(yù)覽中的下面那個(gè)按鈕:注意兩幅圖片的差別,如此點(diǎn)擊確定,然后選中橫線下面那個(gè)單元格,按照上面的方法做,這次點(diǎn)擊預(yù)覽中的上橫線按鈕,這樣就可以達(dá)到隱藏橫線的效果了.效果如圖:這樣就能夠達(dá)到我們的目的了.16.設(shè)置交叉表角單元格交叉表角單元格本來(lái)只有

22、一格,要設(shè)置多列標(biāo)題時(shí)點(diǎn)中角單元格,方框類(lèi)型選無(wú)可插入對(duì)象里拖入兩個(gè)交叉表空間將列內(nèi)空列處方框類(lèi)型設(shè)為無(wú)解鎖拖入兩個(gè)文本項(xiàng)目到剛插入的交叉表空間中選中將類(lèi)設(shè)為交叉表角單元格設(shè)置交叉表多行表頭時(shí)也可以參照拖入多個(gè)交叉表空間,再拖入文本項(xiàng)目至其中進(jìn)行設(shè)置。17.求有復(fù)合表達(dá)式項(xiàng)的合計(jì)、小計(jì)如下報(bào)表,合計(jì)定期比前2月主機(jī)數(shù)量,對(duì)應(yīng)數(shù)量的表達(dá)式為:(本月主機(jī)數(shù)量-前2月主機(jī)數(shù)量)/前2月主機(jī)數(shù)量第一層小計(jì):(total(本月主機(jī)數(shù)量 for 分公司,歸屬服務(wù)站)-total(前2月主機(jī)數(shù)量 for 分公司,歸屬服務(wù)站)/total(前2月主機(jī)數(shù)量 for 分公司,歸屬服務(wù)站)第二層小計(jì):(total(

23、本月主機(jī)數(shù)量 for 分公司)-total(前2月主機(jī)數(shù)量 for 分公司)/total(前2月主機(jī)數(shù)量 for 分公司)整表合計(jì):(total(本月主機(jī)數(shù)量 for report)-total(前2月主機(jī)數(shù)量 for report)/total(前2月主機(jī)數(shù)量 for report)18.設(shè)置條件樣式如針對(duì)某列值設(shè)置,小于0,則用紅色字點(diǎn)中要設(shè)置的列,條件樣式,點(diǎn)高級(jí)條件樣式,新建條件表達(dá)式定義里填寫(xiě)要設(shè)置滿足的條件,確定后面的樣式點(diǎn)筆處,將前景顏色設(shè)為紅色這樣報(bào)表出來(lái)的結(jié)果就會(huì)是剛設(shè)的列為負(fù)數(shù)是,則為紅色字19.自定義交叉表中某維度分別合計(jì)如上圖表,的值有主機(jī)、副機(jī),則主機(jī)、副機(jī)合計(jì)表達(dá)式

24、分別為total(QTYS within set filter (TERMINALSPECIFICATIONNAME,TERMINALSPECIFICATIONNAME='主機(jī)')total(QTYS within set filter (TERMINALSPECIFICATIONNAME,TERMINALSPECIFICATIONNAME='副機(jī)')20.把列表匯總從最后放到第一行我把最后一行中的匯總放到第一行時(shí),第一行的匯總顯示不正確(顯示的只是最第一條記錄的值)。如何把列表的匯總從最后一行,放到第一行,且顯示正確的匯總數(shù)據(jù)?選中表頭,創(chuàng)建頁(yè)眉,選擇結(jié)構(gòu)-創(chuàng)

25、建頁(yè)眉,(不是列表頁(yè)眉),再然后選擇分割列表單元格,然后選擇新創(chuàng)建的頁(yè)眉,解鎖,解鎖后,把下面的匯總條,選中復(fù)制到新創(chuàng)建的頁(yè)眉上,在把鎖給鎖上。這是列表 如果是交叉表 直接拖上去就可以了圖的效果就是這樣出來(lái)的啊,我問(wèn)的是結(jié)果不一樣啊,這個(gè)才是問(wèn)題的關(guān)鍵。(第二個(gè)圖)因?yàn)槟銊?chuàng)建的是列表頁(yè)眉,不對(duì),這樣出來(lái)頁(yè)眉一行顯示的是列表頁(yè)眉 如你的一圖。應(yīng)該是創(chuàng)建頁(yè)眉,出來(lái)頁(yè)眉一行顯示的是匯總,出來(lái)的數(shù)值結(jié)果才是匯總后的數(shù)值。21.將登陸的用戶名直接傳到報(bào)表中and panyid in(select panylevel1id from csportal.TB_COGNOS_PORTAL_ORG_REL tc

26、join csportal.TB_SYS_EMPEE_ORG eo on _id=eo.dept_idjoin (SELECT e1.empee_id,e1.empee_acct from csportal.tb_pty_empee e1 where e1.empee_acct!='admin'join csbi.d_company_org co on panyid=tc.dept_idwhere e.empee_acct= #sq($account.personalInfo.userName)# )22.在報(bào)表中再引用值提示內(nèi)容拖入一個(gè)文本項(xiàng)目,內(nèi)容隨便寫(xiě)點(diǎn)什么,

27、點(diǎn)中文本項(xiàng)目將文本項(xiàng)目文件來(lái)源改為表達(dá)式里拖入所需的參數(shù)23.過(guò)濾一行中所有值都為0的拖入一個(gè)數(shù)據(jù)項(xiàng)為每項(xiàng)相加添加過(guò)濾條件<>0,應(yīng)用程序處選擇自動(dòng)聚合之后。24.查詢條件的聯(lián)動(dòng)變化如何實(shí)現(xiàn)兩個(gè)值提示框的聯(lián)動(dòng)變化例如: 現(xiàn)在一個(gè)維度有兩層 兩層的值分別為 第一層 第二層 A a1,a2 B b1,b2現(xiàn)在拖兩個(gè)值提示框 當(dāng)?shù)谝粋€(gè)值提示框選擇A時(shí),第二個(gè)值提示框只出現(xiàn)a1和a2 當(dāng)選擇B時(shí),第二個(gè)值提示框只出現(xiàn)b1和b2選擇第二個(gè)框的屬性,將其屬性中層疊來(lái)源點(diǎn)開(kāi),然后在彈出的框里選擇第一個(gè)框的參數(shù),然后將第一個(gè)框的屬性設(shè)置為自動(dòng)提交前提是A和B必須是在同一張表里面有對(duì)應(yīng)的關(guān)系25.導(dǎo)

28、出成excel和 PDF1、如圖新建兩個(gè)HTML標(biāo)簽下載 (18.51 KB)2009-11-23 11:372、分別寫(xiě)入代碼<script language="javascript">function getObjectName()return "oCV" + document. getElementById("cv.id").value;function expExcel()var objName = getObjectName();eval(objName + ".getRV().viewReport(&#

29、39;XLWA');");</script><img src="/cognos8/samples/images/導(dǎo)出excel.gif"><script language="javascript">function getObjectName() return "oCV" + document. getElementById("cv.id").value; function expExcel() var objName = getObjectName(); ev

30、al(objName + ".getRV().viewReport('spreadsheetML');"); </script><img src="/cognos8/images/導(dǎo)出excel2007.gif" onclick="expExcel();"/><script language="javascript">function getObjectName()return "oCV" + document. getElementById("cv.id").value;function expPDF()var objName = getObjectName();eval(objName + ".getRV().viewReport(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論