(一)通过GETSQLSELECT、SETSQLSELECT函数实现
dwcontrol.GetSQLSelect ( )
dwcontrol.SetSQLSelect ( statement )
说明:这种情况下要求新旧SELECT出来的结果列要求一致,并且SELECT语句不能有RETRIEVE ARGUMENTS。
(二)通过dw_control.Object.DataWindow.Table.Select属性实现
sqlvar = 'SELECT ... WHERE ...'
dw_1.Modify("DataWindow.Table.Select='" + sqlvar + "'")
说明:这种情况下可以使用RETRIEVE ARGUMENTS,但必须要求只能使用原来已定义的ARGUMENTS。
(三)通过CREATE函数重构DATAWINDOW来实现
dwcontrol.Create ( syntax {, errorbuffer } )
这其中的SYNTAX语法可以通过以下四种方式获取:
1、setting = dw_1.Object.DataWindow.Syntax
setting = dw_1.Describe("DataWindow.Syntax")
2、LibraryExport ( libraryname, objectname, objecttype )
3、transaction.SyntaxFromSQL ( sqlselect, presentation, err )
4、自己组合拼装SYNTAX,但这种要求开发者非常熟悉DWO对象语法
(四)通过SETFILTER函数过滤部分数据来实现
dwcontrol.SetFilter ( format )
这种方法其实是一种间接达到目的的方法。
(五)通过处理SQLPREVIEW事件来实现
这种方法也是一种间接达到目的的方法,它通过改变SQLPREVIEW事件中的sqlsyntax参数来实现修改数据源。