TC官方合作论坛

标题: tc5.4调用懒人插件查询命令存在bug [打印本页]

作者: 632014138    时间: 2015-10-5 17:51
标题: tc5.4调用懒人插件查询命令存在bug
tc5.4中调用懒人插件的查找命令就会使整个程序卡死
但是同样的代码在tc4.4中正常,希望研发大大赶紧修复啊。

调用懒人插件出错的命令:
     Arr = LazyExcel.ExcelRange(1, "C2:E5","模糊查找", 1, Index)        MsgBox "区域C2:E5模糊查找1的个数:" & join(Arr,vbcrlf)        Arr = LazyExcel.ExcelRows(1, 2, "模糊查找", 1, Index)                MsgBox "第2行模糊查找1的个数:" & join(Arr,vbcrlf)        Arr = LazyExcel.ExcelColumns(1,3, "模糊查找", 1, Index)        MsgBox "第3列模糊查找1的个数:" & join(Arr, vbcrlf)        '下面是把整个表内模糊查找到1的单元格重新写入内容        Arr = LazyExcel.ExcelCells(1, "模糊查找", 1, Index)        For i = 1 To Arr(0)            Dim R, C            Call LazyExcel.AddToLoc(Arr(i), R, C)            Call LazyExcel.ExcelWrite(1,R,C,"TEST",Index)        Next


源代码:
     tc5.4:
功能 按钮0_点击()
    var path="C:\\测试.xls"
    traceprint(0)
    var Index = LazyExcel.ExcelOpen(path, 1)
    traceprint(1)
    LazyExcel.ExcelWrite(1,3,2,"内容",Index)
    var Arr=LazyExcel.ExcelRange(1, "C1:E5","模糊查找", 1, Index)
结束


tc4.431:
  空间 懒人
//默认空间
//开始按钮_点击操作
功能 开始_点击()
    变量 返回值=辅助.注册插件("C:\\pic_tc\\LazyOffice.dll",true)
    调试输出(返回值)
    如果(!返回值)
        辅助.消息框("插件注册失败!","错误")
    如果结束
    LazyExcel=插件("Lazy.LxjExcel")
    var path="C:\\测试.xls"
    traceprint(0)
    var Index = LazyExcel.ExcelOpen(path, 1)
    traceprint(1)
    var arr= LazyExcel.ExcelRange(1,"C1:E5","模糊查找", 1, Index)
    traceprint(arr[0])
功能结束
空间结束
//空间结束语句




【新版】懒人办公插件V15.0918.0 ...

作者: liuhr_2000    时间: 2016-1-12 21:07
还没有修复啊  还是无法完全摆脱按键精灵 和按键说再见这么难吗
作者: liuhr_2000    时间: 2016-1-20 10:13
再顶一顶  希望工程师给力点  真的不喜欢按键的小精灵  但是目前由于tc不成熟  仍然无法完全摆脱按键 唉
作者: liuhr_2000    时间: 2016-3-17 11:59
我天天关注升级,盼星星盼月亮,盼来了6.0.可是 这个问题咋就不解决呢??官方?
作者: feskar    时间: 2016-3-22 11:02
哈哈,我在新手区也提问了,调用懒人插件的筛选函数ExcelFilter导致程序崩溃的问题,嗯,试了5.3到6.0所有版本都这样,求尽快解决啊
作者: 花落莫相离    时间: 2016-3-22 11:28
feskar 发表于 2016-3-22 11:02
哈哈,我在新手区也提问了,调用懒人插件的筛选函数ExcelFilter导致程序崩溃的问题,嗯,试了5.3到6.0所有版本 ...

你反错对象了,懒人插件不是TC开发的
作者: feskar    时间: 2016-3-22 13:33
花落莫相离 发表于 2016-3-22 11:28
你反错对象了,懒人插件不是TC开发的

      哈哈,前辈我看了你好多共享的源码,学了好多东西。才接触TC十几天,还有很多不懂的。TC调用懒人插件崩溃应该是TC的问题吧,懒人插件是标准com插件的,之前我用按键精灵写了个处理办公excel的脚本,利用懒人插件完全实现了目标,结果我想移植到TC来,结果在最开始的筛选就卡住没办法了
作者: 花落莫相离    时间: 2016-3-22 13:42
feskar 发表于 2016-3-22 13:33
哈哈,前辈我看了你好多共享的源码,学了好多东西。才接触TC十几天,还有很多不懂的。TC调用懒人插 ...

