以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  另一表数据导入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86746)

--  作者:260964006
--  发布时间:2016/6/24 17:25:00
--  另一表数据导入

If e.DataCol.Name = "零件图号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("年2015_A点_供应商简称") = Nothing
        e.DataRow("年2015_A点_含税单价") = Nothing
        e.DataRow("年2015_B点_供应商简称") = Nothing
        e.DataRow("年2015_B点_含税单价") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("价格表2015").Find("[零件图号] = \'" &   e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("年2015_A点_供应商简称") = dr("A点_供应商 简称")
            e.DataRow("年2015_A点_含税单价") = dr("A点_含税单价_ 更新后")
            e.DataRow("年2015_B点_供应商简称") = dr("B点_供应商 简称")
            e.DataRow("年2015_B点_含税单价") = dr("B点_含税单价_ 更新后")
        End If
    End If
End If

我要想实现这些功能,怎么设置上述程序,放表属性datacolchanged没有数据过来。

*If e.DataRow("车型") <> "售后"  Then
    Select Case e.DataCol.name
        Case "零件图号"
            If e.newvalue > "" Then
                Dim dr As DataRow = DataTables("价格汇总表").Find("零件图号 = \'" & e.newValue & "\'")
                If dr Is Nothing Then
                    dr = DataTables("价格汇总表").AddNew()
                    dr("零件图号") = e.DataRow("零件图号")
                    dr("零件名称") = e.DataRow("零件名称")
                    dr("车型") = e.DataRow("车型")
                End If
            End If
        Case "零件名称","车型"
            Dim dr As DataRow = DataTables("价格汇总表").Find("零件图号 = \'" & e.DataRow("零件图号") & "\'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
    End Select
End If
  零部件的名称提供这个来的。

 


--  作者:大红袍
--  发布时间:2016/6/24 17:27:00
--  

必须输入 零件图号 的值,才会引入你需要的值。


--  作者:260964006
--  发布时间:2016/6/24 17:28:00
--  
在零部件图号不变的情况下,能引入吗?怎么改程序?
--  作者:大红袍
--  发布时间:2016/6/24 17:29:00
--  

 重置列

 

http://www.foxtable.com/help/topics/1469.htm

 


--  作者:260964006
--  发布时间:2016/6/24 17:54:00
--  

If e.DataCol.Name = "零件图号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("年2015_A点_供应商简称") = Nothing
        e.DataRow("年2015_A点_含税单价") = Nothing
        e.DataRow("年2015_B点_供应商简称") = Nothing
        e.DataRow("年2015_B点_含税单价") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("价格表2015").Find("[零件图号] = \'" &   e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("年2015_A点_供应商简称") = dr("A点_供应商简称")
            e.DataRow("年2015_A点_含税单价") = dr("A点_含税单价_更新后")
            e.DataRow("年2015_B点_供应商简称") = dr("B点_供应商简称")
            e.DataRow("年2015_B点_含税单价") = dr("B点_含税单价_更新后")
        End If
    End If
End If
If e.DataCol.Name = "零件图号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("年2016_A点_供应商简称") = Nothing
        e.DataRow("年2016_A点_含税单价") = Nothing
        e.DataRow("年2016_B点_供应商简称") = Nothing
        e.DataRow("年2016_B点_含税单价") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("价格表2016").Find("[零件图号] = \'" &   e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("年2016_A点_供应商简称") = dr("A点_供应商简称")
            e.DataRow("年2016_A点_含税单价") = dr("A点_含税单价_更新后")
            e.DataRow("年2016_B点_供应商简称") = dr("B点_供应商简称")
            e.DataRow("年2016_B点_含税单价") = dr("B点_含税单价_更新后")
        End If
    End If
End If

1、上述程序可否优化?    2、原表为空是,导过了也为空,而不是0.

DataTables("表名").DataCols("B").RaiseDataColChanged()   不是放在表属性dataclochanged吗?


--  作者:大红袍
--  发布时间:2016/6/24 18:11:00
--  


If e.DataCol.Name = "零件图号" Then
    Dim ys As String() = {2015, 2016}
    For Each y As String In ys
        If e.NewValue Is Nothing Then
            e.DataRow("年" & y & "_A点_供应商简称") = Nothing
            e.DataRow("年" & y & "_A点_含税单价") = Nothing
            e.DataRow("年" & y & "_B点_供应商简称") = Nothing
            e.DataRow("年" & y & "_B点_含税单价") = Nothing
        Else
            Dim dr As DataRow
            dr = DataTables("价格表" & y).Find("[零件图号] = \'" &   e.NewValue & "\'")
            If dr IsNot Nothing
                e.DataRow("年" & y & "_A点_供应商简称") = dr("A点_供应商简称")
                e.DataRow("年" & y & "_A点_含税单价") = dr("A点_含税单价_更新后")
                e.DataRow("年" & y & "_B点_供应商简称") = dr("B点_供应商简称")
                e.DataRow("年" & y & "_B点_含税单价") = dr("B点_含税单价_更新后")
            End If
        End If
    Next
End If


--  作者:260964006
--  发布时间:2016/6/25 9:49:00
--  
 1、原表为空是,导过了也为空,而不是0,怎么设置?

2、DataTables("表名").DataCols("B").RaiseDataColChanged()   不是放在表属性dataclochanged吗?


--  作者:Hyphen
--  发布时间:2016/6/25 10:15:00
--  
1、 e.DataRow("年2016_B点_含税单价") = IIF(dr.isnull("B点_含税单价_更新后"),0,dr("B点_含税单价_更新后"))

2、放到按钮事件中

--  作者:260964006
--  发布时间:2016/6/27 15:35:00
--  

原来为空的含税单价,还是导过来显示含税单价为0,我希望导过来还是为空。

供应商简称都能满足。


--  作者:大红袍
--  发布时间:2016/6/27 15:51:00
--  

e.DataRow("年2016_B点_含税单价") = IIF(dr("B点_含税单价_更新后")=0, Nothing,dr("B点_含税单价_更新后"))

[此贴子已经被作者于2016/6/27 15:51:51编辑过]