Foxtable(狐表)用户栏目专家坐堂 → 关于跨表调用数据的问题


  共有2972人关注过本帖树形打印复制链接

主题:关于跨表调用数据的问题

帅哥哟,离线,有人找我吗?
陈卫
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2015/11/17 9:51:00 [只看该作者]

与本问题有关的表是“内部合同”表、一系列“拉动排产计划”表和“工序能力表”打开“拉动排产计划_浸漆”表或者“拉动排产计划_杆体探伤”表,DataColChanged事件中写有编码,进行测试

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2015/11/17 9:56:00 [只看该作者]

我要实现的是,在一系列“拉动排产计划”表中直接调用“工序能力表”在日生产能力数据,“拉动排产计划”表和“工序能力表”的表头相关内容都需要改成“日生产能力_**”,目前只有“拉动排产计划_浸漆”和“拉动排产计划_杆体探伤”两个表进行了修改,所以只能从这两个表测试

 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2015/11/17 10:05:00 [只看该作者]

下载完了吗?我可以删掉上传的内容吗?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 10:07:00 [只看该作者]

拉动排产计划_浸漆 datacolchanged事件

 


    Case "日生产能力_浸漆"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("品种_杆径") OrElse dr.IsNull("品种_长度") Then
            dr("日生产能力_浸漆") = Nothing
            MessageBox.Show("一点不难!")
        Else
            Dim filter As String
            filter = "品种_杆径 = '" & dr("品种_杆径") & "' And 品种_长度 = '" & dr("品种_长度") & "'"
            MessageBox.Show(filter)
           
            pr = DataTables("工序能力表").Find(filter)
            If pr IsNot Nothing Then
                dr("日生产能力_浸漆") = pr("日生产能力_浸漆")
            End If
        End If

 

合同 datacolchanged事件

 

Select Case e.DataCol.name
    Case "品种_杆径","品种_长度"
        DataTables("拉动排产计划_浸漆").DataCols("日生产能力_浸漆").RaiseDataColChanged("序号 = '" & e.DataRow("_Identify") & "'")
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2015/11/17 14:59:00 [只看该作者]

您好,专家,我还是前面的问题,我又有新的发现:

       我的“内部合同”表中的数据是从属于它的窗口输入的,我将“拉动排产计划_浸漆”表中的“品种_杆径”由表达式列转化为数据列,然后在DataColChanged事件中增加编码如下(蓝色部分):

Select Case e.DataCol.Name
    Case "本工序投产日期","完成生产日期"
        If e.DataRow.IsNull("本工序投产日期") OrElse e.DataRow.IsNull("完成生产日期") Then
            e.DataRow("安排生产天数_天")=Nothing
        Else
            Dim tp As TimeSpan = e.DataRow("完成生产日期") - e.DataRow("本工序投产日期")
            e.DataRow("安排生产天数_天")=tp.TotalDays+1
        End If
       
    Case "品种_杆径","品种_长度"
        Dim dr As DataRow = e.DataRow
        Dim pr1 As DataRow
        Dim pr2 As DataRow
       
        Dim filter1 As String
        filter1 = "品种_杆径 = '" & dr("品种_杆径") & "'"
        pr1 = DataTables("内部合同").Find(filter1)
MessageBox.Show(filter1)
        If pr1 IsNot Nothing Then
            dr("品种_杆径") = pr1("品种_杆径")
        Else
            If dr.IsNull("品种_杆径") OrElse dr.IsNull("品种_长度") Then
                dr("日生产能力_浸漆") = Nothing
            Else
                Dim filter2 As String
                filter2 = "品种_杆径 = '" & dr("品种_杆径") & "' And 品种_长度 = '" & dr("品种_长度") & "'"
                pr2 = DataTables("工序能力表").Find(filter2)
                If pr2 IsNot Nothing Then
                    dr("日生产能力_浸漆") = pr2("日生产能力_浸漆")
                End If
            End If
        End If
End Select

结果显示:"品种_杆径 ="",表明在“内部合同”表中并没有存入数据,这个问题是怎么回事?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 15:05:00 [只看该作者]

弹出的就是你表里面的实际的值。你这个表这个列的值是什么,就弹出什么。


 回到顶部
帅哥哟,离线,有人找我吗?
陈卫
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:126 积分:813 威望:0 精华:0 注册:2015/10/22 10:35:00
  发帖心情 Post By:2015/11/18 15:23:00 [只看该作者]

报告专家好消息,我的问题解决了,我把表达式列全部改成数据列,然后在表事件中写代码,问题全部解决,谢谢专家指导。

 


 回到顶部
总数 27 上一页 1 2 3