欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 帮助中Table 对象GetReportData方法怎么用?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4683人关注过本帖树形打印复制链接

主题:帮助中Table 对象GetReportData方法怎么用?

帅哥哟,离线,有人找我吗?
pel46585
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:167 积分:661 威望:0 精华:1 注册:2009/12/25 23:43:24
帮助中Table 对象GetReportData方法怎么用?  发帖心情 Post By:2013/5/2 13:39:33 [只看该作者]

Set Table = Report.GetGridByName("上海指数").GetTable()
msgbox Table.GetReportData(0)'这里不知道怎么写

'Getgrid这个方法也不会用


 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2013/5/2 17:14:02 [只看该作者]

'取当前最新价

NewPrice = ReportData.NewPrice

MsgBox NewPrice



其中newprice就是reportdata里面的数据


 回到顶部
帅哥哟,离线,有人找我吗?
pel46585
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:167 积分:661 威望:0 精华:1 注册:2009/12/25 23:43:24
  发帖心情 Post By:2013/5/3 10:22:57 [只看该作者]

求回答

 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2013/5/3 11:10:52 [只看该作者]

还不明白??


 回到顶部
帅哥哟,离线,有人找我吗?
pel46585
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:167 积分:661 威望:0 精华:1 注册:2009/12/25 23:43:24
  发帖心情 Post By:2013/5/3 12:20:44 [只看该作者]

明白了


 回到顶部
帅哥哟,离线,有人找我吗?
spacedude
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2017/5/19 0:19:23
再问从Table中得到Reportdata的方法  发帖心情 Post By:2018/5/16 23:46:07 [只看该作者]

     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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2018/5/17 10:45:52 [只看该作者]

Set Table = Report.GetGridByName("上海指数").GetTable()

        for i=0 to Table.rowcount()-1

        Set StockData=Table.getReportData(i)
        application.MsgOut StockData.marketName    '报错缺少对象StockData,请问为什么?
        next
        set StockData=nothing

    set Table=nothing


 回到顶部
帅哥哟,离线,有人找我吗?
spacedude
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2017/5/19 0:19:23
再问从Table中得到Reportdata的方法(停不下来)  发帖心情 Post By:2018/5/17 15:23:46 [只看该作者]

 代码修正后不再报错,但是调用后停不下来
代码放在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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:16 积分:0 威望:0 精华:0 注册:2017/5/19 0:19:23
  发帖心情 Post By:2018/5/17 15:39:38 [只看该作者]

  修改后不再报错,但VBA不会停下来,一直执行到金字塔崩溃。
之前把代码放在Application.VbaStart()下调用也有这个情况 ,
后来不放在vbaStart()之下 调用,而是直接把调用指令写在Macro模块下,这种情况不会一直执行
现在上述两种方式都一直执行,不会停止。
版本:V4.61 (X64)

 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By: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


 回到顶部