找回密码
 立即注册

QQ登录

只需一步,快速开始

erictaiwan

初级会员

3

主题

6

帖子

347

积分

初级会员

积分
347

活字格认证

最新发帖
erictaiwan
初级会员   /  发表于:2014-8-9 16:53  /   查看:5598  /  回复:3
我遇到一个SearchCol的问题如下:

资 料
==================
行1 K-001
行2 K1000
行3 K2000

程 序
==================
row = sss.SearchCol(2,0,sss.MaxRows,txtSearch.Text,SearchFlagsConstants.SearchFlagsGreaterOrEqual);

当输入“K-”,回应为1,此值为正确。但输入“K1”,回应仍为1(错误)。
我期望回应为2。 如果没有 "-" 则回应结果无误,应该是“ - ”造成此问题。

3 个回复

倒序浏览
gw0506
超级版主   /  发表于:2014-8-11 20:02:00
沙发
SearchCol是找到字符串所在的列(Column)。
你给的资料中,我理解是行(Row)。
如果我理解的正确,你应该用SearchRow方法。

如果我理解有误,请提出。或者将Demo提供给我们,进行重现和调试。
回复 使用道具 举报
erictaiwan
初级会员   /  发表于:2014-8-13 11:01:00
板凳
已经自行解决,SearchCol是找该栏的资料无误,并且验证了排序功能(sort)与Excel相同都是减号“ - ”会混合在资料当中。

解决方式是由 SearchFlagsGreaterOrEqual 改为 SearchFlagsPartialMatch,请参考如下:

row= sss.SearchCol(sss.ActiveCol, 0 ,sss.MaxRows, txtSearch.Text, SearchFlagsConstants.SearchFlagsPartialMatch);

while (((GetText(sss, sss.ActiveCol, row).Length >= sSearch.Length ? GetText(sss, sss.ActiveCol, row).Substring(0, txtSearch.Text.Length) : GetText(sss, sss.ActiveCol, row)) != txtSearch.Text &amp;&amp; row != -1) &amp;&amp; row <= sss.MaxRows)
            { //往下找一行字头相符
                row = sss.SearchCol(sss.ActiveCol, row++, -1, txtSearch.Text, SearchFlagsConstants.SearchFlagsPartialMatch);
            }

评分

参与人数 1金币 +300 收起 理由
iceman + 300 感谢您反馈问题结果,并提供问题解决方法。

查看全部评分

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-13 13:58:00
地板
回复 3楼erictaiwan的帖子

感谢您反馈问题结果,并提供问题解决方法。

为了表示感谢,给您分发 300 金币。可以用于兑换论坛奖品。
金币规则:点击进入
礼品列表:点击进入
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部