导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

新手请教数据窗口添加按钮的代码?

richgod 2007-12-16 04:14:12
新建了一个以GRID形式的数据窗口DW_1,一个窗口WIN1,把DW_1拖放到WIN1中,WIN1中有“添加”按钮,编写添加按钮代码:dw_1.insertrow(0),可是不能编辑,不知道是什么原因?另请教一下保存,修改,及查找按钮该如何写呢?新手刚学,不知道如何下手,多谢了
...全文
307 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq49628637 2011-01-20
database transaction information not availabla
回复
liaomingyan520 2007-12-18
connect using sqlca;
if sqlca.sqlcode=0 then
open(w_login)
else
messagebox("prompt!!",sqlca.sqlerrtext)
end if
回复
richgod 2007-12-18
已经写了,再一次提示“Database transaction information not available,
Call SetTrans or SetTransObject function. ”这样的语句呢?
回复
dawugui 2007-12-17
没写

dw_1.Settransobject(sqlca)
dw_1.Retrieve()
回复
richgod 2007-12-17
再一次请教一下,出现“database transaction information not available”这样的提示信息该怎么修改,数据库测试连接成功了啊,
回复
richgod 2007-12-16
多谢DERSAK的帮助,的确好使
回复
dawugui 2007-12-16
5、编写用户对象的Constructor事件:
String ls_Syntax
String ls_line
IF This.DataObject = '' Then Return
//创建Footer区
IF Integer(This.Describe("DataWindow.Footer.Height") ) < 120 Then
This.Object.DataWindow.Footer.Height='120'
End IF
//在Footer区添加线
ls_line = 'Create line(band=footer ' + &
'background.mode="2" background.color="16777215"' + &
'pen.style="0" pen.width="5" pen.color="0" x1="0" y1="2" ' + &
'x2="' + String(This.Width - 100) + '" y2="2" )~r~n'
this.modify( ls_line )
//获取设计时的数据窗口语法串
ls_Syntax = This.object.DataWindow.Syntax
//添加按钮语法串
ls_Syntax = uf_addbutton( ls_Syntax )
if this.Create( ls_Syntax ) <> 1 then
MessageBox('提示信息','创建数据窗口出错', StopSign!)
End If

6、从u_dw_button继承就可以了。如下图:

图贴不上来.
回复
dawugui 2007-12-16
数据窗口中按钮的封装

在数据库的操作中,对数据表记录的检索、添加、删除和保存等操作是最基本和最常用的,可以说这些操作是数据表的标准操作。但PB并没有提供上述封装好的按钮对象,如果每次都要来添加命令按钮并编写脚本,工作是很繁琐的,而且还不能保证界面的一致性。
在PB的数据窗口对象中,可以直接放置按钮对象,而且开发人员既可以给这些按钮制定默认的操作,也可以自己定义按钮的功能。在可以指定的默认操作中就包含了上面提到的所有数据表的基本操作,这样一来在数据窗口需要相应的按钮时,只需要加入按钮对象然后指定其功能就行了。
实际上可以利用PB面向对象的编程技术,实现一个包含标准操作按钮的数据窗口对象,这样在需要用到标准操作的时候,只需要从该对象继承即可满足基本的数据应用需求。
实现过程如下(利用PB9自带数据库,EAS Demo DB V9):
1、建立一个工作空间(workspace),取名为:dwbutton。
2、建立一个应用(application),取名为:dwbutton。
3、建立一个标准的可视用户对象,类型为:datawindow,取名为:u_dw_button。

4、定义用户对象级私有函数uf_addbutton(string as_oldsyntax) return string
//功能:修改数据窗口语法串,为其增加常用功能按钮
//入口参数:as_OldSyntax 原有数据窗口语法串
//返回值: ls_NewSyntax 修改后的语法串
//应用条件:数据窗口中有Footer区, 高度>90的区域是按钮带区
String ls_AddButton
String ls_NewSyntax
Integer li_button_width
Integer li_button_x
//确定Button的位置参数
li_button_width = (This.Width + 20) / 10 - 40
IF li_button_width > 220 Then
li_button_width = 220
li_button_x = (This.Width - 240*10) / 2
IF li_button_x <=0 Then li_button_x = 10
Else
li_button_x = 20
End if
ls_NewSyntax = as_OldSyntax
//---------------添加按钮语法串------------------------------
//检索按钮
ls_AddButton = 'button(band=footer name=cb_retrieve text="检索" ' + &
'enabled=yes action="2" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//首页按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_first text="首页" ' + &
'enabled=yes action="6" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//上页按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_prior text="上页" ' + &
'enabled=yes action="5" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//下页按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_next text="下页" ' + &
'enabled=yes action="4" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//末页按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_last text="末页" ' + &
'enabled=yes action="7" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//添加按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_append text="添加" ' + &
'enabled=yes action="11" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//插入按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_insert text="插入" ' + &
'enabled=yes action="12" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//删除按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_delete text="删除" ' + &
'enabled=yes action="10" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//保存按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_update text="保存" ' + &
'enabled=yes action="13" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
//打印按钮
li_button_x = li_button_x + li_button_width + 20
ls_AddButton = 'button(band=footer name=cb_print text="打印" ' + &
'enabled=yes action="15" border="1" color="8388608" ' + &
'x="' + string(li_button_x) + '" y="20" height="90" ' + &
'width="' + string(li_button_width) + '" ' + &
'vtextalign="0" htextalign="0" visible="1" ' + &
'font.charset="0" font.face="Arial" font.family="2" ' + &
'font.height="-9" font.pitch="2" font.weight="400" ' + &
'background.mode="2" background.color="12639424" )~r~n'
ls_NewSyntax = ls_NewSyntax + ls_AddButton
return ls_newsyntax

回复
I_am_Z 2007-12-16
在数据窗口的constructor事件中加入语句绑定事务对象sqlca
this.settransobject(sqlca)
回复
richgod 2007-12-16
Database transaction information not available,
Call SetTrans or SetTransObject function. 出现这样的错误语句怎么修正呢?多谢了
回复
jlwei888 2007-12-16
这些可最简单的啊!

不能编辑,要看一下DW的Taborder的值,要大于0才能编辑

win1 open事件:
dw_1.settransobject(sqlca)
dw_1.retrieve()


添加:

int i
i = dw_1.insertrow(0)
dw_1.scrolltorow(i)


保存:

dw_1.accepttext()
if dw_1.update() = 1 then
commit;
//成功
else
//失败
rollback;
end if

修改没有用,缺省就是能修改


查找:
参考这个吧:
http://topic.csdn.net/u/20071216/11/720c410e-4dc2-48ec-9f9f-adeb3382e9a3.html
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

812

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告