当前位置: 代码迷 >> PB >> VS下,Sybase DataWindow控件,该如何解决
  详细解决方案

VS下,Sybase DataWindow控件,该如何解决

热度:15   发布时间:2016-04-29 06:25:23.0
VS下,Sybase DataWindow控件
怎么添加向datawindow动态添加列?
------解决方案--------------------
动态添加列,需要根据sql语句,动态创建数据窗口

string as_sql, ls_syntax, error_sql, ls_ret

datastore lds_data
lds_data = create datastore

as_sql = "select 1, 2, 3 from dual" //Oracle
ls_syntax = syntaxfromsql(sqlca, as_sql, "style(type=grid),column(font.facename='arial',font.size=-9))", error_sql)
if len(error_sql) > 0 then
ls_ret = '!@!syntaxfromsql Error:' + error_sql + '~r~n' + as_sql
else
lds_data.create(ls_syntax, error_sql)
if len(error_sql) > 0 then
ls_ret = '!@!Create Datawindow Error:' + error_sql
else
//
end if
end if

destroy lds_data
------解决方案--------------------

string as_sql, ls_syntax, error_sql, ls_ret

datastore lds_data
lds_data = create datastore

as_sql = "select 1, 2, 3 from dual" //Oracle
ls_syntax = syntaxfromsql(sqlca, as_sql, "style(type=grid),column(font.facename='arial',font.size=-9))", error_sql)
if len(error_sql) > 0 then
ls_ret = '!@!syntaxfromsql Error:' + error_sql + '~r~n' + as_sql
else
lds_data.create(ls_syntax, error_sql)
if len(error_sql) > 0 then
ls_ret = '!@!Create Datawindow Error:' + error_sql
else
//
end if
end if

destroy lds_data

------解决方案--------------------
DataWindow的语法是按照数据源来的,所以要动态的话,一般要重新拼凑数据源,其实从External Source就可以看出了,动态创建DataWindow很简单

gnv_sui_DataWindow.of_GridSourceSelect() //外部数据源
gnv_sui_DataWindow.of_GridObjectEdit("CHAR(255)","S_Code","编号",300PBU)
gnv_sui_DataWindow.of_GridObjectEdit("CHAR(255)","S_Name","名称",400PBU)
gnv_sui_DataWindow.of_GridObjectEdit("CHAR(255)","S_Memo","备注",500PBU)
看得懂吗?