数据窗口子窗口排序
父窗口列ss有子数据窗口
子数据窗口sql语句 select d1,d2,d3 from d groub by d1 asc
dw_1.getchild( "ss", lbwc_child)
lbwc_child.SetTransObject(sqlca)
li_rowcount = lbwc_child.retrieve()
lbwc_child.setsort("")
lbwc_child.SetSort("d2 asc")
lbwc_child.Sort( )
if li_rowcount <= 0 then lbwc_child.insertrow(0)
string ls_sql
ls_sql = lbwc_child.GetSQLSelect()
messagebox('',ls_sql)
但是最后ls_sql还是select d1,d2,d3 from d groub by d1 asc
没有按select d1,d2,d3 from d groub by d2 asc排序
// 网上还有说用后面这个 lbwc_child.SetSort("lookupdisplay( 'd2' ) asc") 同样效果还是没效果
感觉子窗口setsort没有起左右不知道怎么回事
请大侠们指教。。
[解决办法]
1.select d1,d2,d3 from d groub by d1 这个语句不能运行,你在数据库里跑跑看
2.
lbwc_child.setsort("")
lbwc_child.SetSort("d2 asc")
lbwc_child.Sort( )
写成
lbwc_child.setsort("")
lbwc_child.Sort()
lbwc_child.SetSort("d2 asc")
lbwc_child.Sort( )
setsort() sort() 和 setfilter() filter()
一般都是一起出现,setsort(),setfilter()设置条件,sort(),filter()才是根据条件对数据处理
[解决办法]
dw 的排序 dw.setsort() 和 dw.sort()
不会影响dw 构造该DW 的sql 语句的。
也可以在构造子DW 的SQL 里写 order by
[解决办法]
数据窗口的排序受两个位置的影响,一是在SQL语句中的order by子句,这种排序方式是在读出数据时就已排是排序完成的;另一种是setsort方式,是在数据读出后在数据窗口中进行的二次排序。
你这里使用setsort排序是第二种排序,是不会影响SQL语句的,如果想知道setsort是成功执行,可以通过<dwobject>.object.datawindow.table.sort来查看。