BO问题解答Word文件下载.docx
《BO问题解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《BO问题解答Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
pos=v.indexOf("
v=v.substring(pos+1,v.length);
首先需要在数据库中建立相应的对查询条件的排序字段,如本例子中的SEQUENCE字段就是用来对NAME进行排序的字段,最好建立为字符型(a/b/c/d…..),数字型(1,2,3……)也可以,本例中SEQUENCE就是数字型,需要使用CHR函数转码,如CHR(TYDB_SYSDEPARTMENT.SEQUENCE+64);
如果数据库中没有排序字段,可以考虑在DESIGNER里面通过CASE语句把查询条件的字段自行做成a@*/b@*的模式,好让后台程序处理。
方法1:
1先备份可能要改动的语义层.
2
在语义层中复制要进行下拉框值排序的对象,如"
单位"
;
把名字改一下,让它变得更好识别,如"
单位lov"
当然不改也行.
3
将新生成的对象,如"
改它的sql语句,由原来的TYDB_SYSDEPARTMENT.NAME改为CHR(TYDB_SYSDEPARTMENT.SEQUENCE+64)||'
@'
||TYDB_SYSDEPARTMENT.NAME
4
在所有用到它的报表中,如果对"
使用到了提示,则将它替换为"
即由后者来提供下拉框的值.
5
使用附件中的页面后,即可以达到效果.
方法2:
在所有用到它的报表中,如果使用到了"
这个对象,其数据将显示为类似:
2@哈局,这时需要使用webi提供的函数substring()来将前面的"
2@"
去掉.
以上两种方法都可以。
4.同一个报表中多个查询的过滤器互相影响。
经测试发现,过滤器需要分别命名,同名的过滤器服务器会默认为同一个过滤器。
但过滤器在不同查询中一起显示的问题无法解决,建议如果存在这种情况通过跳转的方式来实现,避免用户使用上的混乱。
5.同一个表字段中存在两种层次的数据,如省局、电力局,如何在报表中分层显示?
在报表中对字段值进行分层显示,有两种做法:
1)在数据库模型设计中,就把一个字段中的两种层次的值拆分成两个字段存放,划分成两个维度字段:
省局、电力局;
这样建立的属性维度值在报表中就能很好的分层显示,这是目前的主流做法,推荐使用;
2)在建立Universe的时候,从该字段中抽取它们的属性建立相应的属性维度,如把行业字段抽取属性生成总行业属性维度(即通过脚本把行业分成不同的类别),从而在报表中分层显示。
6.多层交叉表的标题合并问题。
在WebIntelligence中,多层交叉表的标题无法合并;
只有单层交叉表多个指标值的情况下标题才能合并:
7.合并维的作用。
合并维主要用于一个报表中存在多个查询的情况下,要注意一点,同一个报表中的不同查询,即使它们是来自同一个Universe,它们也是互不相关的;
如果要把它们的查询结果组合在一个表格中进行展示,就需要把表格中用到的维度进行合并,否则会出错。
要注意的是,合并的两个维度需要包含相同的值。
8.在Universe设计中,因为后台数据库设计时,都把数字型的字段设置成字符型,在前端展示时,需要通过Double函数转换字符值为数字,转换后的结果小数点后保留的位数有时为3,有时为2。
经查证,该问题是看错了。
Universe不对数据进行处理,它会直接调用数据库本身的函数,所以要看转换的结果,直接在数据库界面操作即可。
而本问题的发生是BO报表设计时,自动保留小数点后两位数字,只需要对该格式进行修改就好。
9.钻取的层次和过滤器?
在使用钻取时,报表会按照在Universe预先定义好的层次进行逐层展示;
而钻取过滤器则没有层次之分,与查询过滤器的功能类似。
10.在表格的跳转设置。
在表格的相应位置设置超级链接,如:
="
<
ahref='
../../opendoc/openDocument.jsp?
iDocID=AT1rSe8yQ0xHpsOAa2FA5lM&
sIDType=CUID&
lsSyear="
+UserResponse("
输入年度:
"
)+"
&
lsMunit="
输入单位:
mymode=yes&
lsScode="
+[code]+"
'
target='
ifr'
>
+[偿债能力分析指标]+"
/a>
再编辑该单元格属性“单元格内容读作”值为“超级链接”
效果如下:
11.在BO中如何对对象进行比较复杂的设计。
通过报警器来对对象进行复杂的设计,能控制对象的各个属性。
12.在开发和使用过程中,发现BO服务异常,性能很差,如何解决?
有可能是因为服务器长时间运行,导致大量内容缓存以致系统运行性能下降,可以考虑通过中央管理控制台重启服务器的服务,清空缓存来解决相关问题。
或通过中央配置管理器重启服务也可以;
必要的时候,通过中央配置管理器添加服务以使用服务间的负载均衡来提高服务器的性能。
13.在报表跳转过程中,中文参数值传递出错?
在URL中,对中文参数值使用URLEncode()函数进行转换,就能正常传递中文参数。
如:
iDocID=AdJUbbcndnlIpUQALrbmBJg&
sWindow=New&
lsS年度="
+URLEncode([年度])+"
lsS季度="
+URLEncode([季度])+"
lsS单位="
+URLEncode([单位])+"
+[本期(次)]+"
14.在报表展示中,发现中文显示异常。
中文显示异常是中文报表展示的常见问题,解决办法是在报表设计时,中文显示字段都要设置正确的中文字体,如:
SimSun。
15.报表在通过提示下拉菜单进行条件选择,并查询的时候,查询结果很快出来,但弹出的“请稍候,运行查询”的提示框一直不消失,请问该问题如何解决?
这个问题在大部分报表中都出现,目前后台数据量不大,服务器资源一直很空闲。
functionlaunchRefreshWaitDlg(strDlgTitle,blnCanelQuery,blnShowProgress,blnShowLabel)
{
/*
varstrLabel="
上次刷新时间:
%h%h%m%m%s%s"
varret=formatDuration(lastRefreshDuration.toString())
strLabel=strLabel.replace(/%h%/g,ret.hh);
strLabel=strLabel.replace(/%m%/g,ret.mm);
strLabel=strLabel.replace(/%s%/g,ret.ss);
strLabel=strLabel.replace(/"
/g,"
\\"
+"
\"
strDlgTitle=strDlgTitle.replace(/"
varlastRDms=(lastRefreshDuration*1000).toString();
varstrFuncPrototype="
showWaitDlg(\"
+strDlgTitle+"
"
+((blnCanelQuery)?
true"
:
false"
cancelQueryCB,"
+((blnShowProgress)?
+lastRDms+'
'
\"
+strLabel+"
)"
eval(strFuncPrototype);
*/
}
16.关于BO在迁移的时候,报表的ID不固定的问题:
http:
//10.166.4.100/ldcx/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?
sType=wid&
iDocID=787&
token=BOSERVER@6226JCxYp0bcpAhaloHS6225JPi9O5mpQBKz8rOD;
BO中每个报表都有一个iDocID,但是在进行迁移的时候,这个ID总是变化,导致我们在从开发环境迁移到测试环境后,必须重新对照一次,然后将ID导入到我们自己开发的领导查询系统中才能够使用,工作量大而且容易出错。
1)可以采用动态读取的办法,这样就能保证ID正确;
2)可以改用cuid的方法,http:
//bistudio:
8080/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?
iDocID=AQI9ZNIgrXBCiDilTBSLjJo&
sIDType=CUID;
iDocID的值通过查询生成器,使用类似SELECTSI_ID,SI_NAME,si_cuidFROMCI_INFOOBJECTSWHERESI_id=22570的语法可以找到,si_cuid就是要的值
17.查询条件下拉列表的宽度不能调整,较长的名称不能全部展现。
\WebSphere\AppServer\installedApps\bi\desktop_war.ear\desktop.war\viewers\cdz_adv\language\zh_CN\html\quickPromptsSimple.html文件中的resizePrompts函数,如下:
functionresizePrompts()
/*
varw=winWidth();
variWidth=Math.max(60,w-10);
if(w<
50)
document.getElementById("
sepToolbar"
).style.width=iWidth;
).style.width=w;
for(vari=0;
i<
iNbPrompts;
i++)
if(prompts[i].hasLOV&
prompts[i].isConstrained)
lstPromptValues[i].resize(iWidth);
txtPromptValue[i].resize(iWidth);
//newlyadded,20071027
for(i=1;
i<
=prompts.length;
i++)
{
o=document.getElementById("
PV"
+i+"
List"
varlen=0;
for(k=0;
k<
o.length;
k++)
if((o[k].value).length>
len)
len=(o[k].value).length;
}
o.style.width=30+4*len;
18.如果一个报表中通过链接在一个FRAME显示另外一个图表,通过EXCEL导出后,不能正常显示,显示为链接字符串,应该如何解决
这个问题不是BO产品功能问题,web应用都是这个特点,不会有很好的办法;
实在需要导出的话,建议专门做一个报表;
导出功能只能将当前层面的内容导出来,不但是图表,文字也是一样的.
19.在报表中通过链接直接在报表中用一个FRAME显示另外的表图时,有时会显示不正常,这种情况是不时就出现,但不是肯定出错。
请问如何解决?
正常
出错
该问题也是链接中的中文参数传递问题,应该对中文参数值使用URLEncode()函数进行转换,就能解决问题。
20.当报表有多页的时候,如何让标题在报表的新页面(如第二页)重复显示?
选择标题,在“属性”——“位置”——“在每个新页面上重复”选项选择是,就能达到效果。
21.在编写报表链接时,明明代码无误,还是报错?
这有可能是因为报表中的代码编辑混乱的缘故,可以尝试把该链接完全删除,保存,重新打开IE进入报表编辑界面,把该链接再添加回来,有可能可以解决问题。
22.在提示过滤器名称中,如果带有“:
”,报表链接会出错。
这可能是因为中文全角字符传递出错的问题,建议尽量在提示名称中使用半角字符“:
”,或干脆不用冒号。
23.在链接的地方当在单位提示下拉列表选择“全部”时,出现乱码。
设计:
lsM单位="
这是因为代码中直接引用了报表字段[单位],改为引用提示字段值UserResponse("
单位:
),这样就能解决问题。
即:
+URLEncode(UserResponse("
))+"
24.在钻取时发现层次混乱,而且数据异常?
这是因为在语义层设计时没有进行正确的层次定义的关系,如把汇总层次的维度放在明细维度的下层,在钻取时肯定会数据异常。
只要做好层次设计,就能解决问题。
25.当一个文档存在多个报表的时候,如何调整它们的显示顺序?
右击下方的报表标题——查看“文档属性”——在“报表顺序”中通过上下键进行调整。