PowerBuilder中实现数据窗口列不可编辑的一种方法--免费毕业论文、毕业论文范文、毕业论文格式、毕业论文提纲,毕业论文网,提供计算机应用论文,计算机论文,工学论文毕业论文提纲、毕业论文范文、毕业论文格式等.
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
网站地图
合作联系
收藏本站

首 页 经济学论文 财政税收 证券金融 管理学论文 会计审计 工商管理 财务管理 公共管理 法学论文 理学论文 医药学论文
政治论文 社会学论文 文学论文 教育类论文 工学论文 计算机论文 艺术类论文 哲学论文 文化论文 英语论文 应用文 论文写作指导
邮电通信

   
 ·推荐免费论文
·2007县委办公室先进性教育活动工
·用科学发展观统领农业和农村经济
·计算机实习报告范文
·调查报告:大学生眼中的电子商务
·当前农村初中生学习心理的调查报
·求职信的格式和写作要点 
·英文简历写作的注意事项 
·毕业论文写作的基本要求
·计算机软件许可证协议书
 ·最近更新论文
·在电子商务中如何正确的使用数据
·大型ORACLE数据库优化设计方案
·在VB6.0数据库程序开发中使用ADO
·浅谈VFP报表打印问题
·通用网页查询函数的设计与应用
·构建校园网页面电子邮件系统
·Delphi中画布应用两则
·利用RCM2200实现以太网与异步串口
·Oracle数据库的优化
 ·推荐链接
   当前位置:首页 > 计算机论文 > 计算机应用 > 论文正文
联系我们 客户反馈

PowerBuilder中实现数据窗口列不可编辑的一种方法

来源:  [ 2007-3-8 22:24:27 ]  作者:佚名  编辑:
收藏到VIVI | 收藏到365KEY | 收藏到YOUNOTE | 收藏到博采| 收藏到天极网摘 | 收藏到和讯网摘

摘要:本文详细论述了如何利用DataWindow的Protect属性灵活实现列不可编辑的方法。

关键词:PowerBuilder;DataWindow;  数据编辑     

1      引言
通过数据窗口,用户可以对数据进行增、删、改等编辑工作。为了防止用户由于操作不慎而删掉数据窗口中的一些重要的数据,在PowerBuilder中,需要将不可删除数据所在的列设为不可编辑状态。常用方法有:1)在数据窗口的设计阶段将列的Tab值设置为0,或在程序运行阶段用函数动态设置列的Tabsequence属性为0;2)在数据窗口的设计阶段将列的Edit属性设置为DisplayOnly,或在程序运行阶段将Edit属性的DisplayOnly置为Yes。以上方法都简单且易于实现,但都不够灵活。用Tabsequence属性置0的方法,若要恢复该列的可编辑状态,必须在置0之前用Describe()函数先获取该列的Tab值,之后用Modify()函数恢复该值即可将该列恢复成可编辑状态,增加了编写额外代码的负担,而且这种方法还破坏了数据窗口的制表值顺序;把DisplayOnly属性置为Yes的方法,要求该列的Style Type必须选中Edit风格,若该列风格为其它类型,如CheckBox、EditListBox等,则不能用这种方法,因此这种方法也缺乏通用性。本文采用数据窗口中列的Protect属性来灵活实现列的不可编辑的方法,Protect属性将忽略数据窗口的制表顺序设置,只要列处于保护状态时,即使该列的制表顺序大于0,用户也不能对该列进行编辑。这种保护数据窗口列中数据的方法,它没有破坏制表值的顺序,很容易恢复列的制表值;而且Protect属性还允许指定一个条件表达式,使同一列中某些值被保护而另外的值没有被保护,这对在数据窗口中插入新记录时很有利。本文详细论述了如何利用DataWindow的Protect属性来灵活实现列的不可编辑。
2      Protect属性的访问格式
2.1  直接访问法的格式如下:
dw_controlname.Object.columnname.protect=value或
dw_controlname.Object.#columnnumber.protect=value.
其中value值为0或1,为1时该列处于保护状态,不可编辑;为0时该列处于非保护状态,用户可以编辑该列。
2.2  Modify()函数访问列属性的语法格式如下:
dw_controlname.Modify(string modstring)
其中参数modstring是定义属性的修改方式,即为“columnname.protect={‘integer’}或#columnnumber.protect={‘integer’}”,integer代表列是否被保护的布尔值,为0即假时,列没有被保护;为1即真时,列被保护。
如用表达式指定protect属性,该表达式有如下格式:
defaultvalue~tDataWindowpainterexpression
其中defaultvalue是能转换为与该属性适应的数据类型的值,即0或1,为一个缺省值;DataWindowpainterexpression是能使用任何DataWindow画板函数的表达式,该表达式求值后的数据类型必须与设置的属性的数据类型相匹配,当设置某列的属性时,该表达式作用于DataWindow中该列的每一行,这就使得可以根据数据的不同而改变保护的方式。
3        应用实例
下面以一个通讯录中添加记录为例详细说明。
首先在数据库中建立如表1所示的通讯录表(Txlb),同时在表中输入四条记录。
编号      姓名      工作单位      类别
0001      建国      湖南大学      同学
0002      无名      广西师大      同学
0003      阿勇      广西师大      同学
0004      小崔      长沙大学      同事
表1 通讯录
利用Txlb表建立数据窗口d_txl,数据源选择Quick Select,表现风格选择Grid。建立窗体w_txl,并在窗体中放置数据窗口控件dw_1,数据窗口控件dw_1连接的数据窗口即为d_txl,如图1所示。在该窗体中,用户如要防止删除编号列中已有的编号而在新增记录时又允许在该列输入新编号,单击数据窗口中的编号列标题即可。然后单击“新增”按钮,此时编号列中已有的编号不可编辑,但对新增的一条记录该列允许编辑,可以输入新编号为0005的一条新记录。记录输入完毕,单击“确定修改”按钮,输入数据将存入数据库,编号列中新增的记录自动转为不可编辑,从而实现对新老数据实行不同的保护,这是用方法1)、2)都无法实现的;用户如发现存入数据库的编号有错误,只要用鼠标双击编号列标题,即可解除列的保护状态,重新编辑该列,从而灵活实现列的编辑要求。对数据窗口控件中的其它列也可以采用同样的方法来实现新老数据的不同保护,因此这种方法还具有通用性。
 
