如何在Smart gwt的ListGrid中将列显示为行?

时间:2012-04-20 09:22:45

标签: smartgwt listgrid

我是Smart gwt的新蜜蜂。 基本上我的数据结构如下:

一个
| _____ B1

  |__C1
  |__C2
  |__C3

| _     B2

dataStructure 所以我创建了我的ListGridRecord,如下所示:

公共类VEPAreaRecord扩展了ListGridRecord {

public VEPAreaRecord(){

}


/**
 * @param vepAreaName
 * @param checkStations
 */
public VEPAreaRecord(String vepAreaName, String[] checkStations) {
    setVepAreaName(vepAreaName);
    setCheckStations(checkStations);
}


/**
 * @return the vepAreaName
 */
public final String getVepAreaName() {
    return getAttribute("vepAreaName");
}
/**
 * @param vepAreaName the vepAreaName to set
 */
public final void setVepAreaName(String vepAreaName) {
    setAttribute("vepAreaName",vepAreaName);
}
/**
 * @return the checkStations
 */
public final String[] getCheckStations() {
    return getAttributeAsStringArray("checkStations");
}
/**
 * @param checkStations the checkStations to set
 */
public final void setCheckStations(String[] checkStations) {
    setAttribute("checkStations",checkStations);
}

}

但在我的ListGrid中,我希望tp将我的数据显示为

Area1 Area2 Area3

Check1 check2 chek3

check4

check5

基本上我想要的是将我的行显示为列,反之亦然。但我不知道如何实现这一目标。或者还有其他任何组件可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

是CubeGrid适用于Isomorphic的Power和Enterprise许可证持有者。查看CubeGrid和Facets类,并查看smartgwt页面上的展示案例。

http://www.smartclient.com/smartgwtee/showcase/#cube_analytics并按照示例进行操作。

如果您只能使用ListGrid,则可以通过迭代记录来实现相同的功能。如果您能够使用数据库,则可以输入customSQL

如:

<operationBindings>
<operationBinding operationType="fetch" operationId="VEP_AREA_RECORD">

<customSQL>

SELECT * FROM (SELECT SUBSTRING(MeasurementTime,7,4) [Year], CASE SUBSTRING(Time,1,2) WHEN '01' THEN 'Jan' WHEN '02' THEN 'Feb' WHEN '03' THEN 'Mar' WHEN '04' THEN 'Apr'  WHEN '05' THEN 'May' WHEN '06' THEN 'Jun' WHEN '07' THEN 'Jul' WHEN '08' THEN 'Aug' WHEN '09' THEN 'Sep'  WHEN '10' THEN 'Oct'  WHEN '11' THEN 'Nov'  WHEN '12'THEN 'Dec' END as [Month],      [value] , [col1] as col1,
  col1 [col1_name], col2 [col2_name], col3 [col3], [col4_name] FROM your_table  WHERE MeasurementValue IS NOT NULL) TableDate  PIVOT <what you want in rows>  FOR [Month] IN (
    [Jan],[Feb],[Mar],[Apr],
    [May],[Jun],[Jul],[Aug],
    [Sep],[Oct],[Nov],[Dec]
  )
) AS PivotTable
 ORDER BY groupCol1, groupCol2

</customSQL>

显然这些列可能是您的记录/ db或派生的实际值(在我的情况下来自日期字段。我不是SQL大师,所以如果有更好的方式我很乐意听到它。

在上面的例子中,输出将是

                           [jan]  [feb]  [mar]  etc.....in your case

[col1_valA] [col2_val1]    valx    valy
[col1_valB] [col2_val2