以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 帮助中Table 对象GetReportData方法怎么用? (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=51573) |
-- 作者:pel46585 -- 发布时间:2013/5/2 13:39:33 -- 帮助中Table 对象GetReportData方法怎么用? Set Table = Report.GetGridByName("上海指数").GetTable() \'Getgrid这个方法也不会用 |
-- 作者:rushtaotao -- 发布时间:2013/5/2 17:14:02 -- \'取当前最新价 NewPrice = ReportData.NewPrice MsgBox NewPrice 其中newprice就是reportdata里面的数据 |
-- 作者:pel46585 -- 发布时间:2013/5/3 10:22:57 -- 求回答 |
-- 作者:rushtaotao -- 发布时间:2013/5/3 11:10:52 -- 还不明白?? |
-- 作者:pel46585 -- 发布时间:2013/5/3 12:20:44 -- 明白了 |
-- 作者:spacedude -- 发布时间:2018/5/16 23:46:07 -- 再问从Table中得到Reportdata的方法 Set Table = Report.GetGridByName("上海指数").GetTable() for i=0 to table.rowcount() Set StockData=table.getReportData(i) application.MsgOut StockData.marketName \'报错缺少对象StockData,请问为什么? set StockData=nothing set Table=nothing 本意是想从动态显示牌的列表中读出取出每一行合约,和这个合约对应的市场名称,比如RB00对应的SQ |
-- 作者:yukizzc -- 发布时间:2018/5/17 10:45:52 -- Set Table = Report.GetGridByName("上海指数").GetTable() for i=0 to Table.rowcount()-1 Set StockData=Table.getReportData(i) set Table=nothing |
-- 作者:spacedude -- 发布时间:2018/5/17 15:23:46 -- 再问从Table中得到Reportdata的方法(停不下来) 代码修正后不再报错,但是调用后停不下来。 代码放在Function 模块中,在Macro模块中调用。 开始放在Application.VbaStart()下调用也出现过这个问题(运行后不会停下来,直到死机。) Funaction模块中代码: Sub Report_RefurbishFinished(Table) application.ActivateFrame("Report") Set Table = Report.GetGridByName("上海指数").GetTable() call table.SwitchBlock( "连续合约板块",1 ) for i=0 to table.rowcount()-1 Set StockData=Table.getReportData(i) application.MsgOut StockData.marketName set StockData=nothing next set Table=nothing End Sub Macro模块下代码:
Sub APPLICATION_VBAStart() application.ClearMsg \'控制台清屏 call Report_RefurbishFinished(Table) \'读列表 End Sub |
-- 作者:spacedude -- 发布时间:2018/5/17 15:39:38 -- 修改后不再报错,但VBA不会停下来,一直执行到金字塔崩溃。 之前把代码放在Application.VbaStart()下调用也有这个情况 , 后来不放在vbaStart()之下 调用,而是直接把调用指令写在Macro模块下,这种情况不会一直执行现在上述两种方式都一直执行,不会停止。 版本:V4.61 (X64) |
-- 作者:无为剑 -- 发布时间:2018/5/17 18:29:42 -- 1,Report_RefurbishFinished 事件是报表刷新时自动触发的,你通过在该事件中调用SwitchBlock会导致死循环,导致这个事件不断被重复触发 2,只有你自己创建的对象才需要销毁,从系统中获取的对象不要销毁,会导致内存使用异常。 下面代码改写后可以正常工作 Sub Report_RefurbishFinished222(Table) application.ActivateFrame("Report") Set Table = Report.GetGridByName("上海指数").GetTable() call table.SwitchBlock( "连续合约板块",1 ) for i=0 to table.rowcount()-1 Set StockData=Table.getReportData(i) application.MsgOut StockData.marketName \'set StockData=nothing next \'set Table=nothing End Sub Sub APPLICATION_VBAStart() application.ClearMsg \'控制台清屏 call Report_RefurbishFinished222(Table) \'读列表 End Sub |