我使用jdbcQuery作为扩展库数据视图控件的数据源来提取DB2数据,当我在categoryColumn和/或summaryColumn columnName或value属性中使用DB2列名时页面引发错误500,但不是中extraColumns。我可以理解为什么categoryColumn可能会出现这种情况,因为DB2列没有被分类,但是我们认为DB2列被认为是摘要列。无论如何,是否有我可以使用的另一个控件或一些hack方法,当数据源中的列不是时,列会显示为分类?
Domino 8.5.3FP3 扩展库9.0.0.v00_02_20130515-2200 DB2 V10.1 for z / OS
答案 0 :(得分:1)
我认为Category Bean项目可能有所帮助。至少你可以根据它制作自己的bean。
答案 1 :(得分:0)
第一个重复应包含列标题,图像用于标识categoization,计算类别值和第二个重复。第二次重复的数据源是进行新的SQL调用,以根据第一次重复的分类值拉入特定字段。字段值连接在一起,以便可以为每个计算字段解析它们。我的blog会在屏幕截图中显示更多细节。屏幕截图显示了我的XPage上的分类值,这些值由代码示例解释。
<xp:panel xp:key="facetMiddle">
<xp:table>
<xp:tr>
<xp:td></xp:td>
</xp:tr>
<xp:repeat
var="collRowData"
value="#{jdbcQuery1}"> //name of XPage datasource
<xp:tr>
<xp:td>
<xp:panel id="mainpanel">
<xp:image
id="image1"
style="height:16.0px;width:16.0px"
rendered="#{jav`enter code here`ascript:
context.getSubmittedValue()=='hide' ||
context.getSubmittedValue()== null;}">
<xp:this.url><![CDATA[#{javascript:"/.ibmxspres/domino/icons/vwicn096.gif"}]]></xp:this.url>
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[var visibility = 'show';
XSP.partialRefreshGet("#{id:mainpanel}", {
params: {'$$xspsubmitvalue': visibility},
onComplete: function () {
XSP.partialRefreshGet("#{id:secondpanel}", {
params: {'$$xspsubmitvalue': visibility}});}});]]></xp:this.script>
</xp:eventHandler>
</xp:image>
<xp:image
id="image2"
style="height:16.0px;width:16.0px"
rendered="#{javascript:context.getSubmittedValue()=='show'}">
<xp:this.url><![CDATA[#{javascript:"/.ibmxspres/domino/icons/vwicn097.gif"}]]></xp:this.url>
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[var visibility = 'hide';
XSP.partialRefreshGet("#{id:mainpanel}", {
params: {'$$xspsubmitvalue': visibility},
onComplete: function () {
XSP.partialRefreshGet("#{id:secondpanel}", {
params: {'$$xspsubmitvalue': visibility}});}});]]></xp:this.script>
</xp:eventHandler>
</xp:image>
<xp:text
escape="true"
id="computedField2"
style="margin-left:5.0px;font-weight:bold">
<xp:this.value><![CDATA[#{javascript:if (collRowData[0]) {
collRowData[0] }
else {
'- not categorized -'}}]]>
</xp:this.value>
</xp:text>
</xp:panel>
<xp:panel id="secondpanel">
<xp:repeat
var="character"
rendered="#{javascript:context.getSubmittedValue()== 'show'}">
<xp:this.value>
<![CDATA[#{javascript:
var sql = "Select MBR_FIRST_NM, MBR_LAST_NM from TECH.TBSCRA_DEMO where MBR_ACCESS_NBR = '" + collRowData[0] + "'"; //single quote is before and after collRowData[0]
var rs = @JdbcExecuteQuery("db2",sql);
var fName;
var lName;
while(rs.next()) {
//Get the data from the row using the column name
fName = rs.getString("MBR_FIRST_NM");
lName = rs.getString("MBR_LAST_NM");
}
return fName + "," + lName}]]></xp:this.value>
<xp:table>
<xp:tr>
<xp:td>
<xp:text
escape="true"
id="firstname">
<xp:this.value><![CDATA[#{javascript:
var nm = @Explode(character,",");
if (character) {
nm[0] }
else {
'- not categorized -'}}]]></xp:this.value>
</xp:text>
</xp:td>
</xp:tr>
</xp:table>
</xp:repeat>
</xp:panel>
</xp:td>
</xp:tr>
</xp:repeat>
</xp:table>
</xp:panel>