以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请专家帮忙看一下这段代码该如何修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51890)

--  作者:CBSLULU33
--  发布时间:2014/6/5 9:56:00
--  请专家帮忙看一下这段代码该如何修改
对于一个表我之前为字段“到货日期”自定义了两种样式,“近期”和“逾期”,分别用黄色和红色标识,代码如下:

If e.Col.Name = "到货日期" Then
    If e.Row.IsNull("到货日期") = False Then
        If e.Row("到货日期") < = Date.Today Then
            e.Style = "逾期"
        Else
            If e.Row("到货日期") < Date.Today.AddDays(7) Then
                e.Style = "近期"
            End If
        End If
    End If
End If

但如果想加一种样式进去,即:逻辑列“是否核销”如果为“TRUE”,到货日期的样式为“已核销”,用蓝色标识,样式已经定义好,请问专家如何修改上述代码?谢谢



--  作者:Bin
--  发布时间:2014/6/5 9:59:00
--  
If e.Col.Name = "到货日期" Then
    if e.row("是否核销") then
         e.Style =“已核销”
    else
    If e.Row.IsNull("到货日期") = False Then
        If e.Row("到货日期") < = Date.Today Then
            e.Style = "逾期"
        Else
            If e.Row("到货日期") < Date.Today.AddDays(7) Then
                e.Style = "近期"
            End If
        End If
    End If
   end if
End If

--  作者:CBSLULU33
--  发布时间:2014/6/5 10:47:00
--  
谢谢专家,试成了,挺好用的,另外想请请教一个问题,请问以下这种情况应该如何写代码:

有两个表:[采购订单主表]和[入库主表]
采购订单主表(含字段"采购合计"&"采购订单号",如:P2014001)
入库主表(含字段"入库合计"&"采购订单号"&"入库单号",如:S0001)
设计想:一个"采购订单号"可能对应多个"入库单号",如:

[入库主表]下有两条记录分别为:S0001(入库合计:5),S0002(入库合计:5),这两条记录对应的"采购订单"号均为:P2014001(采购合计:10)

我的问题是:如何在[入库主表]下"采购订单"为P2014001的若干条记录"入库合计"= [采购订单主表]下"采购订单"为P2014001的"采购合计"后,[采购订单主表]的"是否核销"自动打勾
请问是在哪个事件中实现,代码如何编写

不知道描述得够清楚吗?谢谢



--  作者:Bin
--  发布时间:2014/6/5 10:53:00
--  
请上例子. 描述看得头晕.
--  作者:CBSLULU33
--  发布时间:2014/6/5 10:57:00
--  
好的,上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:boc库存及订单管理项目.zip


--  作者:CBSLULU33
--  发布时间:2014/6/5 11:04:00
--  
如果要求密码,是8888,几乎忘了
--  作者:Bin
--  发布时间:2014/6/5 11:06:00
--  
搞不清楚你的对应关系.
--  作者:有点甜
--  发布时间:2014/6/5 11:11:00
--  

 采购订单明细表,datacolchanged事件,代码

 

Select Case e.DataCol.Name
    Case "采购数量"
        Dim pdr As DataRow = e.DataRow.GetParentRow("采购订单主表")
        If pdr IsNot Nothing Then
            pdr("是否核销") = pdr("采购合计") = e.DataTable.Compute("sum(入库数量)", "采购订单号=\'" & e.DataRow("采购订单号") & "\'")
        End If
End Select


--  作者:CBSLULU33
--  发布时间:2014/6/5 11:12:00
--  
就是【采购订单主表】中的一个"采购订单号",可能在采购入库【入库主表】时对应多个"入库单号",当有着同一个"采购订单号"的一个或多个"入库单号"的"入库合计"之和等于对应"采购订单号"的"采购合计"时, 【采购订单主表】中"是否核销"自动打勾
--  作者:有点甜
--  发布时间:2014/6/5 11:16:00
--  

还需要写一下,入库明细表,datacolchanged事件,代码

 

Select Case e.DataCol.name
    Case "采购入库日期", "销售出库日期"
        If e.DataRow.isnull("采购入库日期") = False Then
            If e.DataRow.isnull("销售出库日期") = False Then
                e.DataRow("钢瓶状态") = "销售出库"
            Else
                e.DataRow("钢瓶状态") = "采购入库"
            End If
        Else
            e.DataRow("钢瓶状态") = Nothing
        End If
    Case "入库数量"
        DataTables("采购订单明细表").DataCols("采购数量").RaiseDataColChanged(e.DataRow.GetParentRow("采购订单明细表"))
End Select