答:方法有四:
第一种方法:
在程序中用Describe()函数得到某个已经存在的数据窗口对象的源代码。如:
string str_dwsyntax,str_lag
//获得数据窗口1的语法
str_dwsyntax=dw_1.object.datawindow.syntax
//根据数据窗口1的语法动态生成数据窗口2的语法
dw_2.create(str_dwsyntax)
//对数据窗口2的内容作局部修改
str_lag="stu_id_t.font.height='-12' stu_id_t.font.face='楷体_GB2312'"
//字体变12号字体,由宋体改为楷体
dw_2.modify(str_lag)
dw_2.settransobject(sqlca)
dw_2.retrieve()
第二种方法:
在程序中使用系统函数LibraryExport()得到某个已经存在的数据窗口对象的源代码。
第三种方法:
在PowerBuilder开发环境的库管理画笔(Library Painter)中使用移出功能(右键→Export)将某个数据窗口对象的语法保存到文本文件中。
第四种方法:
1、设计窗口时在窗口上设置一个数据窗口控件,该控件用于展示动态创建的数据窗口。
2、构造一条SELECT语句。
3、利用事务对象的对象函数SyntaxFromSQL()生成符合数据窗口对象语法的字符串。
4、使用数据窗口控件的对象函数Create()创建数据窗口。
例子:string str_err_sql,str_err_create,str_sql,str_syntax
str_sql="select emp_id,emp_data,emp_name from employee where emp_salary>750"
//生成SELECT语句对应的自由风格的数据窗口语法
str_syntax=SQLCA.SyntaxFromSQL(str_sql,'style(type=Form)',str_err_sql)
if len(str_err_sql)>0 then
messagebox("错误","取得SQL语法时出错")
return
else
dw_1.create(str_syntax,str_err_create)
if len(str_err_create)>0 then
messagebox("错误","创建数据窗口时出错!")
return
end if
end if
dw_1.settransobject(sqlca)
dw_1.retrieve()
[注]SyntaxFromSQL()函数
说明: | 根据SQL SELECT语句生成数据窗口对象的源代码,通常用于创建动态数据窗口对象。 | |||
语法: | transaction.SyntaxFromSQL(sqlselect,presentation,err )。 | |||
返回值: | string,成功时返回生成的指定风格数据窗口对象的源代码,错误时返回空字符串,err参数可说明原因。 | |||
参数 | 类型及说明 | |||
transaction | 事务对象名。 | |||
sqlselect | string,其值为一条有效的SQL SELECT语句。 | |||
presentation | string,指定数据窗口缺省的表现风格。 | |||
完整语法 | Style(Type=value property=value ……) //数据窗口风格 | |||
Type |
Tabular | 缺省值,列表风格 | ||
Grid | 列表风格 | |||
Form | 自由格式 | |||
Crosstab | 交叉列表 | |||
Graph | 统计图风格 | |||
Group | 分组风格 | |||
Label | 标签风格 | |||
Nested | 复合风格 | |||
Ole 2.0 | Ole风格 | |||
RichText | 超文本风格 | |||
DataWindow(Property=value ……) //数据窗口本身的属性 | ||||
Column(Property=value ……) //列对象属性 | ||||
Group(groupby_colnum1 by_colnum2 …… property ……) //分组特性 | ||||
Text(property=value ……) //文本对象属性 | ||||
Title('titlestring') //数据窗口的标题 | ||||
err | string,当生成数据窗口源代码发生错误时,该参数用于保存出错信息。 |
[注]Create()函数
说明: | 使用指定的源代码创建数据窗口对象,并用新的数据窗口对象来取代旧的,但新的不会自动成为应用库的一部份。 | |
语法: | dwcontrol.Create( syntax {,errorbuffer}) | |
返回值: | integer,成功为1,错误为-1。 | |
参数 | 类型及说明 | |
dwcontrol | 数据窗口控件名。 | |
syntax | 数据窗口源代码,Create()函数将使用该代码来创建数据窗口对象。 | |
errorbuffer | 可选,保存创建时的出错信息,若省略则系统将使用消息对话框显示出错信息。 | |
用法 | 数据窗口对象源代码语法相当复杂,因此手工从头构造该语法几乎是不可能的,但也不用泄气,Powersoft提供了几个办法构造数据窗口对象的源代码。 | |
1 | 程序中使用数据窗口控件的Describe()函数得到某个已经存在的数据窗口对象的源代码,再据此修改。 | |
2 | 程序中使用系统函数LibraryExport()得到某个已经存在的数据窗口对象的源代码,再据此修改。 | |
3 | 在PowerBuilder开发环境的库管理画笔(Library Painter)中使用移出功能(Export)将某个数据窗口对象的语法保存到文本文件中,再据此修改。 | |
4 | 程序中使用事务对象函数SyntaxFromSQL(),该函数根据SQL语句创建数据窗口对象的源代码,再据此修改。 |