以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83739)

--  作者:gcc123
--  发布时间:2016/4/15 15:59:00
--  求助
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table

希望在表A欠款人列 金额列 输入数据后 ,对应的表车XXX 中 同一日期 在支款列中自动填入表A中所输入的金额列数据
--  作者:大红袍
--  发布时间:2016/4/15 16:21:00
--  

dataColChanged事件

 

If e.DataCol.name = "金额" Then
    If e.DataRow.IsNull("日期") = False AndAlso e.DataRow.IsNull("欠款人") = False Then
        Dim fdr As DataRow = DataTables("车" & e.DataRow("欠款人")).Find("日期 = #" & e.DataRow("日期") & "#")
        If fdr Is Nothing Then
            fdr =  DataTables("车" & e.DataRow("欠款人")).addnew
            fdr("日期") = e.DataRow("日期")
            fdr("车号") = e.DataRow("欠款人")
        End If
        fdr("支款") = e.DataRow("金额")
    End If
End If


--  作者:gcc123
--  发布时间:2016/4/16 16:43:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table

如果说再加一种限制条件就是当表A事由列仅为支款时  对应的车号 日期 数据自动导入  这样不知道能不能做到?


--  作者:Hyphen
--  发布时间:2016/4/16 17:22:00
--  
If e.DataCol.name = "金额" Then
    If e.DataRow("事由") = "支款" Then
        If e.DataRow.IsNull("日期") = False AndAlso e.DataRow.IsNull("欠款人") = False Then
            Dim fdr As DataRow = DataTables("车" & e.DataRow("欠款人")).Find("日期 = #" & e.DataRow("日期") & "#")
            If fdr Is Nothing Then
                fdr =  DataTables("车" & e.DataRow("欠款人")).addnew
                fdr("日期") = e.DataRow("日期")
                fdr("车号") = e.DataRow("欠款人")
            End If
            fdr("金额") = e.DataRow("金额")
        End If
    End If
End If

--  作者:gcc123
--  发布时间:2016/4/17 11:56:00
--  回复:(Hyphen)If e.DataCol.name = "金额" Then&nb...
谢谢老师 现在遇到的问题是 当表A中事由列内容不是支款时 改成支款后 对应的车表中支公司款列数据不自动填充,只有表A事由列改成支款后金额列数据剪切再粘贴 对应的车表中数据才填充。同理修改表A中日期 事由列为支款 金额 三列内容对应的车表中数据都应该跟着自动填充
图片点击可在新窗口打开查看此主题相关图片如下:11111111.png
图片点击可在新窗口打开查看

--  作者:Hyphen
--  发布时间:2016/4/17 14:17:00
--  

If e.DataCol.name <> "欠款人" Then
    If e.DataRow("事由") = "支款" Then
        If e.DataRow.IsNull("日期") = False AndAlso e.DataRow.IsNull("欠款人") = False Then
            Dim fdr As DataRow = DataTables("车" & e.DataRow("欠款人")).Find("日期 = #" & e.DataRow("日期") & "#")
            If fdr Is Nothing Then
                fdr =  DataTables("车" & e.DataRow("欠款人")).addnew
                fdr("日期") = e.DataRow("日期")
                fdr("车号") = e.DataRow("欠款人")
            End If
            fdr("金额") = e.DataRow("金额")
        End If
    End If
End If


--  作者:gcc123
--  发布时间:2016/4/17 17:23:00
--  回复:(Hyphen)If e.DataCol.name <> "欠款人...

谢谢老师的耐心帮助!

 


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

车751表中的数据是通过其他的表自动生成的,如果说4月16日 车子休息  我希望在车751表中自动插入16日一行并且车号列自动填写成751,支客户款 现金运费开支明细 列自动为0

货物名称列 填写成休息  支客户款 加油金额是空白 不填写内容  运转状态 选择正常  


--  作者:大红袍
--  发布时间:2016/4/17 23:36:00
--  

参考代码

 

Dim t As Table = Tables("车鲁H7H165")
Dim mindate As Date = t.Compute("min(日期)", "日期 is not null")
Dim maxdate As Date = t.Compute("max(日期)", "日期 is not null")
Do While mindate <= maxdate
    If t.FindRow("日期 = #" & mindate & "#") < 0 Then
        Dim nr As Row = t.AddNew
        nr("日期") = mindate
    End If
    mindate = mindate.AddDays(1)
Loop

 


--  作者:gcc123
--  发布时间:2016/4/18 0:59:00
--  回复:(大红袍)参考代码 Dim t As Table = T...

 

 

老师能具体在例子上边帮我改下么,谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table


--  作者:大红袍
--  发布时间:2016/4/18 9:18:00
--  

参考代码啊

 

Dim t As Table = Tables("车751")
Dim mindate As Date = t.Compute("min(日期)", "日期 is not null")
Dim maxdate As Date = t.Compute("max(日期)", "日期 is not null")
Do While mindate <= maxdate
    If t.FindRow("日期 = #" & mindate & "#") < 0 Then
        Dim nr As Row = t.AddNew
        nr("日期") = mindate
        nr("车号") = "751"
        nr("支客户款") = 0
    End If
    mindate = mindate.AddDays(1)
Loop