标题:在梅子论坛看到的一个Grid转Excl的程序,有点问题。
只看楼主
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:0 
出现:“THISFORM只能在方法程序中使用错误!”提示,但忽略后能正确保存Excel文件能。如何纠正?请师傅们建言,感激!
2016-11-27 00:51
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
学习一下。
2016-11-27 14:33
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用lianliming在2016-11-27 00:51:43的发言:

出现:“THISFORM只能在方法程序中使用错误!”提示,但忽略后能正确保存Excel文件能。如何纠正?请师傅们建言,感激!

上面这个是自定义函数。你把定义函数的第1,2行去掉,把最后1行去掉。就可以在表单的COMMAND上直接运行。
2016-11-28 08:37
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:0 
回复 13楼 mywisdom88
非常感谢!错误取消,程序通过。
2016-11-28 23:13
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
我在office2007、2010都测试过,没问题呢。
另外,谢谢你的代码,受你的启发,我直接把这一段代码做成Grid类了,导出功能放进Grid右键快捷菜单里去了,感觉这样子更好用。向原作者致敬。
2016-11-29 23:08
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用厨师王德榜在2016-11-29 23:08:19的发言:

我在office2007、2010都测试过,没问题呢。
另外,谢谢你的代码,受你的启发,我直接把这一段代码做成Grid类了,导出功能放进Grid右键快捷菜单里去了,感觉这样子更好用。向原作者致敬。

那可能是我电脑问题,我的是2013,有问题,但我家的就没问题。
怎么做成类的。放上来看看。
2016-11-30 08:34
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
如下图,现在只能在表头的空白位置点右键弹出菜单,在表格中右键菜单我还没想好咋弄。
2016-11-30 08:44
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用厨师王德榜在2016-11-30 08:44:10的发言:

如下图,现在只能在表头的空白位置点右键弹出菜单,在表格中右键菜单我还没想好咋弄。

做好了放上来看看。。
oColumn.COLUMNORDER=i0611 AND oColumn.VISIBLE=.T. AND oColumn.Width>0 &&列宽等于0的不处理,列隐藏不处理
我自己加了oColumn.Width,也就是用鼠标拉表格宽度=0时不导出,其他都是原作者的。
2016-11-30 08:55
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
好,那我直接放代码上来,效果是一样的。首先是Grid.RightClick的代码,
但是这个代码目前只有在表格的表头空白位置右击了,才会弹出来,
如果是在表格中的任意位置也要有快捷菜单弹出来的话,我还没想好,也欢迎大家来出主意 :
程序代码:
* 设计一个右键弹出式菜单,让用户可以选择导出到Excel或XML
LOCAL LHASdATA AS Boolean
LOCAL CSELECT AS String
CSELECT=""
IF THIS.ColumnCount>0 THEN 
    LHASdATA=.T.
ENDIF 
    Define Popup shtcut SHORTCUT Relative From Mrow(),Mcol()
    Define Bar 1 Of shtcut Prompt "导出到XML" ;
            SKIP For LHASdATA=.F.
    Define Bar 2 Of shtcut Prompt "导出到EXCEL" ;
            SKIP For LHASdATA=.F.
ON SELECTION POPUP shtcut  CSELECT=PROMPT( )

Activate Popup shtcut
DO CASE 
    CASE CSELECT="导出到XML" 
        MESSAGEBOX("抱歉,[导出到XML格式]功能尚未开发完毕,请等待后续版本。",64,"提示:")
    CASE CSELECT="导出到EXCEL"
        this.grid2excel            
    OTHERWISE 
ENDCASE 


至于“grid2excel”就是给类添加的一个方法,代码就是一楼那一段。
2016-11-30 10:05
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
得分:0 
回复 19楼 厨师王德榜
感谢你!辛苦了。
2016-11-30 19:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471571-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.511915 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved