以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]临时表如何标识行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77729)

--  作者:linswcfr
--  发布时间:2015/11/24 12:04:00
--  [求助]临时表如何标识行
想对生成的临时表,金额小于0的行,标识为红色,代码要怎么写
--  作者:大红袍
--  发布时间:2015/11/24 12:18:00
--  
Dim g = Tables("表A").Grid
Dim c As Integer = g.Cols("金额").Index
For i As Integer = 1 To g.Rows.count-1
    Dim r = g.Rows(i)
    If r(c).Gettype.name <> "DBNull" AndAlso r(c) < 0 Then
        Dim cs1 As C1.Win.C1FlexGrid.CellStyle = g.GetCellRange(r.index, c).style
        If cs1 Is Nothing Then
            cs1 = g.Styles.Add("样式1")
            g.SetCellStyle(r.index, c, cs1)
        End If
        cs1.backcolor = Color.Red
    End If
Next

--  作者:linswcfr
--  发布时间:2015/11/24 14:12:00
--  

---------------------------
版本:2015.11.2.1
---------------------------
代码执行出错,错误信息:

 

System.InvalidCastException: 从字符串“金额”到类型“Double”的转换无效。 ---> System.FormatException: 输入字符串的格式不正确。

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)

   --- 内部异常堆栈跟踪的结尾 ---

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)

   在 Microsoft.VisualBasic.CompilerServices.Operators.CompareObject2(Object Left, Object Right, Boolean TextCompare)

   在 Microsoft.VisualBasic.CompilerServices.Operators.ConditionalCompareObjectLess(Object Left, Object Right, Boolean TextCompare)

   在 UserCode.Test()
---------------------------
确定  
---------------------------

 

为什么会这有这个提示了


--  作者:大红袍
--  发布时间:2015/11/24 14:24:00
--  
Dim g = Tables("表A").Grid
Dim c As Integer = g.Cols("金额").Index
For i As Integer = 1 To g.Rows.count-1
    Dim r = g.Rows(i)
    If r(c).Gettype.name <> "DBNull" AndAlso val(r(c)) < 0 Then
        Dim cs1 As C1.Win.C1FlexGrid.CellStyle = g.GetCellRange(r.index, c).style
        If cs1 Is Nothing Then
            cs1 = g.Styles.Add("样式1")
            g.SetCellStyle(r.index, c, cs1)
        End If
        cs1.backcolor = Color.Red
    End If
Next 

--  作者:linswcfr
--  发布时间:2015/11/24 14:28:00
--  
要标识整行呢
--  作者:大红袍
--  发布时间:2015/11/24 14:32:00
--  
Dim g = Tables("表A").Grid
Dim c As Integer = g.Cols("金额").Index
For i As Integer = 1 To g.Rows.count-1
    Dim r = g.Rows(i)
    If r(c).Gettype.name <> "DBNull" AndAlso val(r(c)) < 0 Then
        For Each gc As object In g.Cols
            Dim cs1 As C1.Win.C1FlexGrid.CellStyle = g.GetCellRange(r.index, gc.index).style
            If cs1 Is Nothing Then
                cs1 = g.Styles.Add("样式1")
                g.SetCellStyle(r.index, gc.index, cs1)
            End If
            cs1.backcolor = Color.Red
        Next
    End If
Next

--  作者:linswcfr
--  发布时间:2015/11/24 14:48:00
--  
谢谢老师