spread中datafill事件为什么不起作用?

来源:互联网 发布:地图路线标注软件 编辑:程序博客网 时间:2024/04/29 23:16

spread帮助中如是说:

Occurs for each cell in the fpSpread control before it receives data from the database and before it writes data to the database, if the DataFillEvent property is set to True for the cell. 

但是设置了DataFillEvent=True以后,却只有一列起作用,为什么?

我试了好久也没有解决,后来仔细研究了一下spread附带的范例,其是一个正在采用了这一事件:
C:/Program Files/FarPoint Technologies/Spread70/Samples/ActiveX/VB6/Overview中的Bound.frm表单,它是这样写的 

    spread.row = -1
    spread.Col 
= 1
    spread.DataField 
= "Id"
    spread.DataFillEvent 
= False                 ''这里
    spread.Celltype = 3
    spread.Col 
= 2
    spread.DataField 
= "Name"
    spread.DataFillEvent 
= False                  ''这里
    spread.Celltype = 1
    spread.Col 
= 3
    spread.DataField 
= "YesNo"
    spread.DataFillEvent 
= True                     'fire datafill event so we can make cells say yes or no
    spread.Celltype = 1

原来DataFillEvent是对每一列的有效的。

他的DataFill事件是这样写的,也可以参照一下! 

Private Sub spread_DataFill(ByVal Col As Long, ByVal row As Long, ByVal DataType As Integer, ByVal fGetData As Integer, Cancel As Integer)
Dim v As Variant
Dim ret As Integer
If Col = 3 Then
 
If fGetData Then
    spread.Col 
= Col
    spread.row 
= row
    ret 
= spread.GetDataFillData(v, 11)
    
If v = 0 Then
     spread.Text 
= "No"
    
Else
     spread.Text 
= "Yes"
    
End If
    Cancel 
= True
  
Else
    spread.Col 
= Col
    spread.row 
= row
    
If spread.Text = "Yes" Then
     v 
= 1
    
Else: v = 0
    
End If
    ret 
= spread.SetDataFillData(v)
    Cancel 
= True
  
End If
End If
End Sub

 

 另外,要注意SetDataFillData和GetDataFillData只能用于DataFill事件中,在其它地方使用是无效的!

原创粉丝点击