视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
pb find函数的用法
2024-05-02 20:22:55 责编:小OO
文档

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.xyx234.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 

下载本文
显示全文
专题