Foxtable(狐表)用户栏目专家坐堂 → 自动输入的问题


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

主题:自动输入的问题

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
自动输入的问题  发帖心情 Post By:2017/12/15 17:17:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case
"品名","型号","规格"

       
Dim Filter As String = "[产品编号] = '" & e.DataRow("编号") & "'"
       
Dim drs As List(Of DataRow) = DataTables("订单").Select(Filter)
        For
Each dr As DataRow In
drs
            dr(e.
DataCol.Name) = e.DataRow(e.DataCol.Name)
        Next
End
Select

以上是“订单”表里面自动输入“产品”表之数据的代码。如果我还有一个“出入库”表,也要在“产品”表的"品名""型号""规格"变化之后,能够在“出入库”表的“产品名称”、“产品型号”和“产品规格”里面自动跟着变化,应该怎么改写这段代号呢?谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2017/12/16 15:10:00 [显示全部帖子]

Select Case e.DataCol.Name 
    Case "物料名称"
        Dim Filter As String = "[物料编号] = '" & e.DataRow("物料编号") & "'"
        Dim drs As List(Of DataRow) = DataTables("装配产品").Select(Filter)
        For Each dr As DataRow In drs
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) 
        Next
        drs = DataTables("装配清单").Select(Filter)        
            For Each dr As DataRow In drs
            dr("产品名称") = e.DataRow("物料名称")
        Next

End Select

我的代码是上面那段。其中“装配清单”和“装配产品”两个数据表均要随“物料字典”里面“物料名称”的改变而自动更新。

“装配产品”这个数据表的数据列有:物料编号、物料名称
“装配清单”这个数据表的数据列有:产品代号、产品名称
“物料字典”这个数据表的数据列有:物料编号、物料名称

但是上述代码运行时出现如下错误:

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.3.18.1
错误所在事件:表,物料字典,DataColChanged
详细错误信息:
调用的目标发生了异常。
未找到列 [物料编号]。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2017/12/16 15:27:00 [显示全部帖子]

我找到原因了,已经解决了。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/17 17:28:00 [显示全部帖子]

我在按下enter键时,会增加一个空行,但是我们希望此新增加行的某列数据能够自动重复上一行的某列数据,该在哪里写入什么代码才能实现?比如,我按下enter键并一行增加时,其“订单编号”这列能够自动输入跟上一行一样的“订单编号”。谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/18 11:38:00 [显示全部帖子]

谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/18 13:26:00 [显示全部帖子]

datarowadded事件

Dim idx As Integer = Tables(e.DataTable.Name).FindRow(e.DataRow)
If idx > 0 Then
    e.DataRow("订单编号") = Tables(e.DataTable.Name).Rows(idx - 1)("订单编号")
End If

如上代码里面,如果我想加多一个功能,即每增加一个空白行,就能够自动输入“行号”,凡是同一个订单编号,其行号依次从1、2、3、4...编下去,不允许重复。请教代码如何谢。谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/18 15:59:00 [显示全部帖子]

谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/21 15:23:00 [显示全部帖子]

Dim idx As Integer = Tables(e.DataTable.Name).FindRow(e.DataRow)
If idx > 0 Then
    e.DataRow("订单编号") = Tables(e.DataTable.Name).Rows(idx - 1)("订单编号")
e.DataRow("行号") = e.DataTable.compute("max(行号)","订单编号='" & e.DataRow("订单编号")  & "'") + 1
End If

如上代码是放在“采购订单”这个数据表之datarowadded事件里面的。如果我要求如上代码只是“采购订单”这个数据表触发的增加行才有效,而其他数据表触发的的增加行就无效。这要如何修改代码呢?谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/21 16:31:00 [显示全部帖子]

我在“采购单总表”这个数据表有如下代码:

Select Case e.DataCol.Name 
    Case "采购单号"
        If e.DataRow.IsNull("采购单号") = False Then '如果已经输入订单编号
            If e.DataRow.GetChildRows("采购单").Count = 0 Then '而且无订单明细
                Dim dr As DataRow = DataTables("采购单").AddNew()
            End If
        End If
End Select

执行如上代码会令"采购单"增加一行并自动重复上一行的某列数据。那这里的代码该如何避免这个现象(即让"采购单"增加一行空白行即可)?


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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/8/22 15:01:00 [显示全部帖子]

谢谢。

 回到顶部
总数 14 1 2 下一页