cognos開發(fā)技巧總結(jié)文檔_第1頁
cognos開發(fā)技巧總結(jié)文檔_第2頁
cognos開發(fā)技巧總結(jié)文檔_第3頁
cognos開發(fā)技巧總結(jié)文檔_第4頁
cognos開發(fā)技巧總結(jié)文檔_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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&qu

3、ot; : ""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、& 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.

6、paddingLeft.indexOf("px") > -1)trCurrent.style.display = "none"</script>8.拖入一個HTML項目插入到運營商單元格前面,修改成數(shù)據(jù)項,并修改表達式運營商中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.運營商所在地 + '</span>'9.刪除掉運營商所在地10.設(shè)置運營商的填充為左側(cè)2011.增加圖片增加樹形的圖片PropertyGroup_plus.gi

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

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

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

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

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

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

14、e();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(); /getF

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

16、new 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 );

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

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

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

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

21、空值填充15.Cognos合并列單元格在使用cognos的過程中,我們難免要制作中國式報表,合并之前:選中一個單元格,比如上面那個單元格,然后找到它屬性的邊框?qū)傩匀缓髮邮皆O(shè)為無,并選中預(yù)覽中的下面那個按鈕:注意兩幅圖片的差別,如此點擊確定,然后選中橫線下面那個單元格,按照上面的方法做,這次點擊預(yù)覽中的上橫線按鈕,這樣就可以達到隱藏橫線的效果了.效果如圖:這樣就能夠達到我們的目的了.16.設(shè)置交叉表角單元格交叉表角單元格本來只有一格,要設(shè)置多列標題時點中角單元格,方框類型選無可插入對象里拖入兩個交叉表空間將列內(nèi)空列處方框類型設(shè)為無解鎖拖入兩個文本項目到剛插入的交叉表空間中選中將類設(shè)為交叉表角單

22、元格設(shè)置交叉表多行表頭時也可以參照拖入多個交叉表空間,再拖入文本項目至其中進行設(shè)置。17.求有復(fù)合表達式項的合計、小計如下報表,合計定期比前2月主機數(shù)量,對應(yīng)數(shù)量的表達式為:(本月主機數(shù)量-前2月主機數(shù)量)/前2月主機數(shù)量第一層小計:(total(本月主機數(shù)量 for 分公司,歸屬服務(wù)站)-total(前2月主機數(shù)量 for 分公司,歸屬服務(wù)站)/total(前2月主機數(shù)量 for 分公司,歸屬服務(wù)站)第二層小計:(total(本月主機數(shù)量 for 分公司)-total(前2月主機數(shù)量 for 分公司)/total(前2月主機數(shù)量 for 分公司)整表合計:(total(本月主機數(shù)量 for

23、report)-total(前2月主機數(shù)量 for report)/total(前2月主機數(shù)量 for report)18.設(shè)置條件樣式如針對某列值設(shè)置,小于0,則用紅色字點中要設(shè)置的列,條件樣式,點高級條件樣式,新建條件表達式定義里填寫要設(shè)置滿足的條件,確定后面的樣式點筆處,將前景顏色設(shè)為紅色這樣報表出來的結(jié)果就會是剛設(shè)的列為負數(shù)是,則為紅色字19.自定義交叉表中某維度分別合計如上圖表,的值有主機、副機,則主機、副機合計表達式分別為total(QTYS within set filter (TERMINALSPECIFICATIONNAME,TERMINALSPECIFICATIONNAME

24、='主機')total(QTYS within set filter (TERMINALSPECIFICATIONNAME,TERMINALSPECIFICATIONNAME='副機')20.把列表匯總從最后放到第一行我把最后一行中的匯總放到第一行時,第一行的匯總顯示不正確(顯示的只是最第一條記錄的值)。如何把列表的匯總從最后一行,放到第一行,且顯示正確的匯總數(shù)據(jù)?選中表頭,創(chuàng)建頁眉,選擇結(jié)構(gòu)-創(chuàng)建頁眉,(不是列表頁眉),再然后選擇分割列表單元格,然后選擇新創(chuàng)建的頁眉,解鎖,解鎖后,把下面的匯總條,選中復(fù)制到新創(chuàng)建的頁眉上,在把鎖給鎖上。這是列表 如果是交叉表

25、直接拖上去就可以了圖的效果就是這樣出來的啊,我問的是結(jié)果不一樣啊,這個才是問題的關(guān)鍵。(第二個圖)因為你創(chuàng)建的是列表頁眉,不對,這樣出來頁眉一行顯示的是列表頁眉 如你的一圖。應(yīng)該是創(chuàng)建頁眉,出來頁眉一行顯示的是匯總,出來的數(shù)值結(jié)果才是匯總后的數(shù)值。21.將登陸的用戶名直接傳到報表中and panyid in(select panylevel1id from csportal.TB_COGNOS_PORTAL_ORG_REL tcjoin csportal.TB_SYS_EMPEE_ORG eo on _id=eo.dept_idjoin (SELECT e1.empee_id,e1

26、.empee_acct from csportal.tb_pty_empee e1 where e1.empee_acct!='admin' union all SELECT 150500011166 empee_id,e2.empee_acct from csportal.tb_pty_empee e2 where e2.empee_acct='admin'union all SELECT 150500011166 empee_id,'huge' empee_acct from dual) e on e.empee_id=eo.empee_id

27、 join csbi.d_company_org co on panyid=tc.dept_idwhere e.empee_acct= #sq($account.personalInfo.userName)# )22.在報表中再引用值提示內(nèi)容拖入一個文本項目,內(nèi)容隨便寫點什么,點中文本項目將文本項目文件來源改為表達式里拖入所需的參數(shù)23.過濾一行中所有值都為0的拖入一個數(shù)據(jù)項為每項相加添加過濾條件<>0,應(yīng)用程序處選擇自動聚合之后。24.查詢條件的聯(lián)動變化如何實現(xiàn)兩個值提示框的聯(lián)動變化例如: 現(xiàn)在一個維度有兩層 兩層的值分別為 第一層 第二層 A a1,a2 B b1,b2 現(xiàn)在拖

28、兩個值提示框 當(dāng)?shù)谝粋€值提示框選擇A時,第二個值提示框只出現(xiàn)a1和a2 當(dāng)選擇B時,第二個值提示框只出現(xiàn)b1和b2選擇第二個框的屬性,將其屬性中層疊來源點開,然后在彈出的框里選擇第一個框的參數(shù),然后將第一個框的屬性設(shè)置為自動提交前提是A和B必須是在同一張表里面有對應(yīng)的關(guān)系25.導(dǎo)出成excel和 PDF1、如圖新建兩個HTML標簽下載 (18.51 KB)2009-11-23 11:372、分別寫入代碼<script language="javascript">function getObjectName()return "oCV" + do

29、cument. getElementById("cv.id").value;function expExcel()var objName = getObjectName();eval(objName + ".getRV().viewReport('XLWA');");</script><img src="/cognos8/samples/images/導(dǎo)出excel.gif"><script language="javascript">function getOb

30、jectName() return "oCV" + document. getElementById("cv.id").value; function expExcel() var objName = getObjectName(); eval(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().v

溫馨提示

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

評論

0/150

提交評論