哈哈,可别叫什么前辈,我也只会一点TC。为了方便,这几天我也在用TC语言整理懒人插件,现在在弄word部分,excel那部分还没整理,确实发现TC对懒人插件确实不是完全兼容的,懒人插件也有许多不完善的地方
作者: 花落莫相离    时间: 2016-3-22 13:52
feskar 发表于 2016-3-22 13:33
哈哈,前辈我看了你好多共享的源码,学了好多东西。才接触TC十几天,还有很多不懂的。TC调用懒人插 ...

我想你这个问题可能不是兼容的问题,你看看是不是代码问题,懒人插件对表格操作的时候,搜索参数第一个参数是表格索引,就是个excel中的sheet1,sheet2……,最后一个参数是文件索引,这个索引是你打开或者绑定excel所生成的,你看看是不是把这两个索引弄错了,才会出现的崩溃问题
作者: feskar    时间: 2016-3-22 14:14
本帖最后由 feskar 于 2016-3-22 14:15 编辑
花落莫相离 发表于 2016-3-22 13:52
我想你这个问题可能不是兼容的问题,你看看是不是代码问题,懒人插件对表格操作的时候,搜索参数第一个参 ...

不是的,因为前面调用LxjExcel.SheetRowsCount都能得到正确的表格行数:
  1. function FX1()
  2.     traceprint(filepath)
  3.     var LxjExcel
  4.     LxjExcel = com("Lazy.LxjExcel")
  5.     var Inp1 = LxjExcel.ExcelOpen(filepath, 0)
  6.     var Biq1 = LxjExcel.SheetIndex(Inp1)
  7.     //检查表格是否处理过
  8.     if(LxjExcel.ExcelRead(1, 1, 26, Inp1) == "ZLB")
  9.         messagebox("请勿对同一表格重复执行分析!")
  10.         staticsettext("static3", "发现表格重复执行,任务中断")
  11.         LxjExcel.ExcelClose(Inp1)
  12.         threadclose("FX1")
  13.     else
  14.         LxjExcel.ExcelWrite(Biq1, 1, 26, "ZLB", Inp1)
  15.     end
  16.     staticsettext("static3", "分析工作已经开始...")
  17.     progresssetprogress("progress0", 1)//★进度条
  18.     var Cor1 = LxjExcel.SheetRowsCount(Biq1, Inp1) - 1//获取标签(工作薄)行数
  19.     traceprint(Cor1)
复制代码
但到了下一行用LxjExcel.ExcelFilter筛选,小程序就崩溃了:
  1.     var Ken1=LxjExcel.ExcelFilter(Biq1,1,23, "=*",Inp1)//筛选编码
  2.     traceprint(Ken1[0])
  3.     var Ken2 = LxjExcel.ExcelFilterData(Biq1, 23, "", Inp1)//得到筛选客户名称(唯一),最后一个元素是标题"客户编码"
  4.     var Kes1 = Ken2[0] - 1
  5.     staticsettext("static4", "客户编码数:" & Kes1 & " " & "表格数据共" & Cor1 & "行")
复制代码



作者: 花落莫相离    时间: 2016-3-22 16:30
feskar 发表于 2016-3-22 14:14
不是的,因为前面调用LxjExcel.SheetRowsCount都能得到正确的表格行数:
但到了下一行用LxjExcel.ExcelFilte ...

我也试了一下,在excel里正常筛选出想要的结果,但是不会向插件帮助文档里说的那样,通过数组返回筛选的结果
作者: liuhr_2000    时间: 2016-3-23 12:02
在tc里,即使使用office自带的Excel.Application对象,也有很多功能实现不了,老崩溃。我觉得应该不是懒人插件的问题,因为用vb6.0和按键精灵调用懒人插件都没有问题。
作者: 1049275328    时间: 2018-3-29 15:21
TC好像对返回的集合不支持,TC对返回的对象最大好像就支持到数组,如果是一个集合,以数组方式读取肯定会报错,这个还是TC兼容性问题吧。我用jmail插件获取邮件内容时,返回一个集合TC也会崩溃。我用懒人插件也遇到你这样的问题,没办法,我就写的从A1到XX自动循环遍历来实现查询
作者: 剑仙十号    时间: 2018-4-20 09:49
TC的工程师懒。
4.431版本,支持懒人办公插件_返回集合。
5.0 6.0 7.0版本,不支持懒人办公插件_返回集合。
TC的工程师,也不根据4.431改进代码。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1