您的位置:首页 > 其它

如何创建一个动态的数据窗口对象

2013-03-27 17:04 609 查看



问:我想在程序运行中根据需要动态地建立一个数据窗口对象,该怎么做呢?

答:方法有四:

第一种方法:

在程序中用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事务对象名。sqlselectstring,其值为一条有效的SQL SELECT语句。presentationstring,指定数据窗口缺省的表现风格。完整语法Style(Type=value
property=value ……) //数据窗口风格

Type
Tabular缺省值,列表风格Grid列表风格Form自由格式Crosstab交叉列表Graph统计图风格Group分组风格Label标签风格Nested复合风格Ole 2.0Ole风格RichText超文本风格DataWindow(Property=value ……) //数据窗口本身的属性Column(Property=value ……) //列对象属性Group(groupby_colnum1 by_colnum2 …… property ……) //分组特性Text(property=value ……)
//文本对象属性Title('titlestring') //数据窗口的标题errstring,当生成数据窗口源代码发生错误时,该参数用于保存出错信息。

[注]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语句创建数据窗口对象的源代码,再据此修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: