您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页pb find函数的用法

pb find函数的用法

来源:宝玛科技网


pb 如何匀称用FIND大方函数实现查认真找并转移焦美丽点在一个数铎以声自悔据窗口中 按兵不动有若干条数鞍前马后据,有个s画蛇添足le控件如比葫芦画瓢何用fin清净狡诈d函数在d不知者不罪atawi可爱ndow中思前想后查找sle以牙还牙甘拜下风中输入的内凛凛有生气容并将焦点漂亮指向这一行清脆记录:FI不攻自破仗义执言ND() 妙趣横生用法:lo相得益彰ng ll翻脸不认人_find大行受大名ll_fi百废俱兴nd = 不打不相识dw_2.疾风知劲草find(好汉惜好汉法不传六耳'yhmc披荆斩棘='+tr口若悬河im(sl精诚团结促膝谈心e_1.t饿虎吞羊ext)+凛然不可犯患难见真情'',1,友好dw_2.气宇轩昂rowco慧眼unt()失望 )//查鞍前马后找dw_2悦耳中的用户名海不扬波称=sle二卵弃干城_1文本控急则抱佛脚件的值,从有始有终dw_2第铎以声自悔一行到 最黑瘦后一行,返黑牛生白犊回该行行数春色dw_2.碧血丹心scrol两雄不并立ltoRo不折不扣文质彬彬w(ll_专注适时find)饿虎吞羊//设置该狡诈行为焦点,换汤不换药病去如抽丝滚动到该行内容来自懂视网(www.51dongshi.com),请勿采集!

小编还为您整理了以下内容,可能对您也有帮助:

pb如何用FIND函数实现查找并转移焦点?

FIND() 用法:
long ll_find
ll_find = dw_2.find("yhmc="+trim(sle_1.text)+"",1,dw_2.rowcount() )
//查找dw_2中的用户名称=sle_1文本控件的值,从dw_2第一行到 最后一行,返回该行行数。
dw_2.scrolltoRow(ll_find)//设置该行为焦点,滚动到该行。

一般情况下,我们要逐条查找数据窗口中满足某一条件的记录进行处理的时候,我们的代码经常会是下面这种:

ll_findrow=dw.find(findclause,1,dw.rowcount())

do while ll_find>0

<....>

ll_findrow=dw.find(findclause,ll_findrow+1,dw.rowcount())

loop

这种写法最大的陷阱在于,PB的FIND函数在查找的时候,当参数中起始行大于终止行的时候,会从下往上进行查找,而对参数中的起始行和终止行是否有效行不作*。

因此,一旦数据窗口中最后一条记录满足条件时,当处理完最后一条记录后,再去执行FIND的时候,由于ll_findrow+1已经大于dw_rowcount(),PB将会从ll_findrow+1行到dw.rowcount()行开始反向查找满足条件的记录,此时函数仍将返回数据窗口的最后一行,结果就导致程序进行死循环。

所以,为避免出现死循环,一般应在循环的FIND语句前判断ll_findrow是否已超出数据窗口的记录条数,超出则跳出循环。

不过,还有一种更简单的避免死循环的代码写法如下:

ll_findrow=dw.find(findclause,1,dw.rowcount())

do while ll_find>0 <....> ll_findrow=dw.find(findclause,ll_findrow+1,dw.rowcount() +1 )

loop

另外:

用法Find()函数在进行查找时区分大小写因此当应用程序在某列中查找某个值
时大小写匹配的行才是找到的行。
当应用程序使用循环方式查找满足条件的所有行时要注意不要形成死循环下面是。
段循环查找满足指定条件行的一个示例。


long ll_find = 1, ll_end
ll_end = dw_main.RowCount()
ll_find = dw_main.Find(searchstr, ll_find, ll_end)
DO WHILE ll_find > 0
... // 处理找到的行
ll_find++
// 防止死循环
IF ll_find > ll_end THEN EXIT
ll_find = dw_main.Find(searchstr, ll_find, ll_end)
LOOP 

pb如何用FIND函数实现查找并转移焦点?

FIND() 用法:
long ll_find
ll_find = dw_2.find("yhmc="+trim(sle_1.text)+"",1,dw_2.rowcount() )
//查找dw_2中的用户名称=sle_1文本控件的值,从dw_2第一行到 最后一行,返回该行行数。
dw_2.scrolltoRow(ll_find)//设置该行为焦点,滚动到该行。

一般情况下,我们要逐条查找数据窗口中满足某一条件的记录进行处理的时候,我们的代码经常会是下面这种:

ll_findrow=dw.find(findclause,1,dw.rowcount())

do while ll_find>0

<....>

ll_findrow=dw.find(findclause,ll_findrow+1,dw.rowcount())

loop

这种写法最大的陷阱在于,PB的FIND函数在查找的时候,当参数中起始行大于终止行的时候,会从下往上进行查找,而对参数中的起始行和终止行是否有效行不作*。

因此,一旦数据窗口中最后一条记录满足条件时,当处理完最后一条记录后,再去执行FIND的时候,由于ll_findrow+1已经大于dw_rowcount(),PB将会从ll_findrow+1行到dw.rowcount()行开始反向查找满足条件的记录,此时函数仍将返回数据窗口的最后一行,结果就导致程序进行死循环。

所以,为避免出现死循环,一般应在循环的FIND语句前判断ll_findrow是否已超出数据窗口的记录条数,超出则跳出循环。

不过,还有一种更简单的避免死循环的代码写法如下:

ll_findrow=dw.find(findclause,1,dw.rowcount())

do while ll_find>0 <....> ll_findrow=dw.find(findclause,ll_findrow+1,dw.rowcount() +1 )

loop

另外:

用法Find()函数在进行查找时区分大小写因此当应用程序在某列中查找某个值
时大小写匹配的行才是找到的行。
当应用程序使用循环方式查找满足条件的所有行时要注意不要形成死循环下面是。
段循环查找满足指定条件行的一个示例。


long ll_find = 1, ll_end
ll_end = dw_main.RowCount()
ll_find = dw_main.Find(searchstr, ll_find, ll_end)
DO WHILE ll_find > 0
... // 处理找到的行
ll_find++
// 防止死循环
IF ll_find > ll_end THEN EXIT
ll_find = dw_main.Find(searchstr, ll_find, ll_end)
LOOP 

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务