以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  增减自选品种刷新问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=70366)

--  作者:wsanle
--  发布时间:2014/9/24 11:30:26
--  增减自选品种刷新问题

版主:我用两个按钮向自选板块中增加品种和减少品种,但必须按两次才能将品种增加到表中或从表中清除,不知什么原因,请帮忙解答谢谢!

Sub Look_CommandButton7_Click()
   Set Grid = Technic.GetGridByName("Main") 
   Market=Grid.Market
   Code=Grid.StockLabe                                         
  Set Table = Technic.GetGridByName("Main3").GetTable()    \'窗格Main3为表        

  Call Table.SwitchBlock("监控",1)                                           \'“监控"切换动态牌自选分类下的自定义板块
  Set block = CreateObject("stock.block")
  block.Open "监控", 1 
  block.AddStock Market,Code

  block.tosave "自选","监控"
  Table.Refurbish
End Sub

 

Sub Look_CommandButton8_Click()

   Set Grid = Technic.GetGridByName("Main") 
   Market=Grid.Market
   Code=Grid.StockLabel
   Set Table = Technic.GetGridByName("Main3").GetTable()              
   call Table.SwitchBlock("监控",1)                           
   Set block = CreateObject("stock.block") 
   block.Open "监控", 1
   For i = 0 To block.Count - 1
      IF block.GetStockMarket(i)=Market AND block.GetStockCode(i)=Code THEN
         block.removeat (i)
     END IF
   Next
   block.tosave "自选","监控"
   Table.Refurbish
End Sub


--  作者:guotx2010
--  发布时间:2014/9/24 12:09:24
--  

Call Table.SwitchBlock("监控",1)   加到代码末行,再次切换到监控板块就可以了。

 


--  作者:wsanle
--  发布时间:2014/9/24 12:43:18
--  

谢谢版主,问题解决!


--  作者:wsanle
--  发布时间:2014/10/23 16:59:53
--  

版主:我需要将自选板块中的所有品种全部清除,但怎么都需要按几次按钮才能清除完毕,一次只能清除一部分,请教怎样才能全部清除?代码如下:

Sub Look_CommandButton8_Click()

  Set Grid = Technic.GetGridByName("Main")
  Market=Grid.Market
  Code=Grid.StockLabel
  Set Table = Technic.GetGridByName("Main3").GetTable()
  call Table.SwitchBlock("监控",1)
  Set block = CreateObject("stock.block")
  block.Open "监控", 1
  For i = 0 To block.Count - 1
       block.removeat (i)
  Next
  block.tosave "自选","监控"

  call Table.SwitchBlock("监控",1)
End Sub


--  作者:guotx2010
--  发布时间:2014/10/24 8:17:52
--  

For i = 0 To block.Count - 1
这一行倒过来写,从大到小,如:

iCount=block.count-1

For i=icount to 0 step -1

 

 

[此贴子已经被作者于2014/10/24 8:20:35编辑过]

--  作者:wsanle
--  发布时间:2014/10/24 10:11:05
--  

点赞!不明白为什么从后往前删除可以,从前往后删除需要多次才能删除完毕?


--  作者:guotx2010
--  发布时间:2014/10/24 12:49:09
--  

从前往后删除,删除之后,block.count变了,导致出问题,逆序就不会。