以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  列默认表达式,但可手动修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134111)

--  作者:北狐
--  发布时间:2019/4/27 19:02:00
--  列默认表达式,但可手动修改
DataColChanged事件代码:

Dim dr As DataRow = e.DataRow
If dr.IsNull("厂家单号")  Then
    e.DataRow("厂家日期") = e.DataRow("本单日期")
End If


列本单日期的数据为长日期格式(2019-04-04 15:23:39),本单日期的数据类型为日期型或者字符型时,
只要列厂家日期的数据类型为日期型时,软件会闪退;如果列厂家日期的数据类型改为字符型,则不会闪退。
需求:列厂家日期需要显示为短日期格式(2019-04-04 )
请问如何达到需求的同时避免闪退或者有其他方式实现?

[此贴子已经被作者于2019/4/27 19:02:43编辑过]

--  作者:有点甜
--  发布时间:2019/4/28 10:16:00
--  

加入列判断

 

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

 


--  作者:北狐
--  发布时间:2019/5/31 17:52:00
--  
Dim dr As DataRow = e.DataRow

Select Case e.DataCol.Name

    Case "厂家单号"

If e.newvalue > "" 
                Dim fdr = e.DataTable.find("工费单号 = \'" & e.newvalue & "\' " )  
                If fdr IsNot Nothing Then
                    e.DataRow("厂家日期") = fdr("本单日期")
            End If
End If

End Select

老师,请问如何只在当前筛选显示的行中找到工费单号等于输入值的行,而不是所有行?谢谢


--  作者:有点甜
--  发布时间:2019/5/31 18:02:00
--  

 

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name   
    Case "厂家单号"       
        If e.newvalue > ""
            Dim i = Tables("表A").findrow("工费单号 = \'" & e.newvalue & "\' " )
            If i >= 0 Then
                e.DataRow("厂家日期") = Tables("表A").rows(i)("本单日期")
            End If
        End If
End Select