tianyake 发表于 2014-5-22 17:27:00

vb6.0中,spread中的button

spread绑定数据,在datafill事件中,设置当某一列的单元格为空时,该单元格格式button

Private Sub fpSpreadRpt_DataFill(ByVal Col As Long, ByVal Row As Long, ByVal DataType As Integer, ByVal fGetData As Integer, Cancel As Integer)

If Col = 3 Then
    If fpSpreadRpt.GetText(3, Row, m_Data) Then
      If m_Data = "" Then
            With fpSpreadRpt
                .Col = 3
                .Col2 = 3
                .Row = Row
                .Row2 = Row
                .CellType = CellTypeButton
            End With
      End If
    End If
End If
End Sub


但是该列并不显示Button,请教一下为什么,如何往下

iceman 发表于 2014-6-18 20:14:00

回复 13楼tianyake的帖子

抱歉,让你久等了。
需要通过 GetDataFillData 方法来获取当前绑定单元格的数据,获取方法如下:

Private Sub ss_DataFill(ByVal Col As Long, ByVal Row As Long, ByVal DataType As Integer, ByVal fGetData As Integer, Cancel As Integer)

If Col = 3 Then
    Dim v As Variant
    If ss.GetDataFillData(v, DataType) Then
      If v = "" Then
            With ss
                .Col = 3
                .Col2 = 3
                .Row = Row
                .Row2 = Row
                .CellType = CellTypeButton
            End With
      End If
    End If
End If


Demo:



效果图:

iceman 发表于 2014-5-23 18:23:00

回复 1楼tianyake的帖子

请你尝试通过以下方法设置,看能否成功:

' Specify a cell
fpSpread1.Col = 2
fpSpread1.Row = 3
' Define cell type as button
fpSpread1.CellType = CellTypeButton
' Insert picture in the cell
fpSpread1.TypeButtonPicture = LoadPicture("C:\Samples\Files\CAMCORD.BMP")
' Set button text
fpSpread1.TypeButtonText = "Manufacturer"
' Define the text color
' dark blue, RGB(0, 0, 128)
fpSpread1.TypeButtonTextColor = &H800000
' Align text right and picture left
fpSpread1.TypeButtonAlign = TypeButtonAlignRight
' Set the column width to display text and picture
fpSpread1.ColWidth(2) = 15
' Set the row height to display entire picture
fpSpread1.RowHeight(3) = 20

tianyake 发表于 2014-5-23 21:24:00

单独设置某一个单元格为Button是没有问题的,但是在DataFill事件中设置是没有效果的

我现在就是想在绑定的时候根据数据来确定是否显示为Button

iceman 发表于 2014-5-26 17:21:00

回复 3楼tianyake的帖子

我通过附件使用 Spread Com 8.0 可以成功设置 ButtonCellType :



请参考,如果没有解决问题欢迎继续交流

tianyake 发表于 2014-5-27 12:05:00

发现问题在于datafill中

fpSpreadRpt.GetText(3, Row, m_Data)总等于false


如何在datafill中取单元格的值?

iceman 发表于 2014-5-27 17:30:00

回复 5楼tianyake的帖子

我是通过以下代码获取的:

fpSpreadRpt.Row=1
fpSpreadRpt.Col=2
Dim test As String
test = fpSpreadRpt.Text

tianyake 发表于 2014-5-29 08:41:00

你理解错了,单独这么取值肯定可以取得到的,而且不是上像你这么取一个特定的单元格

我现在是要在datafill事件中,绑定单元格时,取该单元格的值

我要到达的目的是,绑定第三列时,如果第三列某行的值为空,则设置该单元格为button,请看我原贴代码

roger.wang 发表于 2014-5-29 11:32:00

回复 7楼tianyake的帖子

您好,这个帖子沟通了4轮了,为了快速解决您的问题。

能否给提供一个demo,这样我们沟通起来效率可能会更高一些。 如可基于4#的demo。

tianyake 发表于 2014-6-3 16:33:00

好的,请参照附件,谢谢

iceman 发表于 2014-6-4 17:08:00

回复 9楼tianyake的帖子

附件已经查收,调试后反馈结果。
页: [1] 2
查看完整版本: vb6.0中,spread中的button