电子秤操作手册(共54页).docx
《电子秤操作手册(共54页).docx》由会员分享,可在线阅读,更多相关《电子秤操作手册(共54页).docx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上电子秤操作手册 第一部分 与数据库有关的函数 行操作 列操作 数据操作 PowerBuilder为数据窗口控件提供了丰富的函数,这些函数使用户能够在使用数据窗口控件时得心应手。 与数据库有关的函数 这类函数完成与数据库有关的功能。 一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。 语法格式: dw_control.SetTrans(TransactionObject) dw_control.SetTransObject(TransactionObject) 其中,dw_con
2、trol是所使用的数据窗口控件,transactionObject是所要指定的事务对象。 这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。用户只需要在这里填充一个事务对象,PB就会自动完成对该事物对象的初始化以及和数据库连接的工作。而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。 但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语
3、句。与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。 这两个函数都是成功时返回1,发生错误时返回-1。 二、检索数据 用于检索数据的函数只有一个,就是Retrieve()函数。 语法格式: dw_control.Retrieve() 如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。而且检索参数必须和数据窗口对象中定义顺序一致。 此函数返回一个长整型的数据,代表检索出来的数据行数。如果发生错误,将返回-1。 三、更新数据 当用户对数据窗口对象内的数据
4、修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。 语法格式: dw_control.Update() 这个更新可能成功,也可能失败。一般在这个函数被调用之后,总是要做一个检查。请看下面的例子: Int li_return li_return = dw_1.Update() IF li_return = 1 THEN COMMIT USING SQLCA; ELSE ROLLBACK USING SQLCA; END IF 在这段代码中,首先对数据窗口控件进行更新操作。但是更新只是把数据写入到客户机的内存,并没有提交到数据库中。如果更新成功,就把它提交到数据库中,如果更新失
5、败,就回滚到当前的事务。 行操作 行操作的函数主要是对数据库中的数据进行插入、删除或选择操作。 一、插入行 在DataWindow中插入一行,可以使用InsertRow()函数。 语法格式: dw_ control.InsertRow(rownumber) dw_control是数据窗口控件名,rownumber是要插入行的的行号。如果这个参数为0,代表在当前DataWindow的最后一行插入一空行。 InsertRow()函数返回一个长整型值,以此来代表插入的行号。如果插入失败,则返回-1。 二、删除行 要删除DataWindow内的一行数据,则要使用DeleteRow()函数。 语法格式:
6、 dw_control.DeleteRow(rownumber) 其中rownumber是要删除的行号。如果该值为0,表示删除当前行。如果删除成功,返回1,失败则返回-1。 三、设置当前行 如果要设置DataWindow中的某行为当前行,可以使用SetRow()函数。 语法格式: dw_control.SetRow(rownumber) 其中rownumber是要设置为当前行的行号。如果函数返回1表示成功,返回-1代表失败。 四、获取当前行 如果想要设置DataWindow中的某行为当前行,可以使用GetRow()函数。 语法格式: dw_control.GetRow() 该函数没有参数,它返
7、回一个长整型,代表当前行号。如果返回-1代表失败。如果返回0代表没有选中任何行。 五、选择行 如果想要在DataWindow中加亮显示某一行或取消加亮显示某一行,可以使用SelectRow()函数。 语法格式: dw_control.SelectRow(rownumber,select) 其中,rownumber表示要加亮或者取消加这显示的行号,0表示所有行。select是一个布尔类型的值,TRUE表示加亮,FALSE表示取消加亮显示。该函数返回1时表示成功,返回-1时表示失败。 如果想要直接设置某一行为加亮,需要首先取消其它行的加亮显示状态,采用如下的两行代码: dw_1.SelectRow
8、(0,FALSE) dw_1.SelectRow(rownumber,TRUE) 六、获取选择行 如果想要获取当前DataWindow中加亮显示的行,可以使用GetSelectRow()函数。 语法格式: dw_control.GetSelectRow(rownumber) 其中,rownumber为开始查找的行的行号,0表示从头开始查找。该函数返回一个长整数,表示从rownumber开始查找第一个加亮显示的行的行号。如果失败返回0。 七、滚动行 如果在DataWindow的末尾插入一行数据,而当前行是在DataWindow的中央,那么这种插入可能不会被用户觉察。为了改变这种情况,可以滚动行到
9、DataWindow的末尾,这样用户就能发现新的改变。要滚动行,可以使用ScrollToRow()函数。 语法格式: dw_control.ScrollToRow(rownumber) 该函数返回1时表示成功,返回-1时表示失败。 与ScrollToRow()函数据功能相关的还有如下几个函数: ScrollPriorRow():向上滚动一行 ScrollNextRow():向下滚动一行 列操作 列操作类的函数主要是选择指定的列和获取列的信息。 一、获取列 如果要获取当前的列号,可以使用GetColumn()函数,如果要 获取当前的列名,可以使用GetColumnName()函数。 语法格式:
10、dw_control.GetColumn() dw_control.GetColumnName() 这两个函数都没有参数,GetColumn()函数返回一个长整型值,代表当前的列号,GetColumnName()函数返回当前列的列名。如果返回0,表示当前没有任何列被选择返回-1表示失败。 二、设置列 要设置某一列为DataWindow中的当前列,可以使用SetColumn()函数。 语法格式: dw_control.SetColumn(column) 其中column既可以是列号,也可以是列名。当该函数返回1时表示成功,返回-1时表示失败。 数据操作 数据操作类的函数主要是对DataWindo
11、w中的数据进行获取、设置。 一、获取数据 如果要从DataWindow的指定行和列中获取数据,就要使用GetItem系列的函数。这个系列的函数共有五个,分别是对字符串、数字、日期、日期时间和小数。 语法格式: dw_control.GetItemString(rownumber,column) dw_control.GetItemNumber(rownumber,column) dw_control.GetItemDate(rownumber,column) dw_control.GetItemDateTime(rownumber,column) dw_control.GetItemDecim
12、al(rownumber,column) 其中,rownumber参数表示行号,column可以是列号或列名。 二、设置数据 与获取数据所用的函数不同,设置DataWindow内指定行列处的数据只要使用一个SetItem()函数就可以了。 语法格式: dw_control.SetItem(rownumber, column, value) 其中rownumber表示行号,column可以是列号,也可以是列名,value表示要设置的值。但是该必须与DataWindow中指定的行列处的数据类型一致,不然PowerBuilder会报错。 SetItem()函数返回1时表示成功,返回-1时表示失败。
13、三、数据排序 如果希望对DataWindow内的数据进行重新排序,而又不想重新从数据库中检索数据,可以使用SetSort()和Sort()函数。这两个函数一起完成对DataWindow进行排序的功能。其中SetSort()函数用于设置如何排序,Sort()函数用于对DataWindow实际进行排序。 语法格式: dw_control.SetSort(expression) dw_control.Sort() 其中expression是一个字符串,表示排序的表达式,它的具体值是一个列名后面加一个空格,然后是"A",表示升序,或"D",表示降序。如果有多个列
14、要同时进行排序,它们之间用逗号隔开。 例:dw_1.SetSort("name A,xh D") 这两个函数都是返回1表示成功,返回-1表示失败。 四、数据过滤 如果希望对DataWindow内的数据进行过滤而不重新从数据库中检索数据,可以使用SetFilter()和Filter()函数。它们一起完成对数据的过滤功能。其中SetFilter()函数用来设置过滤条件,Filter()函数用于对DataWindow进行过滤。 语法格式: dw_control.SetFiter(expression) dw_control.Fiter() 其中expression是 一个字符串,
15、表示过滤的条件,它实际是一个逻辑表达式。 例: dw_1.SetFilter("id>'003' AND name like'王%'") dw_1.Filter() 这两个函数都是返回1表示成功,返回-1表示失败。 五、数据检查 PowerBuilder提供了两个函数用于数据的检查,它们是DeleteCount()和ModifiedCount(),其作用分别是检查DataWindow中的数据自上一次更新到现在,被删除的行数和被修改的行数。它们一般在窗口的CloseQuery事件中使用,用来检查该窗口的DataWindow中的数据是否有尚
16、未保存的修改。 语法格式: dw_control.DeleteCount() dw.control.ModifiedCount() 它们分别返回从上一次更新到现在,DataWindow中被删除和被修改的行数。如果没有行被删除或被修改,那么它们返回0。如果出现错误则返回-1。 一般情况下,如果窗口中含有可供修改的数据窗口对象,那么在窗口的CloseQuery事件中通常使用如下代码检查数据窗口对象中是否有尚未保存的数据: Int li_return IF dw_1.ModifiedCount() > 0 OR dw_1.DeletedCount() >0 THEN li_return
17、= MessageBox("提示","数据尚未保存,是否保存?",Question!,YesNoCancel!,3) CHOOSE CASE li_return CASE 1 TriggerEvent('ue_save') RETURN 0 CASE 2 RETURN 0 CASE 3 RETURN 1 END CHOOSE END IF 第二部分PowerBuilder数据窗口编程技巧十则 PowerBuilder取得巨大成就的原因就是有Datawindow对象,DataWindow是具有功能强大和灵活多变的特点,本人用PowerBui
18、lder开发过一段时间后,总结出一些技巧,以供广大的PB开发者借鉴使用。一如何创建一个报表,如下形式 Quantity Running Total 5,000 5,000 2,500 7,500 3,000 10,500 12,000 22,500对于Running Total列,我们可使用计算列:CumulativeSum(Quantity for all),即可达到逐渐递增求和的功能。二数据窗口的数据送缓冲区之前确认的四个步骤 判断数据类型是否正确。如不正确则触发ItemError事件。判断数据是否符合有效性规则。如不符合有效性规则,同样触发ItemError事件。 判断是否有数据被改动。
19、判断数据是否通过ItemChanged事件,如果数据和ItemChanged相斥,将触发ItemError事件。三如何在DataWindow中用数据类型为Datetime的列为条件进行查找1当要查找的日期条件是一常数时使用如下表达式:ls_Find = "datetime_col = DateTime ('1/1/1999')"2当要查找的日期条件是一个变量时使用如下的表达式:ls_Find = "datetime_col = DateTime ('" + ls_Date + "')" 3当要查找的日期
20、条件是一个DateTime数据类型时使用如下表达式: ls_Find = "datetime_col = DateTime ('" + String (ldt_DateTime) + "')"四设置数据窗口Bo olean型属性的三种方法PowerBuilder提供了三种方法设置数据窗口的布尔型属性,分别是True/False, 1/0, 'Yes'/'No'。例如: dw_1.Object.address.Visible = 0 dw_1.Object.address.Visible = False dw
21、_1.Object.address.Visible = 'No'PowerBuilder在处理上以字符串的形式保存属性,而不考虑属性值是布尔型、长整型或是字符型。为了进一步理解,可以导出一个数据窗口并查看它的原码,可以发现即使是列的颜色属性它也是使用带双引号的数字来表达。五如何在DataWindow中快速删除多行在开发过程中可能经常有要进行多行删除的操作,一般都使用循环语句进行操作:FOR ll_RowOn = 1 TO dw_1.RowCount() dw_1.DeleteRow(ll_RowOn) NEXT一个快速的删除方法是把要删除的行从主缓冲区中移到删除缓冲区中。例如,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子秤 操作手册 54
限制150内