以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]数据引用问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117704)

--  作者:pzxas
--  发布时间:2018/4/18 1:25:00
--  [求助]数据引用问题
设计值_平整度为双精度数据类型,其引用了检测信息表中的一个固定数值,当检测信息表中固定数值为空时返回“0”,问如何将“0”改为“/”
代码如下:
DataTables("平整度").ReplaceFor("设计值_平整度", DataTables("检测信息表").DataRows(0)("平整度设计值")  )

If e.DataCol.name = "设计值_平整度"
    If e.DataRow("设计值_平整度") = 0  Then
        e.DataRow("单段判定_平整度") = "/"
    Else
        If e.DataRow("注释").length >= 1  Then
            e.DataRow("单段判定_平整度") = e.DataRow("注释")
        Else
            If e.DataRow("平整度") >  e.DataRow("设计值_平整度") Then
                e.DataRow("单段判定_平整度") = "不合格"
            Else
                e.DataRow("单段判定_平整度") = "合格"
            End If
        End If
    End If
End If

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180418012139.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/4/18 9:31:00
--  

如果是数值类型,是不能存放和现实字符 / 的,只能也留空,如

 

If DataTables("检测信息表").DataRows(0)("平整度设计值") = Nothing The

    DataTables("平整度").ReplaceFor("设计值_平整度", Nothing)

Else

    DataTables("平整度").ReplaceFor("设计值_平整度", DataTables("检测信息表").DataRows(0)("平整度设计值"))

End If


--  作者:有点甜
--  发布时间:2018/4/18 9:32:00
--  

如果想数值类型,也显示 / 的话,需要drawcell处理,如

 

http://www.foxtable.com/webhelp/scr/2262.htm

 


--  作者:pzxas
--  发布时间:2018/4/18 17:36:00
--  
已经实现所需功能,谢谢

If DataTables("检测信息表").DataRows(0)("平整度设计值") = Nothing Then
    DataTables("平整度").ReplaceFor("设计值_平整度", Nothing)
Else
    DataTables("平整度").ReplaceFor("设计值_平整度", DataTables("检测信息表").DataRows(0)("平整度设计值"))
End If

If e.DataCol.name = "设计值_平整度"
    If e.DataRow.IsNull("设计值_平整度")   Then
        e.DataRow("单段判定_平整度") = "/"
==============================

If e.Col.Name = "设计值_平整度" Then
    If e.Row.Isnull("设计值_平整度")
        e.Text = "/"
    End If
End If

图片点击可在新窗口打开查看此主题相关图片如下:微信截图.png
图片点击可在新窗口打开查看
另外,如何实现在已有数据上更改后结果马上显示的功能


--  作者:pzxas
--  发布时间:2018/4/18 17:39:00
--  
效果如图
--  作者:有点甜
--  发布时间:2018/4/18 18:06:00
--  
If e.DataCol.name = "设计值_平整度" OrElse e.DataCol.name = "注释" Then
    If e.DataRow("设计值_平整度") = Nothing Then
        e.DataRow("单段判定_平整度") = "/"
    Else
        If e.DataRow("注释").length >= 1  Then
            e.DataRow("单段判定_平整度") = e.DataRow("注释")
        Else
            If e.DataRow("平整度") >  e.DataRow("设计值_平整度") Then
                e.DataRow("单段判定_平整度") = "不合格"
            Else
                e.DataRow("单段判定_平整度") = "合格"
            End If
        End If
    End If
End If

--  作者:pzxas
--  发布时间:2018/4/19 20:21:00
--  
有点甜老师:
    我按照这些代码设计好了后,怎么运行起来很慢呢,大概有5~10s的延迟;
代码如下:
If e.DataCol.name = "桩号"
    If e.DataRow.IsNull("桩号")  Then
        e.DataRow("整桩号") = Nothing
    Else
        If e.DataRow("桩号").length >= 2 Then
            e.DataRow("整桩号") = (e.DataRow("桩号").substring(0, 2)) & (e.DataRow("行车方向")) & (e.DataRow("车道名称")) & (e.DataRow("车道号")) & ("号车道")
        Else
            e.DataRow("整桩号") = ("桩号错误") \'赋值为空时填Nothing
        End If
    End If
End If
If e.DataCol.name = "左IRI"
    If e.DataRow("左IRI") >=  e.DataRow("右IRI") Then
        e.DataRow("IRI") = e.DataRow("左IRI")
    Else
        e.DataRow("IRI") = e.DataRow("右IRI")
    End If
End If
If e.DataCol.name =  "左平整度"
    If e.DataRow("左平整度") >=  e.DataRow("右平整度") Then
        e.DataRow("平整度") = e.DataRow("左平整度")
    Else
        e.DataRow("平整度") = e.DataRow("右平整度")
    End If
End If

DataTables("平整度").ReplaceFor("设计值_平整度", DataTables("检测信息表").DataRows(0)("平整度设计值")  )

If e.DataCol.name = "设计值_平整度" OrElse e.DataCol.name = "注释" Then
    If e.DataRow("设计值_平整度") = Nothing Then
        e.DataRow("单段判定_平整度") = "/"
    Else
        If e.DataRow("注释").length >= 1  Then
            e.DataRow("单段判定_平整度") = e.DataRow("注释")
        Else
            If e.DataRow("平整度") >  e.DataRow("设计值_平整度") Then
                e.DataRow("单段判定_平整度") = "不合格"
            Else
                e.DataRow("单段判定_平整度") = "合格"
            End If
        End If
    End If
End If
===============
If e.Col.Name = "设计值_平整度" Then
    If e.Row ("设计值_平整度") = 0 
        e.Text = "/"
    End If
End If

--  作者:PZXAS
--  发布时间:2018/4/19 20:25:00
--  
这是源文件
--  作者:有点甜
--  发布时间:2018/4/19 20:34:00
--  

这句代码删除

 

DataTables("平整度").ReplaceFor("设计值_平整度", DataTables("检测信息表").DataRows(0)("平整度设计值")  )

 


--  作者:PZXAS
--  发布时间:2018/4/19 20:41:00
--  
这句不能删除,他要引用检测信息表里的数据