图1  通讯录窗体w_txl界面
具体实现代码如下:
.窗体w_txl的open事件
dw_1.settransobject(sqlca)
dw_1.retrieve()
.窗口中“确定修改”按钮的clicked事件
if dw_1.update(dw_1,true,false)=1 then
dw_1.resetupdate()
commit using SQLCA;
else
rollback using SQLCA;
messagebox(“错误!!!”,“数据保存失败,请检查输入数据是否有错!”)
end if
.窗口中“新增”按钮的clicked事件
long rownumber
rownumber=dw_1.insertrow(0)
dw_1.setfocus()
dw_1.scrolltorow(rownumber)
dw_1.setcolumn(1)
.窗口中“退出”按钮的clicked事件
close(w_txl)
.窗体中数据窗口的clicked事件
string columntext              //列标题
string columnname            //列名
integer length                //列标题长度
columntext=dwo.name         //获得列标
length=len(columntext)        //得到列标题的长度
columnname=left(columntext,length - 2)   //取得列名
if not isnull(columnname) then         //判断列名是否为空
dw_1.modify(columnname +“.protect=‘1~tIf(isrownew(),0,1)’”)
//根据该行是否新增决定相应列的编辑特点,对新增行保护属性为0,否则为1
end if
.窗体中数据窗口的doubleclicked事件
string columntext             
string columnname          
integer length
columntext=dwo.name        
length=len(columntext)       
columnname=left(columntext,length - 2)  
if not isnull(columnname) then        
dw_1.modify(columnname + “.protect=0”) //恢复列的可编辑性
end if
4      结束语
本文就PowerBuilder中用数据窗口的Protect属性实现列不可编辑与解除列不可编辑的一种灵活方法进行了详细的分析,实际应用表明,这种方法既具有灵活性,又具有通用性,是一种较好的方法。

本论文共2页,当前在第1页  1  2  

论文首页】【设为主页】【字体: 加入收藏】【打印本文】【回到顶部
 
上篇文章: 服务器软件漏洞测试程序的设计与实现  下篇文章: 在ASP.NET中开发树状结构
网站首页 - 友情链接 - 网站地图 - 加入收藏

声明:中国论文网毕业论文资料来源于网络,如有侵犯您的权益,请立即告知,我们将删除!
联系方式: E-mail:Laozhanga@QQ.COM QQ:75931341
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
冀ICP备07000828号