【问题标题】:how to display columns as rows in ListGrid in Smart gwt?如何在 Smart gwt 的 ListGrid 中将列显示为行?
【发布时间】:2012-04-21 19:13:14
【问题描述】:

我是 Smart gwt 的新手。 基本上我的数据结构为:

一个
|_____ B1

  |__C1
  |__C2
  |__C3

|_ B2

所以我创建了我的 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 中,我希望将我的数据显示为

区域 1 区域 2 区域 3

检查1检查2检查3

检查4

检查5

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

【问题讨论】:

    标签: smartgwt listgrid


    【解决方案1】:

    是的,Isomorphic 的 Power 和 Enterprise 许可证持有者可以使用 CubeGrid。查看 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>
    

    显然,这些列可能是您的记录/数据库中的实际值或派生的(在我的情况下是从日期字段派生的。我不是 SQL 专家,所以如果有更好的方法,我很想听听。

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

                               [jan]  [feb]  [mar]  etc.....in your case
    
    [col1_valA] [col2_val1]    valx    valy
    [col1_valB] [col2_val2
    

    【讨论】:

    • 您好,我们没有使用 SQL 数据库。我们都没有使用 Smart GWT EE :-( 所以我们不能实现你的两个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多